mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-08 14:13:53 +00:00
thunderbolt: Check Intel vendor ID in tb_switch_get_generation()
Only Intel made Thunderbolt 1-3 devices so to avoid possible confusion check for the Intel vendor ID before deciding the device generation. While there move the USB4 check to happen first. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
parent
408e1d965a
commit
d589fd42cf
@ -2188,46 +2188,47 @@ struct device_type tb_switch_type = {
|
||||
|
||||
static int tb_switch_get_generation(struct tb_switch *sw)
|
||||
{
|
||||
switch (sw->config.device_id) {
|
||||
case PCI_DEVICE_ID_INTEL_LIGHT_RIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_EAGLE_RIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_LIGHT_PEAK:
|
||||
case PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_2C:
|
||||
case PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C:
|
||||
case PCI_DEVICE_ID_INTEL_PORT_RIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_4C_BRIDGE:
|
||||
return 1;
|
||||
if (tb_switch_is_usb4(sw))
|
||||
return 4;
|
||||
|
||||
case PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_FALCON_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_BRIDGE:
|
||||
return 2;
|
||||
if (sw->config.vendor_id == PCI_VENDOR_ID_INTEL) {
|
||||
switch (sw->config.device_id) {
|
||||
case PCI_DEVICE_ID_INTEL_LIGHT_RIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_EAGLE_RIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_LIGHT_PEAK:
|
||||
case PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_2C:
|
||||
case PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C:
|
||||
case PCI_DEVICE_ID_INTEL_PORT_RIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_4C_BRIDGE:
|
||||
return 1;
|
||||
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ICL_NHI0:
|
||||
case PCI_DEVICE_ID_INTEL_ICL_NHI1:
|
||||
return 3;
|
||||
case PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_FALCON_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_BRIDGE:
|
||||
return 2;
|
||||
|
||||
default:
|
||||
if (tb_switch_is_usb4(sw))
|
||||
return 4;
|
||||
|
||||
/*
|
||||
* For unknown switches assume generation to be 1 to be
|
||||
* on the safe side.
|
||||
*/
|
||||
tb_sw_warn(sw, "unsupported switch device id %#x\n",
|
||||
sw->config.device_id);
|
||||
return 1;
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_BRIDGE:
|
||||
case PCI_DEVICE_ID_INTEL_ICL_NHI0:
|
||||
case PCI_DEVICE_ID_INTEL_ICL_NHI1:
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For unknown switches assume generation to be 1 to be on the
|
||||
* safe side.
|
||||
*/
|
||||
tb_sw_warn(sw, "unsupported switch device id %#x\n",
|
||||
sw->config.device_id);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static bool tb_switch_exceeds_max_depth(const struct tb_switch *sw, int depth)
|
||||
|
Loading…
Reference in New Issue
Block a user