Messages in this thread Patch in this message | | | From | Saravana Kannan <> | Date | Mon, 18 Jul 2022 18:55:23 -0700 | Subject | Re: [PATCH v4] amba: Remove deferred device addition |
| |
On Wed, Jul 13, 2022 at 7:58 AM Sudeep Holla <sudeep.holla@arm.com> 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
| |