• Jean Delvare's avatar
    i2c: i801: Fix I2C Block Read on 8-Series/C220 and later · ba9ad2af
    Jean Delvare authored
    Starting with the 8-Series/C220 PCH (Lynx Point), the SMBus
    controller includes a SPD EEPROM protection mechanism. Once the SPD
    Write Disable bit is set, only reads are allowed to slave addresses
    0x50-0x57.
    
    However the legacy implementation of I2C Block Read since the ICH5
    looks like a write, and is therefore blocked by the SPD protection
    mechanism. This causes the eeprom and at24 drivers to fail.
    
    So assume that I2C Block Read is implemented as an actual read on
    these chipsets. I tested it on my Q87 chipset and it seems to work
    just fine.
    Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
    Tested-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
    [wsa: rebased to v4.9-rc2]
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    ba9ad2af
i2c-i801.c 49.9 KB