Lines Matching refs:misc
207 int misc_register(struct miscdevice *misc) in misc_register() argument
211 bool is_dynamic = (misc->minor == MISC_DYNAMIC_MINOR); in misc_register()
213 INIT_LIST_HEAD(&misc->list); in misc_register()
218 int i = misc_minor_alloc(misc->minor); in misc_register()
224 misc->minor = i; in misc_register()
230 if (c->minor == misc->minor) { in misc_register()
236 i = misc_minor_alloc(misc->minor); in misc_register()
243 dev = MKDEV(MISC_MAJOR, misc->minor); in misc_register()
245 misc->this_device = in misc_register()
246 device_create_with_groups(&misc_class, misc->parent, dev, in misc_register()
247 misc, misc->groups, "%s", misc->name); in misc_register()
248 if (IS_ERR(misc->this_device)) { in misc_register()
249 misc_minor_free(misc->minor); in misc_register()
251 misc->minor = MISC_DYNAMIC_MINOR; in misc_register()
253 err = PTR_ERR(misc->this_device); in misc_register()
261 list_add(&misc->list, &misc_list); in misc_register()
276 void misc_deregister(struct miscdevice *misc) in misc_deregister() argument
278 if (WARN_ON(list_empty(&misc->list))) in misc_deregister()
282 list_del(&misc->list); in misc_deregister()
283 device_destroy(&misc_class, MKDEV(MISC_MAJOR, misc->minor)); in misc_deregister()
284 misc_minor_free(misc->minor); in misc_deregister()