.. | .. |
---|
16 | 16 | |
---|
17 | 17 | #define PCI_ANY_ID (~0) |
---|
18 | 18 | |
---|
| 19 | +/** |
---|
| 20 | + * struct pci_device_id - PCI device ID structure |
---|
| 21 | + * @vendor: Vendor ID to match (or PCI_ANY_ID) |
---|
| 22 | + * @device: Device ID to match (or PCI_ANY_ID) |
---|
| 23 | + * @subvendor: Subsystem vendor ID to match (or PCI_ANY_ID) |
---|
| 24 | + * @subdevice: Subsystem device ID to match (or PCI_ANY_ID) |
---|
| 25 | + * @class: Device class, subclass, and "interface" to match. |
---|
| 26 | + * See Appendix D of the PCI Local Bus Spec or |
---|
| 27 | + * include/linux/pci_ids.h for a full list of classes. |
---|
| 28 | + * Most drivers do not need to specify class/class_mask |
---|
| 29 | + * as vendor/device is normally sufficient. |
---|
| 30 | + * @class_mask: Limit which sub-fields of the class field are compared. |
---|
| 31 | + * See drivers/scsi/sym53c8xx_2/ for example of usage. |
---|
| 32 | + * @driver_data: Data private to the driver. |
---|
| 33 | + * Most drivers don't need to use driver_data field. |
---|
| 34 | + * Best practice is to use driver_data as an index |
---|
| 35 | + * into a static list of equivalent device types, |
---|
| 36 | + * instead of using it as a pointer. |
---|
| 37 | + */ |
---|
19 | 38 | struct pci_device_id { |
---|
20 | 39 | __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/ |
---|
21 | 40 | __u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */ |
---|
.. | .. |
---|
232 | 251 | struct sdw_device_id { |
---|
233 | 252 | __u16 mfg_id; |
---|
234 | 253 | __u16 part_id; |
---|
| 254 | + __u8 sdw_version; |
---|
| 255 | + __u8 class_id; |
---|
235 | 256 | kernel_ulong_t driver_data; |
---|
236 | 257 | }; |
---|
237 | 258 | |
---|
.. | .. |
---|
257 | 278 | __u16 match_flags; |
---|
258 | 279 | |
---|
259 | 280 | __u16 manf_id; |
---|
260 | | - __u16 card_id; |
---|
| 281 | + __u16 card_id; |
---|
261 | 282 | |
---|
262 | | - __u8 func_id; |
---|
| 283 | + __u8 func_id; |
---|
263 | 284 | |
---|
264 | 285 | /* for real multi-function devices */ |
---|
265 | | - __u8 function; |
---|
| 286 | + __u8 function; |
---|
266 | 287 | |
---|
267 | 288 | /* for pseudo multi-function devices */ |
---|
268 | | - __u8 device_no; |
---|
| 289 | + __u8 device_no; |
---|
269 | 290 | |
---|
270 | | - __u32 prod_id_hash[4]; |
---|
| 291 | + __u32 prod_id_hash[4]; |
---|
271 | 292 | |
---|
272 | 293 | /* not matched against in kernelspace */ |
---|
273 | 294 | const char * prod_id[4]; |
---|
.. | .. |
---|
299 | 320 | #define INPUT_DEVICE_ID_LED_MAX 0x0f |
---|
300 | 321 | #define INPUT_DEVICE_ID_SND_MAX 0x07 |
---|
301 | 322 | #define INPUT_DEVICE_ID_FF_MAX 0x7f |
---|
302 | | -#define INPUT_DEVICE_ID_SW_MAX 0x20 |
---|
| 323 | +#define INPUT_DEVICE_ID_SW_MAX 0x10 |
---|
303 | 324 | #define INPUT_DEVICE_ID_PROP_MAX 0x1f |
---|
304 | 325 | |
---|
305 | 326 | #define INPUT_DEVICE_ID_MATCH_BUS 1 |
---|
.. | .. |
---|
415 | 436 | * For Hyper-V devices we use the device guid as the id. |
---|
416 | 437 | */ |
---|
417 | 438 | struct hv_vmbus_device_id { |
---|
418 | | - uuid_le guid; |
---|
| 439 | + guid_t guid; |
---|
419 | 440 | kernel_ulong_t driver_data; /* Data private to the driver */ |
---|
420 | 441 | }; |
---|
421 | 442 | |
---|
.. | .. |
---|
446 | 467 | struct pci_epf_device_id { |
---|
447 | 468 | char name[PCI_EPF_NAME_SIZE]; |
---|
448 | 469 | kernel_ulong_t driver_data; |
---|
| 470 | +}; |
---|
| 471 | + |
---|
| 472 | +/* i3c */ |
---|
| 473 | + |
---|
| 474 | +#define I3C_MATCH_DCR 0x1 |
---|
| 475 | +#define I3C_MATCH_MANUF 0x2 |
---|
| 476 | +#define I3C_MATCH_PART 0x4 |
---|
| 477 | +#define I3C_MATCH_EXTRA_INFO 0x8 |
---|
| 478 | + |
---|
| 479 | +struct i3c_device_id { |
---|
| 480 | + __u8 match_flags; |
---|
| 481 | + __u8 dcr; |
---|
| 482 | + __u16 manuf_id; |
---|
| 483 | + __u16 part_id; |
---|
| 484 | + __u16 extra_info; |
---|
| 485 | + |
---|
| 486 | + const void *data; |
---|
449 | 487 | }; |
---|
450 | 488 | |
---|
451 | 489 | /* spi */ |
---|
.. | .. |
---|
496 | 534 | DMI_BIOS_VENDOR, |
---|
497 | 535 | DMI_BIOS_VERSION, |
---|
498 | 536 | DMI_BIOS_DATE, |
---|
| 537 | + DMI_BIOS_RELEASE, |
---|
| 538 | + DMI_EC_FIRMWARE_RELEASE, |
---|
499 | 539 | DMI_SYS_VENDOR, |
---|
500 | 540 | DMI_PRODUCT_NAME, |
---|
501 | 541 | DMI_PRODUCT_VERSION, |
---|
.. | .. |
---|
565 | 605 | /** |
---|
566 | 606 | * struct mdio_device_id - identifies PHY devices on an MDIO/MII bus |
---|
567 | 607 | * @phy_id: The result of |
---|
568 | | - * (mdio_read(&MII_PHYSID1) << 16 | mdio_read(&PHYSID2)) & @phy_id_mask |
---|
| 608 | + * (mdio_read(&MII_PHYSID1) << 16 | mdio_read(&MII_PHYSID2)) & @phy_id_mask |
---|
569 | 609 | * for this PHY type |
---|
570 | 610 | * @phy_id_mask: Defines the significant bits of @phy_id. A value of 0 |
---|
571 | 611 | * is used to terminate an array of struct mdio_device_id. |
---|
.. | .. |
---|
621 | 661 | /* |
---|
622 | 662 | * MODULE_DEVICE_TABLE expects this struct to be called x86cpu_device_id. |
---|
623 | 663 | * Although gcc seems to ignore this error, clang fails without this define. |
---|
624 | | - * |
---|
625 | | - * Note: The ordering of the struct is different from upstream because the |
---|
626 | | - * static initializers in kernels < 5.7 still use C89 style while upstream |
---|
627 | | - * has been converted to proper C99 initializers. |
---|
628 | 664 | */ |
---|
629 | 665 | #define x86cpu_device_id x86_cpu_id |
---|
630 | 666 | struct x86_cpu_id { |
---|
631 | 667 | __u16 vendor; |
---|
632 | 668 | __u16 family; |
---|
633 | 669 | __u16 model; |
---|
| 670 | + __u16 steppings; |
---|
634 | 671 | __u16 feature; /* bit index */ |
---|
635 | 672 | kernel_ulong_t driver_data; |
---|
636 | | - __u16 steppings; |
---|
637 | 673 | }; |
---|
638 | 674 | |
---|
639 | | -#define X86_FEATURE_MATCH(x) \ |
---|
640 | | - { X86_VENDOR_ANY, X86_FAMILY_ANY, X86_MODEL_ANY, x } |
---|
641 | | - |
---|
| 675 | +/* Wild cards for x86_cpu_id::vendor, family, model and feature */ |
---|
642 | 676 | #define X86_VENDOR_ANY 0xffff |
---|
643 | 677 | #define X86_FAMILY_ANY 0 |
---|
644 | 678 | #define X86_MODEL_ANY 0 |
---|
.. | .. |
---|
768 | 802 | kernel_ulong_t driver_data; |
---|
769 | 803 | }; |
---|
770 | 804 | |
---|
| 805 | +/** |
---|
| 806 | + * struct tee_client_device_id - tee based device identifier |
---|
| 807 | + * @uuid: For TEE based client devices we use the device uuid as |
---|
| 808 | + * the identifier. |
---|
| 809 | + */ |
---|
| 810 | +struct tee_client_device_id { |
---|
| 811 | + uuid_t uuid; |
---|
| 812 | +}; |
---|
| 813 | + |
---|
| 814 | +/* WMI */ |
---|
| 815 | + |
---|
| 816 | +#define WMI_MODULE_PREFIX "wmi:" |
---|
| 817 | + |
---|
| 818 | +/** |
---|
| 819 | + * struct wmi_device_id - WMI device identifier |
---|
| 820 | + * @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba |
---|
| 821 | + * @context: pointer to driver specific data |
---|
| 822 | + */ |
---|
| 823 | +struct wmi_device_id { |
---|
| 824 | + const char guid_string[UUID_STRING_LEN+1]; |
---|
| 825 | + const void *context; |
---|
| 826 | +}; |
---|
| 827 | + |
---|
| 828 | +#define MHI_DEVICE_MODALIAS_FMT "mhi:%s" |
---|
| 829 | +#define MHI_NAME_SIZE 32 |
---|
| 830 | + |
---|
| 831 | +/** |
---|
| 832 | + * struct mhi_device_id - MHI device identification |
---|
| 833 | + * @chan: MHI channel name |
---|
| 834 | + * @driver_data: driver data; |
---|
| 835 | + */ |
---|
| 836 | +struct mhi_device_id { |
---|
| 837 | + const char chan[MHI_NAME_SIZE]; |
---|
| 838 | + kernel_ulong_t driver_data; |
---|
| 839 | +}; |
---|
| 840 | + |
---|
771 | 841 | #endif /* LINUX_MOD_DEVICETABLE_H */ |
---|