On Wed, Jul 03, 2024 at 03:11:57PM GMT, David Collins wrote: > Pass a pointer to the SPMI bus subnode instead of the top- > level PMIC arbiter node when calling irq_domain_add_tree(). > This ensures that consumer IRQ mappings can be found > successfully at runtime. > > Here is an example of a consumer device probe deferral that > happens without this fix in place: > > [ 18.197271] platform c42d000.spmi:qcom,pmk8550@0:pon_hlos@1300:pwrkey: > deferred probe pending: pm8941-pwrkey: IRQ index 0 not found > [ 18.197275] platform c42d000.spmi:qcom,pmk8550@0:pon_hlos@1300:resin: > deferred probe pending: pm8941-pwrkey: IRQ index 0 not found > > Fixes: 02922ccbb330 ("spmi: pmic-arb: Register controller for bus instead of arbiter") > Fixes: 979987371739 ("spmi: pmic-arb: Add multi bus support") > Signed-off-by: David Collins <quic_collinsd@xxxxxxxxxxx> Not sure if Stephen was waiting for some fixes tags, but otherwise this was already proposed and reviewed here: https://lore.kernel.org/all/20240522-topic-spmi_multi_master_irqfix-v2-1-7ec92a862b9f@xxxxxxxxxx/ FWIW: Reviewed-by: Bjorn Andersson <andersson@xxxxxxxxxx> Regards, Bjorn > --- > drivers/spmi/spmi-pmic-arb.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c > index 791cdc160c51..e6a4bf3abb1f 100644 > --- a/drivers/spmi/spmi-pmic-arb.c > +++ b/drivers/spmi/spmi-pmic-arb.c > @@ -1737,8 +1737,7 @@ static int spmi_pmic_arb_bus_init(struct platform_device *pdev, > > dev_dbg(&pdev->dev, "adding irq domain for bus %d\n", bus_index); > > - bus->domain = irq_domain_add_tree(dev->of_node, > - &pmic_arb_irq_domain_ops, bus); > + bus->domain = irq_domain_add_tree(node, &pmic_arb_irq_domain_ops, bus); > if (!bus->domain) { > dev_err(&pdev->dev, "unable to create irq_domain\n"); > return -ENOMEM; > -- > 2.25.1 > >