summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/hid-roccat-kone.c54
1 files changed, 20 insertions, 34 deletions
diff --git a/drivers/hid/hid-roccat-kone.c b/drivers/hid/hid-roccat-kone.c
index 5d9ced0defa..8f35fe22f41 100644
--- a/drivers/hid/hid-roccat-kone.c
+++ b/drivers/hid/hid-roccat-kone.c
@@ -912,6 +912,24 @@ static void kone_remove(struct hid_device *hdev)
hid_hw_stop(hdev);
}
+/* handle special events and keep actual profile and dpi values up to date */
+static void kone_keep_values_up_to_date(struct kone_device *kone,
+ struct kone_mouse_event const *event)
+{
+ switch (event->event) {
+ case kone_mouse_event_switch_profile:
+ case kone_mouse_event_osd_profile:
+ kone->actual_profile = event->value;
+ kone->actual_dpi = kone->profiles[kone->actual_profile - 1].
+ startup_dpi;
+ break;
+ case kone_mouse_event_switch_dpi:
+ case kone_mouse_event_osd_dpi:
+ kone->actual_dpi = event->value;
+ break;
+ }
+}
+
/*
* Is called for keyboard- and mousepart.
* Only mousepart gets informations about special events in its extended event
@@ -938,41 +956,9 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report,
else
memset(&event->tilt, 0, 5);
- /*
- * handle special events and keep actual profile and dpi values
- * up to date
- */
- switch (event->event) {
- case kone_mouse_event_osd_dpi:
- dev_dbg(&hdev->dev, "osd dpi event. actual dpi %d\n",
- event->value);
- return 1; /* return 1 if event was handled */
- case kone_mouse_event_switch_dpi:
- kone->actual_dpi = event->value;
- dev_dbg(&hdev->dev, "switched dpi to %d\n", event->value);
- return 1;
- case kone_mouse_event_osd_profile:
- dev_dbg(&hdev->dev, "osd profile event. actual profile %d\n",
- event->value);
- return 1;
- case kone_mouse_event_switch_profile:
- kone->actual_profile = event->value;
- kone->actual_dpi = kone->profiles[kone->actual_profile - 1].
- startup_dpi;
- dev_dbg(&hdev->dev, "switched profile to %d\n", event->value);
- return 1;
- case kone_mouse_event_call_overlong_macro:
- dev_dbg(&hdev->dev, "overlong macro called, button %d %s/%s\n",
- event->macro_key,
- kone->profiles[kone->actual_profile - 1].
- button_infos[event->macro_key].macro_set_name,
- kone->profiles[kone->actual_profile - 1].
- button_infos[event->macro_key].macro_name
- );
- return 1;
- }
+ kone_keep_values_up_to_date(kone, event);
- return 0; /* do further processing */
+ return 0; /* always do further processing */
}
static const struct hid_device_id kone_devices[] = {