--- 48279ee620b85fc3adfa0642af68f78871e64040 +++ 793f06399baab61880074474d67513ceab5bd5fc @@ -1588,8 +1588,8 @@ static void hci_cc_fm_disable_rsp(struct if (status) return; - if (radio->mode != FM_CALIB) - iris_q_event(radio, IRIS_EVT_RADIO_DISABLED); + + iris_q_event(radio, IRIS_EVT_RADIO_DISABLED); radio_hci_req_complete(hdev, status); } @@ -1627,8 +1627,8 @@ static void hci_cc_fm_enable_rsp(struct if (rsp->status) return; - if (radio->mode != FM_CALIB) - iris_q_event(radio, IRIS_EVT_RADIO_READY); + + iris_q_event(radio, IRIS_EVT_RADIO_READY); radio_hci_req_complete(hdev, rsp->status); } @@ -1879,7 +1879,6 @@ static inline void hci_cmd_complete_even switch (opcode) { case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_ENABLE_RECV_REQ): - case hci_trans_ctrl_cmd_op_pack(HCI_OCF_FM_ENABLE_TRANS_REQ): hci_cc_fm_enable_rsp(hdev, skb); break; case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_GET_RECV_CONF_REQ): @@ -1887,7 +1886,6 @@ static inline void hci_cmd_complete_even break; case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_DISABLE_RECV_REQ): - case hci_trans_ctrl_cmd_op_pack(HCI_OCF_FM_DISABLE_TRANS_REQ): hci_cc_fm_disable_rsp(hdev, skb); break; @@ -1902,6 +1900,8 @@ static inline void hci_cmd_complete_even case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_EN_WAN_AVD_CTRL): case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_EN_NOTCH_CTRL): case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_SET_CH_DET_THRESHOLD): + case hci_trans_ctrl_cmd_op_pack(HCI_OCF_FM_ENABLE_TRANS_REQ): + case hci_trans_ctrl_cmd_op_pack(HCI_OCF_FM_DISABLE_TRANS_REQ): case hci_trans_ctrl_cmd_op_pack(HCI_OCF_FM_RDS_RT_REQ): case hci_trans_ctrl_cmd_op_pack(HCI_OCF_FM_RDS_PS_REQ): case hci_common_cmd_op_pack(HCI_OCF_FM_DEFAULT_DATA_WRITE): @@ -2461,27 +2461,23 @@ static int iris_do_calibration(struct ir int retval = 0x00; cal_mode = PROCS_CALIB_MODE; - radio->mode = FM_CALIB; retval = hci_cmd(HCI_FM_ENABLE_RECV_CMD, radio->fm_hdev); if (retval < 0) { FMDERR("Enable failed before calibration %x", retval); - radio->mode = FM_OFF; return retval; } retval = radio_hci_request(radio->fm_hdev, hci_fm_do_cal_req, (unsigned long)cal_mode, RADIO_HCI_TIMEOUT); if (retval < 0) { FMDERR("Do Process calibration failed %x", retval); - radio->mode = FM_RECV; return retval; } retval = hci_cmd(HCI_FM_DISABLE_RECV_CMD, radio->fm_hdev); if (retval < 0) FMDERR("Disable Failed after calibration %d", retval); - radio->mode = FM_OFF; - return retval; + return retval; } static int iris_vidioc_g_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl) @@ -2854,12 +2850,12 @@ static int iris_vidioc_s_ctrl(struct fil case FM_TRANS: retval = hci_cmd(HCI_FM_ENABLE_TRANS_CMD, radio->fm_hdev); + radio->mode = FM_TRANS; if (retval < 0) { FMDERR("Error while enabling TRANS FM" " %d\n", retval); return retval; } - radio->mode = FM_TRANS; retval = hci_cmd(HCI_FM_GET_TX_CONFIG, radio->fm_hdev); if (retval < 0) FMDERR("get frequency failed %d\n", retval); @@ -2869,23 +2865,17 @@ static int iris_vidioc_s_ctrl(struct fil case FM_RECV: retval = hci_cmd(HCI_FM_DISABLE_RECV_CMD, radio->fm_hdev); - if (retval < 0) { + if (retval < 0) FMDERR("Err on disable recv FM" " %d\n", retval); - return retval; - } - radio->mode = FM_OFF; break; case FM_TRANS: retval = hci_cmd(HCI_FM_DISABLE_TRANS_CMD, radio->fm_hdev); - if (retval < 0) { + if (retval < 0) FMDERR("Err disabling trans FM" " %d\n", retval); - return retval; - } - radio->mode = FM_OFF; break; default: retval = -EINVAL;