Lines Matching refs:dev

45 static void __fw_devlink_link_to_consumers(struct device *dev);
183 if (fwnode->dev) in fw_devlink_purge_absent_suppliers()
229 if (fwnode->dev && fwnode->dev->bus) in __fw_devlink_pickup_dangling_consumers()
278 static bool device_is_ancestor(struct device *dev, struct device *target) in device_is_ancestor() argument
282 if (dev == target) in device_is_ancestor()
304 int device_is_dependent(struct device *dev, void *target) in device_is_dependent() argument
314 if (dev == target || device_is_ancestor(dev, target)) in device_is_dependent()
317 ret = device_for_each_child(dev, target, device_is_dependent); in device_is_dependent()
321 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_is_dependent()
379 static int device_reorder_to_tail(struct device *dev, void *not_used) in device_reorder_to_tail() argument
387 if (device_is_registered(dev)) in device_reorder_to_tail()
388 devices_kset_move_last(dev); in device_reorder_to_tail()
390 if (device_pm_initialized(dev)) in device_reorder_to_tail()
391 device_pm_move_last(dev); in device_reorder_to_tail()
393 device_for_each_child(dev, NULL, device_reorder_to_tail); in device_reorder_to_tail()
394 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_reorder_to_tail()
412 void device_pm_move_to_tail(struct device *dev) in device_pm_move_to_tail() argument
418 device_reorder_to_tail(dev, NULL); in device_pm_move_to_tail()
423 #define to_devlink(dev) container_of((dev), struct device_link, link_dev) argument
425 static ssize_t status_show(struct device *dev, in status_show() argument
430 switch (to_devlink(dev)->status) { in status_show()
458 static ssize_t auto_remove_on_show(struct device *dev, in auto_remove_on_show() argument
461 struct device_link *link = to_devlink(dev); in auto_remove_on_show()
475 static ssize_t runtime_pm_show(struct device *dev, in runtime_pm_show() argument
478 struct device_link *link = to_devlink(dev); in runtime_pm_show()
484 static ssize_t sync_state_only_show(struct device *dev, in sync_state_only_show() argument
487 struct device_link *link = to_devlink(dev); in sync_state_only_show()
528 static void devlink_dev_release(struct device *dev) in devlink_dev_release() argument
530 struct device_link *link = to_devlink(dev); in devlink_dev_release()
562 static int devlink_add_symlinks(struct device *dev) in devlink_add_symlinks() argument
566 struct device_link *link = to_devlink(dev); in devlink_add_symlinks()
611 static void devlink_remove_symlinks(struct device *dev) in devlink_remove_symlinks() argument
613 struct device_link *link = to_devlink(dev); in devlink_remove_symlinks()
997 static void device_links_missing_supplier(struct device *dev) in device_links_missing_supplier() argument
1001 list_for_each_entry(link, &dev->links.suppliers, c_node) { in device_links_missing_supplier()
1014 static bool dev_is_best_effort(struct device *dev) in dev_is_best_effort() argument
1016 return (fw_devlink_best_effort && dev->can_match) || in dev_is_best_effort()
1017 (dev->fwnode && (dev->fwnode->flags & FWNODE_FLAG_BEST_EFFORT)); in dev_is_best_effort()
1051 int device_links_check_suppliers(struct device *dev) in device_links_check_suppliers() argument
1062 sup_fw = fwnode_links_check_suppliers(dev->fwnode); in device_links_check_suppliers()
1064 if (!dev_is_best_effort(dev)) { in device_links_check_suppliers()
1066 dev_err_probe(dev, -EPROBE_DEFER, in device_links_check_suppliers()
1078 list_for_each_entry(link, &dev->links.suppliers, c_node) { in device_links_check_suppliers()
1085 if (dev_is_best_effort(dev) && in device_links_check_suppliers()
1092 device_links_missing_supplier(dev); in device_links_check_suppliers()
1093 dev_err_probe(dev, -EPROBE_DEFER, in device_links_check_suppliers()
1101 dev->links.status = DL_DEV_PROBING; in device_links_check_suppliers()
1126 static void __device_links_queue_sync_state(struct device *dev, in __device_links_queue_sync_state() argument
1131 if (!dev_has_sync_state(dev)) in __device_links_queue_sync_state()
1133 if (dev->state_synced) in __device_links_queue_sync_state()
1136 list_for_each_entry(link, &dev->links.consumers, s_node) { in __device_links_queue_sync_state()
1148 dev->state_synced = true; in __device_links_queue_sync_state()
1150 if (WARN_ON(!list_empty(&dev->links.defer_sync))) in __device_links_queue_sync_state()
1153 get_device(dev); in __device_links_queue_sync_state()
1154 list_add_tail(&dev->links.defer_sync, list); in __device_links_queue_sync_state()
1170 struct device *dev, *tmp; in device_links_flush_sync_list() local
1172 list_for_each_entry_safe(dev, tmp, list, links.defer_sync) { in device_links_flush_sync_list()
1173 list_del_init(&dev->links.defer_sync); in device_links_flush_sync_list()
1175 if (dev != dont_lock_dev) in device_links_flush_sync_list()
1176 device_lock(dev); in device_links_flush_sync_list()
1178 dev_sync_state(dev); in device_links_flush_sync_list()
1180 if (dev != dont_lock_dev) in device_links_flush_sync_list()
1181 device_unlock(dev); in device_links_flush_sync_list()
1183 put_device(dev); in device_links_flush_sync_list()
1196 struct device *dev, *tmp; in device_links_supplier_sync_state_resume() local
1208 list_for_each_entry_safe(dev, tmp, &deferred_sync, links.defer_sync) { in device_links_supplier_sync_state_resume()
1213 list_del_init(&dev->links.defer_sync); in device_links_supplier_sync_state_resume()
1214 __device_links_queue_sync_state(dev, &sync_list); in device_links_supplier_sync_state_resume()
1242 static ssize_t waiting_for_supplier_show(struct device *dev, in waiting_for_supplier_show() argument
1248 device_lock(dev); in waiting_for_supplier_show()
1250 val = !!fwnode_links_check_suppliers(dev->fwnode); in waiting_for_supplier_show()
1252 device_unlock(dev); in waiting_for_supplier_show()
1271 void device_links_force_bind(struct device *dev) in device_links_force_bind() argument
1277 list_for_each_entry_safe(link, ln, &dev->links.suppliers, c_node) { in device_links_force_bind()
1287 dev->links.status = DL_DEV_PROBING; in device_links_force_bind()
1303 void device_links_driver_bound(struct device *dev) in device_links_driver_bound() argument
1322 if (dev->fwnode && dev->fwnode->dev == dev) { in device_links_driver_bound()
1324 fwnode_links_purge_suppliers(dev->fwnode); in device_links_driver_bound()
1326 fwnode_for_each_available_child_node(dev->fwnode, child) in device_links_driver_bound()
1328 dev->fwnode); in device_links_driver_bound()
1329 __fw_devlink_link_to_consumers(dev); in device_links_driver_bound()
1332 device_remove_file(dev, &dev_attr_waiting_for_supplier); in device_links_driver_bound()
1336 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_driver_bound()
1358 __device_links_supplier_defer_sync(dev); in device_links_driver_bound()
1360 __device_links_queue_sync_state(dev, &sync_list); in device_links_driver_bound()
1362 list_for_each_entry_safe(link, ln, &dev->links.suppliers, c_node) { in device_links_driver_bound()
1376 } else if (dev_is_best_effort(dev) && in device_links_driver_bound()
1405 dev->links.status = DL_DEV_DRIVER_BOUND; in device_links_driver_bound()
1409 device_links_flush_sync_list(&sync_list, dev); in device_links_driver_bound()
1424 static void __device_links_no_driver(struct device *dev) in __device_links_no_driver() argument
1428 list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) { in __device_links_no_driver()
1449 dev->links.status = DL_DEV_NO_DRIVER; in __device_links_no_driver()
1462 void device_links_no_driver(struct device *dev) in device_links_no_driver() argument
1468 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_no_driver()
1484 __device_links_no_driver(dev); in device_links_no_driver()
1499 void device_links_driver_cleanup(struct device *dev) in device_links_driver_cleanup() argument
1505 list_for_each_entry_safe(link, ln, &dev->links.consumers, s_node) { in device_links_driver_cleanup()
1524 list_del_init(&dev->links.defer_sync); in device_links_driver_cleanup()
1525 __device_links_no_driver(dev); in device_links_driver_cleanup()
1544 bool device_links_busy(struct device *dev) in device_links_busy() argument
1551 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_busy()
1563 dev->links.status = DL_DEV_UNBINDING; in device_links_busy()
1584 void device_links_unbind_consumers(struct device *dev) in device_links_unbind_consumers() argument
1591 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_unbind_consumers()
1627 static void device_links_purge(struct device *dev) in device_links_purge() argument
1631 if (dev->class == &devlink_class) in device_links_purge()
1640 list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) { in device_links_purge()
1645 list_for_each_entry_safe_reverse(link, ln, &dev->links.consumers, s_node) { in device_links_purge()
1763 static int fw_devlink_no_driver(struct device *dev, void *data) in fw_devlink_no_driver() argument
1765 struct device_link *link = to_devlink(dev); in fw_devlink_no_driver()
1782 static int fw_devlink_dev_sync_state(struct device *dev, void *data) in fw_devlink_dev_sync_state() argument
1784 struct device_link *link = to_devlink(dev); in fw_devlink_dev_sync_state()
1876 static void fw_devlink_unblock_consumers(struct device *dev) in fw_devlink_unblock_consumers() argument
1884 list_for_each_entry(link, &dev->links.consumers, s_node) in fw_devlink_unblock_consumers()
1892 struct device *dev; in fwnode_init_without_drv() local
1898 dev = get_dev_from_fwnode(fwnode); in fwnode_init_without_drv()
1899 ret = !dev || dev->links.status == DL_DEV_NO_DRIVER; in fwnode_init_without_drv()
1900 put_device(dev); in fwnode_init_without_drv()
2158 static void __fw_devlink_link_to_consumers(struct device *dev) in __fw_devlink_link_to_consumers() argument
2160 struct fwnode_handle *fwnode = dev->fwnode; in __fw_devlink_link_to_consumers()
2231 static void __fw_devlink_link_to_suppliers(struct device *dev, in __fw_devlink_link_to_suppliers() argument
2234 bool own_link = (dev->fwnode == fwnode); in __fw_devlink_link_to_suppliers()
2242 ret = fw_devlink_create_devlink(dev, sup, link); in __fw_devlink_link_to_suppliers()
2256 __fw_devlink_link_to_suppliers(dev, child); in __fw_devlink_link_to_suppliers()
2259 static void fw_devlink_link_device(struct device *dev) in fw_devlink_link_device() argument
2261 struct fwnode_handle *fwnode = dev->fwnode; in fw_devlink_link_device()
2269 __fw_devlink_link_to_consumers(dev); in fw_devlink_link_device()
2270 __fw_devlink_link_to_suppliers(dev, fwnode); in fw_devlink_link_device()
2276 int (*platform_notify)(struct device *dev) = NULL;
2277 int (*platform_notify_remove)(struct device *dev) = NULL;
2309 static inline int device_is_not_partition(struct device *dev) in device_is_not_partition() argument
2311 return !(dev->type == &part_type); in device_is_not_partition()
2314 static inline int device_is_not_partition(struct device *dev) in device_is_not_partition() argument
2320 static void device_platform_notify(struct device *dev) in device_platform_notify() argument
2322 acpi_device_notify(dev); in device_platform_notify()
2324 software_node_notify(dev); in device_platform_notify()
2327 platform_notify(dev); in device_platform_notify()
2330 static void device_platform_notify_remove(struct device *dev) in device_platform_notify_remove() argument
2333 platform_notify_remove(dev); in device_platform_notify_remove()
2335 software_node_notify_remove(dev); in device_platform_notify_remove()
2337 acpi_device_notify_remove(dev); in device_platform_notify_remove()
2349 const char *dev_driver_string(const struct device *dev) in dev_driver_string() argument
2357 drv = READ_ONCE(dev->driver); in dev_driver_string()
2358 return drv ? drv->name : dev_bus_name(dev); in dev_driver_string()
2368 struct device *dev = kobj_to_dev(kobj); in dev_attr_show() local
2372 ret = dev_attr->show(dev, dev_attr, buf); in dev_attr_show()
2384 struct device *dev = kobj_to_dev(kobj); in dev_attr_store() local
2388 ret = dev_attr->store(dev, dev_attr, buf, count); in dev_attr_store()
2399 ssize_t device_store_ulong(struct device *dev, in device_store_ulong() argument
2416 ssize_t device_show_ulong(struct device *dev, in device_show_ulong() argument
2425 ssize_t device_store_int(struct device *dev, in device_store_int() argument
2445 ssize_t device_show_int(struct device *dev, in device_show_int() argument
2455 ssize_t device_store_bool(struct device *dev, struct device_attribute *attr, in device_store_bool() argument
2467 ssize_t device_show_bool(struct device *dev, struct device_attribute *attr, in device_show_bool() argument
2486 struct device *dev = kobj_to_dev(kobj); in device_release() local
2487 struct device_private *p = dev->p; in device_release()
2498 devres_release_all(dev); in device_release()
2500 kfree(dev->dma_range_map); in device_release()
2502 if (dev->release) in device_release()
2503 dev->release(dev); in device_release()
2504 else if (dev->type && dev->type->release) in device_release()
2505 dev->type->release(dev); in device_release()
2506 else if (dev->class && dev->class->dev_release) in device_release()
2507 dev->class->dev_release(dev); in device_release()
2510 dev_name(dev)); in device_release()
2516 const struct device *dev = kobj_to_dev(kobj); in device_namespace() local
2519 if (dev->class && dev->class->ns_type) in device_namespace()
2520 ns = dev->class->namespace(dev); in device_namespace()
2527 const struct device *dev = kobj_to_dev(kobj); in device_get_ownership() local
2529 if (dev->class && dev->class->get_ownership) in device_get_ownership()
2530 dev->class->get_ownership(dev, uid, gid); in device_get_ownership()
2546 const struct device *dev = kobj_to_dev(kobj); in dev_uevent_filter() local
2547 if (dev->bus) in dev_uevent_filter()
2549 if (dev->class) in dev_uevent_filter()
2557 const struct device *dev = kobj_to_dev(kobj); in dev_uevent_name() local
2559 if (dev->bus) in dev_uevent_name()
2560 return dev->bus->name; in dev_uevent_name()
2561 if (dev->class) in dev_uevent_name()
2562 return dev->class->name; in dev_uevent_name()
2568 const struct device *dev = kobj_to_dev(kobj); in dev_uevent() local
2573 if (MAJOR(dev->devt)) { in dev_uevent()
2580 add_uevent_var(env, "MAJOR=%u", MAJOR(dev->devt)); in dev_uevent()
2581 add_uevent_var(env, "MINOR=%u", MINOR(dev->devt)); in dev_uevent()
2582 name = device_get_devnode(dev, &mode, &uid, &gid, &tmp); in dev_uevent()
2595 if (dev->type && dev->type->name) in dev_uevent()
2596 add_uevent_var(env, "DEVTYPE=%s", dev->type->name); in dev_uevent()
2600 driver = READ_ONCE(dev->driver); in dev_uevent()
2606 of_device_uevent(dev, env); in dev_uevent()
2609 if (dev->bus && dev->bus->uevent) { in dev_uevent()
2610 retval = dev->bus->uevent(dev, env); in dev_uevent()
2613 dev_name(dev), __func__, retval); in dev_uevent()
2617 if (dev->class && dev->class->dev_uevent) { in dev_uevent()
2618 retval = dev->class->dev_uevent(dev, env); in dev_uevent()
2621 "returned %d\n", dev_name(dev), in dev_uevent()
2626 if (dev->type && dev->type->uevent) { in dev_uevent()
2627 retval = dev->type->uevent(dev, env); in dev_uevent()
2630 "returned %d\n", dev_name(dev), in dev_uevent()
2643 static ssize_t uevent_show(struct device *dev, struct device_attribute *attr, in uevent_show() argument
2654 top_kobj = &dev->kobj; in uevent_show()
2666 if (!kset->uevent_ops->filter(&dev->kobj)) in uevent_show()
2674 retval = kset->uevent_ops->uevent(&dev->kobj, env); in uevent_show()
2686 static ssize_t uevent_store(struct device *dev, struct device_attribute *attr, in uevent_store() argument
2691 rc = kobject_synth_uevent(&dev->kobj, buf, count); in uevent_store()
2694 dev_err(dev, "uevent: failed to send synthetic uevent: %d\n", rc); in uevent_store()
2702 static ssize_t online_show(struct device *dev, struct device_attribute *attr, in online_show() argument
2707 device_lock(dev); in online_show()
2708 val = !dev->offline; in online_show()
2709 device_unlock(dev); in online_show()
2713 static ssize_t online_store(struct device *dev, struct device_attribute *attr, in online_store() argument
2727 ret = val ? device_online(dev) : device_offline(dev); in online_store()
2733 static ssize_t removable_show(struct device *dev, struct device_attribute *attr, in removable_show() argument
2738 switch (dev->removable) { in removable_show()
2752 int device_add_groups(struct device *dev, const struct attribute_group **groups) in device_add_groups() argument
2754 return sysfs_create_groups(&dev->kobj, groups); in device_add_groups()
2758 void device_remove_groups(struct device *dev, in device_remove_groups() argument
2761 sysfs_remove_groups(&dev->kobj, groups); in device_remove_groups()
2770 static void devm_attr_group_remove(struct device *dev, void *res) in devm_attr_group_remove() argument
2775 dev_dbg(dev, "%s: removing group %p\n", __func__, group); in devm_attr_group_remove()
2776 sysfs_remove_group(&dev->kobj, group); in devm_attr_group_remove()
2779 static void devm_attr_groups_remove(struct device *dev, void *res) in devm_attr_groups_remove() argument
2784 dev_dbg(dev, "%s: removing groups %p\n", __func__, groups); in devm_attr_groups_remove()
2785 sysfs_remove_groups(&dev->kobj, groups); in devm_attr_groups_remove()
2798 int devm_device_add_group(struct device *dev, const struct attribute_group *grp) in devm_device_add_group() argument
2808 error = sysfs_create_group(&dev->kobj, grp); in devm_device_add_group()
2815 devres_add(dev, devres); in devm_device_add_group()
2833 int devm_device_add_groups(struct device *dev, in devm_device_add_groups() argument
2844 error = sysfs_create_groups(&dev->kobj, groups); in devm_device_add_groups()
2851 devres_add(dev, devres); in devm_device_add_groups()
2856 static int device_add_attrs(struct device *dev) in device_add_attrs() argument
2858 const struct class *class = dev->class; in device_add_attrs()
2859 const struct device_type *type = dev->type; in device_add_attrs()
2863 error = device_add_groups(dev, class->dev_groups); in device_add_attrs()
2869 error = device_add_groups(dev, type->groups); in device_add_attrs()
2874 error = device_add_groups(dev, dev->groups); in device_add_attrs()
2878 if (device_supports_offline(dev) && !dev->offline_disabled) { in device_add_attrs()
2879 error = device_create_file(dev, &dev_attr_online); in device_add_attrs()
2884 if (fw_devlink_flags && !fw_devlink_is_permissive() && dev->fwnode) { in device_add_attrs()
2885 error = device_create_file(dev, &dev_attr_waiting_for_supplier); in device_add_attrs()
2890 if (dev_removable_is_valid(dev)) { in device_add_attrs()
2891 error = device_create_file(dev, &dev_attr_removable); in device_add_attrs()
2896 if (dev_add_physical_location(dev)) { in device_add_attrs()
2897 error = device_add_group(dev, in device_add_attrs()
2906 device_remove_file(dev, &dev_attr_removable); in device_add_attrs()
2908 device_remove_file(dev, &dev_attr_waiting_for_supplier); in device_add_attrs()
2910 device_remove_file(dev, &dev_attr_online); in device_add_attrs()
2912 device_remove_groups(dev, dev->groups); in device_add_attrs()
2915 device_remove_groups(dev, type->groups); in device_add_attrs()
2918 device_remove_groups(dev, class->dev_groups); in device_add_attrs()
2923 static void device_remove_attrs(struct device *dev) in device_remove_attrs() argument
2925 const struct class *class = dev->class; in device_remove_attrs()
2926 const struct device_type *type = dev->type; in device_remove_attrs()
2928 if (dev->physical_location) { in device_remove_attrs()
2929 device_remove_group(dev, &dev_attr_physical_location_group); in device_remove_attrs()
2930 kfree(dev->physical_location); in device_remove_attrs()
2933 device_remove_file(dev, &dev_attr_removable); in device_remove_attrs()
2934 device_remove_file(dev, &dev_attr_waiting_for_supplier); in device_remove_attrs()
2935 device_remove_file(dev, &dev_attr_online); in device_remove_attrs()
2936 device_remove_groups(dev, dev->groups); in device_remove_attrs()
2939 device_remove_groups(dev, type->groups); in device_remove_attrs()
2942 device_remove_groups(dev, class->dev_groups); in device_remove_attrs()
2945 static ssize_t dev_show(struct device *dev, struct device_attribute *attr, in dev_show() argument
2948 return print_dev_t(buf, dev->devt); in dev_show()
2950 static DEVICE_ATTR_RO(dev);
2991 void devices_kset_move_last(struct device *dev) in devices_kset_move_last() argument
2995 pr_debug("devices_kset: Moving %s to end of list\n", dev_name(dev)); in devices_kset_move_last()
2997 list_move_tail(&dev->kobj.entry, &devices_kset->list); in devices_kset_move_last()
3006 int device_create_file(struct device *dev, in device_create_file() argument
3011 if (dev) { in device_create_file()
3018 error = sysfs_create_file(&dev->kobj, &attr->attr); in device_create_file()
3030 void device_remove_file(struct device *dev, in device_remove_file() argument
3033 if (dev) in device_remove_file()
3034 sysfs_remove_file(&dev->kobj, &attr->attr); in device_remove_file()
3045 bool device_remove_file_self(struct device *dev, in device_remove_file_self() argument
3048 if (dev) in device_remove_file_self()
3049 return sysfs_remove_file_self(&dev->kobj, &attr->attr); in device_remove_file_self()
3060 int device_create_bin_file(struct device *dev, in device_create_bin_file() argument
3064 if (dev) in device_create_bin_file()
3065 error = sysfs_create_bin_file(&dev->kobj, attr); in device_create_bin_file()
3075 void device_remove_bin_file(struct device *dev, in device_remove_bin_file() argument
3078 if (dev) in device_remove_bin_file()
3079 sysfs_remove_bin_file(&dev->kobj, attr); in device_remove_bin_file()
3086 struct device *dev = p->device; in klist_children_get() local
3088 get_device(dev); in klist_children_get()
3094 struct device *dev = p->device; in klist_children_put() local
3096 put_device(dev); in klist_children_put()
3119 void device_initialize(struct device *dev) in device_initialize() argument
3121 dev->kobj.kset = devices_kset; in device_initialize()
3122 kobject_init(&dev->kobj, &device_ktype); in device_initialize()
3123 INIT_LIST_HEAD(&dev->dma_pools); in device_initialize()
3124 mutex_init(&dev->mutex); in device_initialize()
3125 lockdep_set_novalidate_class(&dev->mutex); in device_initialize()
3126 spin_lock_init(&dev->devres_lock); in device_initialize()
3127 INIT_LIST_HEAD(&dev->devres_head); in device_initialize()
3128 device_pm_init(dev); in device_initialize()
3129 set_dev_node(dev, NUMA_NO_NODE); in device_initialize()
3130 INIT_LIST_HEAD(&dev->links.consumers); in device_initialize()
3131 INIT_LIST_HEAD(&dev->links.suppliers); in device_initialize()
3132 INIT_LIST_HEAD(&dev->links.defer_sync); in device_initialize()
3133 dev->links.status = DL_DEV_NO_DRIVER; in device_initialize()
3137 dev->dma_coherent = dma_default_coherent; in device_initialize()
3139 swiotlb_dev_init(dev); in device_initialize()
3143 struct kobject *virtual_device_parent(struct device *dev) in virtual_device_parent() argument
3205 static struct kobject *get_device_parent(struct device *dev, in get_device_parent() argument
3208 struct subsys_private *sp = class_to_subsys(dev->class); in get_device_parent()
3221 parent_kobj = virtual_device_parent(dev); in get_device_parent()
3222 else if (parent->class && !dev->class->ns_type) { in get_device_parent()
3254 if (!parent && dev->bus) { in get_device_parent()
3255 struct device *dev_root = bus_get_dev_root(dev->bus); in get_device_parent()
3270 struct device *dev) in live_in_glue_dir() argument
3275 if (!kobj || !dev->class) in live_in_glue_dir()
3278 sp = class_to_subsys(dev->class); in live_in_glue_dir()
3291 static inline struct kobject *get_glue_dir(struct device *dev) in get_glue_dir() argument
3293 return dev->kobj.parent; in get_glue_dir()
3318 static void cleanup_glue_dir(struct device *dev, struct kobject *glue_dir) in cleanup_glue_dir() argument
3323 if (!live_in_glue_dir(glue_dir, dev)) in cleanup_glue_dir()
3382 static int device_add_class_symlinks(struct device *dev) in device_add_class_symlinks() argument
3384 struct device_node *of_node = dev_of_node(dev); in device_add_class_symlinks()
3389 error = sysfs_create_link(&dev->kobj, of_node_kobj(of_node), "of_node"); in device_add_class_symlinks()
3391 dev_warn(dev, "Error %d creating of_node link\n",error); in device_add_class_symlinks()
3395 sp = class_to_subsys(dev->class); in device_add_class_symlinks()
3399 error = sysfs_create_link(&dev->kobj, &sp->subsys.kobj, "subsystem"); in device_add_class_symlinks()
3403 if (dev->parent && device_is_not_partition(dev)) { in device_add_class_symlinks()
3404 error = sysfs_create_link(&dev->kobj, &dev->parent->kobj, in device_add_class_symlinks()
3411 error = sysfs_create_link(&sp->subsys.kobj, &dev->kobj, dev_name(dev)); in device_add_class_symlinks()
3417 sysfs_remove_link(&dev->kobj, "device"); in device_add_class_symlinks()
3419 sysfs_remove_link(&dev->kobj, "subsystem"); in device_add_class_symlinks()
3421 sysfs_remove_link(&dev->kobj, "of_node"); in device_add_class_symlinks()
3427 static void device_remove_class_symlinks(struct device *dev) in device_remove_class_symlinks() argument
3429 struct subsys_private *sp = class_to_subsys(dev->class); in device_remove_class_symlinks()
3431 if (dev_of_node(dev)) in device_remove_class_symlinks()
3432 sysfs_remove_link(&dev->kobj, "of_node"); in device_remove_class_symlinks()
3437 if (dev->parent && device_is_not_partition(dev)) in device_remove_class_symlinks()
3438 sysfs_remove_link(&dev->kobj, "device"); in device_remove_class_symlinks()
3439 sysfs_remove_link(&dev->kobj, "subsystem"); in device_remove_class_symlinks()
3440 sysfs_delete_link(&sp->subsys.kobj, &dev->kobj, dev_name(dev)); in device_remove_class_symlinks()
3449 int dev_set_name(struct device *dev, const char *fmt, ...) in dev_set_name() argument
3455 err = kobject_set_name_vargs(&dev->kobj, fmt, vargs); in dev_set_name()
3462 static struct kobject *device_to_dev_kobj(struct device *dev) in device_to_dev_kobj() argument
3464 if (is_blockdev(dev)) in device_to_dev_kobj()
3470 static int device_create_sys_dev_entry(struct device *dev) in device_create_sys_dev_entry() argument
3472 struct kobject *kobj = device_to_dev_kobj(dev); in device_create_sys_dev_entry()
3477 format_dev_t(devt_str, dev->devt); in device_create_sys_dev_entry()
3478 error = sysfs_create_link(kobj, &dev->kobj, devt_str); in device_create_sys_dev_entry()
3484 static void device_remove_sys_dev_entry(struct device *dev) in device_remove_sys_dev_entry() argument
3486 struct kobject *kobj = device_to_dev_kobj(dev); in device_remove_sys_dev_entry()
3490 format_dev_t(devt_str, dev->devt); in device_remove_sys_dev_entry()
3495 static int device_private_init(struct device *dev) in device_private_init() argument
3497 dev->p = kzalloc(sizeof(*dev->p), GFP_KERNEL); in device_private_init()
3498 if (!dev->p) in device_private_init()
3500 dev->p->device = dev; in device_private_init()
3501 klist_init(&dev->p->klist_children, klist_children_get, in device_private_init()
3503 INIT_LIST_HEAD(&dev->p->deferred_probe); in device_private_init()
3534 int device_add(struct device *dev) in device_add() argument
3543 dev = get_device(dev); in device_add()
3544 if (!dev) in device_add()
3547 if (!dev->p) { in device_add()
3548 error = device_private_init(dev); in device_add()
3558 if (dev->init_name) { in device_add()
3559 error = dev_set_name(dev, "%s", dev->init_name); in device_add()
3560 dev->init_name = NULL; in device_add()
3563 if (dev_name(dev)) in device_add()
3566 else if (dev->bus && dev->bus->dev_name) in device_add()
3567 error = dev_set_name(dev, "%s%u", dev->bus->dev_name, dev->id); in device_add()
3573 pr_debug("device: '%s': %s\n", dev_name(dev), __func__); in device_add()
3575 parent = get_device(dev->parent); in device_add()
3576 kobj = get_device_parent(dev, parent); in device_add()
3582 dev->kobj.parent = kobj; in device_add()
3585 if (parent && (dev_to_node(dev) == NUMA_NO_NODE)) in device_add()
3586 set_dev_node(dev, dev_to_node(parent)); in device_add()
3590 error = kobject_add(&dev->kobj, dev->kobj.parent, NULL); in device_add()
3597 device_platform_notify(dev); in device_add()
3599 error = device_create_file(dev, &dev_attr_uevent); in device_add()
3603 error = device_add_class_symlinks(dev); in device_add()
3606 error = device_add_attrs(dev); in device_add()
3609 error = bus_add_device(dev); in device_add()
3612 error = dpm_sysfs_add(dev); in device_add()
3615 device_pm_add(dev); in device_add()
3617 if (MAJOR(dev->devt)) { in device_add()
3618 error = device_create_file(dev, &dev_attr_dev); in device_add()
3622 error = device_create_sys_dev_entry(dev); in device_add()
3626 devtmpfs_create_node(dev); in device_add()
3632 bus_notify(dev, BUS_NOTIFY_ADD_DEVICE); in device_add()
3633 kobject_uevent(&dev->kobj, KOBJ_ADD); in device_add()
3647 if (dev->fwnode && !dev->fwnode->dev) { in device_add()
3648 dev->fwnode->dev = dev; in device_add()
3649 fw_devlink_link_device(dev); in device_add()
3652 bus_probe_device(dev); in device_add()
3659 if (dev->fwnode && fw_devlink_drv_reg_done && !dev->can_match) in device_add()
3660 fw_devlink_unblock_consumers(dev); in device_add()
3663 klist_add_tail(&dev->p->knode_parent, in device_add()
3666 sp = class_to_subsys(dev->class); in device_add()
3670 klist_add_tail(&dev->p->knode_class, &sp->klist_devices); in device_add()
3675 class_intf->add_dev(dev); in device_add()
3680 put_device(dev); in device_add()
3683 if (MAJOR(dev->devt)) in device_add()
3684 device_remove_file(dev, &dev_attr_dev); in device_add()
3686 device_pm_remove(dev); in device_add()
3687 dpm_sysfs_remove(dev); in device_add()
3689 dev->driver = NULL; in device_add()
3690 bus_remove_device(dev); in device_add()
3692 device_remove_attrs(dev); in device_add()
3694 device_remove_class_symlinks(dev); in device_add()
3696 device_remove_file(dev, &dev_attr_uevent); in device_add()
3698 device_platform_notify_remove(dev); in device_add()
3699 kobject_uevent(&dev->kobj, KOBJ_REMOVE); in device_add()
3700 glue_dir = get_glue_dir(dev); in device_add()
3701 kobject_del(&dev->kobj); in device_add()
3703 cleanup_glue_dir(dev, glue_dir); in device_add()
3707 kfree(dev->p); in device_add()
3708 dev->p = NULL; in device_add()
3731 int device_register(struct device *dev) in device_register() argument
3733 device_initialize(dev); in device_register()
3734 return device_add(dev); in device_register()
3746 struct device *get_device(struct device *dev) in get_device() argument
3748 return dev ? kobj_to_dev(kobject_get(&dev->kobj)) : NULL; in get_device()
3756 void put_device(struct device *dev) in put_device() argument
3759 if (dev) in put_device()
3760 kobject_put(&dev->kobj); in put_device()
3764 bool kill_device(struct device *dev) in kill_device() argument
3773 device_lock_assert(dev); in kill_device()
3775 if (dev->p->dead) in kill_device()
3777 dev->p->dead = true; in kill_device()
3795 void device_del(struct device *dev) in device_del() argument
3798 struct device *parent = dev->parent; in device_del()
3803 device_lock(dev); in device_del()
3804 kill_device(dev); in device_del()
3805 device_unlock(dev); in device_del()
3807 if (dev->fwnode && dev->fwnode->dev == dev) in device_del()
3808 dev->fwnode->dev = NULL; in device_del()
3814 bus_notify(dev, BUS_NOTIFY_DEL_DEVICE); in device_del()
3816 dpm_sysfs_remove(dev); in device_del()
3818 klist_del(&dev->p->knode_parent); in device_del()
3819 if (MAJOR(dev->devt)) { in device_del()
3820 devtmpfs_delete_node(dev); in device_del()
3821 device_remove_sys_dev_entry(dev); in device_del()
3822 device_remove_file(dev, &dev_attr_dev); in device_del()
3825 sp = class_to_subsys(dev->class); in device_del()
3827 device_remove_class_symlinks(dev); in device_del()
3833 class_intf->remove_dev(dev); in device_del()
3835 klist_del(&dev->p->knode_class); in device_del()
3839 device_remove_file(dev, &dev_attr_uevent); in device_del()
3840 device_remove_attrs(dev); in device_del()
3841 bus_remove_device(dev); in device_del()
3842 device_pm_remove(dev); in device_del()
3843 driver_deferred_probe_del(dev); in device_del()
3844 device_platform_notify_remove(dev); in device_del()
3845 device_links_purge(dev); in device_del()
3856 devres_release_all(dev); in device_del()
3858 bus_notify(dev, BUS_NOTIFY_REMOVED_DEVICE); in device_del()
3859 kobject_uevent(&dev->kobj, KOBJ_REMOVE); in device_del()
3860 glue_dir = get_glue_dir(dev); in device_del()
3861 kobject_del(&dev->kobj); in device_del()
3862 cleanup_glue_dir(dev, glue_dir); in device_del()
3879 void device_unregister(struct device *dev) in device_unregister() argument
3881 pr_debug("device: '%s': %s\n", dev_name(dev), __func__); in device_unregister()
3882 device_del(dev); in device_unregister()
3883 put_device(dev); in device_unregister()
3890 struct device *dev = NULL; in prev_device() local
3895 dev = p->device; in prev_device()
3897 return dev; in prev_device()
3903 struct device *dev = NULL; in next_device() local
3908 dev = p->device; in next_device()
3910 return dev; in next_device()
3926 const char *device_get_devnode(const struct device *dev, in device_get_devnode() argument
3935 if (dev->type && dev->type->devnode) in device_get_devnode()
3936 *tmp = dev->type->devnode(dev, mode, uid, gid); in device_get_devnode()
3941 if (dev->class && dev->class->devnode) in device_get_devnode()
3942 *tmp = dev->class->devnode(dev, mode); in device_get_devnode()
3947 if (strchr(dev_name(dev), '!') == NULL) in device_get_devnode()
3948 return dev_name(dev); in device_get_devnode()
3951 s = kstrdup_and_replace(dev_name(dev), '!', '/', GFP_KERNEL); in device_get_devnode()
3970 int (*fn)(struct device *dev, void *data)) in device_for_each_child() argument
4000 int (*fn)(struct device *dev, void *data)) in device_for_each_child_reverse() argument
4035 int (*match)(struct device *dev, void *data)) in device_find_child() argument
4080 static int match_any(struct device *dev, void *unused) in match_any() argument
4131 static int device_check_offline(struct device *dev, void *not_used) in device_check_offline() argument
4135 ret = device_for_each_child(dev, NULL, device_check_offline); in device_check_offline()
4139 return device_supports_offline(dev) && !dev->offline ? -EBUSY : 0; in device_check_offline()
4153 int device_offline(struct device *dev) in device_offline() argument
4157 if (dev->offline_disabled) in device_offline()
4160 ret = device_for_each_child(dev, NULL, device_check_offline); in device_offline()
4164 device_lock(dev); in device_offline()
4165 if (device_supports_offline(dev)) { in device_offline()
4166 if (dev->offline) { in device_offline()
4169 ret = dev->bus->offline(dev); in device_offline()
4171 kobject_uevent(&dev->kobj, KOBJ_OFFLINE); in device_offline()
4172 dev->offline = true; in device_offline()
4176 device_unlock(dev); in device_offline()
4191 int device_online(struct device *dev) in device_online() argument
4195 device_lock(dev); in device_online()
4196 if (device_supports_offline(dev)) { in device_online()
4197 if (dev->offline) { in device_online()
4198 ret = dev->bus->online(dev); in device_online()
4200 kobject_uevent(&dev->kobj, KOBJ_ONLINE); in device_online()
4201 dev->offline = false; in device_online()
4207 device_unlock(dev); in device_online()
4213 struct device dev; member
4219 return container_of(d, struct root_device, dev); in to_root_device()
4222 static void root_device_release(struct device *dev) in root_device_release() argument
4224 kfree(to_root_device(dev)); in root_device_release()
4258 err = dev_set_name(&root->dev, "%s", name); in __root_device_register()
4264 root->dev.release = root_device_release; in __root_device_register()
4266 err = device_register(&root->dev); in __root_device_register()
4268 put_device(&root->dev); in __root_device_register()
4276 err = sysfs_create_link(&root->dev.kobj, &mk->kobj, "module"); in __root_device_register()
4278 device_unregister(&root->dev); in __root_device_register()
4285 return &root->dev; in __root_device_register()
4296 void root_device_unregister(struct device *dev) in root_device_unregister() argument
4298 struct root_device *root = to_root_device(dev); in root_device_unregister()
4301 sysfs_remove_link(&root->dev.kobj, "module"); in root_device_unregister()
4303 device_unregister(dev); in root_device_unregister()
4308 static void device_create_release(struct device *dev) in device_create_release() argument
4310 pr_debug("device: '%s': %s\n", dev_name(dev), __func__); in device_create_release()
4311 kfree(dev); in device_create_release()
4320 struct device *dev = NULL; in device_create_groups_vargs() local
4326 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in device_create_groups_vargs()
4327 if (!dev) { in device_create_groups_vargs()
4332 device_initialize(dev); in device_create_groups_vargs()
4333 dev->devt = devt; in device_create_groups_vargs()
4334 dev->class = class; in device_create_groups_vargs()
4335 dev->parent = parent; in device_create_groups_vargs()
4336 dev->groups = groups; in device_create_groups_vargs()
4337 dev->release = device_create_release; in device_create_groups_vargs()
4338 dev_set_drvdata(dev, drvdata); in device_create_groups_vargs()
4340 retval = kobject_set_name_vargs(&dev->kobj, fmt, args); in device_create_groups_vargs()
4344 retval = device_add(dev); in device_create_groups_vargs()
4348 return dev; in device_create_groups_vargs()
4351 put_device(dev); in device_create_groups_vargs()
4380 struct device *dev; in device_create() local
4383 dev = device_create_groups_vargs(class, parent, devt, drvdata, NULL, in device_create()
4386 return dev; in device_create()
4421 struct device *dev; in device_create_with_groups() local
4424 dev = device_create_groups_vargs(class, parent, devt, drvdata, groups, in device_create_with_groups()
4427 return dev; in device_create_with_groups()
4441 struct device *dev; in device_destroy() local
4443 dev = class_find_device_by_devt(class, devt); in device_destroy()
4444 if (dev) { in device_destroy()
4445 put_device(dev); in device_destroy()
4446 device_unregister(dev); in device_destroy()
4486 int device_rename(struct device *dev, const char *new_name) in device_rename() argument
4488 struct kobject *kobj = &dev->kobj; in device_rename()
4492 dev = get_device(dev); in device_rename()
4493 if (!dev) in device_rename()
4496 dev_dbg(dev, "renaming to %s\n", new_name); in device_rename()
4498 old_device_name = kstrdup(dev_name(dev), GFP_KERNEL); in device_rename()
4504 if (dev->class) { in device_rename()
4505 struct subsys_private *sp = class_to_subsys(dev->class); in device_rename()
4524 put_device(dev); in device_rename()
4532 static int device_move_class_links(struct device *dev, in device_move_class_links() argument
4539 sysfs_remove_link(&dev->kobj, "device"); in device_move_class_links()
4541 error = sysfs_create_link(&dev->kobj, &new_parent->kobj, in device_move_class_links()
4552 int device_move(struct device *dev, struct device *new_parent, in device_move() argument
4559 dev = get_device(dev); in device_move()
4560 if (!dev) in device_move()
4565 new_parent_kobj = get_device_parent(dev, new_parent); in device_move()
4572 pr_debug("device: '%s': %s: moving to '%s'\n", dev_name(dev), in device_move()
4574 error = kobject_move(&dev->kobj, new_parent_kobj); in device_move()
4576 cleanup_glue_dir(dev, new_parent_kobj); in device_move()
4580 old_parent = dev->parent; in device_move()
4581 dev->parent = new_parent; in device_move()
4583 klist_remove(&dev->p->knode_parent); in device_move()
4585 klist_add_tail(&dev->p->knode_parent, in device_move()
4587 set_dev_node(dev, dev_to_node(new_parent)); in device_move()
4590 if (dev->class) { in device_move()
4591 error = device_move_class_links(dev, old_parent, new_parent); in device_move()
4594 device_move_class_links(dev, new_parent, old_parent); in device_move()
4595 if (!kobject_move(&dev->kobj, &old_parent->kobj)) { in device_move()
4597 klist_remove(&dev->p->knode_parent); in device_move()
4598 dev->parent = old_parent; in device_move()
4600 klist_add_tail(&dev->p->knode_parent, in device_move()
4602 set_dev_node(dev, dev_to_node(old_parent)); in device_move()
4605 cleanup_glue_dir(dev, new_parent_kobj); in device_move()
4614 device_pm_move_after(dev, new_parent); in device_move()
4615 devices_kset_move_after(dev, new_parent); in device_move()
4618 device_pm_move_before(new_parent, dev); in device_move()
4619 devices_kset_move_before(new_parent, dev); in device_move()
4622 device_pm_move_last(dev); in device_move()
4623 devices_kset_move_last(dev); in device_move()
4630 put_device(dev); in device_move()
4635 static int device_attrs_change_owner(struct device *dev, kuid_t kuid, in device_attrs_change_owner() argument
4638 struct kobject *kobj = &dev->kobj; in device_attrs_change_owner()
4639 const struct class *class = dev->class; in device_attrs_change_owner()
4640 const struct device_type *type = dev->type; in device_attrs_change_owner()
4666 error = sysfs_groups_change_owner(kobj, dev->groups, kuid, kgid); in device_attrs_change_owner()
4670 if (device_supports_offline(dev) && !dev->offline_disabled) { in device_attrs_change_owner()
4693 int device_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid) in device_change_owner() argument
4696 struct kobject *kobj = &dev->kobj; in device_change_owner()
4699 dev = get_device(dev); in device_change_owner()
4700 if (!dev) in device_change_owner()
4726 error = device_attrs_change_owner(dev, kuid, kgid); in device_change_owner()
4730 error = dpm_sysfs_change_owner(dev, kuid, kgid); in device_change_owner()
4740 sp = class_to_subsys(dev->class); in device_change_owner()
4745 error = sysfs_link_change_owner(&sp->subsys.kobj, &dev->kobj, dev_name(dev), kuid, kgid); in device_change_owner()
4749 put_device(dev); in device_change_owner()
4759 struct device *dev, *parent; in device_shutdown() local
4773 dev = list_entry(devices_kset->list.prev, struct device, in device_shutdown()
4781 parent = get_device(dev->parent); in device_shutdown()
4782 get_device(dev); in device_shutdown()
4787 list_del_init(&dev->kobj.entry); in device_shutdown()
4793 device_lock(dev); in device_shutdown()
4796 pm_runtime_get_noresume(dev); in device_shutdown()
4797 pm_runtime_barrier(dev); in device_shutdown()
4799 if (dev->class && dev->class->shutdown_pre) { in device_shutdown()
4801 dev_info(dev, "shutdown_pre\n"); in device_shutdown()
4802 dev->class->shutdown_pre(dev); in device_shutdown()
4804 if (dev->bus && dev->bus->shutdown) { in device_shutdown()
4806 dev_info(dev, "shutdown\n"); in device_shutdown()
4807 dev->bus->shutdown(dev); in device_shutdown()
4808 } else if (dev->driver && dev->driver->shutdown) { in device_shutdown()
4810 dev_info(dev, "shutdown\n"); in device_shutdown()
4811 dev->driver->shutdown(dev); in device_shutdown()
4814 device_unlock(dev); in device_shutdown()
4818 put_device(dev); in device_shutdown()
4832 set_dev_info(const struct device *dev, struct dev_printk_info *dev_info) in set_dev_info() argument
4838 if (dev->class) in set_dev_info()
4839 subsys = dev->class->name; in set_dev_info()
4840 else if (dev->bus) in set_dev_info()
4841 subsys = dev->bus->name; in set_dev_info()
4854 if (MAJOR(dev->devt)) { in set_dev_info()
4863 "%c%u:%u", c, MAJOR(dev->devt), MINOR(dev->devt)); in set_dev_info()
4865 struct net_device *net = to_net_dev(dev); in set_dev_info()
4871 "+%s:%s", subsys, dev_name(dev)); in set_dev_info()
4875 int dev_vprintk_emit(int level, const struct device *dev, in dev_vprintk_emit() argument
4880 set_dev_info(dev, &dev_info); in dev_vprintk_emit()
4886 int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...) in dev_printk_emit() argument
4893 r = dev_vprintk_emit(level, dev, fmt, args); in dev_printk_emit()
4901 static void __dev_printk(const char *level, const struct device *dev, in __dev_printk() argument
4904 if (dev) in __dev_printk()
4905 dev_printk_emit(level[1] - '0', dev, "%s %s: %pV", in __dev_printk()
4906 dev_driver_string(dev), dev_name(dev), vaf); in __dev_printk()
4911 void _dev_printk(const char *level, const struct device *dev, in _dev_printk() argument
4922 __dev_printk(level, dev, &vaf); in _dev_printk()
4929 void func(const struct device *dev, const char *fmt, ...) \
4939 __dev_printk(kern_level, dev, &vaf); \
4987 int dev_err_probe(const struct device *dev, int err, const char *fmt, ...) in dev_err_probe() argument
4997 dev_err(dev, "error %pe: %pV", ERR_PTR(err), &vaf); in dev_err_probe()
4999 device_set_deferred_probe_reason(dev, &vaf); in dev_err_probe()
5000 dev_dbg(dev, "error %pe: %pV", ERR_PTR(err), &vaf); in dev_err_probe()
5028 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode) in set_primary_fwnode() argument
5030 struct device *parent = dev->parent; in set_primary_fwnode()
5031 struct fwnode_handle *fn = dev->fwnode; in set_primary_fwnode()
5041 dev->fwnode = fwnode; in set_primary_fwnode()
5044 dev->fwnode = fn->secondary; in set_primary_fwnode()
5053 dev->fwnode = NULL; in set_primary_fwnode()
5068 void set_secondary_fwnode(struct device *dev, struct fwnode_handle *fwnode) in set_secondary_fwnode() argument
5073 if (fwnode_is_primary(dev->fwnode)) in set_secondary_fwnode()
5074 dev->fwnode->secondary = fwnode; in set_secondary_fwnode()
5076 dev->fwnode = fwnode; in set_secondary_fwnode()
5088 void device_set_of_node_from_dev(struct device *dev, const struct device *dev2) in device_set_of_node_from_dev() argument
5090 of_node_put(dev->of_node); in device_set_of_node_from_dev()
5091 dev->of_node = of_node_get(dev2->of_node); in device_set_of_node_from_dev()
5092 dev->of_node_reused = true; in device_set_of_node_from_dev()
5096 void device_set_node(struct device *dev, struct fwnode_handle *fwnode) in device_set_node() argument
5098 dev->fwnode = fwnode; in device_set_node()
5099 dev->of_node = to_of_node(fwnode); in device_set_node()
5103 int device_match_name(struct device *dev, const void *name) in device_match_name() argument
5105 return sysfs_streq(dev_name(dev), name); in device_match_name()
5109 int device_match_of_node(struct device *dev, const void *np) in device_match_of_node() argument
5111 return dev->of_node == np; in device_match_of_node()
5115 int device_match_fwnode(struct device *dev, const void *fwnode) in device_match_fwnode() argument
5117 return dev_fwnode(dev) == fwnode; in device_match_fwnode()
5121 int device_match_devt(struct device *dev, const void *pdevt) in device_match_devt() argument
5123 return dev->devt == *(dev_t *)pdevt; in device_match_devt()
5127 int device_match_acpi_dev(struct device *dev, const void *adev) in device_match_acpi_dev() argument
5129 return ACPI_COMPANION(dev) == adev; in device_match_acpi_dev()
5133 int device_match_acpi_handle(struct device *dev, const void *handle) in device_match_acpi_handle() argument
5135 return ACPI_HANDLE(dev) == handle; in device_match_acpi_handle()
5139 int device_match_any(struct device *dev, const void *unused) in device_match_any() argument