皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 6.19 为 Apple M1/M2 Macs 的 USB2/USB3 问题修复落地

在即将于今天发布的 Linux 6.19-rc6 内核版本之前,有两个针对运行主线内核的 Apple M1 / M2 Macs 的 USB 修复。这些 Apple USB 修复也被标记为需要回移植到稳定的 Linux 内核系列。

首先是针对 Apple M2 和 M1/M2 Pro/Max/Ultra 设备上 USB-C 端口控制器的修复,该控制器导致无法检测 USB 2.0 和 USB 3.x 设备。补丁解释了这个问题,现在忽略 USB 角色开关,直接切换到活动角色:

忽略 USB 角色切换,如果 dwc3-apple 已经处于期望状态。M2 和 M1/M2 Pro/Max/Ultra 设备上的 USB-C 端口控制器会发出额外的中断,导致 USB 角色切换到已经激活的角色。

忽略这些 USB 角色切换,以确保 USB-C 端口控制器和 dwc3-apple 始终处于一致状态。这符合 core.c 中__dwc3_set_mode()的行为。

修复了在受影响系统上检测 USB 2.0 和 3.x 设备的问题。额外的角色切换引起的重置似乎将 USB 设备置于一种状态,当 phy 和 dwc3 重新启动时,会阻止检测。

Linux 6.19-rc6 中出现的第二个补丁集是在 DWC3 初始化之前设置 USB2 PHY 模式。这是为了修复在启动前/期间插入的 USB2 设备的问题:

随着上游代码通过我们的用户获得更广泛的测试覆盖,我们偶尔会看到在启动时插入的 USB2 设备出现问题。在 Linux 运行之前,USB2 PHY 通常运行在设备模式下,结果发现有时主机->设备或设备->主机的转换不起作用。

根本原因:如果在 USB2 PHY 已经上电或 dwc3 已经启用 ULPI 接口时重新配置其角色,新的配置有时需要再次重置 dwc3 才能生效。通过更早地配置角色来解决这个问题。请注意,USB3 PHY 不受此问题影响,实际上需要 dwc3 启动后才能配置正确的角色。

Linux 6.19 合并窗口期间,新的 Apple USB DWC3 代码在 Asahi Linux 的下游内核中经过长期使用后,终于被上游了。

Linux 6.19 为 Apple M1/M2 Macs 的 USB2/USB3 问题修复落地

这些 Apple USB 修复措施包含在今天发出的 USB 修复拉取请求中。该拉取请求还添加了 PICAXE AXE027 电缆到 FTDI SIO 驱动器、Elgato 4K X 的特例以及一些其他小的修复。

转自  Linux 6.19 Landing Fixes For USB2/USB3 Issues With Apple M1/M2 Macs – Phoronix