Re: Possible problem with thunderbolt 4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Jan 27, 2023 at 01:07:43PM +0100, Christian Schaubschläger wrote:
> Hi Mika,
> 
> >>> Previously you said you'd talk with your Windows folks about this; any
> >>> news from there?
> >> I've talked to them and still in talks with the UEFI folks but the
> >> current undestanding is that Windows does not do anything special when
> >> the system is rebooted (so equal to what Linux does). There is one
> >> "development" system in Israel lab that should be pretty similar to what
> >> the HP system of yours is but the person who was going to try to
> >> reproduce is in sick leave now.
> > Ok...
> I was just wondering if there are already any news from your lab in
> Israel with the similar HP system. And if the issue can be reproduced
> there...

Yeah, I just got report from the folks and unfortunately we were not
able to reproduce the issue in the lab. The PCIe tunnel stays up (or
gets re-created) after reboot from Linux and is visible in the UEFI
shell (so in the BIOS).

So at the moment I'm out of ideas why this happens since Windows flows
should be the same. And we have no means to repro it locally to
investigate further :/

> Another thought of mine was, if it wouldn't it be useful to have a kernel commandline switch (or thunderbolt module option) that allows the user to select whether the software connection manager should be used, or the firmware connection manager (if avialable)? I understand that in general using the sw connection manager is favorable because the OS then has control over the connection, but maybe there are use cases where letting the firmware doing the job is just fine (like in my case ;-)

Right, we may add one but I think it should be part of the USB4 _OSC
negotiation like the below patch (acpi.native_usb4_disable=1 in the
command line should switch to FW CM). We could also make it "automatic"
by adding a DMI quirks table that then sets this.

diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 0c05ccde1f7a..7da4d56fb936 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -296,6 +296,9 @@ EXPORT_SYMBOL_GPL(osc_cpc_flexible_adr_space_confirmed);
 /*
  * ACPI 6.4 Operating System Capabilities for USB.
  */
+bool native_usb4_disable;
+module_param(native_usb4_disable, bool, 0644);
+
 bool osc_sb_native_usb4_support_confirmed;
 EXPORT_SYMBOL_GPL(osc_sb_native_usb4_support_confirmed);
 
@@ -344,7 +347,7 @@ static void acpi_bus_osc_negotiate_platform_control(void)
 	if (IS_ENABLED(CONFIG_SCHED_MC_PRIO))
 		capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_CPC_DIVERSE_HIGH_SUPPORT;
 
-	if (IS_ENABLED(CONFIG_USB4))
+	if (IS_ENABLED(CONFIG_USB4) && !native_usb4_disable)
 		capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_NATIVE_USB4_SUPPORT;
 
 	if (!ghes_disable)



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux