void battery_info_get(struct batt_info* resp_buf) { struct oem_rapi_client_streaming_func_arg arg; struct oem_rapi_client_streaming_func_ret ret; uint32_t out_len; int ret_val; struct batt_info rsp_buf; Open_check(); arg.event = LG_FW_A2M_BATT_INFO_GET; arg.cb_func = NULL; arg.handle = (void*) 0; arg.in_len = 0; arg.input = NULL; arg.out_len_valid = 1; arg.output_valid = 1; arg.output_size = sizeof(rsp_buf); ret.output = (char*)&rsp_buf; ret.out_len = &out_len; ret_val = oem_rapi_client_streaming_function(client, &arg, &ret); if(ret_val == 0) { resp_buf->valid_batt_id = GET_U_INT32(&rsp_buf.valid_batt_id); resp_buf->batt_therm = GET_U_INT32(&rsp_buf.batt_therm); resp_buf->batt_temp = GET_INT32(&rsp_buf.batt_temp); } else { /* In case error */ resp_buf->valid_batt_id = 1; /* authenticated battery id */ resp_buf->batt_therm = 100; /* 100 battery therm adc */ resp_buf->batt_temp = 30; /* 30 degree celcius */ } return; }
void battery_info_get(struct batt_info *resp_buf) { struct oem_rapi_client_streaming_func_arg arg; struct oem_rapi_client_streaming_func_ret ret; int ret_val; struct batt_info rsp_buf; Open_check(); arg.event = LG_FW_A2M_BATT_INFO_GET; arg.cb_func = NULL; arg.handle = (void *)0; arg.in_len = 0; arg.input = NULL; arg.out_len_valid = 1; arg.output_valid = 1; arg.output_size = sizeof(rsp_buf); ret.output = NULL; ret.out_len = NULL; ret_val = oem_rapi_client_streaming_function(client, &arg, &ret); if (ret_val == 0) { memcpy(&rsp_buf, ret.output, *ret.out_len); resp_buf->valid_batt_id = GET_U_INT32(&rsp_buf.valid_batt_id); resp_buf->batt_therm = GET_U_INT32(&rsp_buf.batt_therm); resp_buf->batt_temp = GET_INT32(&rsp_buf.batt_temp); #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) resp_buf->chg_current = GET_U_INT32(&rsp_buf.chg_current); resp_buf->batt_thrm_state = GET_U_INT32(&rsp_buf.batt_thrm_state); #endif } else { /* In case error */ resp_buf->valid_batt_id = 1; /* authenticated battery id */ resp_buf->batt_therm = 100; /* 100 battery therm adc */ resp_buf->batt_temp = 30; /* 30 degree celcius */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) resp_buf->chg_current = 0; resp_buf->batt_thrm_state = 0; #endif } if (ret.output) kfree(ret.output); if (ret.out_len) kfree(ret.out_len); }