Lines Matching +full:control +full:- +full:parent

1 // SPDX-License-Identifier: GPL-2.0-or-later
13 * and functionality and without the non-standard behaviours the Kone had.
22 #include <linux/hid-roccat.h>
23 #include "hid-ids.h"
24 #include "hid-roccat-common.h"
25 #include "hid-roccat-koneplus.h"
34 koneplus->actual_profile = new_profile; in koneplus_profile_activated()
40 struct roccat_common2_control control; in koneplus_send_control() local
45 return -EINVAL; in koneplus_send_control()
47 control.command = ROCCAT_COMMON_COMMAND_CONTROL; in koneplus_send_control()
48 control.value = value; in koneplus_send_control()
49 control.request = request; in koneplus_send_control()
53 &control, sizeof(struct roccat_common2_control)); in koneplus_send_control()
57 /* retval is 0-4 on success, < 0 on error */
87 struct device *dev = kobj_to_dev(kobj)->parent->parent; in koneplus_sysfs_read()
96 return -EINVAL; in koneplus_sysfs_read()
98 mutex_lock(&koneplus->koneplus_lock); in koneplus_sysfs_read()
100 mutex_unlock(&koneplus->koneplus_lock); in koneplus_sysfs_read()
112 struct device *dev = kobj_to_dev(kobj)->parent->parent; in koneplus_sysfs_write()
118 return -EINVAL; in koneplus_sysfs_write()
120 mutex_lock(&koneplus->koneplus_lock); in koneplus_sysfs_write()
123 mutex_unlock(&koneplus->koneplus_lock); in koneplus_sysfs_write()
177 KONEPLUS_BIN_ATTRIBUTE_W(control, CONTROL);
191 struct device *dev = kobj_to_dev(kobj)->parent->parent; in koneplus_sysfs_read_profilex_settings()
195 retval = koneplus_send_control(usb_dev, *(uint *)(attr->private), in koneplus_sysfs_read_profilex_settings()
209 struct device *dev = kobj_to_dev(kobj)->parent->parent; in koneplus_sysfs_read_profilex_buttons()
213 retval = koneplus_send_control(usb_dev, *(uint *)(attr->private), in koneplus_sysfs_read_profilex_buttons()
228 .private = &profile_numbers[number-1], \
234 .private = &profile_numbers[number-1], \
246 hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); in koneplus_sysfs_show_actual_profile()
247 return snprintf(buf, PAGE_SIZE, "%d\n", koneplus->actual_profile); in koneplus_sysfs_show_actual_profile()
259 dev = dev->parent->parent; in koneplus_sysfs_set_actual_profile()
268 return -EINVAL; in koneplus_sysfs_set_actual_profile()
270 mutex_lock(&koneplus->koneplus_lock); in koneplus_sysfs_set_actual_profile()
274 mutex_unlock(&koneplus->koneplus_lock); in koneplus_sysfs_set_actual_profile()
284 roccat_report_event(koneplus->chrdev_minor, in koneplus_sysfs_set_actual_profile()
287 mutex_unlock(&koneplus->koneplus_lock); in koneplus_sysfs_set_actual_profile()
305 dev = dev->parent->parent; in koneplus_sysfs_show_firmware_version()
309 mutex_lock(&koneplus->koneplus_lock); in koneplus_sysfs_show_firmware_version()
312 mutex_unlock(&koneplus->koneplus_lock); in koneplus_sysfs_show_firmware_version()
364 mutex_init(&koneplus->koneplus_lock); in koneplus_init_koneplus_device_struct()
376 struct usb_interface *intf = to_usb_interface(hdev->dev.parent); in koneplus_init_specials()
381 if (intf->cur_altsetting->desc.bInterfaceProtocol in koneplus_init_specials()
387 return -ENOMEM; in koneplus_init_specials()
402 koneplus->chrdev_minor = retval; in koneplus_init_specials()
403 koneplus->roccat_claimed = 1; in koneplus_init_specials()
417 struct usb_interface *intf = to_usb_interface(hdev->dev.parent); in koneplus_remove_specials()
420 if (intf->cur_altsetting->desc.bInterfaceProtocol in koneplus_remove_specials()
423 if (koneplus->roccat_claimed) in koneplus_remove_specials()
424 roccat_disconnect(koneplus->chrdev_minor); in koneplus_remove_specials()
435 return -EINVAL; in koneplus_probe()
477 switch (button_report->type) { in koneplus_keep_values_up_to_date()
479 koneplus_profile_activated(koneplus, button_report->data1 - 1); in koneplus_keep_values_up_to_date()
497 if ((button_report->type == KONEPLUS_MOUSE_REPORT_BUTTON_TYPE_QUICKLAUNCH || in koneplus_report_to_chrdev()
498 button_report->type == KONEPLUS_MOUSE_REPORT_BUTTON_TYPE_TIMER) && in koneplus_report_to_chrdev()
499 button_report->data2 != KONEPLUS_MOUSE_REPORT_BUTTON_ACTION_PRESS) in koneplus_report_to_chrdev()
502 roccat_report.type = button_report->type; in koneplus_report_to_chrdev()
503 roccat_report.data1 = button_report->data1; in koneplus_report_to_chrdev()
504 roccat_report.data2 = button_report->data2; in koneplus_report_to_chrdev()
505 roccat_report.profile = koneplus->actual_profile + 1; in koneplus_report_to_chrdev()
506 roccat_report_event(koneplus->chrdev_minor, in koneplus_report_to_chrdev()
513 struct usb_interface *intf = to_usb_interface(hdev->dev.parent); in koneplus_raw_event()
516 if (intf->cur_altsetting->desc.bInterfaceProtocol in koneplus_raw_event()
525 if (koneplus->roccat_claimed) in koneplus_raw_event()
555 koneplus_class->dev_groups = koneplus_groups; in koneplus_init()