X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fpnp%2Fsystem.c;h=55c4563986b38aebc36b158eb7c9a649d7105d5c;hb=5824b4512650db90ddd5fdbea7f8aea3c7df3a94;hp=a8a95540b1ef78a225ea39653bc48e8a217410d4;hpb=5c0efdbc1b1891857659594741a4cb6405b63126;p=linux-2.6-omap-h63xx.git diff --git a/drivers/pnp/system.c b/drivers/pnp/system.c index a8a95540b1e..55c4563986b 100644 --- a/drivers/pnp/system.c +++ b/drivers/pnp/system.c @@ -16,42 +16,45 @@ static const struct pnp_device_id pnp_dev_table[] = { /* General ID for reserving resources */ - { "PNP0c02", 0 }, + {"PNP0c02", 0}, /* memory controller */ - { "PNP0c01", 0 }, - { "", 0 } + {"PNP0c01", 0}, + {"", 0} }; -static void reserve_range(const char *pnpid, resource_size_t start, resource_size_t end, int port) +static void reserve_range(struct pnp_dev *dev, resource_size_t start, + resource_size_t end, int port) { - struct resource *res; char *regionid; + const char *pnpid = dev->dev.bus_id; + struct resource *res; regionid = kmalloc(16, GFP_KERNEL); - if (regionid == NULL) + if (!regionid) return; + snprintf(regionid, 16, "pnp %s", pnpid); if (port) - res = request_region(start, end-start+1, regionid); - else - res = request_mem_region(start, end-start+1, regionid); - if (res == NULL) - kfree(regionid); + res = request_region(start, end - start + 1, regionid); else + res = request_mem_region(start, end - start + 1, regionid); + if (res) res->flags &= ~IORESOURCE_BUSY; + else + kfree(regionid); + /* * Failures at this point are usually harmless. pci quirks for * example do reserve stuff they know about too, so we may well * have double reservations. */ - printk(KERN_INFO - "pnp: %s: %s range 0x%llx-0x%llx %s reserved\n", - pnpid, port ? "ioport" : "iomem", - (unsigned long long)start, (unsigned long long)end, - NULL != res ? "has been" : "could not be"); + 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"); } -static void reserve_resources_of_dev(const struct pnp_dev *dev) +static void reserve_resources_of_dev(struct pnp_dev *dev) { int i; @@ -73,33 +76,31 @@ static void reserve_resources_of_dev(const struct pnp_dev *dev) if (pnp_port_end(dev, i) < pnp_port_start(dev, i)) continue; /* invalid */ - reserve_range(dev->dev.bus_id, pnp_port_start(dev, i), - pnp_port_end(dev, i), 1); + reserve_range(dev, pnp_port_start(dev, i), + pnp_port_end(dev, i), 1); } for (i = 0; i < PNP_MAX_MEM; i++) { if (!pnp_mem_valid(dev, i)) continue; - reserve_range(dev->dev.bus_id, pnp_mem_start(dev, i), - pnp_mem_end(dev, i), 0); + reserve_range(dev, pnp_mem_start(dev, i), + pnp_mem_end(dev, i), 0); } - - return; } -static int system_pnp_probe(struct pnp_dev * dev, const struct pnp_device_id *dev_id) +static int system_pnp_probe(struct pnp_dev *dev, + const struct pnp_device_id *dev_id) { reserve_resources_of_dev(dev); return 0; } static struct pnp_driver system_pnp_driver = { - .name = "system", - .id_table = pnp_dev_table, - .flags = PNP_DRIVER_RES_DO_NOT_CHANGE, - .probe = system_pnp_probe, - .remove = NULL, + .name = "system", + .id_table = pnp_dev_table, + .flags = PNP_DRIVER_RES_DO_NOT_CHANGE, + .probe = system_pnp_probe, }; static int __init pnp_system_init(void)