Let's allow matching input devices on their property bits, both in-kernel and when generating module aliases.
Showing the changes to include/linux (2 of 5 files). Show all
Unified · Split
| @@ -234,6 +234,10 @@ struct input_dev { · 233 unmodified lines | ||
| 234 | 234 | #error "SW_MAX and INPUT_DEVICE_ID_SW_MAX do not match" |
| 235 | 235 | #endif |
| 236 | 236 | |
| 237 | +#if INPUT_PROP_MAX != INPUT_DEVICE_ID_PROP_MAX | |
| 238 | +#error "INPUT_PROP_MAX and INPUT_DEVICE_ID_PROP_MAX do not match" | |
| 239 | +#endif | |
| 240 | + | |
| 237 | 241 | #define INPUT_DEVICE_ID_MATCH_DEVICE \ |
| 238 | 242 | (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | INPUT_DEVICE_ID_MATCH_PRODUCT) |
| 239 | 243 | #define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION \ |
| @@ -293,6 +293,7 @@ struct pcmcia_device_id { · 292 unmodified lines | ||
| 293 | 293 | #define INPUT_DEVICE_ID_SND_MAX 0x07 |
| 294 | 294 | #define INPUT_DEVICE_ID_FF_MAX 0x7f |
| 295 | 295 | #define INPUT_DEVICE_ID_SW_MAX 0x0f |
| 296 | +#define INPUT_DEVICE_ID_PROP_MAX 0x1f | |
| 296 | 297 | |
| 297 | 298 | #define INPUT_DEVICE_ID_MATCH_BUS 1 |
| 298 | 299 | #define INPUT_DEVICE_ID_MATCH_VENDOR 2 |
| @@ -308,6 +309,7 @@ struct pcmcia_device_id { · 9 unmodified lines | ||
| 308 | 309 | #define INPUT_DEVICE_ID_MATCH_SNDBIT 0x0400 |
| 309 | 310 | #define INPUT_DEVICE_ID_MATCH_FFBIT 0x0800 |
| 310 | 311 | #define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 |
| 312 | +#define INPUT_DEVICE_ID_MATCH_PROPBIT 0x2000 | |
| 311 | 313 | |
| 312 | 314 | struct input_device_id { |
| 313 | 315 | |
| @@ -327,6 +329,7 @@ struct input_device_id { · 13 unmodified lines | ||
| 327 | 329 | kernel_ulong_t sndbit[INPUT_DEVICE_ID_SND_MAX / BITS_PER_LONG + 1]; |
| 328 | 330 | kernel_ulong_t ffbit[INPUT_DEVICE_ID_FF_MAX / BITS_PER_LONG + 1]; |
| 329 | 331 | kernel_ulong_t swbit[INPUT_DEVICE_ID_SW_MAX / BITS_PER_LONG + 1]; |
| 332 | + kernel_ulong_t propbit[INPUT_DEVICE_ID_PROP_MAX / BITS_PER_LONG + 1]; | |
| 330 | 333 | |
| 331 | 334 | kernel_ulong_t driver_info; |
| 332 | 335 | }; |