Message ID | 1691747849-15385-1-git-send-email-quic_skananth@quicinc.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | [v1] bus: mhi: ep: Clear channel interrupts that are unmasked | expand |
On Fri, Aug 11, 2023 at 02:57:08AM -0700, Subramanian Ananthanarayanan wrote: > Change is to avoid clearing of interrupts that could have been masked. > > Signed-off-by: Subramanian Ananthanarayanan <quic_skananth@quicinc.com> Is this scenario possible in real life? We unmask all the interrupts during power_up and later mask the interrupts specific to channels when they are started. So I do not see a possibility where the CHDB status would be set for an unmasked channel. Looking at the code now, I think we can get rid of the mask check, even the local copy of mask if there is a guarantee that doorbell interrupts won't be enabled behind the back of the MHI stack. IIRC, I added the mask check as the HW channel interrupts were enabled behind the back. But that was fixed with all unmask during power_up and mask only started channels strategy. PS: The term "mask" is horribly used in an inverted manner in MHI. - Mani > --- > drivers/bus/mhi/ep/main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c > index 6008818..a818781 100644 > --- a/drivers/bus/mhi/ep/main.c > +++ b/drivers/bus/mhi/ep/main.c > @@ -867,7 +867,7 @@ static void mhi_ep_check_channel_interrupt(struct mhi_ep_cntrl *mhi_cntrl) > if (ch_int) { > mhi_ep_queue_channel_db(mhi_cntrl, ch_int, ch_idx); > mhi_ep_mmio_write(mhi_cntrl, MHI_CHDB_INT_CLEAR_n(i), > - mhi_cntrl->chdb[i].status); > + ch_int); > } > } > } > -- > 2.7.4 >
diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c index 6008818..a818781 100644 --- a/drivers/bus/mhi/ep/main.c +++ b/drivers/bus/mhi/ep/main.c @@ -867,7 +867,7 @@ static void mhi_ep_check_channel_interrupt(struct mhi_ep_cntrl *mhi_cntrl) if (ch_int) { mhi_ep_queue_channel_db(mhi_cntrl, ch_int, ch_idx); mhi_ep_mmio_write(mhi_cntrl, MHI_CHDB_INT_CLEAR_n(i), - mhi_cntrl->chdb[i].status); + ch_int); } } }
Change is to avoid clearing of interrupts that could have been masked. Signed-off-by: Subramanian Ananthanarayanan <quic_skananth@quicinc.com> --- drivers/bus/mhi/ep/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)