mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
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
This commit is contained in:
commit
11bd04f6f3
83 changed files with 1787 additions and 1564 deletions
|
|
@ -285,15 +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, "%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,
|
||||
(unsigned long long) pci_start,
|
||||
(unsigned long long) pci_end);
|
||||
dev_warn(&dev->dev,
|
||||
"disabling %pR because it overlaps "
|
||||
"%s BAR %d %pR\n", res,
|
||||
pci_name(pdev), i, &pdev->resource[i]);
|
||||
res->flags |= IORESOURCE_DISABLED;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -517,7 +517,7 @@ struct pnp_resource *pnp_add_irq_resource(struct pnp_dev *dev, int irq,
|
|||
res->start = irq;
|
||||
res->end = irq;
|
||||
|
||||
pnp_dbg(&dev->dev, " add irq %d flags %#x\n", irq, flags);
|
||||
pnp_dbg(&dev->dev, " add %pr\n", res);
|
||||
return pnp_res;
|
||||
}
|
||||
|
||||
|
|
@ -538,7 +538,7 @@ struct pnp_resource *pnp_add_dma_resource(struct pnp_dev *dev, int dma,
|
|||
res->start = dma;
|
||||
res->end = dma;
|
||||
|
||||
pnp_dbg(&dev->dev, " add dma %d flags %#x\n", dma, flags);
|
||||
pnp_dbg(&dev->dev, " add %pr\n", res);
|
||||
return pnp_res;
|
||||
}
|
||||
|
||||
|
|
@ -562,8 +562,7 @@ struct pnp_resource *pnp_add_io_resource(struct pnp_dev *dev,
|
|||
res->start = start;
|
||||
res->end = end;
|
||||
|
||||
pnp_dbg(&dev->dev, " add io %#llx-%#llx flags %#x\n",
|
||||
(unsigned long long) start, (unsigned long long) end, flags);
|
||||
pnp_dbg(&dev->dev, " add %pr\n", res);
|
||||
return pnp_res;
|
||||
}
|
||||
|
||||
|
|
@ -587,8 +586,7 @@ struct pnp_resource *pnp_add_mem_resource(struct pnp_dev *dev,
|
|||
res->start = start;
|
||||
res->end = end;
|
||||
|
||||
pnp_dbg(&dev->dev, " add mem %#llx-%#llx flags %#x\n",
|
||||
(unsigned long long) start, (unsigned long long) end, flags);
|
||||
pnp_dbg(&dev->dev, " add %pr\n", res);
|
||||
return pnp_res;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,47 +75,14 @@ char *pnp_resource_type_name(struct resource *res)
|
|||
|
||||
void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc)
|
||||
{
|
||||
char buf[128];
|
||||
int len;
|
||||
struct pnp_resource *pnp_res;
|
||||
struct resource *res;
|
||||
|
||||
if (list_empty(&dev->resources)) {
|
||||
if (list_empty(&dev->resources))
|
||||
pnp_dbg(&dev->dev, "%s: no current resources\n", desc);
|
||||
return;
|
||||
}
|
||||
|
||||
pnp_dbg(&dev->dev, "%s: current resources:\n", desc);
|
||||
list_for_each_entry(pnp_res, &dev->resources, list) {
|
||||
res = &pnp_res->res;
|
||||
len = 0;
|
||||
|
||||
len += scnprintf(buf + len, sizeof(buf) - len, " %-3s ",
|
||||
pnp_resource_type_name(res));
|
||||
|
||||
if (res->flags & IORESOURCE_DISABLED) {
|
||||
pnp_dbg(&dev->dev, "%sdisabled\n", buf);
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (pnp_resource_type(res)) {
|
||||
case IORESOURCE_IO:
|
||||
case IORESOURCE_MEM:
|
||||
len += scnprintf(buf + len, sizeof(buf) - len,
|
||||
"%#llx-%#llx flags %#lx",
|
||||
(unsigned long long) res->start,
|
||||
(unsigned long long) res->end,
|
||||
res->flags);
|
||||
break;
|
||||
case IORESOURCE_IRQ:
|
||||
case IORESOURCE_DMA:
|
||||
len += scnprintf(buf + len, sizeof(buf) - len,
|
||||
"%lld flags %#lx",
|
||||
(unsigned long long) res->start,
|
||||
res->flags);
|
||||
break;
|
||||
}
|
||||
pnp_dbg(&dev->dev, "%s\n", buf);
|
||||
else {
|
||||
pnp_dbg(&dev->dev, "%s: current resources:\n", desc);
|
||||
list_for_each_entry(pnp_res, &dev->resources, list)
|
||||
pnp_dbg(&dev->dev, "%pr\n", &pnp_res->res);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,11 +22,11 @@ static const struct pnp_device_id pnp_dev_table[] = {
|
|||
{"", 0}
|
||||
};
|
||||
|
||||
static void reserve_range(struct pnp_dev *dev, resource_size_t start,
|
||||
resource_size_t end, int port)
|
||||
static void reserve_range(struct pnp_dev *dev, struct resource *r, int port)
|
||||
{
|
||||
char *regionid;
|
||||
const char *pnpid = dev_name(&dev->dev);
|
||||
resource_size_t start = r->start, end = r->end;
|
||||
struct resource *res;
|
||||
|
||||
regionid = kmalloc(16, GFP_KERNEL);
|
||||
|
|
@ -48,10 +48,8 @@ static void reserve_range(struct pnp_dev *dev, resource_size_t start,
|
|||
* example do reserve stuff they know about too, so we may well
|
||||
* have double reservations.
|
||||
*/
|
||||
dev_info(&dev->dev, "%s range 0x%llx-0x%llx %s reserved\n",
|
||||
port ? "ioport" : "iomem",
|
||||
(unsigned long long) start, (unsigned long long) end,
|
||||
res ? "has been" : "could not be");
|
||||
dev_info(&dev->dev, "%pR %s reserved\n", r,
|
||||
res ? "has been" : "could not be");
|
||||
}
|
||||
|
||||
static void reserve_resources_of_dev(struct pnp_dev *dev)
|
||||
|
|
@ -77,14 +75,14 @@ static void reserve_resources_of_dev(struct pnp_dev *dev)
|
|||
if (res->end < res->start)
|
||||
continue; /* invalid */
|
||||
|
||||
reserve_range(dev, res->start, res->end, 1);
|
||||
reserve_range(dev, res, 1);
|
||||
}
|
||||
|
||||
for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_MEM, i)); i++) {
|
||||
if (res->flags & IORESOURCE_DISABLED)
|
||||
continue;
|
||||
|
||||
reserve_range(dev, res->start, res->end, 0);
|
||||
reserve_range(dev, res, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue