Re: [PATCH v3 1/4] i2c: mux-pinctrl: Rework to honor disabled child nodes

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

 



On 03/19/2015 10:02 AM, Wolfram Sang wrote:
-	/* 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
muxes.

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?

I think that looks like a good place, yes.
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux