On Mon, Jan 31, 2022 at 7:18 PM Kevin Hilman <khilman@xxxxxxxxxxxx> wrote: > > Hi Saravana, > > Saravana Kannan <saravanak@xxxxxxxxxx> writes: > > > fw_devlink could end up creating device links for bus only devices. > > However, bus only devices don't get probed and can block probe() or > > sync_state() [1] call backs of other devices. To avoid this, probe these > > devices using the simple-pm-bus driver. > > > > However, there are instances of devices that are not simple buses (they get > > probed by their specific drivers) that also list the "simple-bus" (or other > > bus only compatible strings) in their compatible property to automatically > > populate their child devices. We still want these devices to get probed by > > their specific drivers. So, we make sure this driver only probes devices > > that are only buses. > > > > [1] - https://lore.kernel.org/lkml/CAPDyKFo9Bxremkb1dDrr4OcXSpE0keVze94Cm=zrkOVxHHxBmQ@xxxxxxxxxxxxxx/ > > Fixes: c442a0d18744 ("driver core: Set fw_devlink to "permissive" behavior by default") > > Signed-off-by: Saravana Kannan <saravanak@xxxxxxxxxx> > > Tested-by: Saravana Kannan <saravanak@xxxxxxxxxx> > > Tested-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > > This patch landed in stable/linux-5.10.y as commit d5f13bbb5104 and it > broke suspend/resume on at least one TI AM335x board I'm testing on: > upstream dts: arch/arm/boot/dts/am335x-icev2.dts, upstream defconfig: > arch/arm/configs/omap2plus_defconfig. > > Bisecting between vanilla v5.10 (good) and stable/linux-5.10.y (bad) > pointed me to this patch, and I confirmed that reverting just this patch > on top of stable/linux-5.10.y makes it work again. > > Also interesting, this same platform works fine on vanilla v5.15, which > also includes this patch. That suggests that either 1) this patch > should not have been backported to v5.10 stable or 2) there are some > other dependencies that are missing in v5.10. > > Since vanilla v5.10 works fine, I'm leaning towards (1), but if you have > any ideas for deps that need backporting, I'm happy to try. Oh wow! I didn't realize I made so many changes AFTER 5.10! Unless I'm doing something wrong with my git commands. $ git log v5.10..v5.15 --oneline -- drivers/of/property.c $ git log v5.10..v5.15 --oneline --author=saravanak -- drivers/base/ If you don't think I got my git command completely wrong, yeah, way too many patches are missing on 5.10. I'd go with the option of dropping this patch on 5.10. > I haven't debugged exactly where it's hanging yet, but, enabling > CONFIG_DEBUG_DRIVER=y, and suspending with "no_console_suspend" on the > command line, the last line before it hangs is: > > [ 28.129966] simple-pm-bus ocp: noirq power domain suspend > > Any ideas? I'd guess it's either a sync_state() happening too soon since some of the dependencies aren't tracked. Or some dependency cycle that'd be handled correctly if the rest of the patches were picked up. Yeah, a pretty broad/vague answer. -Saravana