Should we pass amba device peripheral id with device structure or not?

Russell King - ARM Linux linux at arm.linux.org.uk
Fri May 21 15:38:02 EDT 2010


On Fri, May 14, 2010 at 12:32:18PM +0530, Viresh KUMAR wrote:
> amba_device_register function reads and updates peripheral id from
> hardware registers, whenever we register any amba device. If clock
> to device is disabled, then amba_device_register will not be able
> to read and update this value.

This is a potential problem - if the drivers are already initialized
in the kernel, then the drivers will try to initialize as soon as
amba_device_register() is called.  If the registers aren't accessible
at amba_device_register() time, the driver initialization could fail.

I think it's better to understand what's going on here before making
suggestions.

The clks in the primecell drivers are for the external side clocks
only; these drivers all make the assumption that the AMBA bus clock
is always enabled.  Does your SoC turn the AMBA bus clock to peripherals
on and off?

If so, we need to expand drivers/amba/bus.c to deal with this.



More information about the linux-arm-kernel mailing list