Skip to content

Commit

Permalink
HID: roccat: Pyra now reports external profile changes via roccat device
Browse files Browse the repository at this point in the history
Profile changes were only reported when issued mouse internal. Now all
changes are reported.

Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
  • Loading branch information
Stefan Achatz authored and Jiri Kosina committed Sep 7, 2011
1 parent 1c5784d commit dc186b6
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions drivers/hid/hid-roccat-pyra.c
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ static ssize_t pyra_sysfs_write_settings(struct file *fp,
struct usb_device *usb_dev = interface_to_usbdev(to_usb_interface(dev));
int retval = 0;
int difference;
struct pyra_roccat_report roccat_report;

if (off != 0 || count != sizeof(struct pyra_settings))
return -EINVAL;
Expand All @@ -307,17 +308,23 @@ static ssize_t pyra_sysfs_write_settings(struct file *fp,
if (difference) {
retval = pyra_set_settings(usb_dev,
(struct pyra_settings const *)buf);
if (!retval)
memcpy(&pyra->settings, buf,
sizeof(struct pyra_settings));
}
mutex_unlock(&pyra->pyra_lock);
if (retval) {
mutex_unlock(&pyra->pyra_lock);
return retval;
}

if (retval)
return retval;
memcpy(&pyra->settings, buf,
sizeof(struct pyra_settings));

profile_activated(pyra, pyra->settings.startup_profile);
profile_activated(pyra, pyra->settings.startup_profile);

roccat_report.type = PYRA_MOUSE_EVENT_BUTTON_TYPE_PROFILE_2;
roccat_report.value = pyra->settings.startup_profile + 1;
roccat_report.key = 0;
roccat_report_event(pyra->chrdev_minor,
(uint8_t const *)&roccat_report);
}
mutex_unlock(&pyra->pyra_lock);
return sizeof(struct pyra_settings);
}

Expand Down

0 comments on commit dc186b6

Please sign in to comment.