|
@@ -245,15 +245,17 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)
|
|
|
*/
|
|
|
for_each_pci_dev(pdev) {
|
|
|
for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
|
|
|
- if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM) ||
|
|
|
- pci_resource_len(pdev, i) == 0)
|
|
|
+ unsigned int type;
|
|
|
+
|
|
|
+ type = pci_resource_flags(pdev, i) &
|
|
|
+ (IORESOURCE_IO | IORESOURCE_MEM);
|
|
|
+ if (!type || pci_resource_len(pdev, i) == 0)
|
|
|
continue;
|
|
|
|
|
|
pci_start = pci_resource_start(pdev, i);
|
|
|
pci_end = pci_resource_end(pdev, i);
|
|
|
for (j = 0;
|
|
|
- (res = pnp_get_resource(dev, IORESOURCE_MEM, j));
|
|
|
- j++) {
|
|
|
+ (res = pnp_get_resource(dev, type, j)); j++) {
|
|
|
if (res->start == 0 && res->end == 0)
|
|
|
continue;
|
|
|
|
|
@@ -283,9 +285,10 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)
|
|
|
* the PCI region, and that might prevent a PCI
|
|
|
* driver from requesting its resources.
|
|
|
*/
|
|
|
- dev_warn(&dev->dev, "mem resource "
|
|
|
+ dev_warn(&dev->dev, "%s resource "
|
|
|
"(0x%llx-0x%llx) overlaps %s BAR %d "
|
|
|
"(0x%llx-0x%llx), disabling\n",
|
|
|
+ pnp_resource_type_name(res),
|
|
|
(unsigned long long) pnp_start,
|
|
|
(unsigned long long) pnp_end,
|
|
|
pci_name(pdev), i,
|