Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH v2 1/2] bus: mhi: core: Allow shared IRQ for event rings
@ 2020-09-21  7:36 Loic Poulain
  2020-09-21  7:36 ` [PATCH v2 2/2] bus: mhi: Remove unused nr_irqs_req variable Loic Poulain
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Loic Poulain @ 2020-09-21  7:36 UTC (permalink / raw)
  To: manivannan.sadhasivam, hemantk
  Cc: linux-arm-msm, bjorn.andersson, clew, Loic Poulain

There is no requirement for using a dedicated IRQ per event ring.
Some systems does not support multiple MSI vectors (e.g. intel
without CONFIG_IRQ_REMAP), In that case the MHI controller can
configure all the event rings to use the same interrupt (as fallback).

Allow this by removing the nr_irqs = ev_ring test and add extra check
in the irq_setup function.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
---
 v2: keep nr_irqs check early in init sequence

 drivers/bus/mhi/core/init.c | 7 +++++++
 drivers/bus/mhi/core/pm.c   | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c
index 19ade8a..31961af 100644
--- a/drivers/bus/mhi/core/init.c
+++ b/drivers/bus/mhi/core/init.c
@@ -125,6 +125,13 @@ int mhi_init_irq_setup(struct mhi_controller *mhi_cntrl)
 		if (mhi_event->offload_ev)
 			continue;
 
+		if (mhi_event->irq >= mhi_cntrl->nr_irqs) {
+			dev_err(dev, "irq %d not available for event ring\n",
+				mhi_event->irq);
+			ret = -EINVAL;
+			goto error_request;
+		}
+
 		ret = request_irq(mhi_cntrl->irq[mhi_event->irq],
 				  mhi_irq_handler,
 				  IRQF_SHARED | IRQF_NO_SUSPEND,
diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c
index ce4d969..3de7b16 100644
--- a/drivers/bus/mhi/core/pm.c
+++ b/drivers/bus/mhi/core/pm.c
@@ -918,7 +918,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
 
 	dev_info(dev, "Requested to power ON\n");
 
-	if (mhi_cntrl->nr_irqs < mhi_cntrl->total_ev_rings)
+	if (mhi_cntrl->nr_irqs < 1)
 		return -EINVAL;
 
 	/* Supply default wake routines if not provided by controller driver */
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-09-21 17:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-21  7:36 [PATCH v2 1/2] bus: mhi: core: Allow shared IRQ for event rings Loic Poulain
2020-09-21  7:36 ` [PATCH v2 2/2] bus: mhi: Remove unused nr_irqs_req variable Loic Poulain
2020-09-21 14:22   ` Manivannan Sadhasivam
2020-09-21 15:40   ` Manivannan Sadhasivam
2020-09-21 14:22 ` [PATCH v2 1/2] bus: mhi: core: Allow shared IRQ for event rings Manivannan Sadhasivam
2020-09-21 15:40 ` Manivannan Sadhasivam
2020-09-21 17:06 ` bbhatt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox