Lines Matching refs:edac_dev
120 struct edac_device_ctl_info *edac_dev = to_ctl_info(kobj); in edac_dev_ctl_info_show() local
124 return ctl_info_attr->show(edac_dev, buffer); in edac_dev_ctl_info_show()
133 struct edac_device_ctl_info *edac_dev = to_ctl_info(kobj); in edac_dev_ctl_info_store() local
137 return ctl_info_attr->store(edac_dev, buffer, count); in edac_dev_ctl_info_store()
204 struct edac_device_ctl_info *edac_dev = to_edacdev(kobj); in edac_device_ctrl_master_release() local
206 edac_dbg(4, "control index=%d\n", edac_dev->dev_idx); in edac_device_ctrl_master_release()
209 module_put(edac_dev->owner); in edac_device_ctrl_master_release()
211 __edac_device_free_ctl_info(edac_dev); in edac_device_ctrl_master_release()
229 int edac_device_register_sysfs_main_kobj(struct edac_device_ctl_info *edac_dev) in edac_device_register_sysfs_main_kobj() argument
241 edac_dev->edac_subsys = edac_subsys; in edac_device_register_sysfs_main_kobj()
244 memset(&edac_dev->kobj, 0, sizeof(struct kobject)); in edac_device_register_sysfs_main_kobj()
249 edac_dev->owner = THIS_MODULE; in edac_device_register_sysfs_main_kobj()
251 if (!try_module_get(edac_dev->owner)) in edac_device_register_sysfs_main_kobj()
257 err = kobject_init_and_add(&edac_dev->kobj, &ktype_device_ctrl, in edac_device_register_sysfs_main_kobj()
258 &dev_root->kobj, "%s", edac_dev->name); in edac_device_register_sysfs_main_kobj()
263 edac_dev->name); in edac_device_register_sysfs_main_kobj()
266 kobject_uevent(&edac_dev->kobj, KOBJ_ADD); in edac_device_register_sysfs_main_kobj()
272 edac_dbg(4, "Registered '.../edac/%s' kobject\n", edac_dev->name); in edac_device_register_sysfs_main_kobj()
278 kobject_put(&edac_dev->kobj); in edac_device_register_sysfs_main_kobj()
279 module_put(edac_dev->owner); in edac_device_register_sysfs_main_kobj()
494 static int edac_device_create_block(struct edac_device_ctl_info *edac_dev, in edac_device_create_block() argument
514 main_kobj = kobject_get(&edac_dev->kobj); in edac_device_create_block()
564 static void edac_device_delete_block(struct edac_device_ctl_info *edac_dev, in edac_device_delete_block() argument
595 static int edac_device_create_instance(struct edac_device_ctl_info *edac_dev, in edac_device_create_instance() argument
603 instance = &edac_dev->instances[idx]; in edac_device_create_instance()
608 instance->ctl = edac_dev; in edac_device_create_instance()
613 main_kobj = kobject_get(&edac_dev->kobj); in edac_device_create_instance()
621 &edac_dev->kobj, "%s", instance->name); in edac_device_create_instance()
634 err = edac_device_create_block(edac_dev, instance, in edac_device_create_instance()
639 edac_device_delete_block(edac_dev, in edac_device_create_instance()
663 static void edac_device_delete_instance(struct edac_device_ctl_info *edac_dev, in edac_device_delete_instance() argument
669 instance = &edac_dev->instances[idx]; in edac_device_delete_instance()
673 edac_device_delete_block(edac_dev, &instance->blocks[i]); in edac_device_delete_instance()
686 static int edac_device_create_instances(struct edac_device_ctl_info *edac_dev) in edac_device_create_instances() argument
694 for (i = 0; i < edac_dev->nr_instances; i++) { in edac_device_create_instances()
695 err = edac_device_create_instance(edac_dev, i); in edac_device_create_instances()
699 edac_device_delete_instance(edac_dev, j); in edac_device_create_instances()
711 static void edac_device_delete_instances(struct edac_device_ctl_info *edac_dev) in edac_device_delete_instances() argument
716 for (i = 0; i < edac_dev->nr_instances; i++) in edac_device_delete_instances()
717 edac_device_delete_instance(edac_dev, i); in edac_device_delete_instances()
727 struct edac_device_ctl_info *edac_dev) in edac_device_add_main_sysfs_attributes() argument
732 sysfs_attrib = edac_dev->sysfs_attributes; in edac_device_add_main_sysfs_attributes()
738 err = sysfs_create_file(&edac_dev->kobj, in edac_device_add_main_sysfs_attributes()
756 struct edac_device_ctl_info *edac_dev) in edac_device_remove_main_sysfs_attributes() argument
764 sysfs_attrib = edac_dev->sysfs_attributes; in edac_device_remove_main_sysfs_attributes()
767 sysfs_remove_file(&edac_dev->kobj, in edac_device_remove_main_sysfs_attributes()
788 int edac_device_create_sysfs(struct edac_device_ctl_info *edac_dev) in edac_device_create_sysfs() argument
791 struct kobject *edac_kobj = &edac_dev->kobj; in edac_device_create_sysfs()
793 edac_dbg(0, "idx=%d\n", edac_dev->dev_idx); in edac_device_create_sysfs()
796 err = edac_device_add_main_sysfs_attributes(edac_dev); in edac_device_create_sysfs()
806 &edac_dev->dev->kobj, EDAC_DEVICE_SYMLINK); in edac_device_create_sysfs()
816 err = edac_device_create_instances(edac_dev); in edac_device_create_sysfs()
824 edac_dbg(4, "create-instances done, idx=%d\n", edac_dev->dev_idx); in edac_device_create_sysfs()
831 sysfs_remove_link(&edac_dev->kobj, EDAC_DEVICE_SYMLINK); in edac_device_create_sysfs()
834 edac_device_remove_main_sysfs_attributes(edac_dev); in edac_device_create_sysfs()
845 void edac_device_remove_sysfs(struct edac_device_ctl_info *edac_dev) in edac_device_remove_sysfs() argument
850 edac_device_remove_main_sysfs_attributes(edac_dev); in edac_device_remove_sysfs()
853 sysfs_remove_link(&edac_dev->kobj, EDAC_DEVICE_SYMLINK); in edac_device_remove_sysfs()
856 edac_device_delete_instances(edac_dev); in edac_device_remove_sysfs()