昨年 11 月以来、さまざまなラップトップの Intel Thunderbolt USB コントローラーがシステムの再開後に「死んでいる」ことを発見した後、Canonical のエンジニアからカーネル バグ レポートが寄せられました。この問題は Linux 6.4 で解決され、この一般的な修正が他のハードウェアにも役立つ可能性があります。
このカーネル バグ レポートは、Canonical がいくつかの Intel Comet Lake ラップトップでLinux でシステムを再開した後、Thunderbolt USB コントローラが機能しなくなりました。 Linux カーネルの Thunderbolt 作業を率いる Intel の Mika Westerberg が、少なくともさまざまな Dell ラップトップを含む影響を受けるハードウェアを手に入れるまで、デバッグは困難でした。最終的に、Intel Titan Ridge xHCI コントローラーに影響を与えていることが判明しました。解決策は、システムの再開時にカーネルがデバイスをより長く待機するようにすることです。
Linux 6.4 では、カーネルの PCI 電源管理コードは、PCIe デバイスのリセット中に Linux カーネルによってすでに採用されている同様のアプローチに従って、システムの再開後に PCIe デバイスの準備が整うのをより長く待機できるようになりました。 Westerberg が パッチ 一般的な PCI ドライバー コードへ:
“PCIe 仕様では、デバイスがリセットから回復するのに最大 1 秒かかる場合があると規定されており、D3cold から復帰するときにも同じ遅延が規定されています (デバイスは、この 1 秒の遅延を Request Retry Status の完了によって延長する場合があり、Linux では 60 秒の上限で対応していますが、再開コード パスではなく、リセット コード パスでのみです。
ただし、デバイスにはこれは、レジューム コード パスでもより長い遅延を必要とする Intel Titan Ridge xHCI です。このため、レジューム コード パスが、リセット パスよりもこの同じ延長された遅延を使用するようにします。”
これは一般的なドライバー コードの修正であり、Intel 固有のものではないため、 Titan Ridge xHCI は、他の風変わりなハードウェアにも役立つ可能性があります。
先週、Linux 6.4 の PCI の変更。その PCI プルには、デフォルトで非同期プローブを有効にしてブート時間を短縮する Qualcomm の PCIe コントローラー、およびその他のさまざまなハードウェア変更のための ASPM 回避策もあります。