thunderbolt: Do not call PM runtime functions in tb_retimer_scan()
authorMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 29 Dec 2022 12:10:30 +0000 (14:10 +0200)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Mon, 9 Jan 2023 08:43:51 +0000 (10:43 +0200)
commit23257cfc1cb7202fd0065e9f4a6a0aac1c04c4a9
tree87412359132f5c2c93d1e77e271d8ff294d29d3d
parentc28f3d80383571d3630df1a0e89500d23e855924
thunderbolt: Do not call PM runtime functions in tb_retimer_scan()

We cannot call PM runtime functions in tb_retimer_scan() because it will
also be called when retimers are scanned from userspace (happens when
there is no device connected on ChromeOS for instance) and at the same
USB4 port runtime resume hook. This leads to hang because neither can
proceed.

Fix this by runtime resuming USB4 ports in tb_scan_port() instead. This
makes sure the ports are runtime PM active when retimers are added under
it while avoiding the reported hang as well.

Reported-by: Utkarsh Patel <utkarsh.h.patel@intel.com>
Fixes: 1e56c88adecc ("thunderbolt: Runtime resume USB4 port when retimers are scanned")
Cc: stable@vger.kernel.org
Acked-by: Yehezkel Bernat <YehezkelShB@gmail.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/thunderbolt/retimer.c
drivers/thunderbolt/tb.c