aboutsummaryrefslogtreecommitdiffstats
path: root/src/kernel/hid-lg-g710-plus.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/hid-lg-g710-plus.c')
-rw-r--r--src/kernel/hid-lg-g710-plus.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c
index 42ff7d8..f3f2577 100644
--- a/src/kernel/hid-lg-g710-plus.c
+++ b/src/kernel/hid-lg-g710-plus.c
@@ -128,8 +128,9 @@ static int lg_g710_plus_raw_event(struct hid_device *hdev, struct hid_report *re
struct lg_g710_plus_data* g710_data = lg_g710_plus_get_data(hdev);
/* Ignore the first event. It will send a key down event for certain buttons, but never the key up event*/
if (g710_data->first_event) {
+ memset(data, 0, size);
g710_data->first_event= 0;
- return 1;
+ return 0;
}
switch(report->id) {
case 3: return lg_g710_plus_extra_key_event(hdev, report, data, size);
@@ -249,6 +250,11 @@ err_free:
static void lg_g710_plus_remove(struct hid_device *hdev)
{
struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev);
+ struct list_head *feature_report_list = &hdev->report_enum[HID_FEATURE_REPORT].report_list;
+
+ if (data != NULL && !list_empty(feature_report_list))
+ sysfs_remove_group(&hdev->dev.kobj, &data->attr_group);
+
hid_hw_stop(hdev);
if (data != NULL) {
kfree(data);