mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 15:10:38 +00:00
thunderbolt: Disable LTTPR on Intel Titan Ridge
Intel Titan Ridge does not disable AUX timers when it gets SET_CONFIG with SET_LTTPR_MODE set which makes DP tunneling to fail. For this reason disable LTTPR on Titan Ridge device side. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
parent
97486e981f
commit
3eddfc121f
@ -389,6 +389,7 @@ struct tb_regs_port_header {
|
||||
#define DP_COMMON_CAP_1_LANE 0x0
|
||||
#define DP_COMMON_CAP_2_LANES 0x1
|
||||
#define DP_COMMON_CAP_4_LANES 0x2
|
||||
#define DP_COMMON_CAP_LTTPR_NS BIT(27)
|
||||
#define DP_COMMON_CAP_DPRX_DONE BIT(31)
|
||||
|
||||
/* PCIe adapter registers */
|
||||
|
@ -580,6 +580,16 @@ static int tb_dp_xchg_caps(struct tb_tunnel *tunnel)
|
||||
out_dp_cap = tb_dp_cap_set_lanes(out_dp_cap, new_lanes);
|
||||
}
|
||||
|
||||
/*
|
||||
* Titan Ridge does not disable AUX timers when it gets
|
||||
* SET_CONFIG with SET_LTTPR_MODE set. This causes problems with
|
||||
* DP tunneling.
|
||||
*/
|
||||
if (tb_route(out->sw) && tb_switch_is_titan_ridge(out->sw)) {
|
||||
out_dp_cap |= DP_COMMON_CAP_LTTPR_NS;
|
||||
tb_port_dbg(out, "disabling LTTPR\n");
|
||||
}
|
||||
|
||||
return tb_port_write(in, &out_dp_cap, TB_CFG_PORT,
|
||||
in->cap_adap + DP_REMOTE_CAP, 1);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user