Loading drivers/hid/wacom_sys.c +30 −6 Original line number Diff line number Diff line Loading @@ -1917,6 +1917,10 @@ static void wacom_remote_destroy_one(struct wacom *wacom, unsigned int index) remote->remotes[index].registered = false; spin_unlock_irqrestore(&remote->remote_lock, flags); if (remote->remotes[index].battery.battery) devres_release_group(&wacom->hdev->dev, &remote->remotes[index].battery.bat_desc); if (remote->remotes[index].group.name) devres_release_group(&wacom->hdev->dev, &remote->remotes[index]); Loading @@ -1926,6 +1930,7 @@ static void wacom_remote_destroy_one(struct wacom *wacom, unsigned int index) remote->remotes[i].serial = 0; remote->remotes[i].group.name = NULL; remote->remotes[i].registered = false; remote->remotes[i].battery.battery = NULL; wacom->led.groups[i].select = WACOM_STATUS_UNKNOWN; } } Loading Loading @@ -1982,11 +1987,6 @@ static int wacom_remote_create_one(struct wacom *wacom, u32 serial, if (error) goto fail; error = __wacom_initialize_battery(wacom, &remote->remotes[index].battery); if (error) goto fail; remote->remotes[index].registered = true; devres_close_group(dev, &remote->remotes[index]); Loading @@ -1998,6 +1998,28 @@ static int wacom_remote_create_one(struct wacom *wacom, u32 serial, return error; } static int wacom_remote_attach_battery(struct wacom *wacom, int index) { struct wacom_remote *remote = wacom->remote; int error; if (!remote->remotes[index].registered) return 0; if (remote->remotes[index].battery.battery) return 0; if (wacom->led.groups[index].select == WACOM_STATUS_UNKNOWN) return 0; error = __wacom_initialize_battery(wacom, &wacom->remote->remotes[index].battery); if (error) return error; return 0; } static void wacom_remote_work(struct work_struct *work) { struct wacom *wacom = container_of(work, struct wacom, remote_work); Loading Loading @@ -2028,8 +2050,10 @@ static void wacom_remote_work(struct work_struct *work) serial = data.remote[i].serial; if (data.remote[i].connected) { if (remote->remotes[i].serial == serial) if (remote->remotes[i].serial == serial) { wacom_remote_attach_battery(wacom, i); continue; } if (remote->remotes[i].serial) wacom_remote_destroy_one(wacom, i); Loading Loading
drivers/hid/wacom_sys.c +30 −6 Original line number Diff line number Diff line Loading @@ -1917,6 +1917,10 @@ static void wacom_remote_destroy_one(struct wacom *wacom, unsigned int index) remote->remotes[index].registered = false; spin_unlock_irqrestore(&remote->remote_lock, flags); if (remote->remotes[index].battery.battery) devres_release_group(&wacom->hdev->dev, &remote->remotes[index].battery.bat_desc); if (remote->remotes[index].group.name) devres_release_group(&wacom->hdev->dev, &remote->remotes[index]); Loading @@ -1926,6 +1930,7 @@ static void wacom_remote_destroy_one(struct wacom *wacom, unsigned int index) remote->remotes[i].serial = 0; remote->remotes[i].group.name = NULL; remote->remotes[i].registered = false; remote->remotes[i].battery.battery = NULL; wacom->led.groups[i].select = WACOM_STATUS_UNKNOWN; } } Loading Loading @@ -1982,11 +1987,6 @@ static int wacom_remote_create_one(struct wacom *wacom, u32 serial, if (error) goto fail; error = __wacom_initialize_battery(wacom, &remote->remotes[index].battery); if (error) goto fail; remote->remotes[index].registered = true; devres_close_group(dev, &remote->remotes[index]); Loading @@ -1998,6 +1998,28 @@ static int wacom_remote_create_one(struct wacom *wacom, u32 serial, return error; } static int wacom_remote_attach_battery(struct wacom *wacom, int index) { struct wacom_remote *remote = wacom->remote; int error; if (!remote->remotes[index].registered) return 0; if (remote->remotes[index].battery.battery) return 0; if (wacom->led.groups[index].select == WACOM_STATUS_UNKNOWN) return 0; error = __wacom_initialize_battery(wacom, &wacom->remote->remotes[index].battery); if (error) return error; return 0; } static void wacom_remote_work(struct work_struct *work) { struct wacom *wacom = container_of(work, struct wacom, remote_work); Loading Loading @@ -2028,8 +2050,10 @@ static void wacom_remote_work(struct work_struct *work) serial = data.remote[i].serial; if (data.remote[i].connected) { if (remote->remotes[i].serial == serial) if (remote->remotes[i].serial == serial) { wacom_remote_attach_battery(wacom, i); continue; } if (remote->remotes[i].serial) wacom_remote_destroy_one(wacom, i); Loading