Lines Matching refs:dev
42 static int macio_bus_match(struct device *dev, struct device_driver *drv) in macio_bus_match() argument
49 return of_match_device(matches, dev) != NULL; in macio_bus_match()
52 struct macio_dev *macio_dev_get(struct macio_dev *dev) in macio_dev_get() argument
56 if (!dev) in macio_dev_get()
58 tmp = get_device(&dev->ofdev.dev); in macio_dev_get()
65 void macio_dev_put(struct macio_dev *dev) in macio_dev_put() argument
67 if (dev) in macio_dev_put()
68 put_device(&dev->ofdev.dev); in macio_dev_put()
72 static int macio_device_probe(struct device *dev) in macio_device_probe() argument
79 drv = to_macio_driver(dev->driver); in macio_device_probe()
80 macio_dev = to_macio_device(dev); in macio_device_probe()
87 match = of_match_device(drv->driver.of_match_table, dev); in macio_device_probe()
96 static int macio_device_remove(struct device *dev) in macio_device_remove() argument
98 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_remove()
99 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_remove()
101 if (dev->driver && drv->remove) in macio_device_remove()
108 static void macio_device_shutdown(struct device *dev) in macio_device_shutdown() argument
110 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_shutdown()
111 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_shutdown()
113 if (dev->driver && drv->shutdown) in macio_device_shutdown()
117 static int macio_device_suspend(struct device *dev, pm_message_t state) in macio_device_suspend() argument
119 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_suspend()
120 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_suspend()
122 if (dev->driver && drv->suspend) in macio_device_suspend()
127 static int macio_device_resume(struct device * dev) in macio_device_resume() argument
129 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_resume()
130 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_resume()
132 if (dev->driver && drv->resume) in macio_device_resume()
169 static void macio_release_dev(struct device *dev) in macio_release_dev() argument
173 mdev = to_macio_device(dev); in macio_release_dev()
234 static void macio_create_fixup_irq(struct macio_dev *dev, int index, in macio_create_fixup_irq() argument
241 dev->interrupt[index].start = irq; in macio_create_fixup_irq()
242 dev->interrupt[index].flags = IORESOURCE_IRQ; in macio_create_fixup_irq()
243 dev->interrupt[index].name = dev_name(&dev->ofdev.dev); in macio_create_fixup_irq()
245 if (dev->n_interrupts <= index) in macio_create_fixup_irq()
246 dev->n_interrupts = index + 1; in macio_create_fixup_irq()
249 static void macio_add_missing_resources(struct macio_dev *dev) in macio_add_missing_resources() argument
251 struct device_node *np = dev->ofdev.dev.of_node; in macio_add_missing_resources()
255 if (dev->bus->chip->type != macio_gatwick) in macio_add_missing_resources()
265 macio_create_fixup_irq(dev, 0, 15 + irq_base); in macio_add_missing_resources()
266 macio_create_fixup_irq(dev, 1, 4 + irq_base); in macio_add_missing_resources()
267 macio_create_fixup_irq(dev, 2, 5 + irq_base); in macio_add_missing_resources()
273 macio_create_fixup_irq(dev, 0, 29 + irq_base); in macio_add_missing_resources()
278 if (dev->media_bay != NULL && strcmp(np->name, "floppy") == 0) { in macio_add_missing_resources()
279 macio_create_fixup_irq(dev, 0, 19 + irq_base); in macio_add_missing_resources()
280 macio_create_fixup_irq(dev, 1, 1 + irq_base); in macio_add_missing_resources()
283 if (dev->media_bay != NULL && strcasecmp(np->name, "ata4") == 0) { in macio_add_missing_resources()
284 macio_create_fixup_irq(dev, 0, 14 + irq_base); in macio_add_missing_resources()
285 macio_create_fixup_irq(dev, 0, 3 + irq_base); in macio_add_missing_resources()
290 static void macio_setup_interrupts(struct macio_dev *dev) in macio_setup_interrupts() argument
292 struct device_node *np = dev->ofdev.dev.of_node; in macio_setup_interrupts()
301 res = &dev->interrupt[j]; in macio_setup_interrupts()
307 res->name = dev_name(&dev->ofdev.dev); in macio_setup_interrupts()
314 dev->n_interrupts = j; in macio_setup_interrupts()
317 static void macio_setup_resources(struct macio_dev *dev, in macio_setup_resources() argument
320 struct device_node *np = dev->ofdev.dev.of_node; in macio_setup_resources()
328 res = &dev->resource[index]; in macio_setup_resources()
330 res->name = dev_name(&dev->ofdev.dev); in macio_setup_resources()
343 index, dev_name(&dev->ofdev.dev)); in macio_setup_resources()
346 dev->n_resources = index; in macio_setup_resources()
364 struct macio_dev *dev; in macio_add_one_device() local
370 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in macio_add_one_device()
371 if (!dev) in macio_add_one_device()
374 dev->bus = &chip->lbus; in macio_add_one_device()
375 dev->media_bay = in_bay; in macio_add_one_device()
376 dev->ofdev.dev.of_node = np; in macio_add_one_device()
377 dev->ofdev.archdata.dma_mask = 0xffffffffUL; in macio_add_one_device()
378 dev->ofdev.dev.dma_mask = &dev->ofdev.archdata.dma_mask; in macio_add_one_device()
379 dev->ofdev.dev.parent = parent; in macio_add_one_device()
380 dev->ofdev.dev.bus = &macio_bus_type; in macio_add_one_device()
381 dev->ofdev.dev.release = macio_release_dev; in macio_add_one_device()
382 dev->ofdev.dev.dma_parms = &dev->dma_parms; in macio_add_one_device()
385 dma_set_max_seg_size(&dev->ofdev.dev, 65536); in macio_add_one_device()
386 dma_set_seg_boundary(&dev->ofdev.dev, 0xffffffff); in macio_add_one_device()
395 dev->ofdev.dev.archdata = chip->lbus.pdev->dev.archdata; in macio_add_one_device()
400 dev, &dev->ofdev, &dev->ofdev.dev, &dev->ofdev.dev.kobj); in macio_add_one_device()
405 dev_set_name(&dev->ofdev.dev, "%1d.%08x:%.*s", in macio_add_one_device()
415 dev_set_name(&dev->ofdev.dev, "%1d.%08x:%.*s", in macio_add_one_device()
421 macio_setup_interrupts(dev); in macio_add_one_device()
422 macio_setup_resources(dev, parent_res); in macio_add_one_device()
423 macio_add_missing_resources(dev); in macio_add_one_device()
426 if (of_device_register(&dev->ofdev) != 0) { in macio_add_one_device()
428 dev_name(&dev->ofdev.dev)); in macio_add_one_device()
429 kfree(dev); in macio_add_one_device()
433 return dev; in macio_add_one_device()
466 parent = &chip->lbus.pdev->dev; in macio_pci_add_devices()
485 mdev = macio_add_one_device(chip, &rdev->ofdev.dev, np, NULL, in macio_pci_add_devices()
497 pnode = mbdev->ofdev.dev.of_node; in macio_pci_add_devices()
502 if (macio_add_one_device(chip, &mbdev->ofdev.dev, np, in macio_pci_add_devices()
510 pnode = sdev->ofdev.dev.of_node; in macio_pci_add_devices()
515 if (macio_add_one_device(chip, &sdev->ofdev.dev, np, in macio_pci_add_devices()
552 struct macio_dev *dev = to_macio_device(gendev); in maciom_release() local
556 max = min(dev->n_resources, 32); in maciom_release()
559 macio_release_resource(dev, i); in maciom_release()
563 int macio_enable_devres(struct macio_dev *dev) in macio_enable_devres() argument
567 dr = devres_find(&dev->ofdev.dev, maciom_release, NULL, NULL); in macio_enable_devres()
573 return devres_get(&dev->ofdev.dev, dr, NULL, NULL) != NULL; in macio_enable_devres()
576 static struct macio_devres * find_macio_dr(struct macio_dev *dev) in find_macio_dr() argument
578 return devres_find(&dev->ofdev.dev, maciom_release, NULL, NULL); in find_macio_dr()
595 int macio_request_resource(struct macio_dev *dev, int resource_no, in macio_request_resource() argument
598 struct macio_devres *dr = find_macio_dr(dev); in macio_request_resource()
600 if (macio_resource_len(dev, resource_no) == 0) in macio_request_resource()
603 if (!request_mem_region(macio_resource_start(dev, resource_no), in macio_request_resource()
604 macio_resource_len(dev, resource_no), in macio_request_resource()
617 macio_resource_len(dev, resource_no), in macio_request_resource()
618 macio_resource_start(dev, resource_no), in macio_request_resource()
619 dev_name(&dev->ofdev.dev)); in macio_request_resource()
628 void macio_release_resource(struct macio_dev *dev, int resource_no) in macio_release_resource() argument
630 struct macio_devres *dr = find_macio_dr(dev); in macio_release_resource()
632 if (macio_resource_len(dev, resource_no) == 0) in macio_release_resource()
634 release_mem_region(macio_resource_start(dev, resource_no), in macio_release_resource()
635 macio_resource_len(dev, resource_no)); in macio_release_resource()
652 int macio_request_resources(struct macio_dev *dev, const char *name) in macio_request_resources() argument
656 for (i = 0; i < dev->n_resources; i++) in macio_request_resources()
657 if (macio_request_resource(dev, i, name)) in macio_request_resources()
663 macio_release_resource(dev, i); in macio_request_resources()
673 void macio_release_resources(struct macio_dev *dev) in macio_release_resources() argument
677 for (i = 0; i < dev->n_resources; i++) in macio_release_resources()
678 macio_release_resource(dev, i); in macio_release_resources()