Re: Consider moving the init of pl330 to earlier?

From: Ray Jui
Date: Thu Oct 16 2014 - 12:00:41 EST




On 10/15/2014 11:59 PM, Vinod Koul wrote:
On Thu, Oct 09, 2014 at 02:35:11PM -0700, Ray Jui wrote:
Hi,

How do you guys like the idea of moving the driver initialization of
the pl330 DMA driver to earlier? For example, to arch_initcall_sync
or subsys_initcall? Currently the pl330 driver is registered through
module_amba_driver call, which translates to device_initcall in the
end. This is a bit late considering in many systems, DMA controller
is one of the core components that may have many slave devices
depending on. Most slave drivers are typically done at
device_initcall. When done at the same level, DMA may not be ready
while the slave devices are being initialized. In addition, under
the drivers/dma directory, we currently have various other DMA
drivers also done at subsys_initcall.

One issue that I'm seeing with the Broadcom Cygnus SoC is that, when
we try to use DMA with SPI (PL022), the request for DMA channel
would fail because the spi-pl022 driver we use is initialized at
subsys_initcall. At the time the PL330 driver is not yet
initialized. The reason why spi-pl022 is done at subsys_initcall is
that some regulators communicate through the SPI bus so people
decided to move it to earlier (commit 25c8e03b by Linus Walleij),
which seems to be a valid reason to me.
As a subsytem we encourage folks to use early init calls and then have
clients use late_init so that dependency is solved.

So feel free to send the patch

Will do. Thanks!

Ray
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/