On 12/19/23 13:55, Maxime Ripard wrote: > Hi, > > On Mon, Dec 18, 2023 at 04:49:06PM +0100, Johan Jonker wrote: >> CRTC size validation for the display controller has been added with >> Commit 8e140cb60270 ("drm/rockchip: vop: limit maximum resolution to >> hardware capabilities"), so we can drop the custom fill_modes hook. >> >> Signed-off-by: Johan Jonker <jbx6244@xxxxxxxxx> > > I'm not sure those two are equivalent. CRTC and connectors usually have > different requirements and capabilities, and thus different, > supplementary, mode_valid/atomic_check implementations. Rockchip RK3066 CRTC and connector resolution max_output are equivalent. >From Rockchip PX2 TRM V1.0.pdf page 17: - Video Encoder Maximum frame rate is up to 30fps@1920x1080 - Display Interface Support LCD or TFT interfaces up to 1920x1080 - HDMI TX Interface HDMI version 1.4a, HDCP revision 1.4 and DVI version 1.0 compliant transmitter Supports DTV from 480i to 1080i/p HD resolution, and PC from VGA to UXGA by LCDC0 or LCDC1 in RK PX2 Compared to the drm_helper_probe_single_connector_modes() this function added an extra max_output Checked in rockchip_drm_vop.c is: https://lore.kernel.org/linux-rockchip/20230216102447.582905-2-s.hauer@xxxxxxxxxxxxxx/ + if (vop->data->max_output.width && mode->hdisplay > vop->data->max_output.width) + return MODE_BAD_HVALUE; + + if (vop->data->max_output.height && mode->vdisplay > vop->data->max_output.height) + return MODE_BAD_VVALUE; For RK3066 VOP max_output: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/rockchip/rockchip_vop_reg.c#n506 This patch was made with HDMI in mind. .max_output = { 1920, 1080 }, This first part was added by Heiko, but not was not part my patch that I submitted: - if (maxX > 1920) - maxX = 1920; - if (maxY > 1080) - maxY = 1080; - - return drm_helper_probe_single_connector_modes(connector, maxX, maxY); -} Original patch: https://patchwork.freedesktop.org/patch/msgid/20190330095639.14626-2-jbx6244@xxxxxxxxx +static int +rk3066_hdmi_probe_single_connector_modes(struct drm_connector *connector, + uint32_t maxX, uint32_t maxY) +{ + return drm_helper_probe_single_connector_modes(connector, 1920, 1080); +} Rockchip RK3066 CRTC and connector resolution max_output are equivalent. Johan > > Maxime