diff --git a/include/soc/soundwire.h b/include/soc/soundwire.h index d2ebb76214..28b3b30f86 100644 --- a/include/soc/soundwire.h +++ b/include/soc/soundwire.h @@ -15,6 +15,7 @@ #include #include #include +#include extern struct bus_type soundwire_type; @@ -204,7 +205,7 @@ struct swr_device { struct device dev; unsigned long addr; u8 group_id; - u8 slave_irq; + struct irq_domain *slave_irq; }; static inline struct swr_device *to_swr_device(struct device *dev) diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index 68354b8136..b2449e7e93 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -1078,7 +1078,9 @@ static irqreturn_t swr_mstr_interrupt(int irq, void *dev) if (swr_dev->dev_num != devnum) continue; if (swr_dev->slave_irq) - handle_nested_irq(swr_dev->slave_irq); + handle_nested_irq( + irq_find_mapping( + swr_dev->slave_irq, 0)); } break; case SWRM_INTERRUPT_STATUS_NEW_SLAVE_ATTACHED: