1. 29 6月, 2011 1 次提交
    • P
      i2c/pca954x: Initialize the mux to disconnected state · cd823db8
      Petri Gynther 提交于
      pca954x power-on default is channel 0 connected. If multiple pca954x
      muxes are connected to the same physical I2C bus, the parent bus will
      see channel 0 devices behind both muxes by default. This is bad.
      
      Scenario:
                  -- pca954x @ 0x70 -- ch 0 (I2C-bus-101) -- EEPROM @ 0x50
                  |
      I2C-bus-1 ---
                  |
                  -- pca954x @ 0x71 -- ch 0 (I2C-bus-111) -- EEPROM @ 0x50
      
      1. Load I2C bus driver: creates I2C-bus-1
      2. Load pca954x driver: creates virtual I2C-bus-101 and I2C-bus-111
      3. Load eeprom driver
      4. Try to read EEPROM @ 0x50 on I2C-bus-101. The transaction will also bleed
         onto I2C-bus-111 because pca954x @ 0x71 channel 0 is connected by default.
      
      Fix: Initialize pca954x to disconnected state in pca954x_probe()
      Signed-off-by: NPetri Gynther <pgynther@google.com>
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: stable@kernel.org
      cd823db8
  2. 25 10月, 2010 1 次提交
  3. 12 8月, 2010 1 次提交