• Home
  • Raw
  • Download

Lines Matching refs:dev

49 static inline int check_dev(struct device *dev)  in check_dev()  argument
51 if (dev->bus == &parisc_bus_type) { in check_dev()
53 pdev = to_parisc_device(dev); in check_dev()
67 static int descend_children(struct device * dev, void * data) in descend_children() argument
71 if (recurse_data->fn(dev, recurse_data->obj)) in descend_children()
74 return device_for_each_child(dev, recurse_data, descend_children); in descend_children()
101 static int match_device(struct parisc_driver *driver, struct parisc_device *dev) in match_device() argument
107 (ids->sversion != dev->id.sversion)) in match_device()
111 (ids->hw_type != dev->id.hw_type)) in match_device()
115 (ids->hversion != dev->id.hversion)) in match_device()
123 static int parisc_driver_probe(struct device *dev) in parisc_driver_probe() argument
126 struct parisc_device *pa_dev = to_parisc_device(dev); in parisc_driver_probe()
127 struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); in parisc_driver_probe()
137 static int parisc_driver_remove(struct device *dev) in parisc_driver_remove() argument
139 struct parisc_device *pa_dev = to_parisc_device(dev); in parisc_driver_remove()
140 struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); in parisc_driver_remove()
188 static int match_and_count(struct device * dev, void * data) in match_and_count() argument
191 struct parisc_device * pdev = to_parisc_device(dev); in match_and_count()
193 if (check_dev(dev)) { in match_and_count()
234 struct parisc_device * dev; member
237 static int find_device(struct device * dev, void * data) in find_device() argument
239 struct parisc_device * pdev = to_parisc_device(dev); in find_device()
242 if (check_dev(dev)) { in find_device()
244 d->dev = pdev; in find_device()
259 return ret ? d.dev : NULL; in find_device_by_addr()
273 const struct device *dev = &padev->dev; in find_pa_parent_type() local
274 while (dev != &root) { in find_pa_parent_type()
275 struct parisc_device *candidate = to_parisc_device(dev); in find_pa_parent_type()
278 dev = dev->parent; in find_pa_parent_type()
285 static inline int is_pci_dev(struct device *dev) in is_pci_dev() argument
287 return dev->bus == &pci_bus_type; in is_pci_dev()
290 static inline int is_pci_dev(struct device *dev) in is_pci_dev() argument
303 static void get_node_path(struct device *dev, struct hardware_path *path) in get_node_path() argument
308 if (is_pci_dev(dev)) { in get_node_path()
309 unsigned int devfn = to_pci_dev(dev)->devfn; in get_node_path()
312 dev = dev->parent; in get_node_path()
315 while (dev != &root) { in get_node_path()
316 if (is_pci_dev(dev)) { in get_node_path()
317 unsigned int devfn = to_pci_dev(dev)->devfn; in get_node_path()
319 } else if (dev->bus == &parisc_bus_type) { in get_node_path()
320 path->bc[i--] = to_parisc_device(dev)->hw_path; in get_node_path()
322 dev = dev->parent; in get_node_path()
347 char *print_pa_hwpath(struct parisc_device *dev, char *output) in print_pa_hwpath() argument
351 get_node_path(dev->dev.parent, &path); in print_pa_hwpath()
352 path.mod = dev->hw_path; in print_pa_hwpath()
369 get_node_path(&pdev->dev, path); in get_pci_node_path()
382 char *print_pci_hwpath(struct pci_dev *dev, char *output) in print_pci_hwpath() argument
386 get_pci_node_path(dev, &path); in print_pci_hwpath()
400 get_node_path(padev->dev.parent, &path); in setup_bus_id()
408 dev_set_name(&padev->dev, name); in setup_bus_id()
413 struct parisc_device *dev = kzalloc(sizeof(*dev), GFP_KERNEL); in create_tree_node() local
414 if (!dev) in create_tree_node()
417 dev->hw_path = id; in create_tree_node()
418 dev->id.hw_type = HPHW_FAULTY; in create_tree_node()
420 dev->dev.parent = parent; in create_tree_node()
421 setup_bus_id(dev); in create_tree_node()
423 dev->dev.bus = &parisc_bus_type; in create_tree_node()
424 dev->dma_mask = 0xffffffffUL; /* PARISC devices are 32-bit */ in create_tree_node()
427 dev->dev.dma_mask = &dev->dma_mask; in create_tree_node()
428 dev->dev.coherent_dma_mask = dev->dma_mask; in create_tree_node()
429 if (device_register(&dev->dev)) { in create_tree_node()
430 kfree(dev); in create_tree_node()
434 return dev; in create_tree_node()
439 struct parisc_device * dev; member
442 static int match_by_id(struct device * dev, void * data) in match_by_id() argument
444 struct parisc_device * pdev = to_parisc_device(dev); in match_by_id()
448 d->dev = pdev; in match_by_id()
468 return d.dev; in alloc_tree_node()
480 parent = &alloc_tree_node(parent, modpath->bc[i])->dev; in create_parisc_device()
491 struct parisc_device *dev; in alloc_pa_dev() local
502 dev = create_parisc_device(mod_path); in alloc_pa_dev()
503 if (dev->id.hw_type != HPHW_FAULTY) { in alloc_pa_dev()
508 parisc_pathname(dev), iodc_data[0], iodc_data[1], in alloc_pa_dev()
513 dev->id.hw_type = iodc_data[3] & 0x1f; in alloc_pa_dev()
514 dev->id.hversion = (iodc_data[0] << 4) | ((iodc_data[1] & 0xf0) >> 4); in alloc_pa_dev()
515 dev->id.hversion_rev = iodc_data[1] & 0x0f; in alloc_pa_dev()
516 dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) | in alloc_pa_dev()
518 dev->hpa.name = parisc_pathname(dev); in alloc_pa_dev()
519 dev->hpa.start = hpa; in alloc_pa_dev()
525 dev->hpa.end = hpa + 0x03ffffff; in alloc_pa_dev()
527 dev->hpa.end = hpa + 0x01ffffff; in alloc_pa_dev()
529 dev->hpa.end = hpa + 0xfff; in alloc_pa_dev()
531 dev->hpa.flags = IORESOURCE_MEM; in alloc_pa_dev()
532 name = parisc_hardware_description(&dev->id); in alloc_pa_dev()
534 strlcpy(dev->name, name, sizeof(dev->name)); in alloc_pa_dev()
540 if ((hpa & 0xfff) == 0 && insert_resource(&iomem_resource, &dev->hpa)) in alloc_pa_dev()
544 return dev; in alloc_pa_dev()
547 static int parisc_generic_match(struct device *dev, struct device_driver *drv) in parisc_generic_match() argument
549 return match_device(to_parisc_driver(drv), to_parisc_device(dev)); in parisc_generic_match()
552 static ssize_t make_modalias(struct device *dev, char *buf) in make_modalias() argument
554 const struct parisc_device *padev = to_parisc_device(dev); in make_modalias()
562 static int parisc_uevent(struct device *dev, struct kobj_uevent_env *env) in parisc_uevent() argument
567 if (!dev) in parisc_uevent()
570 padev = to_parisc_device(dev); in parisc_uevent()
577 make_modalias(dev, modalias); in parisc_uevent()
585 static ssize_t name##_show(struct device *dev, struct device_attribute *attr, char *buf) \
587 struct parisc_device *padev = to_parisc_device(dev); \
599 static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) in modalias_show() argument
601 return make_modalias(dev, buf); in modalias_show()
630 int register_parisc_device(struct parisc_device *dev) in register_parisc_device() argument
632 if (!dev) in register_parisc_device()
635 if (dev->driver) in register_parisc_device()
649 static int match_pci_device(struct device *dev, int index, in match_pci_device() argument
652 struct pci_dev *pdev = to_pci_dev(dev); in match_pci_device()
674 static int match_parisc_device(struct device *dev, int index, in match_parisc_device() argument
677 struct parisc_device *curr = to_parisc_device(dev); in match_parisc_device()
686 struct device * dev; member
689 static int check_parent(struct device * dev, void * data) in check_parent() argument
693 if (check_dev(dev)) { in check_parent()
694 if (dev->bus == &parisc_bus_type) { in check_parent()
695 if (match_parisc_device(dev, d->index, d->modpath)) in check_parent()
696 d->dev = dev; in check_parent()
697 } else if (is_pci_dev(dev)) { in check_parent()
698 if (match_pci_device(dev, d->index, d->modpath)) in check_parent()
699 d->dev = dev; in check_parent()
700 } else if (dev->bus == NULL) { in check_parent()
702 struct device *new = parse_tree_node(dev, d->index, d->modpath); in check_parent()
704 d->dev = new; in check_parent()
707 return d->dev != NULL; in check_parent()
736 return d.dev; in parse_tree_node()
767 void device_to_hwpath(struct device *dev, struct hardware_path *path) in device_to_hwpath() argument
770 if (dev->bus == &parisc_bus_type) { in device_to_hwpath()
771 padev = to_parisc_device(dev); in device_to_hwpath()
772 get_node_path(dev->parent, path); in device_to_hwpath()
774 } else if (is_pci_dev(dev)) { in device_to_hwpath()
775 get_node_path(dev, path); in device_to_hwpath()
783 #define BUS_CONVERTER(dev) \ argument
784 ((dev->id.hw_type == HPHW_IOA) || (dev->id.hw_type == HPHW_BCPORT))
786 #define IS_LOWER_PORT(dev) \ argument
787 ((gsc_readl(dev->hpa.start + offsetof(struct bc_module, io_status)) \
796 #define READ_IO_IO_LOW(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_LOW) argument
797 #define READ_IO_IO_HIGH(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_HIGH) argument
802 void walk_lower_bus(struct parisc_device *dev) in walk_lower_bus() argument
806 if (!BUS_CONVERTER(dev) || IS_LOWER_PORT(dev)) in walk_lower_bus()
809 if (dev->id.hw_type == HPHW_IOA) { in walk_lower_bus()
810 io_io_low = (unsigned long)(signed int)(READ_IO_IO_LOW(dev) << 16); in walk_lower_bus()
813 io_io_low = (READ_IO_IO_LOW(dev) + ~FLEX_MASK) & FLEX_MASK; in walk_lower_bus()
814 io_io_high = (READ_IO_IO_HIGH(dev)+ ~FLEX_MASK) & FLEX_MASK; in walk_lower_bus()
817 walk_native_bus(io_io_low, io_io_high, &dev->dev); in walk_lower_bus()
842 struct parisc_device *dev; in walk_native_bus() local
845 dev = find_device_by_addr(hpa); in walk_native_bus()
846 if (!dev) { in walk_native_bus()
848 dev = alloc_pa_dev(hpa, &path); in walk_native_bus()
849 if (!dev) in walk_native_bus()
852 register_parisc_device(dev); in walk_native_bus()
855 walk_lower_bus(dev); in walk_native_bus()
875 static void print_parisc_device(struct parisc_device *dev) in print_parisc_device() argument
880 print_pa_hwpath(dev, hw_path); in print_parisc_device()
882 ++count, dev->name, (void*) dev->hpa.start, hw_path, dev->id.hw_type, in print_parisc_device()
883 dev->id.hversion_rev, dev->id.hversion, dev->id.sversion); in print_parisc_device()
885 if (dev->num_addrs) { in print_parisc_device()
888 for (k = 0; k < dev->num_addrs; k++) in print_parisc_device()
889 printk("0x%lx ", dev->addr[k]); in print_parisc_device()
907 static int print_one_device(struct device * dev, void * data) in print_one_device() argument
909 struct parisc_device * pdev = to_parisc_device(dev); in print_one_device()
911 if (check_dev(dev)) in print_one_device()