diff options
| -rw-r--r-- | drivers/acpi/pci_link.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index 233c40c51684..89f3b2abfdc7 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c | |||
| @@ -113,20 +113,23 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) | |||
| 113 | 113 | ||
| 114 | switch (resource->type) { | 114 | switch (resource->type) { |
| 115 | case ACPI_RESOURCE_TYPE_START_DEPENDENT: | 115 | case ACPI_RESOURCE_TYPE_START_DEPENDENT: |
| 116 | case ACPI_RESOURCE_TYPE_END_TAG: | ||
| 116 | return AE_OK; | 117 | return AE_OK; |
| 117 | case ACPI_RESOURCE_TYPE_IRQ: | 118 | case ACPI_RESOURCE_TYPE_IRQ: |
| 118 | { | 119 | { |
| 119 | struct acpi_resource_irq *p = &resource->data.irq; | 120 | struct acpi_resource_irq *p = &resource->data.irq; |
| 120 | if (!p || !p->interrupt_count) { | 121 | if (!p || !p->interrupt_count) { |
| 121 | printk(KERN_WARNING PREFIX "Blank IRQ resource\n"); | 122 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
| 123 | "Blank _PRS IRQ resource\n")); | ||
| 122 | return AE_OK; | 124 | return AE_OK; |
| 123 | } | 125 | } |
| 124 | for (i = 0; | 126 | for (i = 0; |
| 125 | (i < p->interrupt_count | 127 | (i < p->interrupt_count |
| 126 | && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { | 128 | && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { |
| 127 | if (!p->interrupts[i]) { | 129 | if (!p->interrupts[i]) { |
| 128 | printk(KERN_WARNING PREFIX "Invalid IRQ %d\n", | 130 | printk(KERN_WARNING PREFIX |
| 129 | p->interrupts[i]); | 131 | "Invalid _PRS IRQ %d\n", |
| 132 | p->interrupts[i]); | ||
| 130 | continue; | 133 | continue; |
| 131 | } | 134 | } |
| 132 | link->irq.possible[i] = p->interrupts[i]; | 135 | link->irq.possible[i] = p->interrupts[i]; |
| @@ -143,15 +146,16 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) | |||
| 143 | &resource->data.extended_irq; | 146 | &resource->data.extended_irq; |
| 144 | if (!p || !p->interrupt_count) { | 147 | if (!p || !p->interrupt_count) { |
| 145 | printk(KERN_WARNING PREFIX | 148 | printk(KERN_WARNING PREFIX |
| 146 | "Blank EXT IRQ resource\n"); | 149 | "Blank _PRS EXT IRQ resource\n"); |
| 147 | return AE_OK; | 150 | return AE_OK; |
| 148 | } | 151 | } |
| 149 | for (i = 0; | 152 | for (i = 0; |
| 150 | (i < p->interrupt_count | 153 | (i < p->interrupt_count |
| 151 | && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { | 154 | && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { |
| 152 | if (!p->interrupts[i]) { | 155 | if (!p->interrupts[i]) { |
| 153 | printk(KERN_WARNING PREFIX "Invalid IRQ %d\n", | 156 | printk(KERN_WARNING PREFIX |
| 154 | p->interrupts[i]); | 157 | "Invalid _PRS IRQ %d\n", |
| 158 | p->interrupts[i]); | ||
| 155 | continue; | 159 | continue; |
| 156 | } | 160 | } |
| 157 | link->irq.possible[i] = p->interrupts[i]; | 161 | link->irq.possible[i] = p->interrupts[i]; |
| @@ -163,7 +167,8 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) | |||
| 163 | break; | 167 | break; |
| 164 | } | 168 | } |
| 165 | default: | 169 | default: |
| 166 | printk(KERN_ERR PREFIX "Resource is not an IRQ entry\n"); | 170 | printk(KERN_ERR PREFIX "_PRS resource type 0x%x isn't an IRQ\n", |
| 171 | resource->type); | ||
| 167 | return AE_OK; | 172 | return AE_OK; |
| 168 | } | 173 | } |
| 169 | 174 | ||
| @@ -199,6 +204,9 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) | |||
| 199 | 204 | ||
| 200 | 205 | ||
| 201 | switch (resource->type) { | 206 | switch (resource->type) { |
| 207 | case ACPI_RESOURCE_TYPE_START_DEPENDENT: | ||
| 208 | case ACPI_RESOURCE_TYPE_END_TAG: | ||
| 209 | return AE_OK; | ||
| 202 | case ACPI_RESOURCE_TYPE_IRQ: | 210 | case ACPI_RESOURCE_TYPE_IRQ: |
| 203 | { | 211 | { |
| 204 | struct acpi_resource_irq *p = &resource->data.irq; | 212 | struct acpi_resource_irq *p = &resource->data.irq; |
| @@ -208,7 +216,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) | |||
| 208 | * particularly those those w/ _STA disabled | 216 | * particularly those those w/ _STA disabled |
| 209 | */ | 217 | */ |
| 210 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 218 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
| 211 | "Blank IRQ resource\n")); | 219 | "Blank _CRS IRQ resource\n")); |
| 212 | return AE_OK; | 220 | return AE_OK; |
| 213 | } | 221 | } |
| 214 | *irq = p->interrupts[0]; | 222 | *irq = p->interrupts[0]; |
| @@ -224,7 +232,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) | |||
| 224 | * return at least 1 IRQ | 232 | * return at least 1 IRQ |
| 225 | */ | 233 | */ |
| 226 | printk(KERN_WARNING PREFIX | 234 | printk(KERN_WARNING PREFIX |
| 227 | "Blank EXT IRQ resource\n"); | 235 | "Blank _CRS EXT IRQ resource\n"); |
| 228 | return AE_OK; | 236 | return AE_OK; |
| 229 | } | 237 | } |
| 230 | *irq = p->interrupts[0]; | 238 | *irq = p->interrupts[0]; |
| @@ -232,10 +240,11 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) | |||
| 232 | } | 240 | } |
| 233 | break; | 241 | break; |
| 234 | default: | 242 | default: |
| 235 | printk(KERN_ERR PREFIX "Resource %d isn't an IRQ\n", resource->type); | 243 | printk(KERN_ERR PREFIX "_CRS resource type 0x%x isn't an IRQ\n", |
| 236 | case ACPI_RESOURCE_TYPE_END_TAG: | 244 | resource->type); |
| 237 | return AE_OK; | 245 | return AE_OK; |
| 238 | } | 246 | } |
| 247 | |||
| 239 | return AE_CTRL_TERMINATE; | 248 | return AE_CTRL_TERMINATE; |
| 240 | } | 249 | } |
| 241 | 250 | ||
