Re: 4.7 regression: ACPI: No IRQ available for PCI Interrupt Link [LNKD]. Try pci=noacpi or acpi=off

From: Sinan Kaya
Date: Thu Sep 29 2016 - 13:18:54 EST


This is a multi-part message in MIME format.On 9/29/2016 12:48 PM, Ondrej Zary wrote:
>> Let's see the new set. If this doesn't work, I'll have to provide you with
>> > another patch to get the penalty counts again. The original debug aids
>> > patch may not apply after these.
> It boots but the IRQ problem still remains the same. See the attached logs:
> dmesg-bad.txt: without the irq -> link->irq.active change
> dmesg-bad2.txt: with the irq -> link->irq.active change
> dmesg-bad2-debug.txt: as above with modified debug patch
>
> @@ -876,8 +893,11 @@ void acpi_penalize_isa_irq(int irq, int active)
> {
> int penalty = active ? PIRQ_PENALTY_ISA_USED : PIRQ_PENALTY_PCI_USING;
>
> - if ((irq >= 0) && (irq < ARRAY_SIZE(acpi_isa_irq_penalty)))
> + if ((irq >= 0) && (irq < ARRAY_SIZE(acpi_isa_irq_penalty))) {
> acpi_isa_irq_penalty[irq] += penalty;
> + pr_info("%s:%d acpi_isa_irq_penalty[%d]=0x%x active = %d\n",
> __func__,
> + __LINE__, irq, acpi_irq_get_penalty(irq),
> active);
> + }
> }
>

The previous two patches were in the right direction.

Can we also get the same output from 4.6 kernel with the attached patch for the
same machine you sent these?

Something about SCI still doesn't feel right.

The IRQ assignment fails if the penalty is greater than PIRQ_PENALTY_ISA_ALWAYS.
This will happen if BIOS tells us to use an IRQ and same IRQ is in use by the
SCI.


--
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.