
私はLinux PCを使用して1.62Gbit Displayportリンク速度をサポートしていない非標準Displayportレシーバーにビデオを送信しています。
Linuxをソースとして使用する場合、リンク速度とチャネル数をネゴシエートする戦略は、最も遅い速度とより少ないチャネルを選択することです。この時点で、速度が選択した解像度を渡すのに十分であると仮定します(これは非常に合理的です)。代わりに、Windowsはサポートされている最大値のみを求めます。
今私のシステムは、Windowsベースのソースでは動作しますが、Linuxソースでは動作しない非常に不幸な状況にあります。
Linuxのディスプレイポートリンク速度を強制する方法はありますか?たぶんカーネルをパッチしてもいいですか?実際のハードウェアはi915ドライバを使用します。この機能はビデオカードに固有のものであると仮定します。
ありがとうございます!
編集する:
編集したと思います。
ドライバ/gpu/drm/i915/display/intel_dp.c
成功した
intel_dp_set_source_rates(struct intel_dp *intel_dp)
{
/* The values must be in increasing order */
static const int icl_rates[] = {
162000, 216000, 270000, 324000, 432000, 540000, 648000, 810000,
1000000, 1350000,
};
static const int bxt_rates[] = {
162000, 216000, 243000, 270000, 324000, 432000, 540000
};
static const int skl_rates[] = {
162000, 216000, 270000, 324000, 432000, 540000
};
static const int hsw_rates[] = {
162000, 270000, 540000
};
static const int g4x_rates[] = {
162000, 270000
};
アレイから不要な速度を削除すると、ソースは速度ネゴシエーションからその速度を除外します。もちろん、私の場合、162000を削除すると、DPソースが非準拠に変わります。なぜなら、その値は代替値であり、サポートされないかもしれないからです。