Lines Matching refs:dev

48 static inline int check_dev(struct device *dev)  in check_dev()  argument
50 if (dev->bus == &parisc_bus_type) { in check_dev()
52 pdev = to_parisc_device(dev); in check_dev()
66 static int descend_children(struct device * dev, void * data) in descend_children() argument
70 if (recurse_data->fn(dev, recurse_data->obj)) in descend_children()
73 return device_for_each_child(dev, recurse_data, descend_children); in descend_children()
100 static int match_device(struct parisc_driver *driver, struct parisc_device *dev) in match_device() argument
106 (ids->sversion != dev->id.sversion)) in match_device()
110 (ids->hw_type != dev->id.hw_type)) in match_device()
114 (ids->hversion != dev->id.hversion)) in match_device()
122 static int parisc_driver_probe(struct device *dev) in parisc_driver_probe() argument
125 struct parisc_device *pa_dev = to_parisc_device(dev); in parisc_driver_probe()
126 struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); in parisc_driver_probe()
136 static void __exit parisc_driver_remove(struct device *dev) in parisc_driver_remove() argument
138 struct parisc_device *pa_dev = to_parisc_device(dev); in parisc_driver_remove()
139 struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); in parisc_driver_remove()
183 static int match_and_count(struct device * dev, void * data) in match_and_count() argument
186 struct parisc_device * pdev = to_parisc_device(dev); in match_and_count()
188 if (check_dev(dev)) { in match_and_count()
229 struct parisc_device * dev; member
232 static int find_device(struct device * dev, void * data) in find_device() argument
234 struct parisc_device * pdev = to_parisc_device(dev); in find_device()
237 if (check_dev(dev)) { in find_device()
239 d->dev = pdev; in find_device()
254 return ret ? d.dev : NULL; in find_device_by_addr()
257 static int __init is_IKE_device(struct device *dev, void *data) in is_IKE_device() argument
259 struct parisc_device *pdev = to_parisc_device(dev); in is_IKE_device()
261 if (!check_dev(dev)) in is_IKE_device()
292 const struct device *dev = &padev->dev; in find_pa_parent_type() local
293 while (dev != &root) { in find_pa_parent_type()
294 struct parisc_device *candidate = to_parisc_device(dev); in find_pa_parent_type()
297 dev = dev->parent; in find_pa_parent_type()
310 static void get_node_path(struct device *dev, struct hardware_path *path) in get_node_path() argument
315 if (dev_is_pci(dev)) { in get_node_path()
316 unsigned int devfn = to_pci_dev(dev)->devfn; in get_node_path()
319 dev = dev->parent; in get_node_path()
322 while (dev != &root) { in get_node_path()
323 if (dev_is_pci(dev)) { in get_node_path()
324 unsigned int devfn = to_pci_dev(dev)->devfn; in get_node_path()
326 } else if (dev->bus == &parisc_bus_type) { in get_node_path()
327 path->bc[i--] = to_parisc_device(dev)->hw_path; in get_node_path()
329 dev = dev->parent; in get_node_path()
354 char *print_pa_hwpath(struct parisc_device *dev, char *output) in print_pa_hwpath() argument
358 get_node_path(dev->dev.parent, &path); in print_pa_hwpath()
359 path.mod = dev->hw_path; in print_pa_hwpath()
376 get_node_path(&pdev->dev, path); in get_pci_node_path()
389 char *print_pci_hwpath(struct pci_dev *dev, char *output) in print_pci_hwpath() argument
393 get_pci_node_path(dev, &path); in print_pci_hwpath()
407 get_node_path(padev->dev.parent, &path); in setup_bus_id()
415 dev_set_name(&padev->dev, name); in setup_bus_id()
421 struct parisc_device *dev = kzalloc(sizeof(*dev), GFP_KERNEL); in create_tree_node() local
422 if (!dev) in create_tree_node()
425 dev->hw_path = id; in create_tree_node()
426 dev->id.hw_type = HPHW_FAULTY; in create_tree_node()
428 dev->dev.parent = parent; in create_tree_node()
429 setup_bus_id(dev); in create_tree_node()
431 dev->dev.bus = &parisc_bus_type; in create_tree_node()
432 dev->dma_mask = 0xffffffffUL; /* PARISC devices are 32-bit */ in create_tree_node()
435 dev->dev.dma_mask = &dev->dma_mask; in create_tree_node()
436 dev->dev.coherent_dma_mask = dev->dma_mask; in create_tree_node()
437 if (device_register(&dev->dev)) { in create_tree_node()
438 kfree(dev); in create_tree_node()
442 return dev; in create_tree_node()
447 struct parisc_device * dev; member
450 static int match_by_id(struct device * dev, void * data) in match_by_id() argument
452 struct parisc_device * pdev = to_parisc_device(dev); in match_by_id()
456 d->dev = pdev; in match_by_id()
477 return d.dev; in alloc_tree_node()
489 parent = &alloc_tree_node(parent, modpath->bc[i])->dev; in create_parisc_device()
500 struct parisc_device *dev; in alloc_pa_dev() local
511 dev = create_parisc_device(mod_path); in alloc_pa_dev()
512 if (dev->id.hw_type != HPHW_FAULTY) { in alloc_pa_dev()
515 parisc_pathname(dev), iodc_data); in alloc_pa_dev()
519 dev->id.hw_type = iodc_data[3] & 0x1f; in alloc_pa_dev()
520 dev->id.hversion = (iodc_data[0] << 4) | ((iodc_data[1] & 0xf0) >> 4); in alloc_pa_dev()
521 dev->id.hversion_rev = iodc_data[1] & 0x0f; in alloc_pa_dev()
522 dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) | in alloc_pa_dev()
524 dev->hpa.start = hpa; in alloc_pa_dev()
530 dev->hpa.end = hpa + 0x03ffffff; in alloc_pa_dev()
532 dev->hpa.end = hpa + 0x01ffffff; in alloc_pa_dev()
534 dev->hpa.end = hpa + 0xfff; in alloc_pa_dev()
536 dev->hpa.flags = IORESOURCE_MEM; in alloc_pa_dev()
537 dev->hpa.name = dev->name; in alloc_pa_dev()
538 name = parisc_hardware_description(&dev->id) ? : "unknown"; in alloc_pa_dev()
539 snprintf(dev->name, sizeof(dev->name), "%s [%s]", in alloc_pa_dev()
540 name, parisc_pathname(dev)); in alloc_pa_dev()
545 if ((hpa & 0xfff) == 0 && insert_resource(&iomem_resource, &dev->hpa)) in alloc_pa_dev()
548 return dev; in alloc_pa_dev()
551 static int parisc_generic_match(struct device *dev, struct device_driver *drv) in parisc_generic_match() argument
553 return match_device(to_parisc_driver(drv), to_parisc_device(dev)); in parisc_generic_match()
556 static ssize_t make_modalias(const struct device *dev, char *buf) in make_modalias() argument
558 const struct parisc_device *padev = to_parisc_device(dev); in make_modalias()
566 static int parisc_uevent(const struct device *dev, struct kobj_uevent_env *env) in parisc_uevent() argument
571 if (!dev) in parisc_uevent()
574 padev = to_parisc_device(dev); in parisc_uevent()
581 make_modalias(dev, modalias); in parisc_uevent()
589 static ssize_t name##_show(struct device *dev, struct device_attribute *attr, char *buf) \
591 struct parisc_device *padev = to_parisc_device(dev); \
604 static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) in modalias_show() argument
606 return make_modalias(dev, buf); in modalias_show()
637 int __init register_parisc_device(struct parisc_device *dev) in register_parisc_device() argument
639 if (!dev) in register_parisc_device()
642 if (dev->driver) in register_parisc_device()
656 static int match_pci_device(struct device *dev, int index, in match_pci_device() argument
659 struct pci_dev *pdev = to_pci_dev(dev); in match_pci_device()
685 static int match_parisc_device(struct device *dev, int index, in match_parisc_device() argument
688 struct parisc_device *curr = to_parisc_device(dev); in match_parisc_device()
697 struct device * dev; member
700 static int check_parent(struct device * dev, void * data) in check_parent() argument
704 if (check_dev(dev)) { in check_parent()
705 if (dev->bus == &parisc_bus_type) { in check_parent()
706 if (match_parisc_device(dev, d->index, d->modpath)) in check_parent()
707 d->dev = dev; in check_parent()
708 } else if (dev_is_pci(dev)) { in check_parent()
709 if (match_pci_device(dev, d->index, d->modpath)) in check_parent()
710 d->dev = dev; in check_parent()
711 } else if (dev->bus == NULL) { in check_parent()
713 struct device *new = parse_tree_node(dev, d->index, d->modpath); in check_parent()
715 d->dev = new; in check_parent()
718 return d->dev != NULL; in check_parent()
747 return d.dev; in parse_tree_node()
778 void device_to_hwpath(struct device *dev, struct hardware_path *path) in device_to_hwpath() argument
781 if (dev->bus == &parisc_bus_type) { in device_to_hwpath()
782 padev = to_parisc_device(dev); in device_to_hwpath()
783 get_node_path(dev->parent, path); in device_to_hwpath()
785 } else if (dev_is_pci(dev)) { in device_to_hwpath()
786 get_node_path(dev, path); in device_to_hwpath()
794 #define BUS_CONVERTER(dev) \ argument
795 ((dev->id.hw_type == HPHW_IOA) || (dev->id.hw_type == HPHW_BCPORT))
797 #define IS_LOWER_PORT(dev) \ argument
798 ((gsc_readl(dev->hpa.start + offsetof(struct bc_module, io_status)) \
807 #define READ_IO_IO_LOW(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_LOW) argument
808 #define READ_IO_IO_HIGH(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_HIGH) argument
813 static void __init walk_lower_bus(struct parisc_device *dev) in walk_lower_bus() argument
817 if (!BUS_CONVERTER(dev) || IS_LOWER_PORT(dev)) in walk_lower_bus()
820 if (dev->id.hw_type == HPHW_IOA) { in walk_lower_bus()
821 io_io_low = (unsigned long)(signed int)(READ_IO_IO_LOW(dev) << 16); in walk_lower_bus()
824 io_io_low = (READ_IO_IO_LOW(dev) + ~FLEX_MASK) & FLEX_MASK; in walk_lower_bus()
825 io_io_high = (READ_IO_IO_HIGH(dev)+ ~FLEX_MASK) & FLEX_MASK; in walk_lower_bus()
828 walk_native_bus(io_io_low, io_io_high, &dev->dev); in walk_lower_bus()
853 struct parisc_device *dev; in walk_native_bus() local
856 dev = find_device_by_addr(hpa); in walk_native_bus()
857 if (!dev) { in walk_native_bus()
859 dev = alloc_pa_dev(hpa, &path); in walk_native_bus()
860 if (!dev) in walk_native_bus()
863 register_parisc_device(dev); in walk_native_bus()
866 walk_lower_bus(dev); in walk_native_bus()
886 static __init void print_parisc_device(struct parisc_device *dev) in print_parisc_device() argument
891 ++count, dev->name, &(dev->hpa.start), dev->id.hw_type, in print_parisc_device()
892 dev->id.hversion, dev->id.sversion, dev->id.hversion_rev); in print_parisc_device()
894 if (dev->num_addrs) { in print_parisc_device()
897 for (k = 0; k < dev->num_addrs; k++) in print_parisc_device()
898 pr_cont("0x%lx ", dev->addr[k]); in print_parisc_device()
964 struct parisc_device *dev = to_parisc_device(lin_dev); in qemu_print_hpa() local
965 unsigned long hpa = dev->hpa.start; in qemu_print_hpa()
988 struct parisc_device *dev = to_parisc_device(lin_dev); in qemu_print_iodc_data() local
990 unsigned long hpa = dev->hpa.start; in qemu_print_iodc_data()
1011 hpa, parisc_hardware_description(&dev->id)); in qemu_print_iodc_data()
1068 pr_info("#define HPA_%08lx_num_addr %d\n", hpa, dev->num_addrs); in qemu_print_iodc_data()
1071 if (dev->num_addrs == 0) in qemu_print_iodc_data()
1073 while (count < dev->num_addrs) { in qemu_print_iodc_data()
1074 pr_cont("0x%08lx, ", dev->addr[count]); in qemu_print_iodc_data()
1084 static __init int print_one_device(struct device * dev, void * data) in print_one_device() argument
1086 struct parisc_device * pdev = to_parisc_device(dev); in print_one_device()
1088 if (check_dev(dev)) in print_one_device()