Lines Matching refs:dev

47 int (*platform_notify)(struct device *dev) = NULL;
48 int (*platform_notify_remove)(struct device *dev) = NULL;
76 static inline int device_is_not_partition(struct device *dev) in device_is_not_partition() argument
78 return !(dev->type == &part_type); in device_is_not_partition()
81 static inline int device_is_not_partition(struct device *dev) in device_is_not_partition() argument
96 const char *dev_driver_string(const struct device *dev) in dev_driver_string() argument
104 drv = ACCESS_ONCE(dev->driver); in dev_driver_string()
106 (dev->bus ? dev->bus->name : in dev_driver_string()
107 (dev->class ? dev->class->name : "")); in dev_driver_string()
117 struct device *dev = kobj_to_dev(kobj); in dev_attr_show() local
121 ret = dev_attr->show(dev, dev_attr, buf); in dev_attr_show()
133 struct device *dev = kobj_to_dev(kobj); in dev_attr_store() local
137 ret = dev_attr->store(dev, dev_attr, buf, count); in dev_attr_store()
148 ssize_t device_store_ulong(struct device *dev, in device_store_ulong() argument
163 ssize_t device_show_ulong(struct device *dev, in device_show_ulong() argument
172 ssize_t device_store_int(struct device *dev, in device_store_int() argument
187 ssize_t device_show_int(struct device *dev, in device_show_int() argument
197 ssize_t device_store_bool(struct device *dev, struct device_attribute *attr, in device_store_bool() argument
209 ssize_t device_show_bool(struct device *dev, struct device_attribute *attr, in device_show_bool() argument
228 struct device *dev = kobj_to_dev(kobj); in device_release() local
229 struct device_private *p = dev->p; in device_release()
240 devres_release_all(dev); in device_release()
242 if (dev->release) in device_release()
243 dev->release(dev); in device_release()
244 else if (dev->type && dev->type->release) in device_release()
245 dev->type->release(dev); in device_release()
246 else if (dev->class && dev->class->dev_release) in device_release()
247 dev->class->dev_release(dev); in device_release()
251 dev_name(dev)); in device_release()
257 struct device *dev = kobj_to_dev(kobj); in device_namespace() local
260 if (dev->class && dev->class->ns_type) in device_namespace()
261 ns = dev->class->namespace(dev); in device_namespace()
278 struct device *dev = kobj_to_dev(kobj); in dev_uevent_filter() local
279 if (dev->bus) in dev_uevent_filter()
281 if (dev->class) in dev_uevent_filter()
289 struct device *dev = kobj_to_dev(kobj); in dev_uevent_name() local
291 if (dev->bus) in dev_uevent_name()
292 return dev->bus->name; in dev_uevent_name()
293 if (dev->class) in dev_uevent_name()
294 return dev->class->name; in dev_uevent_name()
301 struct device *dev = kobj_to_dev(kobj); in dev_uevent() local
305 if (MAJOR(dev->devt)) { in dev_uevent()
312 add_uevent_var(env, "MAJOR=%u", MAJOR(dev->devt)); in dev_uevent()
313 add_uevent_var(env, "MINOR=%u", MINOR(dev->devt)); in dev_uevent()
314 name = device_get_devnode(dev, &mode, &uid, &gid, &tmp); in dev_uevent()
327 if (dev->type && dev->type->name) in dev_uevent()
328 add_uevent_var(env, "DEVTYPE=%s", dev->type->name); in dev_uevent()
330 if (dev->driver) in dev_uevent()
331 add_uevent_var(env, "DRIVER=%s", dev->driver->name); in dev_uevent()
334 of_device_uevent(dev, env); in dev_uevent()
337 if (dev->bus && dev->bus->uevent) { in dev_uevent()
338 retval = dev->bus->uevent(dev, env); in dev_uevent()
341 dev_name(dev), __func__, retval); in dev_uevent()
345 if (dev->class && dev->class->dev_uevent) { in dev_uevent()
346 retval = dev->class->dev_uevent(dev, env); in dev_uevent()
349 "returned %d\n", dev_name(dev), in dev_uevent()
354 if (dev->type && dev->type->uevent) { in dev_uevent()
355 retval = dev->type->uevent(dev, env); in dev_uevent()
358 "returned %d\n", dev_name(dev), in dev_uevent()
371 static ssize_t uevent_show(struct device *dev, struct device_attribute *attr, in uevent_show() argument
382 top_kobj = &dev->kobj; in uevent_show()
394 if (!kset->uevent_ops->filter(kset, &dev->kobj)) in uevent_show()
402 retval = kset->uevent_ops->uevent(kset, &dev->kobj, env); in uevent_show()
414 static ssize_t uevent_store(struct device *dev, struct device_attribute *attr, in uevent_store() argument
420 kobject_uevent(&dev->kobj, action); in uevent_store()
422 dev_err(dev, "uevent: unknown action-string\n"); in uevent_store()
427 static ssize_t online_show(struct device *dev, struct device_attribute *attr, in online_show() argument
432 device_lock(dev); in online_show()
433 val = !dev->offline; in online_show()
434 device_unlock(dev); in online_show()
438 static ssize_t online_store(struct device *dev, struct device_attribute *attr, in online_store() argument
452 ret = val ? device_online(dev) : device_offline(dev); in online_store()
458 int device_add_groups(struct device *dev, const struct attribute_group **groups) in device_add_groups() argument
460 return sysfs_create_groups(&dev->kobj, groups); in device_add_groups()
463 void device_remove_groups(struct device *dev, in device_remove_groups() argument
466 sysfs_remove_groups(&dev->kobj, groups); in device_remove_groups()
469 static int device_add_attrs(struct device *dev) in device_add_attrs() argument
471 struct class *class = dev->class; in device_add_attrs()
472 const struct device_type *type = dev->type; in device_add_attrs()
476 error = device_add_groups(dev, class->dev_groups); in device_add_attrs()
482 error = device_add_groups(dev, type->groups); in device_add_attrs()
487 error = device_add_groups(dev, dev->groups); in device_add_attrs()
491 if (device_supports_offline(dev) && !dev->offline_disabled) { in device_add_attrs()
492 error = device_create_file(dev, &dev_attr_online); in device_add_attrs()
500 device_remove_groups(dev, dev->groups); in device_add_attrs()
503 device_remove_groups(dev, type->groups); in device_add_attrs()
506 device_remove_groups(dev, class->dev_groups); in device_add_attrs()
511 static void device_remove_attrs(struct device *dev) in device_remove_attrs() argument
513 struct class *class = dev->class; in device_remove_attrs()
514 const struct device_type *type = dev->type; in device_remove_attrs()
516 device_remove_file(dev, &dev_attr_online); in device_remove_attrs()
517 device_remove_groups(dev, dev->groups); in device_remove_attrs()
520 device_remove_groups(dev, type->groups); in device_remove_attrs()
523 device_remove_groups(dev, class->dev_groups); in device_remove_attrs()
526 static ssize_t dev_show(struct device *dev, struct device_attribute *attr, in dev_show() argument
529 return print_dev_t(buf, dev->devt); in dev_show()
531 static DEVICE_ATTR_RO(dev);
572 void devices_kset_move_last(struct device *dev) in devices_kset_move_last() argument
576 pr_debug("devices_kset: Moving %s to end of list\n", dev_name(dev)); in devices_kset_move_last()
578 list_move_tail(&dev->kobj.entry, &devices_kset->list); in devices_kset_move_last()
587 int device_create_file(struct device *dev, in device_create_file() argument
592 if (dev) { in device_create_file()
599 error = sysfs_create_file(&dev->kobj, &attr->attr); in device_create_file()
611 void device_remove_file(struct device *dev, in device_remove_file() argument
614 if (dev) in device_remove_file()
615 sysfs_remove_file(&dev->kobj, &attr->attr); in device_remove_file()
626 bool device_remove_file_self(struct device *dev, in device_remove_file_self() argument
629 if (dev) in device_remove_file_self()
630 return sysfs_remove_file_self(&dev->kobj, &attr->attr); in device_remove_file_self()
641 int device_create_bin_file(struct device *dev, in device_create_bin_file() argument
645 if (dev) in device_create_bin_file()
646 error = sysfs_create_bin_file(&dev->kobj, attr); in device_create_bin_file()
656 void device_remove_bin_file(struct device *dev, in device_remove_bin_file() argument
659 if (dev) in device_remove_bin_file()
660 sysfs_remove_bin_file(&dev->kobj, attr); in device_remove_bin_file()
667 struct device *dev = p->device; in klist_children_get() local
669 get_device(dev); in klist_children_get()
675 struct device *dev = p->device; in klist_children_put() local
677 put_device(dev); in klist_children_put()
700 void device_initialize(struct device *dev) in device_initialize() argument
702 dev->kobj.kset = devices_kset; in device_initialize()
703 kobject_init(&dev->kobj, &device_ktype); in device_initialize()
704 INIT_LIST_HEAD(&dev->dma_pools); in device_initialize()
705 mutex_init(&dev->mutex); in device_initialize()
706 lockdep_set_novalidate_class(&dev->mutex); in device_initialize()
707 spin_lock_init(&dev->devres_lock); in device_initialize()
708 INIT_LIST_HEAD(&dev->devres_head); in device_initialize()
709 device_pm_init(dev); in device_initialize()
710 set_dev_node(dev, -1); in device_initialize()
712 INIT_LIST_HEAD(&dev->msi_list); in device_initialize()
717 struct kobject *virtual_device_parent(struct device *dev) in virtual_device_parent() argument
779 static struct kobject *get_device_parent(struct device *dev, in get_device_parent() argument
782 if (dev->class) { in get_device_parent()
789 if (sysfs_deprecated && dev->class == &block_class) { in get_device_parent()
802 parent_kobj = virtual_device_parent(dev); in get_device_parent()
803 else if (parent->class && !dev->class->ns_type) in get_device_parent()
811 spin_lock(&dev->class->p->glue_dirs.list_lock); in get_device_parent()
812 list_for_each_entry(k, &dev->class->p->glue_dirs.list, entry) in get_device_parent()
817 spin_unlock(&dev->class->p->glue_dirs.list_lock); in get_device_parent()
824 k = class_dir_create_and_add(dev->class, parent_kobj); in get_device_parent()
831 if (!parent && dev->bus && dev->bus->dev_root) in get_device_parent()
832 return &dev->bus->dev_root->kobj; in get_device_parent()
839 static void cleanup_glue_dir(struct device *dev, struct kobject *glue_dir) in cleanup_glue_dir() argument
842 if (!glue_dir || !dev->class || in cleanup_glue_dir()
843 glue_dir->kset != &dev->class->p->glue_dirs) in cleanup_glue_dir()
851 static void cleanup_device_parent(struct device *dev) in cleanup_device_parent() argument
853 cleanup_glue_dir(dev, dev->kobj.parent); in cleanup_device_parent()
856 static int device_add_class_symlinks(struct device *dev) in device_add_class_symlinks() argument
858 struct device_node *of_node = dev_of_node(dev); in device_add_class_symlinks()
862 error = sysfs_create_link(&dev->kobj, &of_node->kobj,"of_node"); in device_add_class_symlinks()
864 dev_warn(dev, "Error %d creating of_node link\n",error); in device_add_class_symlinks()
868 if (!dev->class) in device_add_class_symlinks()
871 error = sysfs_create_link(&dev->kobj, in device_add_class_symlinks()
872 &dev->class->p->subsys.kobj, in device_add_class_symlinks()
877 if (dev->parent && device_is_not_partition(dev)) { in device_add_class_symlinks()
878 error = sysfs_create_link(&dev->kobj, &dev->parent->kobj, in device_add_class_symlinks()
886 if (sysfs_deprecated && dev->class == &block_class) in device_add_class_symlinks()
891 error = sysfs_create_link(&dev->class->p->subsys.kobj, in device_add_class_symlinks()
892 &dev->kobj, dev_name(dev)); in device_add_class_symlinks()
899 sysfs_remove_link(&dev->kobj, "device"); in device_add_class_symlinks()
902 sysfs_remove_link(&dev->kobj, "subsystem"); in device_add_class_symlinks()
904 sysfs_remove_link(&dev->kobj, "of_node"); in device_add_class_symlinks()
908 static void device_remove_class_symlinks(struct device *dev) in device_remove_class_symlinks() argument
910 if (dev_of_node(dev)) in device_remove_class_symlinks()
911 sysfs_remove_link(&dev->kobj, "of_node"); in device_remove_class_symlinks()
913 if (!dev->class) in device_remove_class_symlinks()
916 if (dev->parent && device_is_not_partition(dev)) in device_remove_class_symlinks()
917 sysfs_remove_link(&dev->kobj, "device"); in device_remove_class_symlinks()
918 sysfs_remove_link(&dev->kobj, "subsystem"); in device_remove_class_symlinks()
920 if (sysfs_deprecated && dev->class == &block_class) in device_remove_class_symlinks()
923 sysfs_delete_link(&dev->class->p->subsys.kobj, &dev->kobj, dev_name(dev)); in device_remove_class_symlinks()
931 int dev_set_name(struct device *dev, const char *fmt, ...) in dev_set_name() argument
937 err = kobject_set_name_vargs(&dev->kobj, fmt, vargs); in dev_set_name()
954 static struct kobject *device_to_dev_kobj(struct device *dev) in device_to_dev_kobj() argument
958 if (dev->class) in device_to_dev_kobj()
959 kobj = dev->class->dev_kobj; in device_to_dev_kobj()
966 static int device_create_sys_dev_entry(struct device *dev) in device_create_sys_dev_entry() argument
968 struct kobject *kobj = device_to_dev_kobj(dev); in device_create_sys_dev_entry()
973 format_dev_t(devt_str, dev->devt); in device_create_sys_dev_entry()
974 error = sysfs_create_link(kobj, &dev->kobj, devt_str); in device_create_sys_dev_entry()
980 static void device_remove_sys_dev_entry(struct device *dev) in device_remove_sys_dev_entry() argument
982 struct kobject *kobj = device_to_dev_kobj(dev); in device_remove_sys_dev_entry()
986 format_dev_t(devt_str, dev->devt); in device_remove_sys_dev_entry()
991 int device_private_init(struct device *dev) in device_private_init() argument
993 dev->p = kzalloc(sizeof(*dev->p), GFP_KERNEL); in device_private_init()
994 if (!dev->p) in device_private_init()
996 dev->p->device = dev; in device_private_init()
997 klist_init(&dev->p->klist_children, klist_children_get, in device_private_init()
999 INIT_LIST_HEAD(&dev->p->deferred_probe); in device_private_init()
1025 int device_add(struct device *dev) in device_add() argument
1032 dev = get_device(dev); in device_add()
1033 if (!dev) in device_add()
1036 if (!dev->p) { in device_add()
1037 error = device_private_init(dev); in device_add()
1047 if (dev->init_name) { in device_add()
1048 dev_set_name(dev, "%s", dev->init_name); in device_add()
1049 dev->init_name = NULL; in device_add()
1053 if (!dev_name(dev) && dev->bus && dev->bus->dev_name) in device_add()
1054 dev_set_name(dev, "%s%u", dev->bus->dev_name, dev->id); in device_add()
1056 if (!dev_name(dev)) { in device_add()
1061 pr_debug("device: '%s': %s\n", dev_name(dev), __func__); in device_add()
1063 parent = get_device(dev->parent); in device_add()
1064 kobj = get_device_parent(dev, parent); in device_add()
1066 dev->kobj.parent = kobj; in device_add()
1069 if (parent && (dev_to_node(dev) == NUMA_NO_NODE)) in device_add()
1070 set_dev_node(dev, dev_to_node(parent)); in device_add()
1074 error = kobject_add(&dev->kobj, dev->kobj.parent, NULL); in device_add()
1080 platform_notify(dev); in device_add()
1082 error = device_create_file(dev, &dev_attr_uevent); in device_add()
1086 error = device_add_class_symlinks(dev); in device_add()
1089 error = device_add_attrs(dev); in device_add()
1092 error = bus_add_device(dev); in device_add()
1095 error = dpm_sysfs_add(dev); in device_add()
1098 device_pm_add(dev); in device_add()
1100 if (MAJOR(dev->devt)) { in device_add()
1101 error = device_create_file(dev, &dev_attr_dev); in device_add()
1105 error = device_create_sys_dev_entry(dev); in device_add()
1109 devtmpfs_create_node(dev); in device_add()
1115 if (dev->bus) in device_add()
1116 blocking_notifier_call_chain(&dev->bus->p->bus_notifier, in device_add()
1117 BUS_NOTIFY_ADD_DEVICE, dev); in device_add()
1119 kobject_uevent(&dev->kobj, KOBJ_ADD); in device_add()
1120 bus_probe_device(dev); in device_add()
1122 klist_add_tail(&dev->p->knode_parent, in device_add()
1125 if (dev->class) { in device_add()
1126 mutex_lock(&dev->class->p->mutex); in device_add()
1128 klist_add_tail(&dev->knode_class, in device_add()
1129 &dev->class->p->klist_devices); in device_add()
1133 &dev->class->p->interfaces, node) in device_add()
1135 class_intf->add_dev(dev, class_intf); in device_add()
1136 mutex_unlock(&dev->class->p->mutex); in device_add()
1139 put_device(dev); in device_add()
1142 if (MAJOR(dev->devt)) in device_add()
1143 device_remove_file(dev, &dev_attr_dev); in device_add()
1145 device_pm_remove(dev); in device_add()
1146 dpm_sysfs_remove(dev); in device_add()
1148 bus_remove_device(dev); in device_add()
1150 device_remove_attrs(dev); in device_add()
1152 device_remove_class_symlinks(dev); in device_add()
1154 device_remove_file(dev, &dev_attr_uevent); in device_add()
1156 kobject_uevent(&dev->kobj, KOBJ_REMOVE); in device_add()
1157 kobject_del(&dev->kobj); in device_add()
1159 cleanup_device_parent(dev); in device_add()
1162 kfree(dev->p); in device_add()
1163 dev->p = NULL; in device_add()
1186 int device_register(struct device *dev) in device_register() argument
1188 device_initialize(dev); in device_register()
1189 return device_add(dev); in device_register()
1201 struct device *get_device(struct device *dev) in get_device() argument
1203 return dev ? kobj_to_dev(kobject_get(&dev->kobj)) : NULL; in get_device()
1211 void put_device(struct device *dev) in put_device() argument
1214 if (dev) in put_device()
1215 kobject_put(&dev->kobj); in put_device()
1232 void device_del(struct device *dev) in device_del() argument
1234 struct device *parent = dev->parent; in device_del()
1240 if (dev->bus) in device_del()
1241 blocking_notifier_call_chain(&dev->bus->p->bus_notifier, in device_del()
1242 BUS_NOTIFY_DEL_DEVICE, dev); in device_del()
1243 dpm_sysfs_remove(dev); in device_del()
1245 klist_del(&dev->p->knode_parent); in device_del()
1246 if (MAJOR(dev->devt)) { in device_del()
1247 devtmpfs_delete_node(dev); in device_del()
1248 device_remove_sys_dev_entry(dev); in device_del()
1249 device_remove_file(dev, &dev_attr_dev); in device_del()
1251 if (dev->class) { in device_del()
1252 device_remove_class_symlinks(dev); in device_del()
1254 mutex_lock(&dev->class->p->mutex); in device_del()
1257 &dev->class->p->interfaces, node) in device_del()
1259 class_intf->remove_dev(dev, class_intf); in device_del()
1261 klist_del(&dev->knode_class); in device_del()
1262 mutex_unlock(&dev->class->p->mutex); in device_del()
1264 device_remove_file(dev, &dev_attr_uevent); in device_del()
1265 device_remove_attrs(dev); in device_del()
1266 bus_remove_device(dev); in device_del()
1267 device_pm_remove(dev); in device_del()
1268 driver_deferred_probe_del(dev); in device_del()
1274 platform_notify_remove(dev); in device_del()
1275 if (dev->bus) in device_del()
1276 blocking_notifier_call_chain(&dev->bus->p->bus_notifier, in device_del()
1277 BUS_NOTIFY_REMOVED_DEVICE, dev); in device_del()
1278 kobject_uevent(&dev->kobj, KOBJ_REMOVE); in device_del()
1279 cleanup_device_parent(dev); in device_del()
1280 kobject_del(&dev->kobj); in device_del()
1296 void device_unregister(struct device *dev) in device_unregister() argument
1298 pr_debug("device: '%s': %s\n", dev_name(dev), __func__); in device_unregister()
1299 device_del(dev); in device_unregister()
1300 put_device(dev); in device_unregister()
1307 struct device *dev = NULL; in prev_device() local
1312 dev = p->device; in prev_device()
1314 return dev; in prev_device()
1320 struct device *dev = NULL; in next_device() local
1325 dev = p->device; in next_device()
1327 return dev; in next_device()
1343 const char *device_get_devnode(struct device *dev, in device_get_devnode() argument
1352 if (dev->type && dev->type->devnode) in device_get_devnode()
1353 *tmp = dev->type->devnode(dev, mode, uid, gid); in device_get_devnode()
1358 if (dev->class && dev->class->devnode) in device_get_devnode()
1359 *tmp = dev->class->devnode(dev, mode); in device_get_devnode()
1364 if (strchr(dev_name(dev), '!') == NULL) in device_get_devnode()
1365 return dev_name(dev); in device_get_devnode()
1368 s = kstrdup(dev_name(dev), GFP_KERNEL); in device_get_devnode()
1388 int (*fn)(struct device *dev, void *data)) in device_for_each_child() argument
1418 int (*fn)(struct device *dev, void *data)) in device_for_each_child_reverse() argument
1453 int (*match)(struct device *dev, void *data)) in device_find_child() argument
1496 static int device_check_offline(struct device *dev, void *not_used) in device_check_offline() argument
1500 ret = device_for_each_child(dev, NULL, device_check_offline); in device_check_offline()
1504 return device_supports_offline(dev) && !dev->offline ? -EBUSY : 0; in device_check_offline()
1518 int device_offline(struct device *dev) in device_offline() argument
1522 if (dev->offline_disabled) in device_offline()
1525 ret = device_for_each_child(dev, NULL, device_check_offline); in device_offline()
1529 device_lock(dev); in device_offline()
1530 if (device_supports_offline(dev)) { in device_offline()
1531 if (dev->offline) { in device_offline()
1534 ret = dev->bus->offline(dev); in device_offline()
1536 kobject_uevent(&dev->kobj, KOBJ_OFFLINE); in device_offline()
1537 dev->offline = true; in device_offline()
1541 device_unlock(dev); in device_offline()
1556 int device_online(struct device *dev) in device_online() argument
1560 device_lock(dev); in device_online()
1561 if (device_supports_offline(dev)) { in device_online()
1562 if (dev->offline) { in device_online()
1563 ret = dev->bus->online(dev); in device_online()
1565 kobject_uevent(&dev->kobj, KOBJ_ONLINE); in device_online()
1566 dev->offline = false; in device_online()
1572 device_unlock(dev); in device_online()
1578 struct device dev; member
1584 return container_of(d, struct root_device, dev); in to_root_device()
1587 static void root_device_release(struct device *dev) in root_device_release() argument
1589 kfree(to_root_device(dev)); in root_device_release()
1623 err = dev_set_name(&root->dev, "%s", name); in __root_device_register()
1629 root->dev.release = root_device_release; in __root_device_register()
1631 err = device_register(&root->dev); in __root_device_register()
1633 put_device(&root->dev); in __root_device_register()
1641 err = sysfs_create_link(&root->dev.kobj, &mk->kobj, "module"); in __root_device_register()
1643 device_unregister(&root->dev); in __root_device_register()
1650 return &root->dev; in __root_device_register()
1661 void root_device_unregister(struct device *dev) in root_device_unregister() argument
1663 struct root_device *root = to_root_device(dev); in root_device_unregister()
1666 sysfs_remove_link(&root->dev.kobj, "module"); in root_device_unregister()
1668 device_unregister(dev); in root_device_unregister()
1673 static void device_create_release(struct device *dev) in device_create_release() argument
1675 pr_debug("device: '%s': %s\n", dev_name(dev), __func__); in device_create_release()
1676 kfree(dev); in device_create_release()
1685 struct device *dev = NULL; in device_create_groups_vargs() local
1691 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in device_create_groups_vargs()
1692 if (!dev) { in device_create_groups_vargs()
1697 device_initialize(dev); in device_create_groups_vargs()
1698 dev->devt = devt; in device_create_groups_vargs()
1699 dev->class = class; in device_create_groups_vargs()
1700 dev->parent = parent; in device_create_groups_vargs()
1701 dev->groups = groups; in device_create_groups_vargs()
1702 dev->release = device_create_release; in device_create_groups_vargs()
1703 dev_set_drvdata(dev, drvdata); in device_create_groups_vargs()
1705 retval = kobject_set_name_vargs(&dev->kobj, fmt, args); in device_create_groups_vargs()
1709 retval = device_add(dev); in device_create_groups_vargs()
1713 return dev; in device_create_groups_vargs()
1716 put_device(dev); in device_create_groups_vargs()
1782 struct device *dev; in device_create() local
1785 dev = device_create_vargs(class, parent, devt, drvdata, fmt, vargs); in device_create()
1787 return dev; in device_create()
1825 struct device *dev; in device_create_with_groups() local
1828 dev = device_create_groups_vargs(class, parent, devt, drvdata, groups, in device_create_with_groups()
1831 return dev; in device_create_with_groups()
1835 static int __match_devt(struct device *dev, const void *data) in __match_devt() argument
1839 return dev->devt == *devt; in __match_devt()
1852 struct device *dev; in device_destroy() local
1854 dev = class_find_device(class, NULL, &devt, __match_devt); in device_destroy()
1855 if (dev) { in device_destroy()
1856 put_device(dev); in device_destroy()
1857 device_unregister(dev); in device_destroy()
1901 int device_rename(struct device *dev, const char *new_name) in device_rename() argument
1903 struct kobject *kobj = &dev->kobj; in device_rename()
1907 dev = get_device(dev); in device_rename()
1908 if (!dev) in device_rename()
1911 dev_dbg(dev, "renaming to %s\n", new_name); in device_rename()
1913 old_device_name = kstrdup(dev_name(dev), GFP_KERNEL); in device_rename()
1919 if (dev->class) { in device_rename()
1920 error = sysfs_rename_link_ns(&dev->class->p->subsys.kobj, in device_rename()
1932 put_device(dev); in device_rename()
1940 static int device_move_class_links(struct device *dev, in device_move_class_links() argument
1947 sysfs_remove_link(&dev->kobj, "device"); in device_move_class_links()
1949 error = sysfs_create_link(&dev->kobj, &new_parent->kobj, in device_move_class_links()
1960 int device_move(struct device *dev, struct device *new_parent, in device_move() argument
1967 dev = get_device(dev); in device_move()
1968 if (!dev) in device_move()
1973 new_parent_kobj = get_device_parent(dev, new_parent); in device_move()
1975 pr_debug("device: '%s': %s: moving to '%s'\n", dev_name(dev), in device_move()
1977 error = kobject_move(&dev->kobj, new_parent_kobj); in device_move()
1979 cleanup_glue_dir(dev, new_parent_kobj); in device_move()
1983 old_parent = dev->parent; in device_move()
1984 dev->parent = new_parent; in device_move()
1986 klist_remove(&dev->p->knode_parent); in device_move()
1988 klist_add_tail(&dev->p->knode_parent, in device_move()
1990 set_dev_node(dev, dev_to_node(new_parent)); in device_move()
1993 if (dev->class) { in device_move()
1994 error = device_move_class_links(dev, old_parent, new_parent); in device_move()
1997 device_move_class_links(dev, new_parent, old_parent); in device_move()
1998 if (!kobject_move(&dev->kobj, &old_parent->kobj)) { in device_move()
2000 klist_remove(&dev->p->knode_parent); in device_move()
2001 dev->parent = old_parent; in device_move()
2003 klist_add_tail(&dev->p->knode_parent, in device_move()
2005 set_dev_node(dev, dev_to_node(old_parent)); in device_move()
2008 cleanup_glue_dir(dev, new_parent_kobj); in device_move()
2017 device_pm_move_after(dev, new_parent); in device_move()
2018 devices_kset_move_after(dev, new_parent); in device_move()
2021 device_pm_move_before(new_parent, dev); in device_move()
2022 devices_kset_move_before(new_parent, dev); in device_move()
2025 device_pm_move_last(dev); in device_move()
2026 devices_kset_move_last(dev); in device_move()
2033 put_device(dev); in device_move()
2043 struct device *dev, *parent; in device_shutdown() local
2052 dev = list_entry(devices_kset->list.prev, struct device, in device_shutdown()
2060 parent = get_device(dev->parent); in device_shutdown()
2061 get_device(dev); in device_shutdown()
2066 list_del_init(&dev->kobj.entry); in device_shutdown()
2072 device_lock(dev); in device_shutdown()
2075 pm_runtime_get_noresume(dev); in device_shutdown()
2076 pm_runtime_barrier(dev); in device_shutdown()
2078 if (dev->bus && dev->bus->shutdown) { in device_shutdown()
2080 dev_info(dev, "shutdown\n"); in device_shutdown()
2081 dev->bus->shutdown(dev); in device_shutdown()
2082 } else if (dev->driver && dev->driver->shutdown) { in device_shutdown()
2084 dev_info(dev, "shutdown\n"); in device_shutdown()
2085 dev->driver->shutdown(dev); in device_shutdown()
2088 device_unlock(dev); in device_shutdown()
2092 put_device(dev); in device_shutdown()
2106 create_syslog_header(const struct device *dev, char *hdr, size_t hdrlen) in create_syslog_header() argument
2111 if (dev->class) in create_syslog_header()
2112 subsys = dev->class->name; in create_syslog_header()
2113 else if (dev->bus) in create_syslog_header()
2114 subsys = dev->bus->name; in create_syslog_header()
2129 if (MAJOR(dev->devt)) { in create_syslog_header()
2139 c, MAJOR(dev->devt), MINOR(dev->devt)); in create_syslog_header()
2141 struct net_device *net = to_net_dev(dev); in create_syslog_header()
2149 "DEVICE=+%s:%s", subsys, dev_name(dev)); in create_syslog_header()
2158 dev_WARN(dev, "device/subsystem name too long"); in create_syslog_header()
2162 int dev_vprintk_emit(int level, const struct device *dev, in dev_vprintk_emit() argument
2168 hdrlen = create_syslog_header(dev, hdr, sizeof(hdr)); in dev_vprintk_emit()
2174 int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...) in dev_printk_emit() argument
2181 r = dev_vprintk_emit(level, dev, fmt, args); in dev_printk_emit()
2189 static void __dev_printk(const char *level, const struct device *dev, in __dev_printk() argument
2192 if (dev) in __dev_printk()
2193 dev_printk_emit(level[1] - '0', dev, "%s %s: %pV", in __dev_printk()
2194 dev_driver_string(dev), dev_name(dev), vaf); in __dev_printk()
2199 void dev_printk(const char *level, const struct device *dev, in dev_printk() argument
2210 __dev_printk(level, dev, &vaf); in dev_printk()
2217 void func(const struct device *dev, const char *fmt, ...) \
2227 __dev_printk(kern_level, dev, &vaf); \
2256 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode) in set_primary_fwnode() argument
2259 struct fwnode_handle *fn = dev->fwnode; in set_primary_fwnode()
2265 dev->fwnode = fwnode; in set_primary_fwnode()
2267 dev->fwnode = fwnode_is_primary(dev->fwnode) ? in set_primary_fwnode()
2268 dev->fwnode->secondary : NULL; in set_primary_fwnode()
2282 void set_secondary_fwnode(struct device *dev, struct fwnode_handle *fwnode) in set_secondary_fwnode() argument
2287 if (fwnode_is_primary(dev->fwnode)) in set_secondary_fwnode()
2288 dev->fwnode->secondary = fwnode; in set_secondary_fwnode()
2290 dev->fwnode = fwnode; in set_secondary_fwnode()