int switch_dev_register(struct switch_dev *sdev) { int ret; if (!switch_class) { ret = create_switch_class(); if (ret < 0) return ret; } sdev->index = atomic_inc_return(&device_count); sdev->dev = device_create(switch_class, NULL, MKDEV(0, sdev->index), NULL, sdev->name); if (IS_ERR(sdev->dev)) return PTR_ERR(sdev->dev); ret = device_create_file(sdev->dev, &dev_attr_state); if (ret < 0) goto err_create_file_1; ret = device_create_file(sdev->dev, &dev_attr_name); if (ret < 0) goto err_create_file_2; dev_set_drvdata(sdev->dev, sdev); sdev->state = 0; return 0; err_create_file_2: device_remove_file(sdev->dev, &dev_attr_state); err_create_file_1: device_destroy(switch_class, MKDEV(0, sdev->index)); printk(KERN_ERR "switch: Failed to register driver %s\n", sdev->name); return ret; }
static int __init switch_class_init(void) { //<<yamaia><system><JKCha> wake_lock_init(&switch_class_wake_lock, WAKE_LOCK_SUSPEND,"sec_switch"); //<<yamaia><system><jswoo> switch_class_wake_lock_inited =1; return create_switch_class(); }
static int __init switch_class_init(void) { return create_switch_class(); }