lkml.org 
[lkml]   [2005]   [Jun]   [18]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSat, 18 Jun 2005 10:39:34 -0400
FromJamey Hicks <>
Subjectrecursive call to platform_device_register deadlocks
We wrote soc_device to handle ASICs that were structured as a number of 
subcomponents, some of which are reused from ASIC to ASIC.  This enables 
the drivers for the subcomponents to be in separate files, loaded as 
modules, and enhances code reuse.  We submitted soc_device, but it was 
pointed out that platform_device probably does what we want.

We've started working on replacing uses of soc_device in handhelds 
drivers by platform_device.   One of the things we ran into is that the 
platform_device driver for an ASIC was calling soc_device_register 
inside its probe function.  If this is converted to 
platform_device_register, then the process deadlocks because 
bus_add_device locks platform_bus_type.

We could restructure the toplevel driver so that it does not call 
platform_device inside its probe function.  An alternative would be to 
add a pointer to a vector of subdevices to platform_device and have it 
register the subdevices after it has probed the toplevel device.  Do you 
have any recommendations?

Thanks,
Jamey Hicks

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

\
 
 \ /
  Last update: 2005-06-18 16:42    [from the cache]
©2003-2008