Commit 6b7f7e43 authored by Benjamin Tissoires's avatar Benjamin Tissoires
Browse files

Merge branch 'for-6.18/pidff' into for-linus

- hid-pidff improvements and fixes (Tomasz Pakuła)
parents 8e73e4cd d927909d
Loading
Loading
Loading
Loading
+29 −28
Original line number Diff line number Diff line
@@ -8,12 +8,12 @@
 * Copyright (c) 2024, 2025 Tomasz Pakuła
 */

#include "hid-ids.h"
#include "usbhid/hid-pidff.h"
#include <linux/device.h>
#include <linux/hid.h>
#include <linux/module.h>
#include <linux/input-event-codes.h>
#include "hid-ids.h"
#include "usbhid/hid-pidff.h"
#include <linux/module.h>

#define JOY_RANGE (BTN_DEAD - BTN_JOYSTICK + 1)

@@ -21,7 +21,9 @@
 * Map buttons manually to extend the default joystick button limit
 */
static int universal_pidff_input_mapping(struct hid_device *hdev,
	struct hid_input *hi, struct hid_field *field, struct hid_usage *usage,
					 struct hid_input *hi,
					 struct hid_field *field,
					 struct hid_usage *usage,
					 unsigned long **bit, int *max)
{
	if ((usage->hid & HID_USAGE_PAGE) != HID_UP_BUTTON)
@@ -126,8 +128,7 @@ static int universal_pidff_input_configured(struct hid_device *hdev,
		if (!test_bit(axis, input->absbit))
			continue;

		input_set_abs_params(input, axis,
			input->absinfo[axis].minimum,
		input_set_abs_params(input, axis, input->absinfo[axis].minimum,
				     input->absinfo[axis].maximum,
				     axis == ABS_X ? 0 : 8, 0);
	}
@@ -144,25 +145,25 @@ static int universal_pidff_input_configured(struct hid_device *hdev,

static const struct hid_device_id universal_pidff_devices[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R3),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R3_2),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R5),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R5_2),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R9),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R9_2),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R12),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R12_2),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R16_R21),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R16_R21_2),
		.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
	  .driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C5) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C12) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_VRS, USB_DEVICE_ID_VRS_DFP),
+414 −302

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
#define HID_PIDFF_QUIRK_PERMISSIVE_CONTROL	BIT(2)

/* Use fixed 0x4000 direction during SET_EFFECT report upload */
#define HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION	BIT(3)
#define HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION	BIT(3)

/* Force all periodic effects to be uploaded as SINE */
#define HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY	BIT(4)