[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1467188859-28188-2-git-send-email-okaya@codeaurora.org>
Date: Wed, 29 Jun 2016 04:27:35 -0400
From: Sinan Kaya <okaya@...eaurora.org>
To: linux-acpi@...r.kernel.org, timur@...eaurora.org,
cov@...eaurora.org, jcm@...hat.com, alex.williamson@...hat.com,
eric.auger@...hat.com
Cc: linux-pci@...r.kernel.org, agross@...eaurora.org,
linux-arm-msm@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, wim@....tudelft.nl,
perex@...ex.cz, tiwai@...e.com, Sinan Kaya <okaya@...eaurora.org>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Len Brown <lenb@...nel.org>, linux-kernel@...r.kernel.org
Subject: [PATCH V2 1/4] ACPI,PCI,IRQ: factor in PCI possible
The change introduced in commit 103544d86976 ("ACPI,PCI,IRQ: reduce
resource requirements") omitted the initially assigned POSSIBLE penalty
when the IRQ is active.
The original code would assign the POSSIBLE value divided by the number
of possible IRQs during initialization.
Later, if the IRQ is chosen as the active IRQ or if the IRQ is in use
by ISA; additional penalties get added.
Signed-off-by: Sinan Kaya <okaya@...eaurora.org>
---
drivers/acpi/pci_link.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index 8fc7323..f2b69e3 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -470,6 +470,7 @@ static int acpi_irq_pci_sharing_penalty(int irq)
{
struct acpi_pci_link *link;
int penalty = 0;
+ int i;
list_for_each_entry(link, &acpi_link_list, list) {
/*
@@ -478,18 +479,14 @@ static int acpi_irq_pci_sharing_penalty(int irq)
*/
if (link->irq.active && link->irq.active == irq)
penalty += PIRQ_PENALTY_PCI_USING;
- else {
- int i;
-
- /*
- * If a link is inactive, penalize the IRQs it
- * might use, but not as severely.
- */
- for (i = 0; i < link->irq.possible_count; i++)
- if (link->irq.possible[i] == irq)
- penalty += PIRQ_PENALTY_PCI_POSSIBLE /
- link->irq.possible_count;
- }
+
+ /*
+ * penalize the IRQs PCI might use, but not as severely.
+ */
+ for (i = 0; i < link->irq.possible_count; i++)
+ if (link->irq.possible[i] == irq)
+ penalty += PIRQ_PENALTY_PCI_POSSIBLE /
+ link->irq.possible_count;
}
return penalty;
--
1.8.2.1
Powered by blists - more mailing lists