Hi Phil, On 2016-07-21 05:20, Phil Reid wrote: > G'day Peter, > > I'm looking into modifying the i2c-mux-pca954x driver to add support for > the pca_9543 interrupt mux function. > > So the first thing I need to add is a reg read function. > However based on the changes to the i2c mux code in the 4.6 series the > locking work around shouldn't be needed now if the mux is allocated with > I2C_MUX_LOCKED. Currently this driver is not doing this. > Also the same with the similar i2c-mux-pca9541 driver which does implement read. > > So my question is should I change the driver to use I2C_MUX_LOCKED > or implement the read operation the same as the i2c-mux-pca9541? Good question. I didn't dare changing the pca9541/pca954x drivers to be mux locked. Maybe I am too conservative? The issue is that if you have a multi-level hierarchy of muxes, the rules are more relaxed for mux locked muxed compared to adapter locked muxes. I.e. mux3 / mux1 / \ root mux4 \ mux2 accesses to devices on e.g. mux3 and mux2 may interleave if all muxes are mux-locked, that will never happen for adapter-locked muxes. Building complex hierarchies feels more likely with pca954x that with the other muxing options. But I don't know that, and maybe none exist at all? Anyway, the safe option is to do it like in pca9541... Cheers, Peter -- 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