yenta: Use pci_claim_resource
authorMatthew Wilcox <willy@linux.intel.com>
Fri, 19 Jun 2009 13:36:15 +0000 (09:36 -0400)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Wed, 9 Sep 2009 20:29:19 +0000 (13:29 -0700)
Instead of open-coding pci_find_parent_resource and request_resource,
just call pci_claim_resource.

Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pcmcia/yenta_socket.c

index 3ecd7c99d8eb69bba960e4127037fd84886b6171..737fe5d87c40f10a262bfd6d4830a36baeab850e 100644 (file)
@@ -622,11 +622,12 @@ static int yenta_search_res(struct yenta_socket *socket, struct resource *res,
 
 static int yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned type, int addr_start, int addr_end)
 {
-       struct resource *root, *res;
+       struct pci_dev *dev = socket->dev;
+       struct resource *res;
        struct pci_bus_region region;
        unsigned mask;
 
-       res = socket->dev->resource + PCI_BRIDGE_RESOURCES + nr;
+       res = dev->resource + PCI_BRIDGE_RESOURCES + nr;
        /* Already allocated? */
        if (res->parent)
                return 0;
@@ -636,17 +637,16 @@ static int yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned type
        if (type & IORESOURCE_IO)
                mask = ~3;
 
-       res->name = socket->dev->subordinate->name;
+       res->name = dev->subordinate->name;
        res->flags = type;
 
        region.start = config_readl(socket, addr_start) & mask;
        region.end = config_readl(socket, addr_end) | ~mask;
        if (region.start && region.end > region.start && !override_bios) {
-               pcibios_bus_to_resource(socket->dev, res, &region);
-               root = pci_find_parent_resource(socket->dev, res);
-               if (root && (request_resource(root, res) == 0))
+               pcibios_bus_to_resource(dev, res, &region);
+               if (pci_claim_resource(dev, PCI_BRIDGE_RESOURCES + nr) == 0)
                        return 0;
-               dev_printk(KERN_INFO, &socket->dev->dev,
+               dev_printk(KERN_INFO, &dev->dev,
                           "Preassigned resource %d busy or not available, "
                           "reconfiguring...\n",
                           nr);
@@ -672,7 +672,7 @@ static int yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned type
                        return 1;
        }
 
-       dev_printk(KERN_INFO, &socket->dev->dev,
+       dev_printk(KERN_INFO, &dev->dev,
                   "no resource of type %x available, trying to continue...\n",
                   type);
        res->start = res->end = res->flags = 0;