Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Eddi, Thomas, On Wed, 14 Mar 2012 09:28:54 +0100, Eddi De Pieri wrote: Hi Thomas, With the updated patch and the modified sensors-detect I have been able to probe all ports and have not encountered the power issue again. If no further issues are identified I will seperate the patch into stages and submit for review. I confirm that your patch works well on my proliant n36l and solve the power issue. Thank you for rewrote my patch. Recent mainline changes to the i2c-piix4 driver make the patch no longer apply, so I can't push it upstream. Can either of you please rebase the patch on top of Linus' latest kernel and resubmit? Thanks, -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Hi Eddi, On Wed, 13 Jun 2012 09:47:39 +0200, Jean Delvare wrote: On Wed, 13 Jun 2012 07:44:34 +0200, Eddi De Pieri wrote: It works for me too What about including this patch in the mainline? Yesterday I reviewed a patch set adding support for the auxiliary SMBus controller on the SB600/SB700: http://marc.info/?t=13388612451r=1w=2 http://marc.info/?t=13388612434r=1w=2 http://marc.info/?t=13388612433r=1w=2 It touches the exact same area as touched by your patch, so they will conflict. Best would be to rebase the SB800 multiport support patch on top of the other patch set. This is done now, you can download my current patch stack at: http://khali.linux-fr.org/devel/linux-3/jdelvare-i2c/ or http://khali.linux-fr.org/devel/linux-3/jdelvare-i2c.tar.gz Could you please rebase your patch on top of that and resubmit? Thanks. -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Hi Eddi, On Wed, 13 Jun 2012 07:44:34 +0200, Eddi De Pieri wrote: It works for me too What about including this patch in the mainline? Yesterday I reviewed a patch set adding support for the auxiliary SMBus controller on the SB600/SB700: http://marc.info/?t=13388612451r=1w=2 http://marc.info/?t=13388612434r=1w=2 http://marc.info/?t=13388612433r=1w=2 It touches the exact same area as touched by your patch, so they will conflict. Best would be to rebase the SB800 multiport support patch on top of the other patch set. Andrew, do you think you can update per my comments and resubmit your patch set quickly, so that we can then proceed with the SB800 multiport support before the next merge window? Thanks, -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Hi Thomas, With the updated patch and the modified sensors-detect I have been able to probe all ports and have not encountered the power issue again. If no further issues are identified I will seperate the patch into stages and submit for review. I confirm that your patch works well on my proliant n36l and solve the power issue. Thank you for rewrote my patch. Regards, Eddi -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Jean Delvare khali@... writes: You don't need a multiplexer device at all. Please just have i2c-piix4 driver register 4 i2c_adapter devices for the SB800. This would be a 3-step process: 1* Turn piix4_adapter to an array, so that it can hold up to 4 i2c_adapter structures. 2* Add a mutex to prevent concurrent access to the register set. It should be initialized in piix4_setup_sb800(), taken at the very beginning of piix4_access() and released at the very end of this function. 3* Add support for ports 1, 2 and 3 of the SB800. This would ideally be 3 incremental patches to make testing and review easy. I can help with parts 1 and 2 if you want, as this can be tested without a SB800. But it should be fairly easy overall. I have reworked the original patch to (hopefully) fit the structure you suggest. However I have encountered issues with it that I'm not sure how to solve. The behaviour is the same under both the original and the modified version of the patch. When running sensors-detect, SDA0 (i2c-0) and SDA2 (i2c-1) (SDA1 is reserved for ASF devices and accessed through a seperate controller) scan fine with the following (edited) output: Next adapter: SMBus piix4 adapter (SDA0) (i2c-0) Do you want to scan it? (YES/no/selectively): y Client found at address 0x18 Probing for `Microchip MCP98243'... Success! (confidence 5, driver `jc42') Client found at address 0x19 Probing for `Microchip MCP98243'... Success! (confidence 5, driver `jc42') Client found at address 0x50 Probing for `SPD EEPROM'... Yes (confidence 8, not a hardware monitoring chip) Client found at address 0x51 Probing for `SPD EEPROM'... Yes (confidence 8, not a hardware monitoring chip) Next adapter: SMBus piix4 adapter (SDA2) (i2c-1) Do you want to scan it? (YES/no/selectively): y Client found at address 0x2f Probing for `Nuvoton W83795G/ADG'...Success! (confidence 8, driver `w83795') However while scanning SDA3 (i2c-2) sensors-detect finds a client at address 0x4c but no probes are successful and you get kernel output like: i2c i2c-2: Transaction (pre): CNT=04, CMD=00, ADD=99, DAT0=ff, DAT1=01 i2c i2c-2: Transaction (post): CNT=04, CMD=00, ADD=99, DAT0=00, DAT1=01 i2c i2c-2: Transaction (pre): CNT=04, CMD=00, ADD=99, DAT0=00, DAT1=01 i2c i2c-2: Transaction (post): CNT=04, CMD=00, ADD=99, DAT0=00, DAT1=01 [SNIP] i2c i2c-2: Transaction (pre): CNT=08, CMD=ac, ADD=99, DAT0=00, DAT1=01 i2c i2c-2: Transaction (post): CNT=08, CMD=ac, ADD=99, DAT0=00, DAT1=01 i2c i2c-2: Transaction (pre): CNT=0c, CMD=aa, ADD=99, DAT0=00, DAT1=01 i2c i2c-2: Transaction (pre): CNT=0c, CMD=aa, ADD=99, DAT0=00, DAT1=01 i2c i2c-2: SMBus Timeout! i2c i2c-2: Bus collision! SMBus may be locked until next hard reset. (sorry!) i2c i2c-2: Failed reset at end of transaction (01) i2c i2c-2: Transaction (post): CNT=0c, CMD=aa, ADD=99, DAT0=00, DAT1=80 Then all subsequent access attempts before a hard reset result in output like: i2c i2c-2: Transaction (pre): CNT=08, CMD=03, ADD=99, DAT0=00, DAT1=80 i2c i2c-2: SMBus busy (01). Resetting... i2c i2c-2: Failed! (01) Additionally, shutdown/restart commands now fail, as does using the power button on the machine (it turns off but on powering back up the screen doesn't return). The power cord must be removed before the server will restart. This is as reported by the original submitter and another tester when the thread was posted on the lm_sensors list (http://lists.lm-sensors.org/pipermail/lm-sensors/2011-November/034259.html). After restarting sensors now work as reported by others. I'm not quite sure how best to proceed. Any tips on debugging/fixing this are welcome. Thomas Brandon -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
On Tue, Dec 6, 2011 at 9:39 AM, Jean Delvare kh...@linux-fr.org wrote: The SMBus multiplexing as it exists on the SB800 is very different from what was implemented for the Tyan S4882 and S4985 boards. Well... - the Tyan use PCA9556 to select the multiplexed bus... - SB800 (and SB700) seems to select lines writing the port number using a particolar protocol. In fact, now that I have a SB800 datasheet, I better understand what you were doing and how it should be implemented. I don't even think you need the multiplexer framework for the SB800. Are you sure? SB7/8xx has two i2c bus smbus(0) should be accessible to the user smbus(1) should be reserved to the chipset it has 4 almost independent SMBus ports. smbus(0) may be connected to different physical port but each port may be routed by the OEM to different function... so these port aren't really independent. how to probe this? perhaps by reading DMI? 1* Turn piix4_adapter to an array, so that it can hold up to 4 i2c_adapter structures. 2* Add a mutex to prevent concurrent access to the register set. It should be initialized in piix4_setup_sb800(), taken at the very beginning of piix4_access() and released at the very end of this function. 3* Add support for ports 1, 2 and 3 of the SB800. I tried to apply your suggestion... but... I don't really have the knowledges to do what you wrote... I need your help :( Regards Eddi -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Hi Eddi, Please don't top-post, and only include as much context as necessary in your replies. On Mon, 5 Dec 2011 23:57:10 +0100, Eddi De Pieri wrote: I tried in rewriting the driver... but I can't understand the right way... since sb800 is a southbus, the mux driver must be defined as i2c_device, platform_device, or pci_device? Your question doesn't make sense. A driver can't be defined as a device. But anyway I think I understand where your confusion comes from. The SMBus multiplexing as it exists on the SB800 is very different from what was implemented for the Tyan S4882 and S4985 boards. In fact, now that I have a SB800 datasheet, I better understand what you were doing and how it should be implemented. I don't even think you need the multiplexer framework for the SB800. My understanding is that it has 4 almost independent SMBus ports. The only thing that is shared between them is the register set. Contrary to the S4882 and S4985 board multiplexing, it is totally board-independent. So support should go to the i2c-piix4 driver directly. BTW please avoid comments in Italian in your code. Not everyone reads Italian. Use English. I tried using i2c_device structure, but I can't make sb800 to match the id_Table.. I tried usign pci_device structure, but the driver overwrite the pci space so kernel hangs... You don't need a multiplexer device at all. Please just have i2c-piix4 driver register 4 i2c_adapter devices for the SB800. This would be a 3-step process: 1* Turn piix4_adapter to an array, so that it can hold up to 4 i2c_adapter structures. 2* Add a mutex to prevent concurrent access to the register set. It should be initialized in piix4_setup_sb800(), taken at the very beginning of piix4_access() and released at the very end of this function. 3* Add support for ports 1, 2 and 3 of the SB800. This would ideally be 3 incremental patches to make testing and review easy. I can help with parts 1 and 2 if you want, as this can be tested without a SB800. But it should be fairly easy overall. -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Hello, I tried in rewriting the driver... but I can't understand the right way... since sb800 is a southbus, the mux driver must be defined as i2c_device, platform_device, or pci_device? I tried using i2c_device structure, but I can't make sb800 to match the id_Table.. I tried usign pci_device structure, but the driver overwrite the pci space so kernel hangs... Regards, Eddi. On Sat, Dec 3, 2011 at 6:08 PM, Jean Delvare kh...@linux-fr.org wrote: Hi Eddi, On Sat, 3 Dec 2011 17:42:16 +0100, Eddi De Pieri wrote: Actually I don't have a development system with latest git. I build my patch on my debian with 2.6.32 kernel.. The patch is based on i2c-amd756-s4882.c and adapted to work with sb8xx... i2c-amd756-s4882.c is still present and don't use i2c-mux infrastructure. That's because i2c-amd756-s4882.c was written before the i2c-mux infrastructure was available. Ideally SMBus multiplexing support on the Tyan S4882 would be converted to i2c-mux (i.e. i2c-amd756-s4882.c would be deleted and the multiplexer would be instantiated in i2c-amd756.c itself, based on DMI data.) This shouldn't be particularly difficult, the real difficulty is to find someone with one of these boards to test the changes. However if you are interested in porting my work to latest git, you will be welcome! That's not how it works, sorry. Submissions must be based on a recent kernel in order to be accepted upstream. If you want SMBus multiplexing support on your system, it will have to be based on i2c-mux, because that's how things work now. Otherwise I will not accept your code. -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
This patch add support to multiplexed smbus for proliant microserver N36L and may be applicable to other configuration based on sb8xx southbus. root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -l i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter root@proliant:/usr/src/lm-sensors/eddi# yes SDA1 is reserved... so i can't multiplex it root@proliant:/usr/src/lm-sensors/eddi# sensors k10temp-pci-00c3 Adapter: PCI adapter temp1: +24.5°C (high = +70.0°C, crit = +100.0°C) w83795adg-i2c-1-2f Adapter: SMBus piix4 adapter (SDA2) in0: +1.02 V (min = +0.00 V, max = +2.05 V) in1: +1.52 V (min = +0.00 V, max = +2.05 V) in2: +1.10 V (min = +0.00 V, max = +2.05 V) in3: +0.89 V (min = +0.00 V, max = +2.05 V) in12:+3.35 V (min = +0.00 V, max = +6.14 V) in13:+3.28 V (min = +0.00 V, max = +6.14 V) fan1:703 RPM (min = 329 RPM) temp1: +23.0°C (high = +109.0°C, hyst = +109.0°C) (crit = +109.0°C, hyst = +109.0°C) sensor = thermal diode temp2: +33.2°C (high = +105.0°C, hyst = +105.0°C) (crit = +105.0°C, hyst = +105.0°C) sensor = thermal diode temp5: +14.0°C (high = +39.0°C, hyst = +39.0°C) (crit = +44.0°C, hyst = +44.0°C) sensor = thermistor beep_enable:disabled jc42-i2c-0-18 Adapter: SMBus piix4 adapter (SDA0) temp1: +20.5°C (low = +0.0°C, high = +0.0°C) ALARM (crit = +0.0°C, hyst = +0.0°C) ALARM root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- pay attention that the msleep seems to be really needed... Signed-off-by: Eddi De Pieri e...@depieri.net Regards, Eddi follows patch diff -u -N -r 2.6.32.orig/i2c-piix4.c 2.6.32/i2c-piix4.c --- 2.6.32.orig/i2c-piix4.c 2011-11-16 17:07:03.0 +0100 +++ 2.6.32/i2c-piix4.c 2011-11-16 15:21:17.0 +0100 @@ -97,7 +97,8 @@ static unsigned short piix4_smba; static int srvrworks_csb5_delay; static struct pci_driver piix4_driver; -static struct i2c_adapter piix4_adapter; +struct i2c_adapter piix4_adapter; +EXPORT_SYMBOL_GPL(piix4_adapter); static struct dmi_system_id __devinitdata piix4_dmi_blacklist[] = { { @@ -246,10 +247,22 @@ 0x%x already in use!\n, smba_idx); return -EBUSY; } - outb_p(smb_en, smba_idx); - smba_en_lo = inb_p(smba_idx + 1); - outb_p(smb_en + 1, smba_idx); - smba_en_hi = inb_p(smba_idx + 1); + outb_p(smb_en, smba_idx); //seleziono il registro 0x2c + smba_en_lo = inb_p(smba_idx + 1); //leggo il dato L del registro 0x2c + outb_p(smb_en + 1, smba_idx); //seleziono il registro 0x2c + 1 + smba_en_hi = inb_p(smba_idx + 1); //leggo il
Re: [lm-sensors] [PATCH] i2c multiplexer driver for Proliant microserver N36L
On Sat, Dec 03, 2011 at 10:31:30AM -0500, Eddi De Pieri wrote: This patch add support to multiplexed smbus for proliant microserver N36L and may be applicable to other configuration based on sb8xx southbus. Did you read Documentation/SubmittingPatches ? The patch doesn't follow the canonical patch format, I can see that lines are split, the patch isn't based on the linux root directory but on some other directory which I guess you expect the reader to figure out, the patch description includes lots of information which is irrelevant for the changelog, and it is based on 2.6.32 instead of the current release and thus pretty much guaranteed not to apply to the current kernel version. All that w/o even looking into the code. The patch implements an I2C multiplexer but doesn't use the I2C multiplexer infrastructure. I am not one of the I2C maintainers, but that alone would cause me to reject this patch (on top of all the other reasons above). Guenter root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -l i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter root@proliant:/usr/src/lm-sensors/eddi# yes SDA1 is reserved... so i can't multiplex it root@proliant:/usr/src/lm-sensors/eddi# sensors k10temp-pci-00c3 Adapter: PCI adapter temp1: +24.5°C (high = +70.0°C, crit = +100.0°C) w83795adg-i2c-1-2f Adapter: SMBus piix4 adapter (SDA2) in0: +1.02 V (min = +0.00 V, max = +2.05 V) in1: +1.52 V (min = +0.00 V, max = +2.05 V) in2: +1.10 V (min = +0.00 V, max = +2.05 V) in3: +0.89 V (min = +0.00 V, max = +2.05 V) in12:+3.35 V (min = +0.00 V, max = +6.14 V) in13:+3.28 V (min = +0.00 V, max = +6.14 V) fan1:703 RPM (min = 329 RPM) temp1: +23.0°C (high = +109.0°C, hyst = +109.0°C) (crit = +109.0°C, hyst = +109.0°C) sensor = thermal diode temp2: +33.2°C (high = +105.0°C, hyst = +105.0°C) (crit = +105.0°C, hyst = +105.0°C) sensor = thermal diode temp5: +14.0°C (high = +39.0°C, hyst = +39.0°C) (crit = +44.0°C, hyst = +44.0°C) sensor = thermistor beep_enable:disabled jc42-i2c-0-18 Adapter: SMBus piix4 adapter (SDA0) temp1: +20.5°C (low = +0.0°C, high = +0.0°C) ALARM (crit = +0.0°C, hyst = +0.0°C) ALARM root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- pay attention that the msleep seems to be really needed... Signed-off-by: Eddi De Pieri e...@depieri.net Regards, Eddi follows patch diff -u -N -r 2.6.32.orig/i2c-piix4.c 2.6.32/i2c-piix4.c --- 2.6.32.orig/i2c-piix4.c 2011-11-16 17:07:03.0 +0100 +++ 2.6.32/i2c-piix4.c
Re: [lm-sensors] [PATCH] i2c multiplexer driver for Proliant microserver N36L
Actually I don't have a development system with latest git. I build my patch on my debian with 2.6.32 kernel.. The patch is based on i2c-amd756-s4882.c and adapted to work with sb8xx... i2c-amd756-s4882.c is still present and don't use i2c-mux infrastructure. However if you are interested in porting my work to latest git, you will be welcome! Regards Eddi On Sat, Dec 3, 2011 at 5:27 PM, Guenter Roeck guenter.ro...@ericsson.com wrote: On Sat, Dec 03, 2011 at 10:31:30AM -0500, Eddi De Pieri wrote: This patch add support to multiplexed smbus for proliant microserver N36L and may be applicable to other configuration based on sb8xx southbus. Did you read Documentation/SubmittingPatches ? The patch doesn't follow the canonical patch format, I can see that lines are split, the patch isn't based on the linux root directory but on some other directory which I guess you expect the reader to figure out, the patch description includes lots of information which is irrelevant for the changelog, and it is based on 2.6.32 instead of the current release and thus pretty much guaranteed not to apply to the current kernel version. All that w/o even looking into the code. The patch implements an I2C multiplexer but doesn't use the I2C multiplexer infrastructure. I am not one of the I2C maintainers, but that alone would cause me to reject this patch (on top of all the other reasons above). Guenter root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -l i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter root@proliant:/usr/src/lm-sensors/eddi# yes SDA1 is reserved... so i can't multiplex it root@proliant:/usr/src/lm-sensors/eddi# sensors k10temp-pci-00c3 Adapter: PCI adapter temp1: +24.5°C (high = +70.0°C, crit = +100.0°C) w83795adg-i2c-1-2f Adapter: SMBus piix4 adapter (SDA2) in0: +1.02 V (min = +0.00 V, max = +2.05 V) in1: +1.52 V (min = +0.00 V, max = +2.05 V) in2: +1.10 V (min = +0.00 V, max = +2.05 V) in3: +0.89 V (min = +0.00 V, max = +2.05 V) in12: +3.35 V (min = +0.00 V, max = +6.14 V) in13: +3.28 V (min = +0.00 V, max = +6.14 V) fan1: 703 RPM (min = 329 RPM) temp1: +23.0°C (high = +109.0°C, hyst = +109.0°C) (crit = +109.0°C, hyst = +109.0°C) sensor = thermal diode temp2: +33.2°C (high = +105.0°C, hyst = +105.0°C) (crit = +105.0°C, hyst = +105.0°C) sensor = thermal diode temp5: +14.0°C (high = +39.0°C, hyst = +39.0°C) (crit = +44.0°C, hyst = +44.0°C) sensor = thermistor beep_enable:disabled jc42-i2c-0-18 Adapter: SMBus piix4 adapter (SDA0) temp1: +20.5°C (low = +0.0°C, high = +0.0°C) ALARM (crit = +0.0°C, hyst = +0.0°C) ALARM root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
Hi Eddi, On Sat, 3 Dec 2011 17:42:16 +0100, Eddi De Pieri wrote: Actually I don't have a development system with latest git. I build my patch on my debian with 2.6.32 kernel.. The patch is based on i2c-amd756-s4882.c and adapted to work with sb8xx... i2c-amd756-s4882.c is still present and don't use i2c-mux infrastructure. That's because i2c-amd756-s4882.c was written before the i2c-mux infrastructure was available. Ideally SMBus multiplexing support on the Tyan S4882 would be converted to i2c-mux (i.e. i2c-amd756-s4882.c would be deleted and the multiplexer would be instantiated in i2c-amd756.c itself, based on DMI data.) This shouldn't be particularly difficult, the real difficulty is to find someone with one of these boards to test the changes. However if you are interested in porting my work to latest git, you will be welcome! That's not how it works, sorry. Submissions must be based on a recent kernel in order to be accepted upstream. If you want SMBus multiplexing support on your system, it will have to be based on i2c-mux, because that's how things work now. Otherwise I will not accept your code. -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L
On Fri, Nov 25, 2011 at 11:07:21PM +0100, Eddi De Pieri wrote: This patch add support to multiplexed smbus for proliant microserver N36L and may be applicable to other configuration based on sb8xx southbus. root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -l i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter root@proliant:/usr/src/lm-sensors/eddi# patch should go inline so it can be reviewed, thanks. -- Ben Dooks, b...@fluff.org, http://www.fluff.org/ben/ Large Hadron Colada: A large Pina Colada that makes the universe disappear. -- To unsubscribe from this list: send the line unsubscribe linux-i2c in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] i2c multiplexer driver for Proliant microserver N36L
This patch add support to multiplexed smbus for proliant microserver N36L and may be applicable to other configuration based on sb8xx southbus. root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -l i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter root@proliant:/usr/src/lm-sensors/eddi# yes SDA1 is reserved... so i can't multiplex it root@proliant:/usr/src/lm-sensors/eddi# sensors k10temp-pci-00c3 Adapter: PCI adapter temp1: +24.5°C (high = +70.0°C, crit = +100.0°C) w83795adg-i2c-1-2f Adapter: SMBus piix4 adapter (SDA2) in0: +1.02 V (min = +0.00 V, max = +2.05 V) in1: +1.52 V (min = +0.00 V, max = +2.05 V) in2: +1.10 V (min = +0.00 V, max = +2.05 V) in3: +0.89 V (min = +0.00 V, max = +2.05 V) in12: +3.35 V (min = +0.00 V, max = +6.14 V) in13: +3.28 V (min = +0.00 V, max = +6.14 V) fan1: 703 RPM (min = 329 RPM) temp1: +23.0°C (high = +109.0°C, hyst = +109.0°C) (crit = +109.0°C, hyst = +109.0°C) sensor = thermal diode temp2: +33.2°C (high = +105.0°C, hyst = +105.0°C) (crit = +105.0°C, hyst = +105.0°C) sensor = thermal diode temp5: +14.0°C (high = +39.0°C, hyst = +39.0°C) (crit = +44.0°C, hyst = +44.0°C) sensor = thermistor beep_enable:disabled jc42-i2c-0-18 Adapter: SMBus piix4 adapter (SDA0) temp1: +20.5°C (low = +0.0°C, high = +0.0°C) ALARM (crit = +0.0°C, hyst = +0.0°C) ALARM root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- pay attention that the msleep seems to be really needed... Signed-off-by: Eddi De Pieri e...@depieri.net Regards, Eddi proliant-microserver-n36l.diff Description: Binary data