Re: [PATCH v4] amba: Remove deferred device addition
From: Saravana Kannan
Date: Mon Jul 18 2022 - 21:56:04 EST
On Wed, Jul 13, 2022 at 7:58 AM Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
>
> On Tue, Jul 12, 2022 at 12:38:33PM -0700, Saravana Kannan wrote:
> > Sudeep,
> >
> > This makes me think the issue you are seeing is related to your
> > hardware drivers. Can you look into those please? I'm leaning towards
> > merging this amba clean up and adding delays (say 1ms) to your
> > clock/power domain drivers to avoid the crash you are seeing. And then
> > you can figure out the actual delays needed and update it.
>
> I haven't got a chance to debug the issue on Juno much further. One thing
> about the platform is that we can't turn off the debug power domain that
> most of the coresight devices share.
>
> One thing I also observed with -next+this patch is that with a little log
> it can access the registers while adding first few devices and then crash
> which doesn't align with platform behaviour as we can't turn off the domain
> though we attached and turn on in amba_read_periphid and then turn off and
> detach the power domain. Ideally if first device amba_read_periphid was
> successful, it must be the case for all, but I see different behaviour.
>
> I need to check again to confirm if it is issue with platform power domain
> driver. It is based on SCMI so there is some role played by the f/w as well.
Yeah, this log timing based behavior is what makes me suspect it's not
a problem with this patch itself.
However, just to rule it out, can you try making this change on top of
v4 and give it a shot? This is related to the issue Marek reported,
but those are more about permanent probe failures. Not a crash.
+++ b/drivers/amba/bus.c
@@ -219,7 +219,7 @@ static int amba_match(struct device *dev, struct
device_driver *drv)
* none of the drivers match.
*/
if (ret)
- return ret == -EPROBE_DEFER ? ret : 0;
+ return -EPROBE_DEFER;
dev_set_uevent_suppress(dev, false);
kobject_uevent(&dev->kobj, KOBJ_ADD);
}
-Saravana