1
linux/drivers/thunderbolt
Gil Fine 3cea8af2d1 thunderbolt: Honor TMU requirements in the domain when setting TMU mode
Currently, when configuring TMU (Time Management Unit) mode of a given
router, we take into account only its own TMU requirements ignoring
other routers in the domain. This is problematic if the router we are
configuring has lower TMU requirements than what is already configured
in the domain.

In the scenario below, we have a host router with two USB4 ports: A and
B. Port A connected to device router #1 (which supports CL states) and
existing DisplayPort tunnel, thus, the TMU mode is HiFi uni-directional.

1. Initial topology

          [Host]
         A/
         /
 [Device #1]
   /
Monitor

2. Plug in device #2 (that supports CL states) to downstream port B of
   the host router

         [Host]
        A/    B\
        /       \
 [Device #1]    [Device #2]
   /
Monitor

The TMU mode on port B and port A will be configured to LowRes which is
not what we want and will cause monitor to start flickering.

To address this we first scan the domain and search for any router
configured to HiFi uni-directional mode, and if found, configure TMU
mode of the given router to HiFi uni-directional as well.

Cc: stable@vger.kernel.org
Signed-off-by: Gil Fine <gil.fine@linux.intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2024-10-21 09:42:42 +03:00
..
acpi.c thunderbolt: Don't create device link from USB4 Host Interface to USB3 xHC host 2024-09-03 09:54:39 +02:00
cap.c
clx.c
ctl.c thunderbolt: Add trace events support for the control channel 2024-02-26 09:12:24 +02:00
ctl.h thunderbolt: Add trace events support for the control channel 2024-02-26 09:12:24 +02:00
debugfs.c thunderbolt: Improve software receiver lane margining 2024-08-22 07:32:06 +03:00
dma_port.c
dma_port.h
dma_test.c
domain.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
eeprom.c
icm.c thunderbolt: Enable NVM upgrade support on Intel Maple Ridge 2024-04-08 07:47:38 +03:00
Kconfig thunderbolt: Add receiver lane margining support for retimers 2024-06-17 12:47:12 +03:00
lc.c thunderbolt: Introduce tb_port_reset() 2024-01-22 13:21:06 +02:00
Makefile thunderbolt: Add trace events support for the control channel 2024-02-26 09:12:24 +02:00
nhi_ops.c
nhi_regs.h
nhi.c thunderbolt: Correct typo in host_reset parameter 2024-02-13 11:08:36 +02:00
nhi.h
nvm.c thunderbolt: Remove usage of the deprecated ida_simple_xx() API 2024-01-23 13:30:20 +02:00
path.c thunderbolt: Introduce tb_path_deactivate_hop() 2024-01-22 13:21:06 +02:00
property.c
quirks.c thunderbolt: Keep the domain powered when USB4 port is in redrive mode 2024-02-26 09:12:12 +02:00
retimer.c thunderbolt: Fix KASAN reported stack out-of-bounds read in tb_retimer_scan() 2024-10-11 14:23:15 +03:00
sb_regs.h thunderbolt: Improve software receiver lane margining 2024-08-22 07:32:06 +03:00
switch.c thunderbolt: Mark XDomain as unplugged when router is removed 2024-08-06 08:01:10 +03:00
tb_msgs.h thunderbolt: Get rid of TB_CFG_PKG_PREPARE_TO_SLEEP 2024-04-19 07:52:45 +03:00
tb_regs.h thunderbolt: Changes for v6.9 merge window 2024-03-02 20:14:03 +01:00
tb.c thunderbolt: Honor TMU requirements in the domain when setting TMU mode 2024-10-21 09:42:42 +03:00
tb.h thunderbolt: Improve software receiver lane margining 2024-08-22 07:32:06 +03:00
test.c
tmu.c
trace.h thunderbolt: Correct trace output of firmware connection manager packets 2024-04-29 07:47:54 +03:00
tunnel.c thunderbolt: Fix kernel-doc for tb_tunnel_alloc_dp() 2024-04-27 08:03:56 +03:00
tunnel.h thunderbolt: Introduce tb_tunnel_direction_downstream() 2024-02-16 12:29:23 +02:00
usb4_port.c thunderbolt: Constify the struct device_type usage 2024-02-26 09:15:49 +02:00
usb4.c thunderbolt: Improve software receiver lane margining 2024-08-22 07:32:06 +03:00
xdomain.c thunderbolt: Use correct error code with ERROR_NOT_SUPPORTED 2024-04-19 07:52:38 +03:00