Lines Matching refs:dev

39 static int macio_bus_match(struct device *dev, struct device_driver *drv)   in macio_bus_match()  argument
46 return of_match_device(matches, dev) != NULL; in macio_bus_match()
49 struct macio_dev *macio_dev_get(struct macio_dev *dev) in macio_dev_get() argument
53 if (!dev) in macio_dev_get()
55 tmp = get_device(&dev->ofdev.dev); in macio_dev_get()
62 void macio_dev_put(struct macio_dev *dev) in macio_dev_put() argument
64 if (dev) in macio_dev_put()
65 put_device(&dev->ofdev.dev); in macio_dev_put()
69 static int macio_device_probe(struct device *dev) in macio_device_probe() argument
76 drv = to_macio_driver(dev->driver); in macio_device_probe()
77 macio_dev = to_macio_device(dev); in macio_device_probe()
84 match = of_match_device(drv->driver.of_match_table, dev); in macio_device_probe()
93 static void macio_device_remove(struct device *dev) in macio_device_remove() argument
95 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_remove()
96 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_remove()
98 if (dev->driver && drv->remove) in macio_device_remove()
103 static void macio_device_shutdown(struct device *dev) in macio_device_shutdown() argument
105 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_shutdown()
106 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_shutdown()
108 if (dev->driver && drv->shutdown) in macio_device_shutdown()
112 static int macio_device_suspend(struct device *dev, pm_message_t state) in macio_device_suspend() argument
114 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_suspend()
115 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_suspend()
117 if (dev->driver && drv->suspend) in macio_device_suspend()
122 static int macio_device_resume(struct device * dev) in macio_device_resume() argument
124 struct macio_dev * macio_dev = to_macio_device(dev); in macio_device_resume()
125 struct macio_driver * drv = to_macio_driver(dev->driver); in macio_device_resume()
127 if (dev->driver && drv->resume) in macio_device_resume()
132 static int macio_device_modalias(const struct device *dev, struct kobj_uevent_env *env) in macio_device_modalias() argument
134 return of_device_uevent_modalias(dev, env); in macio_device_modalias()
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 && of_node_name_eq(np, "floppy")) { 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 && of_node_name_eq(np, "ata4")) { 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()
365 struct macio_dev *dev; in macio_add_one_device() local
371 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in macio_add_one_device()
372 if (!dev) in macio_add_one_device()
375 dev->bus = &chip->lbus; in macio_add_one_device()
376 dev->media_bay = in_bay; in macio_add_one_device()
377 dev->ofdev.dev.of_node = np; in macio_add_one_device()
378 dev->ofdev.archdata.dma_mask = 0xffffffffUL; in macio_add_one_device()
379 dev->ofdev.dev.dma_mask = &dev->ofdev.archdata.dma_mask; in macio_add_one_device()
380 dev->ofdev.dev.coherent_dma_mask = dev->ofdev.archdata.dma_mask; in macio_add_one_device()
381 dev->ofdev.dev.parent = parent; in macio_add_one_device()
382 dev->ofdev.dev.bus = &macio_bus_type; in macio_add_one_device()
383 dev->ofdev.dev.release = macio_release_dev; in macio_add_one_device()
384 dev->ofdev.dev.dma_parms = &dev->dma_parms; in macio_add_one_device()
387 dma_set_max_seg_size(&dev->ofdev.dev, 65536); in macio_add_one_device()
388 dma_set_seg_boundary(&dev->ofdev.dev, 0xffffffff); in macio_add_one_device()
397 dev->ofdev.dev.archdata = chip->lbus.pdev->dev.archdata; in macio_add_one_device()
398 dev->ofdev.dev.dma_ops = chip->lbus.pdev->dev.dma_ops; in macio_add_one_device()
403 dev, &dev->ofdev, &dev->ofdev.dev, &dev->ofdev.dev.kobj); in macio_add_one_device()
409 dev_set_name(&dev->ofdev.dev, "%1d.%08x:%.*s", in macio_add_one_device()
419 dev_set_name(&dev->ofdev.dev, "%1d.%08x:%.*s", in macio_add_one_device()
425 macio_setup_interrupts(dev); in macio_add_one_device()
426 macio_setup_resources(dev, parent_res); in macio_add_one_device()
427 macio_add_missing_resources(dev); in macio_add_one_device()
430 if (of_device_register(&dev->ofdev) != 0) { in macio_add_one_device()
432 dev_name(&dev->ofdev.dev)); in macio_add_one_device()
433 put_device(&dev->ofdev.dev); in macio_add_one_device()
437 return dev; in macio_add_one_device()
467 parent = &chip->lbus.pdev->dev; in macio_pci_add_devices()
486 mdev = macio_add_one_device(chip, &rdev->ofdev.dev, np, NULL, in macio_pci_add_devices()
498 pnode = mbdev->ofdev.dev.of_node; in macio_pci_add_devices()
503 if (macio_add_one_device(chip, &mbdev->ofdev.dev, np, in macio_pci_add_devices()
511 pnode = sdev->ofdev.dev.of_node; in macio_pci_add_devices()
516 if (macio_add_one_device(chip, &sdev->ofdev.dev, np, in macio_pci_add_devices()
553 struct macio_dev *dev = to_macio_device(gendev); in maciom_release() local
557 max = min(dev->n_resources, 32); in maciom_release()
560 macio_release_resource(dev, i); in maciom_release()
564 int macio_enable_devres(struct macio_dev *dev) in macio_enable_devres() argument
568 dr = devres_find(&dev->ofdev.dev, maciom_release, NULL, NULL); in macio_enable_devres()
574 return devres_get(&dev->ofdev.dev, dr, NULL, NULL) != NULL; in macio_enable_devres()
577 static struct macio_devres * find_macio_dr(struct macio_dev *dev) in find_macio_dr() argument
579 return devres_find(&dev->ofdev.dev, maciom_release, NULL, NULL); in find_macio_dr()
596 int macio_request_resource(struct macio_dev *dev, int resource_no, in macio_request_resource() argument
599 struct macio_devres *dr = find_macio_dr(dev); in macio_request_resource()
601 if (macio_resource_len(dev, resource_no) == 0) in macio_request_resource()
604 if (!request_mem_region(macio_resource_start(dev, resource_no), in macio_request_resource()
605 macio_resource_len(dev, resource_no), in macio_request_resource()
618 macio_resource_len(dev, resource_no), in macio_request_resource()
619 macio_resource_start(dev, resource_no), in macio_request_resource()
620 dev_name(&dev->ofdev.dev)); in macio_request_resource()
629 void macio_release_resource(struct macio_dev *dev, int resource_no) in macio_release_resource() argument
631 struct macio_devres *dr = find_macio_dr(dev); in macio_release_resource()
633 if (macio_resource_len(dev, resource_no) == 0) in macio_release_resource()
635 release_mem_region(macio_resource_start(dev, resource_no), in macio_release_resource()
636 macio_resource_len(dev, resource_no)); in macio_release_resource()
653 int macio_request_resources(struct macio_dev *dev, const char *name) in macio_request_resources() argument
657 for (i = 0; i < dev->n_resources; i++) in macio_request_resources()
658 if (macio_request_resource(dev, i, name)) in macio_request_resources()
664 macio_release_resource(dev, i); in macio_request_resources()
674 void macio_release_resources(struct macio_dev *dev) in macio_release_resources() argument
678 for (i = 0; i < dev->n_resources; i++) in macio_release_resources()
679 macio_release_resource(dev, i); in macio_release_resources()