Messages in this thread | | | Subject | Re: [PATCH v4 2/8] OF: Introduce DT overlay support. | From | Pantelis Antoniou <> | Date | Thu, 15 May 2014 00:14:37 -0700 |
| |
Hi Michael,
On May 14, 2014, at 5:11 AM, Michael Stickel wrote:
> Hi Grant, > > Am 14.05.2014 12:08, schrieb Grant Likely: >> More generally I am concerned about whether or not overlays >> will introduce corner cases that can never be handled correctly, >> particularly in how multiple overlays will get handled. I want to see >> very clear rules on what happens when multiple overlays are applied, and >> then removed again. Is it possible to remove overlays out of order? If >> so, what are the conditions that would not be allowed? > > Yes, it is possible that an overlay depends on another. > > The problem is not, that an overlay is removed other overlays depend on, > but that nodes of an overlay may depend on the to-be-removed overlay and > the resulting devicetree can become inconsistent. > > > I have an SPI Bus with two slaves. The second slave is used only on one > of our boards. That is why we split the overlays the following way: > > xxxx_spi1.dts: > Pinmux for SPI-Bus and activation of spi-controller. > Pinmux for CS0 and definition of first slave. > > xxxx_spi1_cs1: > Pinmux for CS1 and definition of second slave. > > When the overlay for the bus is removed, the overlays for the second > slave does not make any sense anymore. > > It is even worse in a scenario we have with a test board. > One of the slaves is an spi-io-controller with a few bitbanging i2c > masters. In an extreme case, each component is defined in a separate > overlay and only the overlay with the master is removed. I know, that > this is completely sick. The devices are removed cleanly because of the > device dependency. >
Well, shouldn't you be reverting the overlays in reverse sequence?
As I see it, when proper subtree tracking is implemented this use case (of removing #0 before #1) will not be allowed.
What is your ideal scenario for this use case?
> Michael >
Regards
-- Pantelis
| |