Re: Associating nodes with phandles for pci devices

Arnd Bergmann
2015-03-08T22:42:50Z

On Sunday 08 March 2015 22:01:17 Chris Packham wrote:
>
> >
> > BTW, one thing that is high in my TODO list regarding DSA is to stop
> > using this platform device/driver architecture and use the actual device
> > driver model. Your switch driver entry point would be a pci_drive
> > probe's function where you end-up registering a switch the DSA. This
> > should solve portions of your problem although this is a long shot as we
> > need to convert existing drivers as well.
> >
>
> My current problem is that of_find_device_by_node() (called by
> dsa_of_probe) can't find the device. After a bit of debugging I can see
> that the populated platform bus only goes as far as
> /soc/pcie-controller, anything beyond that seems to be missing. I can't
> see anything obvious in of_platform_bus_create() that would actually
> stop it from continuing down the pcie-controller branch provided the dts
> actually enumerates the children.
>
> Any suggestions?

The PCI devices are not populated by of_platform_bus_create. Instead,
pci_scan_device() calls pci_set_of_node() to set the of_node
pointer for each PCI device.

This would fail for instance if the root bus does not have a correct
of_node pointer.

Arnd