Messages in this thread | | | Date | Sun, 4 Jun 2023 22:41:15 +0200 | From | Rudolf Marek <> | Subject | Re: [PATCH 0/2] i2c: i801: Force no IRQ for Dell Latitude E7450 |
| |
Hi Jean,
Dne 04. 06. 23 v 16:01 Jean Delvare napsal(a): > I admit I don't know. I'm not familiar with how GSI numbers relate to > IRQ numbers. I think I understand that GSI numbers are an ACPI thing, > and the ACPI layer is responsible for mapping these to actual IRQ > numbers? Is there a GSI-to-IRQ table available somewhere as part of the > ACPI tables? If so, it would be interesting to disassemble the ACPI > tables on your system and check what this looks like for you.
You need to check _PRT method of PCI0 device in APIC mode. This will tell you to what GSI (APIC/pin) it goes. To check you need to have a look to the DSDT table and decompile it. You can obtain it by running acpidump > tables.txt and the acpixtract -a tables.txt and finally running iasl -d dsdt.asl.
Then, because the SMBUS lives on bus0, you just need to check _PRT method under PCI0 device for the entry of 001fffff (INT C). If this entry exists it will tell you where is it connected.
I assume this has no entry and then as a last chance Linux tries the PCI IRQ entry in the configuration space gets queried. And this has 0xff which is telling no IRQ connected.
The southbridge has a IRQ routing configuration register which can be used to verify if this is routed anywhere or really left "unconnected". This is usually in the the RCBA base + something register. Have a look to "D31IP" register:
SMBus Pin (SMIP) — R/W. Indicates which pin the SMBus controller drives as its interrupt. bits 15:12
If there is 0, it is not routed anywhere. Also you need to check "D31IR" where the PIN C is going:
Interrupt C Pin Route (ICR) — R/W. Indicates which physical pin on the PCH is connected to the INTC# pin reported for device 31 functions.
The PIRQA corresponds to the PIN 16 of IOAPIC etc.
If you need more info on that feel free to contact me. I can try to help.
Thanks, Rudolf
| |