diff options
author | Smriti Gupta <smritig@codeaurora.org> | 2016-07-08 12:05:57 +0530 |
---|---|---|
committer | Smriti Gupta <smritig@codeaurora.org> | 2016-07-13 13:37:32 +0530 |
commit | c4750adac012616d40b1300e862ec75573a5cb1f (patch) | |
tree | c4275bc96bc0c20838a8b1781f708650a2db635f /helium | |
parent | 368e9f70b1c69e2517244913a651f67ac7748f61 (diff) | |
download | android_hardware_qcom_fm-c4750adac012616d40b1300e862ec75573a5cb1f.tar.gz android_hardware_qcom_fm-c4750adac012616d40b1300e862ec75573a5cb1f.tar.bz2 android_hardware_qcom_fm-c4750adac012616d40b1300e862ec75573a5cb1f.zip |
FM: Fix KW issues.
Fix KW issues in FM.
CRs-Fixed: 1040552
Change-Id: I57fec241ecc98735e3ec6cf75837859a4db4ad97
Diffstat (limited to 'helium')
-rw-r--r-- | helium/radio_helium_hal.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/helium/radio_helium_hal.c b/helium/radio_helium_hal.c index f22c6f5..a45fd48 100644 --- a/helium/radio_helium_hal.c +++ b/helium/radio_helium_hal.c @@ -323,7 +323,7 @@ static void hci_cc_default_data_write_rsp(char *ev_buff) static void hci_cc_get_blend_tbl_rsp(char *ev_buff) { - int status, val; + int status, val = -1; if (ev_buff == NULL) { ALOGE("%s:response buffer in null", LOG_TAG); @@ -360,11 +360,13 @@ static void hci_cc_set_blend_tbl_rsp(char *ev_buff) static void hci_cc_station_rsp(char *ev_buff) { - int val, status = ev_buff[0]; + int val = -1, status = ev_buff[0]; + unsigned char *tmp = (unsigned char *)(&hal->radio->fm_st_rsp.station_rsp) + + sizeof(char); if (status == FM_HC_STATUS_SUCCESS) { - memcpy(&hal->radio->fm_st_rsp.station_rsp.station_freq, &ev_buff[1], - sizeof(struct hci_fm_station_rsp) - sizeof(char)); + memcpy(tmp, &ev_buff[1], + sizeof(struct hci_ev_tune_status) - sizeof(char)); if (test_bit(station_param_mask_flag, CMD_STNPARAM_RSSI)) { val = hal->radio->fm_st_rsp.station_rsp.rssi; } else if (test_bit(station_param_mask_flag, CMD_STNPARAM_SINR)) { @@ -379,7 +381,7 @@ static void hci_cc_station_rsp(char *ev_buff) static void hci_cc_dbg_param_rsp(char *ev_buff) { - int val, status = ev_buff[0]; + int val = -1, status = ev_buff[0]; if (status == FM_HC_STATUS_SUCCESS) { memcpy(&hal->radio->st_dbg_param, &ev_buff[1], @@ -652,8 +654,10 @@ static inline void hci_ev_radio_text(char *buff) data[3] = buff[RDS_PID_HIGHER]; data[4] = buff[RT_A_B_FLAG_OFFSET]; - memcpy(data+RDS_OFFSET, &buff[RDS_OFFSET], len); - data[len+RDS_OFFSET] = 0x00; + if (len > 0) { + memcpy(data+RDS_OFFSET, &buff[RDS_OFFSET], len); + data[len+RDS_OFFSET] = 0x00; + } hal->jni_cb->rt_update_cb(data); free(data); |