Subject: Re: issues calling of_platform_bus_probe() twice

From: Grant Likely <[email-masked]>
Date: Sun, 18 Mar 2012 09:08:04 +0000

On Sat, 17 Mar 2012 13:35:02 +0000, Tabi Timur-B04825 <[email-masked]> wrote:
> Grant Likely wrote:
> >>> >  >  Are you aware of any reason that we can't call of_platform_bus_probe()
> >>> >  >  or multiple times.  Timur's run into an issue in which all devices
> >>> >  >  don't get registered properly if we call of_platform_bus_probe() times
> >>> >  >  with different of_device_id struct's.
> >> >
> >> >  Nothing comes to mind... Grant ?
> > Neither for me.  Should work.
> 
> I posted a work-around patch here:
> 
> http://patchwork.ozlabs.org/patch/128533/
> 
> Without this patch, drivers cannot probe on DMA *channels*, or any other 
> grandchildren of the root node.

That's because you're using it wrong.  of_platform_bus_probe() creates
platform devices at the starting level and every level below it as
described by the bus ids.  It is illegal to call of_platform_bus_probe()
twice at the same level in the DT.

g.