[sodaville] [PATCH 1/9] spi/pxa2xx: don't use subys initcall for driver init
Russell King - ARM Linux
linux at arm.linux.org.uk
Fri Nov 26 06:06:05 EST 2010
On Fri, Nov 26, 2010 at 11:50:28AM +0100, Sebastian Andrzej Siewior wrote:
> * Russell King - ARM Linux | 2010-11-25 23:54:15 [+0000]:
>
> >Why should the PXA code change when you haven't explained _why_ you want
> >to change the SPI driver to conform to your idea?
>
> The problem was, that the platform driver never got probed after I
> registered the PCI driver. For that reason I made the patch attached. It
> got lost while moving the tree forward and I did not notice it earlier.
> While at it, I changed the subsys_init to module_init because it looked
> wrong. At this time I was also thinking about using one module for the
> platform and PCI code but never got to it.
This is one of the problems of the foo_driver_probe() idea - if the
device is not present at the time the driver is registered, then the
driver loses out completely.
This would seem to be exagerated as you're creating this platform device
from a PCI device - who's to say that someone won't unbind the PCI device
and re-bind it later, causing the platform device to be deleted and
re-created?
As such, I think the patch you've shown in this email is more appropriate
(getting rid of the platform_driver_probe()) than trying to sort out
init-level dependencies. Really, the init-level dependencies in this case
are not the problem - the use of platform_driver_probe() is.
More information about the linux-arm-kernel
mailing list