Loading drivers/hid/hid-universal-pidff.c +29 −28 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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) Loading Loading @@ -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); } Loading @@ -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), Loading drivers/hid/usbhid/hid-pidff.c +414 −302 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/hid/usbhid/hid-pidff.h +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading Loading
drivers/hid/hid-universal-pidff.c +29 −28 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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) Loading Loading @@ -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); } Loading @@ -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), Loading
drivers/hid/usbhid/hid-pidff.c +414 −302 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/hid/usbhid/hid-pidff.h +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading