diff options
| author | Sujeev Dias <sdias@codeaurora.org> | 2017-03-11 17:53:03 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-17 14:06:32 -0700 |
| commit | 839bf852e27b7a16ad5ecd394212f2797948831e (patch) | |
| tree | 25cfe2f640bdf33ed0461385fb8ac93b5c53e036 /drivers/platform | |
| parent | 3f942f9f968e02b8dbaa9a76f1d095aebe7b3b15 (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.c | 10 |
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"); |
