mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 03:35:32 -04:00
soundwire: bus_type: Create IRQ mapping before calling driver probe()
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(). Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Acked-by: Vinod Koul <vkoul@kernel.org> Link: https://patch.msgid.link/20260810104045.60701-4-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
a075fef187
commit
ee1811eacd
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user