强制显示端口速度

强制显示端口速度

我使用 Linux PC 将视频发送到不符合标准的 Displayport 接收器,该接收器不支持 1.62 Gbit 的 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 源不符合标准,因为该值是后备值并且不能不受支持。

相关内容