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

Marius Hoch
2023-06-03T09:24:24Z

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