Re: [PATCH RFC] of: platform: Drop OF_POPULATED_BUS check from of_platform_notify()

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

 




Hello, 

On 08/09/16 16:17, Rob Herring wrote:
>> The comment to OF_POPULATED_BUS says "of_platform_populate recursed to children
>> > of this node". Consider the following structure:
>> >
>> >         ocp {
>> >                 compatible = "simple-bus";
>> >                 ranges;
>> >                 ...
>> >                 l4_wkup: l4_wkup@44c00000 {
>> >                         compatible = "ti,am3-l4-wkup", "simple-bus";
>> >                         ranges = <0 0x44c00000 0x280000>;
>> >                         ...
>> >                         wkup_m3: wkup_m3@100000 {
>> >                                 compatible = "ti,am3352-wkup-m3";
>> >                                 ...
>> >                         }
>> >                 }
>> >         }
>> >
>> > If one DT overlay adds "ocp" node without children then of_platform_notify()
>> > creates a platform device, but doesn't set OF_POPULATED_BUS. If second overlay
>> > tries to populate children of "ocp" node, corresponding platform devices are
>> > not instantiated because of check for OF_POPULATED_BUS flag. If the above
>> > example structure is built of several overlays, of_platform_populate() is not
>> > involved here at all, so maybe OF_POPULATED_BUS requirement is wrong.
> Your example seems a bit made up. While you can craft base DTs and
> overlays with any random split between them, I don't necessarily think
> we want to support that. There will likely be cases which we say can
> only be applied early in boot or we limit which nodes can be overlay
> targets for overlays applied from userspace.

Yes, I had to construct an example out of the well-known Beaglebone DT pieces,
the real use case will only confuse the public.

In general I don't understand why my example is so bizarre, it basically shows, you
cannot apply an overlay above overlay: the devices will not be registered and actually
because of the bogus check. Imagine the well known Beagle: you can construct a bone with
whatever SPI/I2C bus controller. On top of it you can sandwich a board with I2C-driven
GPIO extenders. Is it absolute unrealistic? 

There is full support of multilevel overlays. And just one bug preventing it from working
properly. Do we really want it?

-- 
Best regards,
Alexander Sverdlin.
--
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