[PATCH v3 1/4] i2c: mux-pinctrl: Rework to honor disabled child nodes
wsa at the-dreams.de
Thu Mar 19 09:02:08 PDT 2015
> >- /* Only register child devices if the adapter has a node pointer set */
> >- if (!adap->dev.of_node)
> >+ /* Only register childs if adapter has a node pointer with enabled status */
> >+ if (!adap->dev.of_node || !of_device_is_available(adap->dev.of_node))
> > return;
> That feels a bit odd to me. For a regular non-mux I2C controller, that extra
> case would never trigger if the controller node was disabled, since the
> device core would never probe the controller device itself. So, we'd end up
> with inconsistent paths through the I2C core for regular controllers and
I first thought the no-op for the non-mux case wouldn't hurt, but I
agree about the consistent code path. I mentioned in my previous mail
that i2c-mux might be a better place for this...
> Perhaps better would be to have a mux-specific function to iterate over a
> mux's child nodes and instantiate buses for those. That function would check
> whether each bus node was disabled or not. That'd isolate the special case
> into the place where it was relevant.
... so I wonder what you think about putting the
of_device_is_available() check into i2c_add_mux_adapter() once the
reg-property and chan_id have been matched?
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: Digital signature
More information about the linux-arm-kernel