summaryrefslogtreecommitdiff
path: root/drivers/platform
diff options
context:
space:
mode:
authorSujeev Dias <sdias@codeaurora.org>2017-03-11 17:53:03 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-17 14:06:32 -0700
commit839bf852e27b7a16ad5ecd394212f2797948831e (patch)
tree25cfe2f640bdf33ed0461385fb8ac93b5c53e036 /drivers/platform
parent3f942f9f968e02b8dbaa9a76f1d095aebe7b3b15 (diff)
mhi: core: only accumulate transfer complete events as processed events
When a client ask MHI host to processed X number of events, only count transfer events as part of processed events. All other events are internal events. CRs-Fixed: 2018324 Change-Id: I4cfcae0ba187348442c3fc45b76d7c4b01f687bd Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/msm/mhi/mhi_isr.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/platform/msm/mhi/mhi_isr.c b/drivers/platform/msm/mhi/mhi_isr.c
index 95efe62eb8d4..9aa9aeb7e646 100644
--- a/drivers/platform/msm/mhi/mhi_isr.c
+++ b/drivers/platform/msm/mhi/mhi_isr.c
@@ -114,6 +114,7 @@ static int mhi_process_event_ring(
ev_index);
spin_unlock_bh(&ring->ring_lock);
__pm_relax(&mhi_dev_ctxt->w_lock);
+ event_quota--;
break;
}
case MHI_PKT_TYPE_STATE_CHANGE_EVENT:
@@ -207,7 +208,6 @@ static int mhi_process_event_ring(
ev_ctxt->mhi_event_read_ptr);
spin_unlock_irqrestore(&local_ev_ctxt->ring_lock, flags);
ret_val = 0;
- --event_quota;
}
read_lock_bh(&mhi_dev_ctxt->pm_xfer_lock);
mhi_dev_ctxt->deassert_wake(mhi_dev_ctxt);
@@ -222,12 +222,10 @@ void mhi_ev_task(unsigned long data)
struct mhi_device_ctxt *mhi_dev_ctxt =
mhi_ring->mhi_dev_ctxt;
int ev_index = mhi_ring->index;
- struct mhi_event_ring_cfg *ring_props =
- &mhi_dev_ctxt->ev_ring_props[ev_index];
mhi_log(mhi_dev_ctxt, MHI_MSG_VERBOSE, "Enter\n");
/* Process event ring */
- mhi_process_event_ring(mhi_dev_ctxt, ev_index, ring_props->nr_desc);
+ mhi_process_event_ring(mhi_dev_ctxt, ev_index, U32_MAX);
enable_irq(MSI_TO_IRQ(mhi_dev_ctxt, ev_index));
mhi_log(mhi_dev_ctxt, MHI_MSG_VERBOSE, "Exit\n");
@@ -240,12 +238,10 @@ void process_event_ring(struct work_struct *work)
struct mhi_device_ctxt *mhi_dev_ctxt =
mhi_ring->mhi_dev_ctxt;
int ev_index = mhi_ring->index;
- struct mhi_event_ring_cfg *ring_props =
- &mhi_dev_ctxt->ev_ring_props[ev_index];
mhi_log(mhi_dev_ctxt, MHI_MSG_VERBOSE, "Enter\n");
/* Process event ring */
- mhi_process_event_ring(mhi_dev_ctxt, ev_index, ring_props->nr_desc);
+ mhi_process_event_ring(mhi_dev_ctxt, ev_index, U32_MAX);
enable_irq(MSI_TO_IRQ(mhi_dev_ctxt, ev_index));
mhi_log(mhi_dev_ctxt, MHI_MSG_VERBOSE, "Exit\n");