diff options
| author | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
|---|---|---|
| committer | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
| commit | 79828b4fa835f73cdaf4bffa48696abdcbea9d02 (patch) | |
| tree | 5e0fa7156acb75ba603022bc807df8f2fedb97a8 /drivers/hid/hid-input.c | |
| parent | 721b51fcf91898299d96f4b72cb9434cda29dce6 (diff) | |
| parent | 8c1a9d6323abf0fb1e5dad96cf3f1c783505ea5a (diff) | |
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-fix-rt5645
Diffstat (limited to 'drivers/hid/hid-input.c')
| -rw-r--r-- | drivers/hid/hid-input.c | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 3511bbaba505..53aeaf6252c7 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -462,12 +462,15 @@ out:  static void hidinput_cleanup_battery(struct hid_device *dev)  { +	const struct power_supply_desc *psy_desc; +  	if (!dev->battery)  		return; +	psy_desc = dev->battery->desc;  	power_supply_unregister(dev->battery); -	kfree(dev->battery->desc->name); -	kfree(dev->battery->desc); +	kfree(psy_desc->name); +	kfree(psy_desc);  	dev->battery = NULL;  }  #else  /* !CONFIG_HID_BATTERY_STRENGTH */ @@ -1163,8 +1166,11 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct  	input_event(input, usage->type, usage->code, value); -	if ((field->flags & HID_MAIN_ITEM_RELATIVE) && (usage->type == EV_KEY)) +	if ((field->flags & HID_MAIN_ITEM_RELATIVE) && +	    usage->type == EV_KEY && value) { +		input_sync(input);  		input_event(input, usage->type, usage->code, 0); +	}  }  void hidinput_report_event(struct hid_device *hid, struct hid_report *report)  |