[RFC] device probe order

Peter Mamonov pmamonov at gmail.com
Thu Dec 24 01:48:37 PST 2015


On Wed, 23 Dec 2015 18:04:43 +0100
Alexander Aring <alex.aring at gmail.com> wrote:

> On Wed, Dec 23, 2015 at 07:56:44PM +0300, Peter Mamonov wrote:
> > On Wed, 23 Dec 2015 17:35:51 +0100
> > Alexander Aring <alex.aring at gmail.com> wrote:
> > 
> > > On Wed, Dec 23, 2015 at 07:10:58PM +0300, Peter Mamonov wrote:
> > > > Dear All,
> > > > 
> > > > I've ported an UHCI driver from the u-boot to the barebox
> > > > (WIP). To interoperate with the EHCI driver, the UHCI driver
> > > > should be probed ater the EHCI driver. Both drivers are binded
> > > > via the device tree mechanism. How can i achieve the correct
> > > > probe order?
> > > > 
> > > 
> > > Normally this should done by returning "-EPROBE_DEFER" inside the
> > > probe function. There was some RFC last years for supporting
> > > EPROBE_DEFER [0] and it seems these are mainline.
> > > 
> > > However you need some bool which indicates that the EHCI driver is
> > > probed.
> > 
> > Thanks, Alex. As i understand, this is the linux-way solution.
> > 
> > Sasha, is it ok to add a global variable to indicate the EHCI
> > presence? Or should we follow the way proposed by the mentioned
> > RFCs, i.e. introduce dependencies between drivers?
> > 
> 
> mhhh, maybe a simple "get_device_by_name" works here.
> 
> If returning NULL then return -EPROBE_DEFER. Don't know if this is a
> good solution, name need to be unique then.
> 
> 
> btw:
> Just found that "of_find_device_by_node" returns -EPROBE_DEFER when
> nothing was found. This was introduced by the patch series.

I like this approach better, than introducing a global variable.
Will look further into it.

> 
> Maybe it helps to look how the current use-cases deals with
> -EPROBE_DEFER or get_device_by_name is enough.
> 
> - Alex
> 




More information about the barebox mailing list