aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-12-17 15:47:05 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2019-12-17 15:47:12 -0800
commitd94cf1a673d999aa0b70af7edfbd9d4e1810d643 (patch)
treefcdb6f00511085a666dcafed52dd1db6097304a0
parent17fc151bff188739e48c269a2ee0132de3216a81 (diff)
parent4215dc62482e380df54626f5d3946e748ec474db (diff)
Merge "msm: mhi_dev: Split mhi and channel state update" into LE.UM.3.3.2.rb1.15LE.UM.3.3.2-05500-SDX55LE.UM.3.3.2-05400-SDX55
-rw-r--r--drivers/platform/msm/mhi_dev/mhi.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/drivers/platform/msm/mhi_dev/mhi.c b/drivers/platform/msm/mhi_dev/mhi.c
index bca0d8062ec0..4435ac91e612 100644
--- a/drivers/platform/msm/mhi_dev/mhi.c
+++ b/drivers/platform/msm/mhi_dev/mhi.c
@@ -79,7 +79,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;
@@ -702,8 +703,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);
@@ -1349,7 +1349,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);
@@ -1405,7 +1405,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,
@@ -1482,7 +1482,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);
@@ -2177,7 +2177,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);
@@ -2895,7 +2895,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)
@@ -2953,22 +2953,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)
@@ -3507,8 +3507,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) {