USB: quirks — add ASMedia vendor + VIA VL805, expand vendor constants
Cross-referenced with Linux 7.1 drivers/usb/host/xhci-pci.c. Vendor constants: added ASMEDIA (0x1b21). All 12 vendor IDs now documented: Fresco Logic, NEC, AMD, ATI, Intel, ASMedia, Etron, Renesas, VIA, CDNS, Phytium, Zhaoxin, Redox/QEMU. QUIRK_TABLE expanded from 18 to 23 entries: - ASMedia ASM1042/1042A (0x1042): ASMEDIA_MODIFY_FLOWCONTROL - ASMedia ASM1142 (0x1142): BROKEN_MSI - ASMedia ASM2142/3142 (0x2142): BROKEN_MSI + U2_DISABLE_WAKE - ASMedia ASM3242 (0x3242): BROKEN_MSI - VIA VL805 (0x3483): RESET_ON_RESUME ASMedia xHCI add-in cards (ASM1042/1142/2142/3142/3242) are among the most common PCIe USB 3.0 controllers. VIA VL805 is the standard USB 3.0 controller on Raspberry Pi 4 and many ARM SBCs.
This commit is contained in:
@@ -75,12 +75,14 @@ pub mod vendor {
|
||||
pub const AMD: u16 = 0x1022;
|
||||
pub const ATI: u16 = 0x1002;
|
||||
pub const INTEL: u16 = 0x8086;
|
||||
pub const ASMEDIA: u16 = 0x1b21;
|
||||
pub const ETRON: u16 = 0x1b6f;
|
||||
pub const RENESAS: u16 = 0x1912;
|
||||
pub const VIA: u16 = 0x1106;
|
||||
pub const CDNS: u16 = 0x17cd;
|
||||
pub const PHYTIUM: u16 = 0x1db7;
|
||||
pub const ZHAOXIN: u16 = 0x1d79;
|
||||
pub const REDOX_OS_VENDOR: u16 = 0x1af4; // Redox for QEMU emulated
|
||||
pub const ZHAOXIN: u16 = 0x1d17;
|
||||
pub const REDOX_OS_VENDOR: u16 = 0x1af4;
|
||||
}
|
||||
|
||||
pub struct DeviceQuirkEntry {
|
||||
@@ -96,6 +98,31 @@ const QUIRK_TABLE: &[DeviceQuirkEntry] = &[
|
||||
vendor: vendor::FRESCO_LOGIC, device: 0x1000, hci_version: 0,
|
||||
quirks: XhciQuirks::from_bits(XhciQuirks::BROKEN_MSI.bits() | XhciQuirks::BROKEN_STREAMS.bits()).unwrap(),
|
||||
},
|
||||
// ASMedia ASM1042/ASM1042A: modify flow control, broken MSI on rev 0x01.
|
||||
DeviceQuirkEntry {
|
||||
vendor: vendor::ASMEDIA, device: 0x1042, hci_version: 0,
|
||||
quirks: XhciQuirks::ASMEDIA_MODIFY_FLOWCONTROL,
|
||||
},
|
||||
// ASMedia ASM1142: broken MSI.
|
||||
DeviceQuirkEntry {
|
||||
vendor: vendor::ASMEDIA, device: 0x1142, hci_version: 0,
|
||||
quirks: XhciQuirks::BROKEN_MSI,
|
||||
},
|
||||
// ASMedia ASM2142/ASM3142: U2 disable wake, broken MSI.
|
||||
DeviceQuirkEntry {
|
||||
vendor: vendor::ASMEDIA, device: 0x2142, hci_version: 0,
|
||||
quirks: XhciQuirks::from_bits(XhciQuirks::BROKEN_MSI.bits() | XhciQuirks::U2_DISABLE_WAKE.bits()).unwrap(),
|
||||
},
|
||||
// ASMedia ASM3242: broken MSI.
|
||||
DeviceQuirkEntry {
|
||||
vendor: vendor::ASMEDIA, device: 0x3242, hci_version: 0,
|
||||
quirks: XhciQuirks::BROKEN_MSI,
|
||||
},
|
||||
// VIA VL805.
|
||||
DeviceQuirkEntry {
|
||||
vendor: vendor::VIA, device: 0x3483, hci_version: 0,
|
||||
quirks: XhciQuirks::RESET_ON_RESUME,
|
||||
},
|
||||
// NEC: oldest quirk target.
|
||||
DeviceQuirkEntry {
|
||||
vendor: vendor::NEC, device: 0, hci_version: 0,
|
||||
|
||||
Reference in New Issue
Block a user