Re: i2c-i801 driver quit working in 3.8.11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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- <TAbort- <MAbort- >SERR- <PERR- INTx-
         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

--
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




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux