diff options
author | David Shaohua Li <shaohua.li@intel.com> | 2005-04-01 00:07:31 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-07-12 00:03:30 -0400 |
commit | c9c3e457de24cca2ca688fa397d93a241f472048 (patch) | |
tree | 570b7a07f9c6f570341481500a2bff21c1328d8d /drivers | |
parent | acf05f4b7f558051ea0028e8e617144123650272 (diff) |
[ACPI] PNPACPI vs sound IRQ
http://bugme.osdl.org/show_bug.cgi?id=4016
Written-by: David Shaohua Li <shaohua.li@intel.com>
Acked-by: Adam Belay <abelay@novell.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/pci_link.c | 7 | ||||
-rw-r--r-- | drivers/pnp/pnpacpi/rsparser.c | 4 | ||||
-rw-r--r-- | drivers/pnp/pnpbios/rsparser.c | 2 | ||||
-rw-r--r-- | drivers/pnp/resource.c | 2 |
4 files changed, 9 insertions, 6 deletions
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index f2271173bbd5..6ad0e77df9b3 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c | |||
@@ -804,9 +804,12 @@ static int __init acpi_irq_penalty_update(char *str, int used) | |||
804 | * There is no ISA_POSSIBLE weight, so we simply use | 804 | * There is no ISA_POSSIBLE weight, so we simply use |
805 | * the (small) PCI_USING penalty. | 805 | * the (small) PCI_USING penalty. |
806 | */ | 806 | */ |
807 | void acpi_penalize_isa_irq(int irq) | 807 | void acpi_penalize_isa_irq(int irq, int active) |
808 | { | 808 | { |
809 | acpi_irq_penalty[irq] += PIRQ_PENALTY_PCI_USING; | 809 | if (active) |
810 | acpi_irq_penalty[irq] += PIRQ_PENALTY_ISA_USED; | ||
811 | else | ||
812 | acpi_irq_penalty[irq] += PIRQ_PENALTY_PCI_USING; | ||
810 | } | 813 | } |
811 | 814 | ||
812 | /* | 815 | /* |
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c index ae3819ad7cf4..75575f6c349c 100644 --- a/drivers/pnp/pnpacpi/rsparser.c +++ b/drivers/pnp/pnpacpi/rsparser.c | |||
@@ -160,7 +160,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res, | |||
160 | acpi_register_gsi(res->data.irq.interrupts[0], | 160 | acpi_register_gsi(res->data.irq.interrupts[0], |
161 | res->data.irq.edge_level, | 161 | res->data.irq.edge_level, |
162 | res->data.irq.active_high_low)); | 162 | res->data.irq.active_high_low)); |
163 | pcibios_penalize_isa_irq(res->data.irq.interrupts[0]); | 163 | pcibios_penalize_isa_irq(res->data.irq.interrupts[0], 1); |
164 | } | 164 | } |
165 | break; | 165 | break; |
166 | 166 | ||
@@ -171,7 +171,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res, | |||
171 | acpi_register_gsi(res->data.extended_irq.interrupts[0], | 171 | acpi_register_gsi(res->data.extended_irq.interrupts[0], |
172 | res->data.extended_irq.edge_level, | 172 | res->data.extended_irq.edge_level, |
173 | res->data.extended_irq.active_high_low)); | 173 | res->data.extended_irq.active_high_low)); |
174 | pcibios_penalize_isa_irq(res->data.extended_irq.interrupts[0]); | 174 | pcibios_penalize_isa_irq(res->data.extended_irq.interrupts[0], 1); |
175 | } | 175 | } |
176 | break; | 176 | break; |
177 | case ACPI_RSTYPE_DMA: | 177 | case ACPI_RSTYPE_DMA: |
diff --git a/drivers/pnp/pnpbios/rsparser.c b/drivers/pnp/pnpbios/rsparser.c index 79bce7b75740..9001b6f0204d 100644 --- a/drivers/pnp/pnpbios/rsparser.c +++ b/drivers/pnp/pnpbios/rsparser.c | |||
@@ -64,7 +64,7 @@ pnpbios_parse_allocated_irqresource(struct pnp_resource_table * res, int irq) | |||
64 | } | 64 | } |
65 | res->irq_resource[i].start = | 65 | res->irq_resource[i].start = |
66 | res->irq_resource[i].end = (unsigned long) irq; | 66 | res->irq_resource[i].end = (unsigned long) irq; |
67 | pcibios_penalize_isa_irq(irq); | 67 | pcibios_penalize_isa_irq(irq, 1); |
68 | } | 68 | } |
69 | } | 69 | } |
70 | 70 | ||
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c index 2d1322dd7e19..887ad8939349 100644 --- a/drivers/pnp/resource.c +++ b/drivers/pnp/resource.c | |||
@@ -102,7 +102,7 @@ int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data) | |||
102 | 102 | ||
103 | for (i = 0; i < 16; i++) | 103 | for (i = 0; i < 16; i++) |
104 | if (test_bit(i, data->map)) | 104 | if (test_bit(i, data->map)) |
105 | pcibios_penalize_isa_irq(i); | 105 | pcibios_penalize_isa_irq(i, 0); |
106 | } | 106 | } |
107 | #endif | 107 | #endif |
108 | return 0; | 108 | return 0; |