Re: [PATCH 0/2] i2c: i801: Force no IRQ for Dell Latitude E7450

From: Marius Hoch
Date: Sat Jun 03 2023 - 05:24:21 EST


Hi,

thank you for the reply!

On 23/05/2023 20:03, Jean Delvare wrote:
Hi Marius,

On Sun, 14 May 2023 12:36:32 +0200, Marius Hoch wrote:
The Dell Latitude E7450 uses IRQ 18 for the accelerometer,
but also claims that the SMBus uses IRQ 18. This will
result in:

i801_smbus 0000:00:1f.3: PCI INT C: failed to register GSI
i801_smbus 0000:00:1f.3: Failed to enable SMBus PCI device (-16)
i801_smbus: probe of 0000:00:1f.3 failed with error -16
The i2c-i801 driver supports shared IRQ. If this fails, this means that
the other driver is not passing IRQF_SHARED when registering the
interrupt. Which driver is this? I'd rather check whether sharing the
IRQ is possible, rather that falling back to polling, which has a
performance cost.
I don't think this is a conflict rather than a completely bogus entry: smo8800 uses IRQ 18 (the freefall sensor).

For the SMBus in acpi_pci_irq_enable, acpi_register_gsi fails for GSI 18 with IRQ 255 (dev->irq), independently from the presence of the dell_smo8800 module.

Now looking into this again, seeing dev->irq at 255 seems very suspicious here? Doesn't that mean not connected (although I'm not sure how this relates to it supposedly having GSI 18)?

Force the SMBus IRQ to IRQ_NOTCONNECTED in this case, so that
we fall back to polling, which also seems to be what the (very
dated) Windows 7 drivers on the Dell Latitude E7450 do.
What makes you think so?

According to the Windows 7 device manager IRQ view, the SMBus has no IRQ assigned, which I assumed implies that polling is used. If there is another way to check this on Windows 7, please let me know.

Cheers,
Marius