• Home
  • Raw
  • Download

Lines Matching refs:dev

50 static inline int check_dev(struct device *dev)  in check_dev()  argument
52 if (dev->bus == &parisc_bus_type) { in check_dev()
54 pdev = to_parisc_device(dev); in check_dev()
68 static int descend_children(struct device * dev, void * data) in descend_children() argument
72 if (recurse_data->fn(dev, recurse_data->obj)) in descend_children()
75 return device_for_each_child(dev, recurse_data, descend_children); in descend_children()
102 static int match_device(struct parisc_driver *driver, struct parisc_device *dev) in match_device() argument
108 (ids->sversion != dev->id.sversion)) in match_device()
112 (ids->hw_type != dev->id.hw_type)) in match_device()
116 (ids->hversion != dev->id.hversion)) in match_device()
124 static int parisc_driver_probe(struct device *dev) in parisc_driver_probe() argument
127 struct parisc_device *pa_dev = to_parisc_device(dev); in parisc_driver_probe()
128 struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); in parisc_driver_probe()
138 static int parisc_driver_remove(struct device *dev) in parisc_driver_remove() argument
140 struct parisc_device *pa_dev = to_parisc_device(dev); in parisc_driver_remove()
141 struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); in parisc_driver_remove()
189 static int match_and_count(struct device * dev, void * data) in match_and_count() argument
192 struct parisc_device * pdev = to_parisc_device(dev); in match_and_count()
194 if (check_dev(dev)) { in match_and_count()
235 struct parisc_device * dev; member
238 static int find_device(struct device * dev, void * data) in find_device() argument
240 struct parisc_device * pdev = to_parisc_device(dev); in find_device()
243 if (check_dev(dev)) { in find_device()
245 d->dev = pdev; in find_device()
260 return ret ? d.dev : NULL; in find_device_by_addr()
274 const struct device *dev = &padev->dev; in find_pa_parent_type() local
275 while (dev != &root) { in find_pa_parent_type()
276 struct parisc_device *candidate = to_parisc_device(dev); in find_pa_parent_type()
279 dev = dev->parent; in find_pa_parent_type()
292 static void get_node_path(struct device *dev, struct hardware_path *path) in get_node_path() argument
297 if (dev_is_pci(dev)) { in get_node_path()
298 unsigned int devfn = to_pci_dev(dev)->devfn; in get_node_path()
301 dev = dev->parent; in get_node_path()
304 while (dev != &root) { in get_node_path()
305 if (dev_is_pci(dev)) { in get_node_path()
306 unsigned int devfn = to_pci_dev(dev)->devfn; in get_node_path()
308 } else if (dev->bus == &parisc_bus_type) { in get_node_path()
309 path->bc[i--] = to_parisc_device(dev)->hw_path; in get_node_path()
311 dev = dev->parent; in get_node_path()
336 char *print_pa_hwpath(struct parisc_device *dev, char *output) in print_pa_hwpath() argument
340 get_node_path(dev->dev.parent, &path); in print_pa_hwpath()
341 path.mod = dev->hw_path; in print_pa_hwpath()
358 get_node_path(&pdev->dev, path); in get_pci_node_path()
371 char *print_pci_hwpath(struct pci_dev *dev, char *output) in print_pci_hwpath() argument
375 get_pci_node_path(dev, &path); in print_pci_hwpath()
389 get_node_path(padev->dev.parent, &path); in setup_bus_id()
397 dev_set_name(&padev->dev, name); in setup_bus_id()
402 struct parisc_device *dev = kzalloc(sizeof(*dev), GFP_KERNEL); in create_tree_node() local
403 if (!dev) in create_tree_node()
406 dev->hw_path = id; in create_tree_node()
407 dev->id.hw_type = HPHW_FAULTY; in create_tree_node()
409 dev->dev.parent = parent; in create_tree_node()
410 setup_bus_id(dev); in create_tree_node()
412 dev->dev.bus = &parisc_bus_type; in create_tree_node()
413 dev->dma_mask = 0xffffffffUL; /* PARISC devices are 32-bit */ in create_tree_node()
416 dev->dev.dma_mask = &dev->dma_mask; in create_tree_node()
417 dev->dev.coherent_dma_mask = dev->dma_mask; in create_tree_node()
418 if (device_register(&dev->dev)) { in create_tree_node()
419 kfree(dev); in create_tree_node()
423 return dev; in create_tree_node()
428 struct parisc_device * dev; member
431 static int match_by_id(struct device * dev, void * data) in match_by_id() argument
433 struct parisc_device * pdev = to_parisc_device(dev); in match_by_id()
437 d->dev = pdev; in match_by_id()
457 return d.dev; in alloc_tree_node()
469 parent = &alloc_tree_node(parent, modpath->bc[i])->dev; in create_parisc_device()
480 struct parisc_device *dev; in alloc_pa_dev() local
491 dev = create_parisc_device(mod_path); in alloc_pa_dev()
492 if (dev->id.hw_type != HPHW_FAULTY) { in alloc_pa_dev()
497 parisc_pathname(dev), iodc_data[0], iodc_data[1], in alloc_pa_dev()
502 dev->id.hw_type = iodc_data[3] & 0x1f; in alloc_pa_dev()
503 dev->id.hversion = (iodc_data[0] << 4) | ((iodc_data[1] & 0xf0) >> 4); in alloc_pa_dev()
504 dev->id.hversion_rev = iodc_data[1] & 0x0f; in alloc_pa_dev()
505 dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) | in alloc_pa_dev()
507 dev->hpa.name = parisc_pathname(dev); in alloc_pa_dev()
508 dev->hpa.start = hpa; in alloc_pa_dev()
514 dev->hpa.end = hpa + 0x03ffffff; in alloc_pa_dev()
516 dev->hpa.end = hpa + 0x01ffffff; in alloc_pa_dev()
518 dev->hpa.end = hpa + 0xfff; in alloc_pa_dev()
520 dev->hpa.flags = IORESOURCE_MEM; in alloc_pa_dev()
521 name = parisc_hardware_description(&dev->id); in alloc_pa_dev()
523 strlcpy(dev->name, name, sizeof(dev->name)); in alloc_pa_dev()
529 if ((hpa & 0xfff) == 0 && insert_resource(&iomem_resource, &dev->hpa)) in alloc_pa_dev()
533 return dev; in alloc_pa_dev()
536 static int parisc_generic_match(struct device *dev, struct device_driver *drv) in parisc_generic_match() argument
538 return match_device(to_parisc_driver(drv), to_parisc_device(dev)); in parisc_generic_match()
541 static ssize_t make_modalias(struct device *dev, char *buf) in make_modalias() argument
543 const struct parisc_device *padev = to_parisc_device(dev); in make_modalias()
551 static int parisc_uevent(struct device *dev, struct kobj_uevent_env *env) in parisc_uevent() argument
556 if (!dev) in parisc_uevent()
559 padev = to_parisc_device(dev); in parisc_uevent()
566 make_modalias(dev, modalias); in parisc_uevent()
574 static ssize_t name##_show(struct device *dev, struct device_attribute *attr, char *buf) \
576 struct parisc_device *padev = to_parisc_device(dev); \
588 static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) in modalias_show() argument
590 return make_modalias(dev, buf); in modalias_show()
619 int register_parisc_device(struct parisc_device *dev) in register_parisc_device() argument
621 if (!dev) in register_parisc_device()
624 if (dev->driver) in register_parisc_device()
638 static int match_pci_device(struct device *dev, int index, in match_pci_device() argument
641 struct pci_dev *pdev = to_pci_dev(dev); in match_pci_device()
667 static int match_parisc_device(struct device *dev, int index, in match_parisc_device() argument
670 struct parisc_device *curr = to_parisc_device(dev); in match_parisc_device()
679 struct device * dev; member
682 static int check_parent(struct device * dev, void * data) in check_parent() argument
686 if (check_dev(dev)) { in check_parent()
687 if (dev->bus == &parisc_bus_type) { in check_parent()
688 if (match_parisc_device(dev, d->index, d->modpath)) in check_parent()
689 d->dev = dev; in check_parent()
690 } else if (dev_is_pci(dev)) { in check_parent()
691 if (match_pci_device(dev, d->index, d->modpath)) in check_parent()
692 d->dev = dev; in check_parent()
693 } else if (dev->bus == NULL) { in check_parent()
695 struct device *new = parse_tree_node(dev, d->index, d->modpath); in check_parent()
697 d->dev = new; in check_parent()
700 return d->dev != NULL; in check_parent()
729 return d.dev; in parse_tree_node()
760 void device_to_hwpath(struct device *dev, struct hardware_path *path) in device_to_hwpath() argument
763 if (dev->bus == &parisc_bus_type) { in device_to_hwpath()
764 padev = to_parisc_device(dev); in device_to_hwpath()
765 get_node_path(dev->parent, path); in device_to_hwpath()
767 } else if (dev_is_pci(dev)) { in device_to_hwpath()
768 get_node_path(dev, path); in device_to_hwpath()
776 #define BUS_CONVERTER(dev) \ argument
777 ((dev->id.hw_type == HPHW_IOA) || (dev->id.hw_type == HPHW_BCPORT))
779 #define IS_LOWER_PORT(dev) \ argument
780 ((gsc_readl(dev->hpa.start + offsetof(struct bc_module, io_status)) \
789 #define READ_IO_IO_LOW(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_LOW) argument
790 #define READ_IO_IO_HIGH(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_HIGH) argument
795 void walk_lower_bus(struct parisc_device *dev) in walk_lower_bus() argument
799 if (!BUS_CONVERTER(dev) || IS_LOWER_PORT(dev)) in walk_lower_bus()
802 if (dev->id.hw_type == HPHW_IOA) { in walk_lower_bus()
803 io_io_low = (unsigned long)(signed int)(READ_IO_IO_LOW(dev) << 16); in walk_lower_bus()
806 io_io_low = (READ_IO_IO_LOW(dev) + ~FLEX_MASK) & FLEX_MASK; in walk_lower_bus()
807 io_io_high = (READ_IO_IO_HIGH(dev)+ ~FLEX_MASK) & FLEX_MASK; in walk_lower_bus()
810 walk_native_bus(io_io_low, io_io_high, &dev->dev); in walk_lower_bus()
835 struct parisc_device *dev; in walk_native_bus() local
838 dev = find_device_by_addr(hpa); in walk_native_bus()
839 if (!dev) { in walk_native_bus()
841 dev = alloc_pa_dev(hpa, &path); in walk_native_bus()
842 if (!dev) in walk_native_bus()
845 register_parisc_device(dev); in walk_native_bus()
848 walk_lower_bus(dev); in walk_native_bus()
868 static void print_parisc_device(struct parisc_device *dev) in print_parisc_device() argument
873 print_pa_hwpath(dev, hw_path); in print_parisc_device()
875 ++count, dev->name, (void*) dev->hpa.start, hw_path, dev->id.hw_type, in print_parisc_device()
876 dev->id.hversion_rev, dev->id.hversion, dev->id.sversion); in print_parisc_device()
878 if (dev->num_addrs) { in print_parisc_device()
881 for (k = 0; k < dev->num_addrs; k++) in print_parisc_device()
882 pr_cont("0x%lx ", dev->addr[k]); in print_parisc_device()
900 static int print_one_device(struct device * dev, void * data) in print_one_device() argument
902 struct parisc_device * pdev = to_parisc_device(dev); in print_one_device()
904 if (check_dev(dev)) in print_one_device()