This is an attempt to upstream the patches created by Thomas Brandon and Eddi De Pieri to support the multiplexed main SMBus interface on the SB800 chipset. (https://www.mail-archive.com/linux-i2c@xxxxxxxxxxxxxxx/msg06757.html) I have mainly rebased the latest patch version and tested the driver on a HP ProLiant MicroServer G7 N54L (where this patch allows to access sensor data from a w83795adg). The patched driver is running stable on the machine, given that ic2_piix4 is loaded before jc42 and w83795. If jc42 is loaded before i2c_piix4 calling sensors triggers some errors: ERROR: Can't get value of subfeature temp1_min_alarm: Can't read While the kernel log shows: i2c i2c-1: Transaction (pre): CNT=0c, CMD=05, ADD=31, DAT0=03, DAT1=c0 i2c i2c-1: Error: no response! i2c i2c-1: Transaction (post): CNT=0c, CMD=05, ADD=31, DAT0=ff, DAT1=ff Unfortunately I don't know how to tackle this specific issue. Please review and let me know required changes in order to get this upstream finally. Eddi, Thomas, it would be great if you could verify the changes on your machines. Regards, Christian v5: - Incorporated changes requested by Andy - Defines for magic numbers v4: - Incorporated changes requested by Andy - added mutex to struct i2c_piix4_adapdata - added flag for releasing SMBus index region to struct i2c_piix4_adapdata - this flag now indicates that the adapter is a sb800 main adapter - together with the port number it simplifies the adapter releasing and the first patch in v3 is no more needed - unfortunately patch 3 and 4 in v3 had to be combined as only the patch introducing multiplexing adds a separate add_adapters_sb800 method that can be used to set the flag. - fixed releasing the SMBus index region in case setting up the adapter fails v3: - Incorporated changes requested by Mika and Andy - main adapter name set to 'main' - defined constant idx address - block comment style, joined string literals, reworked for loops into while loops v2: - Incorporated changes requested by Mika - remove adapter in reverse order - ERROR label - request base address index region only once Christian Fetzer (3): i2c-piix4: Convert piix4_main_adapter to array i2c-piix4: Add support for multiplexed main adapter in SB800 i2c-piix4: Add adapter port name support for SB800 chipset drivers/i2c/busses/i2c-piix4.c | 198 +++++++++++++++++++++++++++++++++++------ 1 file changed, 169 insertions(+), 29 deletions(-) -- 1.9.1 -- 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