Re: [PATCH 3/4] soundwire: bus_type: Create IRQ mapping before calling driver probe()

From: Vinod Koul

Date: Tue Aug 11 2026 - 01:19:22 EST


On 10-08-26, 11:40, Richard Fitzgerald wrote:
> Call sdw_irq_create_mapping() before calling the peripheral driver
> probe() so that it is possible to request the IRQ during probe().
>
> Previously creation of the mapping was conditional on the use_domain_irq
> flag in the driver properties. But these are filled in after probe(),
> which meant it wasn't possible to request the IRQ during probe(). This
> was ok for MFD drivers where only children requested the IRQ. But for
> normal drivers it led to the non-standard behavior of having to defer
> requesting the IRQ until after probe().

Shouldnt that still be the case (conditionally creating mapping). Does
every need this mapping?

>
> Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxx>
> ---
> drivers/soundwire/bus_type.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/soundwire/bus_type.c b/drivers/soundwire/bus_type.c
> index e73c1bea90593..d61a97c5b41ef 100644
> --- a/drivers/soundwire/bus_type.c
> +++ b/drivers/soundwire/bus_type.c
> @@ -105,6 +105,9 @@ static int sdw_bus_probe(struct device *dev)
> }
> slave->index = ret;
>
> + /* Create IRQ mapping now so the driver can get it in probe() */
> + sdw_irq_create_mapping(slave);
> +
> ret = drv->probe(slave, id);
> if (ret) {
> ida_free(&slave->bus->slave_ida, slave->index);
> @@ -117,9 +120,6 @@ static int sdw_bus_probe(struct device *dev)
> if (drv->ops && drv->ops->read_prop)
> drv->ops->read_prop(slave);
>
> - if (slave->prop.use_domain_irq)
> - sdw_irq_create_mapping(slave);
> -
> /* init the dynamic sysfs attributes we need */
> ret = sdw_slave_sysfs_dpn_init(slave);
> if (ret < 0)
> --
> 2.47.3

--
~Vinod