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 | ||