Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ee420ba authored by Jiri Kosina's avatar Jiri Kosina
Browse files

Merge branches 'for-3.18/upstream-fixes' and 'for-3.19/upstream' into for-linus

Conflicts:
	drivers/hid/hid-input.c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -629,7 +629,7 @@ config HID_ROCCAT
	support for its special functionalities.

config HID_SAITEK
	tristate "Saitek non-fully HID-compliant devices"
	tristate "Saitek (Mad Catz) non-fully HID-compliant devices"
	depends on HID
	---help---
	Support for Saitek devices that are not fully compliant with the
@@ -637,6 +637,7 @@ config HID_SAITEK

	Supported devices:
	- PS1000 Dual Analog Pad
	- R.A.T.9 Gaming Mouse
	- R.A.T.7 Gaming Mouse
	- M.M.O.7 Gaming Mouse

+10 −11
Original line number Diff line number Diff line
@@ -779,16 +779,6 @@ static int hid_scan_report(struct hid_device *hid)
	    (hid->group == HID_GROUP_MULTITOUCH))
		hid->group = HID_GROUP_MULTITOUCH_WIN_8;

	/*
	* Vendor specific handlings
	*/
	if ((hid->vendor == USB_VENDOR_ID_SYNAPTICS) &&
	    (hid->group == HID_GROUP_GENERIC) &&
	    /* only bind to the mouse interface of composite USB devices */
	    (hid->bus != BUS_USB || hid->type == HID_TYPE_USBMOUSE))
		/* hid-rmi should take care of them, not hid-generic */
		hid->group = HID_GROUP_RMI;

	/*
	 * Vendor specific handlings
	 */
@@ -796,6 +786,13 @@ static int hid_scan_report(struct hid_device *hid)
	case USB_VENDOR_ID_WACOM:
		hid->group = HID_GROUP_WACOM;
		break;
	case USB_VENDOR_ID_SYNAPTICS:
		if ((hid->group == HID_GROUP_GENERIC) &&
		    (hid->bus != BUS_USB || hid->type == HID_TYPE_USBMOUSE))
			/* hid-rmi should only bind to the mouse interface of
			 * composite USB devices */
			hid->group = HID_GROUP_RMI;
		break;
	}

	vfree(parser);
@@ -1910,6 +1907,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_PS1000) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RAT7) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_MMO7) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_RAT9) },
#endif
	{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) },
@@ -2539,7 +2537,8 @@ int hid_add_device(struct hid_device *hdev)
	 * Scan generic devices for group information
	 */
	if (hid_ignore_special_drivers ||
	    !hid_match_id(hdev, hid_have_special_driver)) {
	    (!hdev->group &&
	     !hid_match_id(hdev, hid_have_special_driver))) {
		ret = hid_scan_report(hdev);
		if (ret)
			hid_warn(hdev, "bad device descriptor (%d)\n", ret);
+1 −0
Original line number Diff line number Diff line
@@ -621,6 +621,7 @@

#define USB_VENDOR_ID_MADCATZ		0x0738
#define USB_DEVICE_ID_MADCATZ_BEATPAD	0x4540
#define USB_DEVICE_ID_MADCATZ_RAT9	0x1709

#define USB_VENDOR_ID_MCC		0x09db
#define USB_DEVICE_ID_MCC_PMD1024LS	0x0076
+1 −1
Original line number Diff line number Diff line
@@ -872,7 +872,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
		case 0x2cb: map_key_clear(KEY_KBDINPUTASSIST_ACCEPT);	break;
		case 0x2cc: map_key_clear(KEY_KBDINPUTASSIST_CANCEL);	break;

		default:    goto ignore;
		default: map_key_clear(KEY_UNKNOWN);
		}
		break;

+5 −4
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ static void kone_profile_activated(struct kone_device *kone, uint new_profile)
static void kone_profile_report(struct kone_device *kone, uint new_profile)
{
	struct kone_roccat_report roccat_report;

	roccat_report.event = kone_mouse_event_switch_profile;
	roccat_report.value = new_profile;
	roccat_report.key = 0;
@@ -163,6 +164,7 @@ static int kone_set_settings(struct usb_device *usb_dev,
		struct kone_settings const *settings)
{
	int retval;

	retval = kone_send(usb_dev, kone_command_settings,
			settings, sizeof(struct kone_settings));
	if (retval)
@@ -387,7 +389,7 @@ static struct bin_attribute bin_attr_profile##number = { \
	.read = kone_sysfs_read_profilex,			\
	.write = kone_sysfs_write_profilex,			\
	.private = &profile_numbers[number-1],			\
};
}
PROFILE_ATTR(1);
PROFILE_ATTR(2);
PROFILE_ATTR(3);
@@ -456,6 +458,7 @@ static ssize_t kone_sysfs_show_tcu(struct device *dev,
static int kone_tcu_command(struct usb_device *usb_dev, int number)
{
	unsigned char value;

	value = number;
	return kone_send(usb_dev, kone_command_calibrate, &value, 1);
}
@@ -697,10 +700,8 @@ static int kone_init_specials(struct hid_device *hdev)
			== USB_INTERFACE_PROTOCOL_MOUSE) {

		kone = kzalloc(sizeof(*kone), GFP_KERNEL);
		if (!kone) {
			hid_err(hdev, "can't alloc device descriptor\n");
		if (!kone)
			return -ENOMEM;
		}
		hid_set_drvdata(hdev, kone);

		retval = kone_init_kone_device_struct(usb_dev, kone);
Loading