Lines Matching refs:dev

21 static struct resource *pnp_find_resource(struct pnp_dev *dev,  in pnp_find_resource()  argument
26 struct resource *res = pnp_get_resource(dev, type, bar); in pnp_find_resource()
37 static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx) in pnp_assign_port() argument
41 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IO, idx); in pnp_assign_port()
43 pnp_dbg(&dev->dev, " io %d already set to %#llx-%#llx " in pnp_assign_port()
56 pnp_dbg(&dev->dev, " io %d disabled\n", idx); in pnp_assign_port()
63 while (!pnp_check_port(dev, res)) { in pnp_assign_port()
67 pnp_dbg(&dev->dev, " couldn't assign io %d " in pnp_assign_port()
76 pnp_add_io_resource(dev, res->start, res->end, res->flags); in pnp_assign_port()
80 static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx) in pnp_assign_mem() argument
84 res = pnp_find_resource(dev, rule->flags, IORESOURCE_MEM, idx); in pnp_assign_mem()
86 pnp_dbg(&dev->dev, " mem %d already set to %#llx-%#llx " in pnp_assign_mem()
109 pnp_dbg(&dev->dev, " mem %d disabled\n", idx); in pnp_assign_mem()
116 while (!pnp_check_mem(dev, res)) { in pnp_assign_mem()
120 pnp_dbg(&dev->dev, " couldn't assign mem %d " in pnp_assign_mem()
129 pnp_add_mem_resource(dev, res->start, res->end, res->flags); in pnp_assign_mem()
133 static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx) in pnp_assign_irq() argument
143 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IRQ, idx); in pnp_assign_irq()
145 pnp_dbg(&dev->dev, " irq %d already set to %d flags %#lx\n", in pnp_assign_irq()
157 pnp_dbg(&dev->dev, " irq %d disabled\n", idx); in pnp_assign_irq()
170 if (pnp_check_irq(dev, res)) in pnp_assign_irq()
179 pnp_dbg(&dev->dev, " irq %d disabled (optional)\n", idx); in pnp_assign_irq()
183 pnp_dbg(&dev->dev, " couldn't assign irq %d\n", idx); in pnp_assign_irq()
187 pnp_add_irq_resource(dev, res->start, res->flags); in pnp_assign_irq()
192 static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx) in pnp_assign_dma() argument
202 res = pnp_find_resource(dev, rule->flags, IORESOURCE_DMA, idx); in pnp_assign_dma()
204 pnp_dbg(&dev->dev, " dma %d already set to %d flags %#lx\n", in pnp_assign_dma()
216 pnp_dbg(&dev->dev, " dma %d disabled\n", idx); in pnp_assign_dma()
223 if (pnp_check_dma(dev, res)) in pnp_assign_dma()
228 pnp_dbg(&dev->dev, " couldn't assign dma %d\n", idx); in pnp_assign_dma()
232 pnp_add_dma_resource(dev, res->start, res->flags); in pnp_assign_dma()
237 void pnp_init_resources(struct pnp_dev *dev) in pnp_init_resources() argument
239 pnp_free_resources(dev); in pnp_init_resources()
242 static void pnp_clean_resource_table(struct pnp_dev *dev) in pnp_clean_resource_table() argument
246 list_for_each_entry_safe(pnp_res, tmp, &dev->resources, list) { in pnp_clean_resource_table()
257 static int pnp_assign_resources(struct pnp_dev *dev, int set) in pnp_assign_resources() argument
264 pnp_dbg(&dev->dev, "pnp_assign_resources, try dependent set %d\n", set); in pnp_assign_resources()
266 pnp_clean_resource_table(dev); in pnp_assign_resources()
268 list_for_each_entry(option, &dev->options, list) { in pnp_assign_resources()
275 ret = pnp_assign_port(dev, &option->u.port, nport++); in pnp_assign_resources()
278 ret = pnp_assign_mem(dev, &option->u.mem, nmem++); in pnp_assign_resources()
281 ret = pnp_assign_irq(dev, &option->u.irq, nirq++); in pnp_assign_resources()
285 ret = pnp_assign_dma(dev, &option->u.dma, ndma++); in pnp_assign_resources()
298 pnp_dbg(&dev->dev, "pnp_assign_resources failed (%d)\n", ret); in pnp_assign_resources()
299 pnp_clean_resource_table(dev); in pnp_assign_resources()
301 dbg_pnp_show_resources(dev, "pnp_assign_resources succeeded"); in pnp_assign_resources()
309 int pnp_auto_config_dev(struct pnp_dev *dev) in pnp_auto_config_dev() argument
313 if (!pnp_can_configure(dev)) { in pnp_auto_config_dev()
314 pnp_dbg(&dev->dev, "configuration not supported\n"); in pnp_auto_config_dev()
318 ret = pnp_assign_resources(dev, 0); in pnp_auto_config_dev()
322 for (i = 1; i < dev->num_dependent_sets; i++) { in pnp_auto_config_dev()
323 ret = pnp_assign_resources(dev, i); in pnp_auto_config_dev()
328 dev_err(&dev->dev, "unable to assign resources\n"); in pnp_auto_config_dev()
338 int pnp_start_dev(struct pnp_dev *dev) in pnp_start_dev() argument
340 if (!pnp_can_write(dev)) { in pnp_start_dev()
341 pnp_dbg(&dev->dev, "activation not supported\n"); in pnp_start_dev()
345 dbg_pnp_show_resources(dev, "pnp_start_dev"); in pnp_start_dev()
346 if (dev->protocol->set(dev) < 0) { in pnp_start_dev()
347 dev_err(&dev->dev, "activation failed\n"); in pnp_start_dev()
351 dev_info(&dev->dev, "activated\n"); in pnp_start_dev()
361 int pnp_stop_dev(struct pnp_dev *dev) in pnp_stop_dev() argument
363 if (!pnp_can_disable(dev)) { in pnp_stop_dev()
364 pnp_dbg(&dev->dev, "disabling not supported\n"); in pnp_stop_dev()
367 if (dev->protocol->disable(dev) < 0) { in pnp_stop_dev()
368 dev_err(&dev->dev, "disable failed\n"); in pnp_stop_dev()
372 dev_info(&dev->dev, "disabled\n"); in pnp_stop_dev()
382 int pnp_activate_dev(struct pnp_dev *dev) in pnp_activate_dev() argument
386 if (dev->active) in pnp_activate_dev()
390 if (pnp_auto_config_dev(dev)) in pnp_activate_dev()
393 error = pnp_start_dev(dev); in pnp_activate_dev()
397 dev->active = 1; in pnp_activate_dev()
407 int pnp_disable_dev(struct pnp_dev *dev) in pnp_disable_dev() argument
411 if (!dev->active) in pnp_disable_dev()
414 error = pnp_stop_dev(dev); in pnp_disable_dev()
418 dev->active = 0; in pnp_disable_dev()
422 pnp_clean_resource_table(dev); in pnp_disable_dev()