On 19/12/2019 20:05, Pierre-Louis Bossart wrote:
Note these are the child devices of the MFD SLIMBus device.
Ah ok. I guess the creation of those child devices when the parent
SLIMbus device reports PRESENT initially if fine, it's the part where
you remove them if the device loses sync or gets powered off which is
odd. And I guess technically you could still have race conditions where
a child device starts a transaction just as the parent is no longer
attached to the bus.
Losing power to SLIMBus device is very odd usecase and if it happens
suggests that threre are bigger issues on the board design itself. This
case should never happen. Even if it happens we would get timeout errors
on every SLIMbus transactions.
I would however not remove the devices when the status is down but
only on an explicit .remove.
Am open for suggestions but I would not like the child devices to talk
on the bus once the SLIMbus device is down! Only way to ensure or make
it silent is to remove.
it's as if you are missing a mechanism to forward the parent status to
the children so use remove() for lack of a better solution?
That is true. This gives bit more control on the slave device lifecycle.
Current solution works fine for now with less complexities across
multiple drivers. I also agree that there is scope of improvement in
future for this.
Thanks,
srini