summaryrefslogtreecommitdiff
path: root/drivers/pci/bus.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/bus.c')
-rw-r--r--drivers/pci/bus.c50
1 files changed, 3 insertions, 47 deletions
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
index 27bd0e395fe3..4688eaddae6b 100644
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
@@ -17,49 +17,6 @@
#include "pci.h"
-void pci_bus_add_resource(struct pci_bus *bus, struct resource *res,
- unsigned int flags)
-{
- struct pci_bus_resource *bus_res;
-
- bus_res = kzalloc(sizeof(struct pci_bus_resource), GFP_KERNEL);
- if (!bus_res) {
- dev_err(&bus->dev, "can't add %pR resource\n", res);
- return;
- }
-
- bus_res->res = res;
- bus_res->flags = flags;
- list_add_tail(&bus_res->list, &bus->resources);
-}
-
-struct resource *pci_bus_get_resource(struct pci_bus *bus, unsigned long flags,
- int num)
-{
- struct pci_bus_resource *bus_res;
- struct resource *res;
-
- list_for_each_entry(bus_res, &bus->resources, list) {
- if (!(bus_res->flags & PCI_POSITIVE_DECODE))
- continue;
-
- res = bus_res->res;
- if (((res->flags & flags) == flags) && num-- == 0)
- return res;
- }
- return NULL;
-}
-
-void pci_bus_remove_resources(struct pci_bus *bus)
-{
- struct pci_bus_resource *bus_res, *tmp;
-
- list_for_each_entry_safe(bus_res, tmp, &bus->resources, list) {
- list_del(&bus_res->list);
- kfree(bus_res);
- }
-}
-
/**
* pci_bus_alloc_resource - allocate a resource from a parent bus
* @bus: PCI bus
@@ -85,8 +42,7 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
resource_size_t),
void *alignf_data)
{
- int ret = -ENOMEM;
- struct pci_bus_resource *bus_res;
+ int i, ret = -ENOMEM;
resource_size_t max = -1;
type_mask |= IORESOURCE_IO | IORESOURCE_MEM;
@@ -95,8 +51,8 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
if (!(res->flags & IORESOURCE_MEM_64))
max = PCIBIOS_MAX_MEM_32;
- list_for_each_entry(bus_res, &bus->resources, list) {
- struct resource *r = bus_res->res;
+ for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
+ struct resource *r = bus->resource[i];
if (!r)
continue;