|
@@ -1734,6 +1734,7 @@ EXPORT_SYMBOL_GPL(input_class);
|
|
|
*/
|
|
|
struct input_dev *input_allocate_device(void)
|
|
|
{
|
|
|
+ static atomic_t input_no = ATOMIC_INIT(0);
|
|
|
struct input_dev *dev;
|
|
|
|
|
|
dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
|
|
@@ -1743,9 +1744,13 @@ struct input_dev *input_allocate_device(void)
|
|
|
device_initialize(&dev->dev);
|
|
|
mutex_init(&dev->mutex);
|
|
|
spin_lock_init(&dev->event_lock);
|
|
|
+ init_timer(&dev->timer);
|
|
|
INIT_LIST_HEAD(&dev->h_list);
|
|
|
INIT_LIST_HEAD(&dev->node);
|
|
|
|
|
|
+ dev_set_name(&dev->dev, "input%ld",
|
|
|
+ (unsigned long) atomic_inc_return(&input_no) - 1);
|
|
|
+
|
|
|
__module_get(THIS_MODULE);
|
|
|
}
|
|
|
|
|
@@ -2019,7 +2024,6 @@ static void devm_input_device_unregister(struct device *dev, void *res)
|
|
|
*/
|
|
|
int input_register_device(struct input_dev *dev)
|
|
|
{
|
|
|
- static atomic_t input_no = ATOMIC_INIT(0);
|
|
|
struct input_devres *devres = NULL;
|
|
|
struct input_handler *handler;
|
|
|
unsigned int packet_size;
|
|
@@ -2059,7 +2063,6 @@ int input_register_device(struct input_dev *dev)
|
|
|
* If delay and period are pre-set by the driver, then autorepeating
|
|
|
* is handled by the driver itself and we don't do it in input.c.
|
|
|
*/
|
|
|
- init_timer(&dev->timer);
|
|
|
if (!dev->rep[REP_DELAY] && !dev->rep[REP_PERIOD]) {
|
|
|
dev->timer.data = (long) dev;
|
|
|
dev->timer.function = input_repeat_key;
|
|
@@ -2073,9 +2076,6 @@ int input_register_device(struct input_dev *dev)
|
|
|
if (!dev->setkeycode)
|
|
|
dev->setkeycode = input_default_setkeycode;
|
|
|
|
|
|
- dev_set_name(&dev->dev, "input%ld",
|
|
|
- (unsigned long) atomic_inc_return(&input_no) - 1);
|
|
|
-
|
|
|
error = device_add(&dev->dev);
|
|
|
if (error)
|
|
|
goto err_free_vals;
|