diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-11 15:18:16 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-11 15:18:16 -0500 |
commit | 11bd04f6f35621193311c32e0721142b073a7794 (patch) | |
tree | 00979740582bb26e8d3756bf3526c85f19f66a46 /drivers/pnp | |
parent | 4e2ccdb0409146f8cf64a11b6ef82a9c928ced2a (diff) | |
parent | 9e0b5b2c447ad0caa075a5cfef86def62e1782ff (diff) |
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
* 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (109 commits)
PCI: fix coding style issue in pci_save_state()
PCI: add pci_request_acs
PCI: fix BUG_ON triggered by logical PCIe root port removal
PCI: remove ifdefed pci_cleanup_aer_correct_error_status
PCI: unconditionally clear AER uncorr status register during cleanup
x86/PCI: claim SR-IOV BARs in pcibios_allocate_resource
PCI: portdrv: remove redundant definitions
PCI: portdrv: remove unnecessary struct pcie_port_data
PCI: portdrv: minor cleanup for pcie_port_device_register
PCI: portdrv: add missing irq cleanup
PCI: portdrv: enable device before irq initialization
PCI: portdrv: cleanup service irqs initialization
PCI: portdrv: check capabilities first
PCI: portdrv: move PME capability check
PCI: portdrv: remove redundant pcie type calculation
PCI: portdrv: cleanup pcie_device registration
PCI: portdrv: remove redundant pcie_port_device_probe
PCI: Always set prefetchable base/limit upper32 registers
PCI: read-modify-write the pcie device control register when initiating pcie flr
PCI: show dma_mask bits in /sys
...
Fixed up conflicts in:
arch/x86/kernel/amd_iommu_init.c
drivers/pci/dmar.c
drivers/pci/hotplug/acpiphp_glue.c
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/quirks.c | 13 | ||||
-rw-r--r-- | drivers/pnp/resource.c | 10 | ||||
-rw-r--r-- | drivers/pnp/support.c | 43 | ||||
-rw-r--r-- | drivers/pnp/system.c | 14 |
4 files changed, 19 insertions, 61 deletions
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c index 8473fe5ed7ff..dfbd5a6cc58b 100644 --- a/drivers/pnp/quirks.c +++ b/drivers/pnp/quirks.c | |||
@@ -285,15 +285,10 @@ static void quirk_system_pci_resources(struct pnp_dev *dev) | |||
285 | * the PCI region, and that might prevent a PCI | 285 | * the PCI region, and that might prevent a PCI |
286 | * driver from requesting its resources. | 286 | * driver from requesting its resources. |
287 | */ | 287 | */ |
288 | dev_warn(&dev->dev, "%s resource " | 288 | dev_warn(&dev->dev, |
289 | "(0x%llx-0x%llx) overlaps %s BAR %d " | 289 | "disabling %pR because it overlaps " |
290 | "(0x%llx-0x%llx), disabling\n", | 290 | "%s BAR %d %pR\n", res, |
291 | pnp_resource_type_name(res), | 291 | pci_name(pdev), i, &pdev->resource[i]); |
292 | (unsigned long long) pnp_start, | ||
293 | (unsigned long long) pnp_end, | ||
294 | pci_name(pdev), i, | ||
295 | (unsigned long long) pci_start, | ||
296 | (unsigned long long) pci_end); | ||
297 | res->flags |= IORESOURCE_DISABLED; | 292 | res->flags |= IORESOURCE_DISABLED; |
298 | } | 293 | } |
299 | } | 294 | } |
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c index ba9765427886..64d0596bafb5 100644 --- a/drivers/pnp/resource.c +++ b/drivers/pnp/resource.c | |||
@@ -517,7 +517,7 @@ struct pnp_resource *pnp_add_irq_resource(struct pnp_dev *dev, int irq, | |||
517 | res->start = irq; | 517 | res->start = irq; |
518 | res->end = irq; | 518 | res->end = irq; |
519 | 519 | ||
520 | pnp_dbg(&dev->dev, " add irq %d flags %#x\n", irq, flags); | 520 | pnp_dbg(&dev->dev, " add %pr\n", res); |
521 | return pnp_res; | 521 | return pnp_res; |
522 | } | 522 | } |
523 | 523 | ||
@@ -538,7 +538,7 @@ struct pnp_resource *pnp_add_dma_resource(struct pnp_dev *dev, int dma, | |||
538 | res->start = dma; | 538 | res->start = dma; |
539 | res->end = dma; | 539 | res->end = dma; |
540 | 540 | ||
541 | pnp_dbg(&dev->dev, " add dma %d flags %#x\n", dma, flags); | 541 | pnp_dbg(&dev->dev, " add %pr\n", res); |
542 | return pnp_res; | 542 | return pnp_res; |
543 | } | 543 | } |
544 | 544 | ||
@@ -562,8 +562,7 @@ struct pnp_resource *pnp_add_io_resource(struct pnp_dev *dev, | |||
562 | res->start = start; | 562 | res->start = start; |
563 | res->end = end; | 563 | res->end = end; |
564 | 564 | ||
565 | pnp_dbg(&dev->dev, " add io %#llx-%#llx flags %#x\n", | 565 | pnp_dbg(&dev->dev, " add %pr\n", res); |
566 | (unsigned long long) start, (unsigned long long) end, flags); | ||
567 | return pnp_res; | 566 | return pnp_res; |
568 | } | 567 | } |
569 | 568 | ||
@@ -587,8 +586,7 @@ struct pnp_resource *pnp_add_mem_resource(struct pnp_dev *dev, | |||
587 | res->start = start; | 586 | res->start = start; |
588 | res->end = end; | 587 | res->end = end; |
589 | 588 | ||
590 | pnp_dbg(&dev->dev, " add mem %#llx-%#llx flags %#x\n", | 589 | pnp_dbg(&dev->dev, " add %pr\n", res); |
591 | (unsigned long long) start, (unsigned long long) end, flags); | ||
592 | return pnp_res; | 590 | return pnp_res; |
593 | } | 591 | } |
594 | 592 | ||
diff --git a/drivers/pnp/support.c b/drivers/pnp/support.c index 63087d5ce609..9585c1c1cc36 100644 --- a/drivers/pnp/support.c +++ b/drivers/pnp/support.c | |||
@@ -75,47 +75,14 @@ char *pnp_resource_type_name(struct resource *res) | |||
75 | 75 | ||
76 | void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc) | 76 | void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc) |
77 | { | 77 | { |
78 | char buf[128]; | ||
79 | int len; | ||
80 | struct pnp_resource *pnp_res; | 78 | struct pnp_resource *pnp_res; |
81 | struct resource *res; | ||
82 | 79 | ||
83 | if (list_empty(&dev->resources)) { | 80 | if (list_empty(&dev->resources)) |
84 | pnp_dbg(&dev->dev, "%s: no current resources\n", desc); | 81 | pnp_dbg(&dev->dev, "%s: no current resources\n", desc); |
85 | return; | 82 | else { |
86 | } | 83 | pnp_dbg(&dev->dev, "%s: current resources:\n", desc); |
87 | 84 | list_for_each_entry(pnp_res, &dev->resources, list) | |
88 | pnp_dbg(&dev->dev, "%s: current resources:\n", desc); | 85 | pnp_dbg(&dev->dev, "%pr\n", &pnp_res->res); |
89 | list_for_each_entry(pnp_res, &dev->resources, list) { | ||
90 | res = &pnp_res->res; | ||
91 | len = 0; | ||
92 | |||
93 | len += scnprintf(buf + len, sizeof(buf) - len, " %-3s ", | ||
94 | pnp_resource_type_name(res)); | ||
95 | |||
96 | if (res->flags & IORESOURCE_DISABLED) { | ||
97 | pnp_dbg(&dev->dev, "%sdisabled\n", buf); | ||
98 | continue; | ||
99 | } | ||
100 | |||
101 | switch (pnp_resource_type(res)) { | ||
102 | case IORESOURCE_IO: | ||
103 | case IORESOURCE_MEM: | ||
104 | len += scnprintf(buf + len, sizeof(buf) - len, | ||
105 | "%#llx-%#llx flags %#lx", | ||
106 | (unsigned long long) res->start, | ||
107 | (unsigned long long) res->end, | ||
108 | res->flags); | ||
109 | break; | ||
110 | case IORESOURCE_IRQ: | ||
111 | case IORESOURCE_DMA: | ||
112 | len += scnprintf(buf + len, sizeof(buf) - len, | ||
113 | "%lld flags %#lx", | ||
114 | (unsigned long long) res->start, | ||
115 | res->flags); | ||
116 | break; | ||
117 | } | ||
118 | pnp_dbg(&dev->dev, "%s\n", buf); | ||
119 | } | 86 | } |
120 | } | 87 | } |
121 | 88 | ||
diff --git a/drivers/pnp/system.c b/drivers/pnp/system.c index 59b90922da8c..49c1720df59a 100644 --- a/drivers/pnp/system.c +++ b/drivers/pnp/system.c | |||
@@ -22,11 +22,11 @@ static const struct pnp_device_id pnp_dev_table[] = { | |||
22 | {"", 0} | 22 | {"", 0} |
23 | }; | 23 | }; |
24 | 24 | ||
25 | static void reserve_range(struct pnp_dev *dev, resource_size_t start, | 25 | static void reserve_range(struct pnp_dev *dev, struct resource *r, int port) |
26 | resource_size_t end, int port) | ||
27 | { | 26 | { |
28 | char *regionid; | 27 | char *regionid; |
29 | const char *pnpid = dev_name(&dev->dev); | 28 | const char *pnpid = dev_name(&dev->dev); |
29 | resource_size_t start = r->start, end = r->end; | ||
30 | struct resource *res; | 30 | struct resource *res; |
31 | 31 | ||
32 | regionid = kmalloc(16, GFP_KERNEL); | 32 | regionid = kmalloc(16, GFP_KERNEL); |
@@ -48,10 +48,8 @@ static void reserve_range(struct pnp_dev *dev, resource_size_t start, | |||
48 | * example do reserve stuff they know about too, so we may well | 48 | * example do reserve stuff they know about too, so we may well |
49 | * have double reservations. | 49 | * have double reservations. |
50 | */ | 50 | */ |
51 | dev_info(&dev->dev, "%s range 0x%llx-0x%llx %s reserved\n", | 51 | dev_info(&dev->dev, "%pR %s reserved\n", r, |
52 | port ? "ioport" : "iomem", | 52 | res ? "has been" : "could not be"); |
53 | (unsigned long long) start, (unsigned long long) end, | ||
54 | res ? "has been" : "could not be"); | ||
55 | } | 53 | } |
56 | 54 | ||
57 | static void reserve_resources_of_dev(struct pnp_dev *dev) | 55 | static void reserve_resources_of_dev(struct pnp_dev *dev) |
@@ -77,14 +75,14 @@ static void reserve_resources_of_dev(struct pnp_dev *dev) | |||
77 | if (res->end < res->start) | 75 | if (res->end < res->start) |
78 | continue; /* invalid */ | 76 | continue; /* invalid */ |
79 | 77 | ||
80 | reserve_range(dev, res->start, res->end, 1); | 78 | reserve_range(dev, res, 1); |
81 | } | 79 | } |
82 | 80 | ||
83 | for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_MEM, i)); i++) { | 81 | for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_MEM, i)); i++) { |
84 | if (res->flags & IORESOURCE_DISABLED) | 82 | if (res->flags & IORESOURCE_DISABLED) |
85 | continue; | 83 | continue; |
86 | 84 | ||
87 | reserve_range(dev, res->start, res->end, 0); | 85 | reserve_range(dev, res, 0); |
88 | } | 86 | } |
89 | } | 87 | } |
90 | 88 | ||