Thread (9 messages) 9 messages, 6 authors, 2009-08-22

[PATCH] Convert MMC subsys drivers to dev_pm_ops

flat view

From: Nicolas Pitre <hidden>
Date: 2009-08-22 03:23:06
Also in: lkml

On Sat, 22 Aug 2009, Marek Vasut wrote:
Dne So 22. srpna 2009 04:44:00 Nicolas Pitre napsal(a):
quoted
On Sat, 22 Aug 2009, Marek Vasut wrote:
quoted
Hi,

This converts most of the drivers found in drivers/mmc/host to
dev_pm_ops. Also, it contains some fixes for the probe/remove functions
in some cases.
Are you sure you're actually fixing things?

You replaced platform_driver_probe() calls with
platform_driver_register() calls, and made the probe functions __devinit
instead of __init.  Especially when the platform device is unlikely to
go away or new ones to ever appear, there is no point keeping the
probe code around after it is done.
Yeah, the __devinit should actually remove the init function when done ... to 
my understanding. Sorry in case I'm wrong.
No it cannot, because there is normally no way if it is really done as 
new device, like on a USB bus, may appear later and bind to the same 
driver.  So __devinit will actually discard the code only if hotplug is 
disabled in the kernel config (see include/linux/init.h and 
include/asm-generic/vmlinux.lds.h).

Quoting drivers/base/platform.c:

 * platform_driver_probe - register driver for non-hotpluggable device
 * @drv: platform driver structure
 * @probe: the driver probe routine, probably from an __init section
 *
 * Use this instead of platform_driver_register() when you know the device
 * is not hotpluggable and has already been registered, and you want to
 * remove its run-once probe() infrastructure from memory after the driver
 * has bound to the device.
 *
 * One typical use for this would be with drivers for controllers integrated
 * into system-on-chip processors, where the controller devices have been
 * configured as part of board setup.


Nicolas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help