Skip to content

Commit 6b7f7e4

Browse files
author
Benjamin Tissoires
committed
Merge branch 'for-6.18/pidff' into for-linus
- hid-pidff improvements and fixes (Tomasz Pakuła)
2 parents 8e73e4c + d927909 commit 6b7f7e4

3 files changed

Lines changed: 444 additions & 331 deletions

File tree

drivers/hid/hid-universal-pidff.c

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,23 @@
88
* Copyright (c) 2024, 2025 Tomasz Pakuła
99
*/
1010

11+
#include "hid-ids.h"
12+
#include "usbhid/hid-pidff.h"
1113
#include <linux/device.h>
1214
#include <linux/hid.h>
13-
#include <linux/module.h>
1415
#include <linux/input-event-codes.h>
15-
#include "hid-ids.h"
16-
#include "usbhid/hid-pidff.h"
16+
#include <linux/module.h>
1717

1818
#define JOY_RANGE (BTN_DEAD - BTN_JOYSTICK + 1)
1919

2020
/*
2121
* Map buttons manually to extend the default joystick button limit
2222
*/
2323
static int universal_pidff_input_mapping(struct hid_device *hdev,
24-
struct hid_input *hi, struct hid_field *field, struct hid_usage *usage,
25-
unsigned long **bit, int *max)
24+
struct hid_input *hi,
25+
struct hid_field *field,
26+
struct hid_usage *usage,
27+
unsigned long **bit, int *max)
2628
{
2729
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_BUTTON)
2830
return 0;
@@ -126,65 +128,64 @@ static int universal_pidff_input_configured(struct hid_device *hdev,
126128
if (!test_bit(axis, input->absbit))
127129
continue;
128130

129-
input_set_abs_params(input, axis,
130-
input->absinfo[axis].minimum,
131-
input->absinfo[axis].maximum,
132-
axis == ABS_X ? 0 : 8, 0);
131+
input_set_abs_params(input, axis, input->absinfo[axis].minimum,
132+
input->absinfo[axis].maximum,
133+
axis == ABS_X ? 0 : 8, 0);
133134
}
134135

135136
/* Remove fuzz and deadzone from the second joystick axis */
136137
if (hdev->vendor == USB_VENDOR_ID_FFBEAST &&
137138
hdev->product == USB_DEVICE_ID_FFBEAST_JOYSTICK)
138139
input_set_abs_params(input, ABS_Y,
139-
input->absinfo[ABS_Y].minimum,
140-
input->absinfo[ABS_Y].maximum, 0, 0);
140+
input->absinfo[ABS_Y].minimum,
141+
input->absinfo[ABS_Y].maximum, 0, 0);
141142

142143
return 0;
143144
}
144145

145146
static const struct hid_device_id universal_pidff_devices[] = {
146147
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R3),
147-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
148+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
148149
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R3_2),
149-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
150+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
150151
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R5),
151-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
152+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
152153
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R5_2),
153-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
154+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
154155
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R9),
155-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
156+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
156157
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R9_2),
157-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
158+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
158159
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R12),
159-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
160+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
160161
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R12_2),
161-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
162+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
162163
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R16_R21),
163-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
164+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
164165
{ HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R16_R21_2),
165-
.driver_data = HID_PIDFF_QUIRK_FIX_WHEEL_DIRECTION },
166+
.driver_data = HID_PIDFF_QUIRK_FIX_CONDITIONAL_DIRECTION },
166167
{ HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C5) },
167168
{ HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C12) },
168169
{ HID_USB_DEVICE(USB_VENDOR_ID_VRS, USB_DEVICE_ID_VRS_DFP),
169-
.driver_data = HID_PIDFF_QUIRK_PERMISSIVE_CONTROL },
170+
.driver_data = HID_PIDFF_QUIRK_PERMISSIVE_CONTROL },
170171
{ HID_USB_DEVICE(USB_VENDOR_ID_FFBEAST, USB_DEVICE_ID_FFBEAST_JOYSTICK), },
171172
{ HID_USB_DEVICE(USB_VENDOR_ID_FFBEAST, USB_DEVICE_ID_FFBEAST_RUDDER), },
172173
{ HID_USB_DEVICE(USB_VENDOR_ID_FFBEAST, USB_DEVICE_ID_FFBEAST_WHEEL) },
173174
{ HID_USB_DEVICE(USB_VENDOR_ID_LITE_STAR, USB_DEVICE_ID_PXN_V10),
174-
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
175+
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
175176
{ HID_USB_DEVICE(USB_VENDOR_ID_LITE_STAR, USB_DEVICE_ID_PXN_V12),
176-
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
177+
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
177178
{ HID_USB_DEVICE(USB_VENDOR_ID_LITE_STAR, USB_DEVICE_ID_PXN_V12_LITE),
178-
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
179+
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
179180
{ HID_USB_DEVICE(USB_VENDOR_ID_LITE_STAR, USB_DEVICE_ID_PXN_V12_LITE_2),
180-
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
181+
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
181182
{ HID_USB_DEVICE(USB_VENDOR_ID_LITE_STAR, USB_DEVICE_ID_LITE_STAR_GT987),
182-
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
183+
.driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY },
183184
{ HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_INVICTA) },
184185
{ HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_FORTE) },
185186
{ HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_LA_PRIMA) },
186187
{ HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_TONY_KANAAN) },
187-
{ }
188+
{}
188189
};
189190
MODULE_DEVICE_TABLE(hid, universal_pidff_devices);
190191

0 commit comments

Comments
 (0)