diff options
Diffstat (limited to 'drivers/hid/hid-input.c')
| -rw-r--r-- | drivers/hid/hid-input.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 48c1c02c69f4..859aeb07542e 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -383,6 +383,8 @@ static const struct hid_device_id hid_battery_quirks[] = {  	  HID_BATTERY_QUIRK_IGNORE },  	{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN),  	  HID_BATTERY_QUIRK_IGNORE }, +	{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_LENOVO_YOGA_C630_TOUCHSCREEN), +	  HID_BATTERY_QUIRK_IGNORE },  	{}  }; @@ -1532,7 +1534,10 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct  			 * assume ours  			 */  			if (!report->tool) -				hid_report_set_tool(report, input, usage->code); +				report->tool = usage->code; + +			/* drivers may have changed the value behind our back, resend it */ +			hid_report_set_tool(report, input, report->tool);  		} else {  			hid_report_release_tool(report, input, usage->code);  		} | 
