저는 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 소스가 비준수로 바뀌게 됩니다. 왜냐하면 해당 값은 대체 값이고 지원되지 않을 수 없기 때문입니다.