|
@@ -2059,6 +2059,7 @@ static enum drm_mode_status dp_display_validate_mode(
|
|
|
bool dsc_en;
|
|
|
u32 num_lm = 0;
|
|
|
int rc = 0;
|
|
|
+ u32 pclk_khz = 0;
|
|
|
|
|
|
if (!dp_display || !mode || !panel ||
|
|
|
!avail_res || !avail_res->max_mixer_width) {
|
|
@@ -2099,8 +2100,12 @@ static enum drm_mode_status dp_display_validate_mode(
|
|
|
goto end;
|
|
|
}
|
|
|
|
|
|
- if (mode->clock > dp_display->max_pclk_khz) {
|
|
|
- DP_MST_DEBUG("clk:%d, max:%d\n", mode->clock,
|
|
|
+ pclk_khz = dp_mode.timing.widebus_en ?
|
|
|
+ (dp_mode.timing.pixel_clk_khz >> 1) :
|
|
|
+ (dp_mode.timing.pixel_clk_khz);
|
|
|
+
|
|
|
+ if (pclk_khz > dp_display->max_pclk_khz) {
|
|
|
+ DP_MST_DEBUG("clk:%d, max:%d\n", pclk_khz,
|
|
|
dp_display->max_pclk_khz);
|
|
|
goto end;
|
|
|
}
|