Lines Matching refs:dev

22 static struct resource *pnp_find_resource(struct pnp_dev *dev,  in pnp_find_resource()  argument
27 struct resource *res = pnp_get_resource(dev, type, bar); in pnp_find_resource()
38 static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx) in pnp_assign_port() argument
42 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IO, idx); in pnp_assign_port()
44 pnp_dbg(&dev->dev, " io %d already set to %#llx-%#llx " in pnp_assign_port()
57 pnp_dbg(&dev->dev, " io %d disabled\n", idx); in pnp_assign_port()
64 while (!pnp_check_port(dev, res)) { in pnp_assign_port()
68 pnp_dbg(&dev->dev, " couldn't assign io %d " in pnp_assign_port()
77 pnp_add_io_resource(dev, res->start, res->end, res->flags); in pnp_assign_port()
81 static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx) in pnp_assign_mem() argument
85 res = pnp_find_resource(dev, rule->flags, IORESOURCE_MEM, idx); in pnp_assign_mem()
87 pnp_dbg(&dev->dev, " mem %d already set to %#llx-%#llx " in pnp_assign_mem()
108 pnp_dbg(&dev->dev, " mem %d disabled\n", idx); in pnp_assign_mem()
115 while (!pnp_check_mem(dev, res)) { in pnp_assign_mem()
119 pnp_dbg(&dev->dev, " couldn't assign mem %d " in pnp_assign_mem()
128 pnp_add_mem_resource(dev, res->start, res->end, res->flags); in pnp_assign_mem()
132 static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx) in pnp_assign_irq() argument
142 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IRQ, idx); in pnp_assign_irq()
144 pnp_dbg(&dev->dev, " irq %d already set to %d flags %#lx\n", in pnp_assign_irq()
156 pnp_dbg(&dev->dev, " irq %d disabled\n", idx); in pnp_assign_irq()
169 if (pnp_check_irq(dev, res)) in pnp_assign_irq()
178 pnp_dbg(&dev->dev, " irq %d disabled (optional)\n", idx); in pnp_assign_irq()
182 pnp_dbg(&dev->dev, " couldn't assign irq %d\n", idx); in pnp_assign_irq()
186 pnp_add_irq_resource(dev, res->start, res->flags); in pnp_assign_irq()
191 static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx) in pnp_assign_dma() argument
201 res = pnp_find_resource(dev, rule->flags, IORESOURCE_DMA, idx); in pnp_assign_dma()
203 pnp_dbg(&dev->dev, " dma %d already set to %d flags %#lx\n", in pnp_assign_dma()
215 pnp_dbg(&dev->dev, " dma %d disabled\n", idx); in pnp_assign_dma()
222 if (pnp_check_dma(dev, res)) in pnp_assign_dma()
227 pnp_dbg(&dev->dev, " couldn't assign dma %d\n", idx); in pnp_assign_dma()
231 pnp_add_dma_resource(dev, res->start, res->flags); in pnp_assign_dma()
236 void pnp_init_resources(struct pnp_dev *dev) in pnp_init_resources() argument
238 pnp_free_resources(dev); in pnp_init_resources()
241 static void pnp_clean_resource_table(struct pnp_dev *dev) in pnp_clean_resource_table() argument
245 list_for_each_entry_safe(pnp_res, tmp, &dev->resources, list) { in pnp_clean_resource_table()
256 static int pnp_assign_resources(struct pnp_dev *dev, int set) in pnp_assign_resources() argument
263 pnp_dbg(&dev->dev, "pnp_assign_resources, try dependent set %d\n", set); in pnp_assign_resources()
265 pnp_clean_resource_table(dev); in pnp_assign_resources()
267 list_for_each_entry(option, &dev->options, list) { in pnp_assign_resources()
274 ret = pnp_assign_port(dev, &option->u.port, nport++); in pnp_assign_resources()
277 ret = pnp_assign_mem(dev, &option->u.mem, nmem++); in pnp_assign_resources()
280 ret = pnp_assign_irq(dev, &option->u.irq, nirq++); in pnp_assign_resources()
284 ret = pnp_assign_dma(dev, &option->u.dma, ndma++); in pnp_assign_resources()
297 pnp_dbg(&dev->dev, "pnp_assign_resources failed (%d)\n", ret); in pnp_assign_resources()
298 pnp_clean_resource_table(dev); in pnp_assign_resources()
300 dbg_pnp_show_resources(dev, "pnp_assign_resources succeeded"); in pnp_assign_resources()
308 int pnp_auto_config_dev(struct pnp_dev *dev) in pnp_auto_config_dev() argument
312 if (!pnp_can_configure(dev)) { in pnp_auto_config_dev()
313 pnp_dbg(&dev->dev, "configuration not supported\n"); in pnp_auto_config_dev()
317 ret = pnp_assign_resources(dev, 0); in pnp_auto_config_dev()
321 for (i = 1; i < dev->num_dependent_sets; i++) { in pnp_auto_config_dev()
322 ret = pnp_assign_resources(dev, i); in pnp_auto_config_dev()
327 dev_err(&dev->dev, "unable to assign resources\n"); in pnp_auto_config_dev()
337 int pnp_start_dev(struct pnp_dev *dev) in pnp_start_dev() argument
339 if (!pnp_can_write(dev)) { in pnp_start_dev()
340 pnp_dbg(&dev->dev, "activation not supported\n"); in pnp_start_dev()
344 dbg_pnp_show_resources(dev, "pnp_start_dev"); in pnp_start_dev()
345 if (dev->protocol->set(dev) < 0) { in pnp_start_dev()
346 dev_err(&dev->dev, "activation failed\n"); in pnp_start_dev()
350 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()
383 int pnp_activate_dev(struct pnp_dev *dev) in pnp_activate_dev() argument
387 if (dev->active) in pnp_activate_dev()
391 if (pnp_auto_config_dev(dev)) in pnp_activate_dev()
394 error = pnp_start_dev(dev); in pnp_activate_dev()
398 dev->active = 1; in pnp_activate_dev()
409 int pnp_disable_dev(struct pnp_dev *dev) in pnp_disable_dev() argument
413 if (!dev->active) in pnp_disable_dev()
416 error = pnp_stop_dev(dev); in pnp_disable_dev()
420 dev->active = 0; in pnp_disable_dev()
424 pnp_clean_resource_table(dev); in pnp_disable_dev()