Re: Duplicated device tree and Dynamic symbols

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Tue, Apr 28, 2015 at 9:16 AM, Ricardo Ribalda Delgado
<ricardo.ribalda@xxxxxxxxx> wrote:
>
> Hello
>
> I have an X86 platform with device tree support. It has multiple pci
> slots with a custom board that is described with a device tree.
>
> When the pci device is probed, the driver fetches a device tree from
> the firmware infrastructure, patches the range property based on the
> bar address and adds the device to the main device tree.
>
> This works perfectly fine with only one card, but when the second card
> is connected: Here be dragons :)
>
> The main issue is that of_find_node_by_phandle always resolves to the
> first connected card. I fixed this by creating a new function.
> of_find_node_by_phandle_family() that chooses the closest phandle on
> the tree, not just the first one.
>
> By reading the "Dynamic Symbols support and fixup support"
> here:
> http://events.linuxfoundation.org/sites/events/files/slides/dynamic-dt-elce14.pdf
> and here
> https://lwn.net/Articles/616859/
>
> It seemed that the patch would fix my issue and it would be already
> merged, but I cannot find the patch here
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git
> or here
> https://git.kernel.org/cgit/linux/kernel/git/jdl/dtc.git
>
> So I am wondering some stuff:
>
> Would a patch adding my of_find_node_by_phandle_family() would be accepted.?

No, phandles must be unique. That's what phandles are; unique identifiers. :-)

g.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux