Quoting John Stultz (2020-07-10 15:44:18) > On Thu, Jul 9, 2020 at 11:02 PM Stephen Boyd <swboyd@xxxxxxxxxxxx> wrote: > > > > Does it work? I haven't looked in detail but I worry that the child > > irqdomain (i.e. pinctrl-msm) would need to delay probing until this > > parent irqdomain is registered. Or has the hierarchical irqdomain code > > been updated to handle the parent child relationship and wait for things > > to probe or be loaded? > > So I can't say I know the underlying hardware particularly well, but > I've been using this successfully on the Dragonboard 845c with both > static builds as well as module enabled builds. > And the same patch has been in the android-mainline and android-5.4 > kernels for a while without objections from QCOM. > > As to the probe ordering question, Saravana can maybe speak in more > detail if it's involved in this case but the fw_devlink code has > addressed many of these sorts of ordering issues. > However, I'm not sure if I'm lucking into the right probe order, as we > have been able to boot android-mainline w/ both fw_devlink=on and > fw_devlink=off (though in the =off case, we need > deferred_probe_timeout=30 to give us a bit more time for modules to > load after init starts). > Ok I looked at the code (sorry for not checking earlier) and I see this in msm_gpio_init() np = of_parse_phandle(pctrl->dev->of_node, "wakeup-parent", 0); if (np) { chip->irq.parent_domain = irq_find_matching_host(np, DOMAIN_BUS_WAKEUP); of_node_put(np); if (!chip->irq.parent_domain) return -EPROBE_DEFER; so it looks like we'll probe defer the pinctrl driver until the pdc module loads. Meaning it should work to have pinctrl builtin and pdc as a module.