|
8 | 8 | * Copyright (c) 2024, 2025 Tomasz Pakuła |
9 | 9 | */ |
10 | 10 |
|
| 11 | +#include "hid-ids.h" |
| 12 | +#include "usbhid/hid-pidff.h" |
11 | 13 | #include <linux/device.h> |
12 | 14 | #include <linux/hid.h> |
13 | | -#include <linux/module.h> |
14 | 15 | #include <linux/input-event-codes.h> |
15 | | -#include "hid-ids.h" |
16 | | -#include "usbhid/hid-pidff.h" |
| 16 | +#include <linux/module.h> |
17 | 17 |
|
18 | 18 | #define JOY_RANGE (BTN_DEAD - BTN_JOYSTICK + 1) |
19 | 19 |
|
20 | 20 | /* |
21 | 21 | * Map buttons manually to extend the default joystick button limit |
22 | 22 | */ |
23 | 23 | 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) |
26 | 28 | { |
27 | 29 | if ((usage->hid & HID_USAGE_PAGE) != HID_UP_BUTTON) |
28 | 30 | return 0; |
@@ -126,65 +128,64 @@ static int universal_pidff_input_configured(struct hid_device *hdev, |
126 | 128 | if (!test_bit(axis, input->absbit)) |
127 | 129 | continue; |
128 | 130 |
|
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); |
133 | 134 | } |
134 | 135 |
|
135 | 136 | /* Remove fuzz and deadzone from the second joystick axis */ |
136 | 137 | if (hdev->vendor == USB_VENDOR_ID_FFBEAST && |
137 | 138 | hdev->product == USB_DEVICE_ID_FFBEAST_JOYSTICK) |
138 | 139 | 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); |
141 | 142 |
|
142 | 143 | return 0; |
143 | 144 | } |
144 | 145 |
|
145 | 146 | static const struct hid_device_id universal_pidff_devices[] = { |
146 | 147 | { 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 }, |
148 | 149 | { 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 }, |
150 | 151 | { 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 }, |
152 | 153 | { 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 }, |
154 | 155 | { 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 }, |
156 | 157 | { 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 }, |
158 | 159 | { 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 }, |
160 | 161 | { 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 }, |
162 | 163 | { 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 }, |
164 | 165 | { 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 }, |
166 | 167 | { HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C5) }, |
167 | 168 | { HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C12) }, |
168 | 169 | { 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 }, |
170 | 171 | { HID_USB_DEVICE(USB_VENDOR_ID_FFBEAST, USB_DEVICE_ID_FFBEAST_JOYSTICK), }, |
171 | 172 | { HID_USB_DEVICE(USB_VENDOR_ID_FFBEAST, USB_DEVICE_ID_FFBEAST_RUDDER), }, |
172 | 173 | { HID_USB_DEVICE(USB_VENDOR_ID_FFBEAST, USB_DEVICE_ID_FFBEAST_WHEEL) }, |
173 | 174 | { 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 }, |
175 | 176 | { 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 }, |
177 | 178 | { 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 }, |
179 | 180 | { 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 }, |
181 | 182 | { 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 }, |
183 | 184 | { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_INVICTA) }, |
184 | 185 | { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_FORTE) }, |
185 | 186 | { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_LA_PRIMA) }, |
186 | 187 | { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_TONY_KANAAN) }, |
187 | | - { } |
| 188 | + {} |
188 | 189 | }; |
189 | 190 | MODULE_DEVICE_TABLE(hid, universal_pidff_devices); |
190 | 191 |
|
|
0 commit comments