diff --git a/drivers/platform/msm/mhi_dev/mhi.c b/drivers/platform/msm/mhi_dev/mhi.c index ca14cc22831e..33f6b7153d6e 100644 --- a/drivers/platform/msm/mhi_dev/mhi.c +++ b/drivers/platform/msm/mhi_dev/mhi.c @@ -75,7 +75,8 @@ static struct mhi_dev *mhi_ctx; static void mhi_hwc_cb(void *priv, enum ipa_mhi_event_type event, unsigned long data); static void mhi_ring_init_cb(void *user_data); -static void mhi_update_state_info(uint32_t uevent_idx, enum mhi_ctrl_info info); +static void mhi_update_state_info(enum mhi_ctrl_info info); +static void mhi_update_state_info_ch(uint32_t ch_id, enum mhi_ctrl_info info); static int mhi_deinit(struct mhi_dev *mhi); static void mhi_dev_resume_init_with_link_up(struct ep_pcie_notify *notify); static int mhi_dev_pcie_notify_event; @@ -698,8 +699,7 @@ static int mhi_enable_int(void) pr_err("Failed to enable command db: %d\n", rc); return rc; } - mhi_update_state_info(MHI_DEV_UEVENT_CTRL, - MHI_STATE_CONNECTED); + mhi_update_state_info(MHI_STATE_CONNECTED); if (!mhi_ctx->mhi_int) ep_pcie_mask_irq_event(mhi_ctx->phandle, EP_PCIE_INT_EVT_MHI_A7, true); @@ -1345,7 +1345,7 @@ send_start_completion_event: if (rc) pr_err("Error sending command completion event\n"); - mhi_update_state_info(ch_id, MHI_STATE_CONNECTED); + mhi_update_state_info_ch(ch_id, MHI_STATE_CONNECTED); /* Trigger callback to clients */ mhi_dev_trigger_cb(ch_id); mhi_uci_chan_state_notify(mhi, ch_id, MHI_STATE_CONNECTED); @@ -1401,7 +1401,7 @@ send_start_completion_event: pr_err("stop event send failed\n"); mutex_unlock(&ch->ch_lock); - mhi_update_state_info(ch_id, MHI_STATE_DISCONNECTED); + mhi_update_state_info_ch(ch_id, MHI_STATE_DISCONNECTED); /* Trigger callback to clients */ mhi_dev_trigger_cb(ch_id); mhi_uci_chan_state_notify(mhi, ch_id, @@ -1478,7 +1478,7 @@ send_start_completion_event: if (rc) pr_err("Error sending command completion event\n"); mutex_unlock(&ch->ch_lock); - mhi_update_state_info(ch_id, MHI_STATE_DISCONNECTED); + mhi_update_state_info_ch(ch_id, MHI_STATE_DISCONNECTED); mhi_dev_trigger_cb(ch_id); mhi_uci_chan_state_notify(mhi, ch_id, MHI_STATE_DISCONNECTED); @@ -2159,7 +2159,7 @@ int mhi_dev_resume(struct mhi_dev *mhi) mhi_ctx->write_to_host(mhi, &data_transfer, NULL, MHI_DEV_DMA_SYNC); } - mhi_update_state_info(MHI_DEV_UEVENT_CTRL, MHI_STATE_CONNECTED); + mhi_update_state_info(MHI_STATE_CONNECTED); atomic_set(&mhi->is_suspended, 0); @@ -2855,7 +2855,7 @@ static void mhi_dev_enable(struct work_struct *work) enable_irq(mhi_ctx->mhi_irq); } - mhi_update_state_info(MHI_DEV_UEVENT_CTRL, MHI_STATE_CONFIGURED); + mhi_update_state_info(MHI_STATE_CONFIGURED); } static void mhi_ring_init_cb(void *data) @@ -2913,22 +2913,22 @@ int mhi_register_state_cb(void (*mhi_state_cb) } EXPORT_SYMBOL(mhi_register_state_cb); -static void mhi_update_state_info(uint32_t uevent_idx, enum mhi_ctrl_info info) +static void mhi_update_state_info_ch(uint32_t ch_id, enum mhi_ctrl_info info) { struct mhi_dev_client_cb_reason reason; - if (uevent_idx == MHI_DEV_UEVENT_CTRL) - mhi_ctx->ctrl_info = info; - - channel_state_info[uevent_idx].ctrl_info = info; - - if (uevent_idx == MHI_CLIENT_QMI_OUT || - uevent_idx == MHI_CLIENT_QMI_IN) { + channel_state_info[ch_id].ctrl_info = info; + if (ch_id == MHI_CLIENT_QMI_OUT || ch_id == MHI_CLIENT_QMI_IN) { /* For legacy reasons for QTI client */ reason.reason = MHI_DEV_CTRL_UPDATE; uci_ctrl_update(&reason); } +} + +static void mhi_update_state_info(enum mhi_ctrl_info info) +{ + mhi_ctx->ctrl_info = info; } int mhi_ctrl_state_info(uint32_t idx, uint32_t *info) @@ -3467,8 +3467,7 @@ static int mhi_dev_probe(struct platform_device *pdev) mutex_init(&mhi_ctx->mhi_lock); mhi_uci_init(); - mhi_update_state_info(MHI_DEV_UEVENT_CTRL, - MHI_STATE_CONFIGURED); + mhi_update_state_info(MHI_STATE_CONFIGURED); } if (mhi_ctx->use_edma) {