From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Subject: Re: i2c-i801 driver quit working in 3.8.11 Date: Thu, 07 Aug 2014 07:19:05 -0700 Message-ID: <53E38AD9.5030708@roeck-us.net> References: <20130806192228.GB8246@roeck-us.net> <52026530.2080301@roeck-us.net> <20130807174801.GB1862@roeck-us.net> <20130807192556.GA31395@roeck-us.net> <20140807101147.34087264@endymion.delvare> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20140807101147.34087264-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> Sender: linux-i2c-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Jean Delvare Cc: Soren Harward , Wolfram Sang , linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-i2c@vger.kernel.org On 08/07/2014 01:11 AM, Jean Delvare wrote: > Hi Guenter, Soren, > > Sorry for the late reply. Yes, one year, no kidding :( > > On Wed, 7 Aug 2013 12:25:56 -0700, Guenter Roeck wrote: >> On Wed, Aug 07, 2013 at 02:19:42PM -0400, Soren Harward wrote: >>> Yeah, that fixed it. Sensors are working properly now. >>> >>> My computer is a Lenovo D10, which uses the Intel 5400 chipset. >>> Here's the lspci dump for the SMBus controller: >>> >>> root@jens:~# lspci -vv -s 0000:00:1f.3 >>> 00:1f.3 SMBus: Intel Corporation 631xESB/632xESB/3100 Chipset SMBus >>> Controller (rev 09) >>> Subsystem: Lenovo Device 101d >>> Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- >>> ParErr- Stepping- SERR- FastB2B- DisINTx- >>> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >>>> TAbort- SERR- >> Interrupt: pin B routed to IRQ 23 >>> Region 4: I/O ports at 1100 [size=32] >>> Kernel driver in use: i801_smbus >>> >>> So what else can I do to help debug this? >> >> I copied the i2c mailing list and the i2c maintainer, and also changed the >> subject to reflect the real problem. I don't really know what else you cMSIan do. >> Maybe Jean has an idea, or someone else on the list. > > The interrupt code in i2c-i801 has worked for a majority of users and > brought up major performance improvements. So I'm not going to revert > it. However I really would like to understand the few failure reports > we had, and hopefully fix them. > > Soren, what's the status on your side? Are you still running a kernel > with commit 6676a847 reverted? Note that you can also disable interrupt > support in i2c-i801 manually by passing option disable_features=0x10 to > the driver. > > Also I had one report of a problem with the same chipset you are using, > and the reporter claims that kernel v3.16 no longer has the problem. We > don't know why yet, but it might be worth a try. > >> One possibility is that the driver doesn't enable/use MSI interrupts. >> Maybe that is causing trouble with your chipset. Another option might be >> that there are subtle differences with this chipset, and the interrupt code >> simply does not work with it. > > Guenter, I can confirm that the i2c-i801 driver only uses regular > interrupts. The datasheet does not mention anything about MSI. What > makes you think the problem could be related to the lack of MSI support? > Working for a company that does lots of weird and non-standard stuff with PCIe creates a state of constant paranoia ;-). For example, INTB / irq23 may be used by some other chip and may not be handled properly, masking the interrupt. Really, I don't know. I have had instances at work where INTx didn't work and I _had_ to use MSI, that is all I can say. Cheers, Guenter