diff options
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/Makefile | 4 | ||||
-rw-r--r-- | drivers/pnp/card.c | 3 | ||||
-rw-r--r-- | drivers/pnp/driver.c | 5 | ||||
-rw-r--r-- | drivers/pnp/interface.c | 3 | ||||
-rw-r--r-- | drivers/pnp/manager.c | 31 | ||||
-rw-r--r-- | drivers/pnp/quirks.c | 12 | ||||
-rw-r--r-- | drivers/pnp/resource.c | 2 |
7 files changed, 31 insertions, 29 deletions
diff --git a/drivers/pnp/Makefile b/drivers/pnp/Makefile index a381a92fd1b6..26f5abc9c3f7 100644 --- a/drivers/pnp/Makefile +++ b/drivers/pnp/Makefile | |||
@@ -7,3 +7,7 @@ obj-y := core.o card.o driver.o resource.o manager.o support.o interface.o quir | |||
7 | obj-$(CONFIG_PNPACPI) += pnpacpi/ | 7 | obj-$(CONFIG_PNPACPI) += pnpacpi/ |
8 | obj-$(CONFIG_PNPBIOS) += pnpbios/ | 8 | obj-$(CONFIG_PNPBIOS) += pnpbios/ |
9 | obj-$(CONFIG_ISAPNP) += isapnp/ | 9 | obj-$(CONFIG_ISAPNP) += isapnp/ |
10 | |||
11 | ifeq ($(CONFIG_PNP_DEBUG),y) | ||
12 | EXTRA_CFLAGS += -DDEBUG | ||
13 | endif | ||
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c index 3b48aef8f4eb..da1c9909eb44 100644 --- a/drivers/pnp/card.c +++ b/drivers/pnp/card.c | |||
@@ -198,8 +198,7 @@ int pnp_add_card(struct pnp_card *card) | |||
198 | card->dev.release = &pnp_release_card; | 198 | card->dev.release = &pnp_release_card; |
199 | error = device_register(&card->dev); | 199 | error = device_register(&card->dev); |
200 | if (error) { | 200 | if (error) { |
201 | pnp_err("sysfs failure, card '%s' will be unavailable", | 201 | dev_err(&card->dev, "could not register (err=%d)\n", error); |
202 | card->dev.bus_id); | ||
203 | return error; | 202 | return error; |
204 | } | 203 | } |
205 | 204 | ||
diff --git a/drivers/pnp/driver.c b/drivers/pnp/driver.c index 2fa64a6b25c8..a262762c5b88 100644 --- a/drivers/pnp/driver.c +++ b/drivers/pnp/driver.c | |||
@@ -86,9 +86,6 @@ static int pnp_device_probe(struct device *dev) | |||
86 | pnp_dev = to_pnp_dev(dev); | 86 | pnp_dev = to_pnp_dev(dev); |
87 | pnp_drv = to_pnp_driver(dev->driver); | 87 | pnp_drv = to_pnp_driver(dev->driver); |
88 | 88 | ||
89 | pnp_dbg("match found with the PnP device '%s' and the driver '%s'", | ||
90 | dev->bus_id, pnp_drv->name); | ||
91 | |||
92 | error = pnp_device_attach(pnp_dev); | 89 | error = pnp_device_attach(pnp_dev); |
93 | if (error < 0) | 90 | if (error < 0) |
94 | return error; | 91 | return error; |
@@ -116,6 +113,8 @@ static int pnp_device_probe(struct device *dev) | |||
116 | error = 0; | 113 | error = 0; |
117 | } else | 114 | } else |
118 | goto fail; | 115 | goto fail; |
116 | |||
117 | dev_dbg(dev, "driver attached\n"); | ||
119 | return error; | 118 | return error; |
120 | 119 | ||
121 | fail: | 120 | fail: |
diff --git a/drivers/pnp/interface.c b/drivers/pnp/interface.c index e0ee28a88da3..31548044fdde 100644 --- a/drivers/pnp/interface.c +++ b/drivers/pnp/interface.c | |||
@@ -327,8 +327,7 @@ pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr, | |||
327 | 327 | ||
328 | if (dev->status & PNP_ATTACHED) { | 328 | if (dev->status & PNP_ATTACHED) { |
329 | retval = -EBUSY; | 329 | retval = -EBUSY; |
330 | pnp_info("Device %s cannot be configured because it is in use.", | 330 | dev_info(&dev->dev, "in use; can't configure\n"); |
331 | dev->dev.bus_id); | ||
332 | goto done; | 331 | goto done; |
333 | } | 332 | } |
334 | 333 | ||
diff --git a/drivers/pnp/manager.c b/drivers/pnp/manager.c index 5e43c4719099..c6b3d4e63ccc 100644 --- a/drivers/pnp/manager.c +++ b/drivers/pnp/manager.c | |||
@@ -22,8 +22,7 @@ static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx) | |||
22 | unsigned long *flags; | 22 | unsigned long *flags; |
23 | 23 | ||
24 | if (idx >= PNP_MAX_PORT) { | 24 | if (idx >= PNP_MAX_PORT) { |
25 | pnp_err | 25 | dev_err(&dev->dev, "too many I/O port resources\n"); |
26 | ("More than 4 ports is incompatible with pnp specifications."); | ||
27 | /* pretend we were successful so at least the manager won't try again */ | 26 | /* pretend we were successful so at least the manager won't try again */ |
28 | return 1; | 27 | return 1; |
29 | } | 28 | } |
@@ -64,8 +63,7 @@ static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx) | |||
64 | unsigned long *flags; | 63 | unsigned long *flags; |
65 | 64 | ||
66 | if (idx >= PNP_MAX_MEM) { | 65 | if (idx >= PNP_MAX_MEM) { |
67 | pnp_err | 66 | dev_err(&dev->dev, "too many memory resources\n"); |
68 | ("More than 8 mems is incompatible with pnp specifications."); | ||
69 | /* pretend we were successful so at least the manager won't try again */ | 67 | /* pretend we were successful so at least the manager won't try again */ |
70 | return 1; | 68 | return 1; |
71 | } | 69 | } |
@@ -122,8 +120,7 @@ static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx) | |||
122 | }; | 120 | }; |
123 | 121 | ||
124 | if (idx >= PNP_MAX_IRQ) { | 122 | if (idx >= PNP_MAX_IRQ) { |
125 | pnp_err | 123 | dev_err(&dev->dev, "too many IRQ resources\n"); |
126 | ("More than 2 irqs is incompatible with pnp specifications."); | ||
127 | /* pretend we were successful so at least the manager won't try again */ | 124 | /* pretend we were successful so at least the manager won't try again */ |
128 | return 1; | 125 | return 1; |
129 | } | 126 | } |
@@ -173,8 +170,7 @@ static void pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx) | |||
173 | }; | 170 | }; |
174 | 171 | ||
175 | if (idx >= PNP_MAX_DMA) { | 172 | if (idx >= PNP_MAX_DMA) { |
176 | pnp_err("More than 2 dmas is incompatible with pnp " | 173 | dev_err(&dev->dev, "too many DMA resources\n"); |
177 | "specifications."); | ||
178 | return; | 174 | return; |
179 | } | 175 | } |
180 | 176 | ||
@@ -442,8 +438,7 @@ int pnp_auto_config_dev(struct pnp_dev *dev) | |||
442 | int i = 1; | 438 | int i = 1; |
443 | 439 | ||
444 | if (!pnp_can_configure(dev)) { | 440 | if (!pnp_can_configure(dev)) { |
445 | pnp_dbg("Device %s does not support resource configuration.", | 441 | dev_dbg(&dev->dev, "configuration not supported\n"); |
446 | dev->dev.bus_id); | ||
447 | return -ENODEV; | 442 | return -ENODEV; |
448 | } | 443 | } |
449 | 444 | ||
@@ -460,7 +455,7 @@ int pnp_auto_config_dev(struct pnp_dev *dev) | |||
460 | } while (dep); | 455 | } while (dep); |
461 | } | 456 | } |
462 | 457 | ||
463 | pnp_err("Unable to assign resources to device %s.", dev->dev.bus_id); | 458 | dev_err(&dev->dev, "unable to assign resources\n"); |
464 | return -EBUSY; | 459 | return -EBUSY; |
465 | } | 460 | } |
466 | 461 | ||
@@ -473,17 +468,16 @@ int pnp_auto_config_dev(struct pnp_dev *dev) | |||
473 | int pnp_start_dev(struct pnp_dev *dev) | 468 | int pnp_start_dev(struct pnp_dev *dev) |
474 | { | 469 | { |
475 | if (!pnp_can_write(dev)) { | 470 | if (!pnp_can_write(dev)) { |
476 | pnp_dbg("Device %s does not support activation.", | 471 | dev_dbg(&dev->dev, "activation not supported\n"); |
477 | dev->dev.bus_id); | ||
478 | return -EINVAL; | 472 | return -EINVAL; |
479 | } | 473 | } |
480 | 474 | ||
481 | if (dev->protocol->set(dev, &dev->res) < 0) { | 475 | if (dev->protocol->set(dev, &dev->res) < 0) { |
482 | pnp_err("Failed to activate device %s.", dev->dev.bus_id); | 476 | dev_err(&dev->dev, "activation failed\n"); |
483 | return -EIO; | 477 | return -EIO; |
484 | } | 478 | } |
485 | 479 | ||
486 | pnp_info("Device %s activated.", dev->dev.bus_id); | 480 | dev_info(&dev->dev, "activated\n"); |
487 | return 0; | 481 | return 0; |
488 | } | 482 | } |
489 | 483 | ||
@@ -496,16 +490,15 @@ int pnp_start_dev(struct pnp_dev *dev) | |||
496 | int pnp_stop_dev(struct pnp_dev *dev) | 490 | int pnp_stop_dev(struct pnp_dev *dev) |
497 | { | 491 | { |
498 | if (!pnp_can_disable(dev)) { | 492 | if (!pnp_can_disable(dev)) { |
499 | pnp_dbg("Device %s does not support disabling.", | 493 | dev_dbg(&dev->dev, "disabling not supported\n"); |
500 | dev->dev.bus_id); | ||
501 | return -EINVAL; | 494 | return -EINVAL; |
502 | } | 495 | } |
503 | if (dev->protocol->disable(dev) < 0) { | 496 | if (dev->protocol->disable(dev) < 0) { |
504 | pnp_err("Failed to disable device %s.", dev->dev.bus_id); | 497 | dev_err(&dev->dev, "disable failed\n"); |
505 | return -EIO; | 498 | return -EIO; |
506 | } | 499 | } |
507 | 500 | ||
508 | pnp_info("Device %s disabled.", dev->dev.bus_id); | 501 | dev_info(&dev->dev, "disabled\n"); |
509 | return 0; | 502 | return 0; |
510 | } | 503 | } |
511 | 504 | ||
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c index 6b0cf0c2a088..e903b8c2b1fa 100644 --- a/drivers/pnp/quirks.c +++ b/drivers/pnp/quirks.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/slab.h> | 17 | #include <linux/slab.h> |
18 | #include <linux/pnp.h> | 18 | #include <linux/pnp.h> |
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include <linux/kallsyms.h> | ||
20 | #include "base.h" | 21 | #include "base.h" |
21 | 22 | ||
22 | static void quirk_awe32_resources(struct pnp_dev *dev) | 23 | static void quirk_awe32_resources(struct pnp_dev *dev) |
@@ -133,11 +134,18 @@ static struct pnp_fixup pnp_fixups[] = { | |||
133 | void pnp_fixup_device(struct pnp_dev *dev) | 134 | void pnp_fixup_device(struct pnp_dev *dev) |
134 | { | 135 | { |
135 | int i = 0; | 136 | int i = 0; |
137 | void (*quirk)(struct pnp_dev *); | ||
136 | 138 | ||
137 | while (*pnp_fixups[i].id) { | 139 | while (*pnp_fixups[i].id) { |
138 | if (compare_pnp_id(dev->id, pnp_fixups[i].id)) { | 140 | if (compare_pnp_id(dev->id, pnp_fixups[i].id)) { |
139 | pnp_dbg("Calling quirk for %s", dev->dev.bus_id); | 141 | quirk = pnp_fixups[i].quirk_function; |
140 | pnp_fixups[i].quirk_function(dev); | 142 | |
143 | #ifdef DEBUG | ||
144 | dev_dbg(&dev->dev, "calling quirk 0x%p", quirk); | ||
145 | print_fn_descriptor_symbol(": %s()\n", | ||
146 | (unsigned long) *quirk); | ||
147 | #endif | ||
148 | (*quirk)(dev); | ||
141 | } | 149 | } |
142 | i++; | 150 | i++; |
143 | } | 151 | } |
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c index 087fed18628f..41d73a5e9312 100644 --- a/drivers/pnp/resource.c +++ b/drivers/pnp/resource.c | |||
@@ -51,7 +51,7 @@ struct pnp_option *pnp_register_independent_option(struct pnp_dev *dev) | |||
51 | 51 | ||
52 | /* this should never happen but if it does we'll try to continue */ | 52 | /* this should never happen but if it does we'll try to continue */ |
53 | if (dev->independent) | 53 | if (dev->independent) |
54 | pnp_err("independent resource already registered"); | 54 | dev_err(&dev->dev, "independent resource already registered\n"); |
55 | dev->independent = option; | 55 | dev->independent = option; |
56 | return option; | 56 | return option; |
57 | } | 57 | } |