You say that the 4K works in Linux. Wouldn't it be better to fix the 4K support in u-boot?
пн, 24 мар. 2025 г., 01:51 Vasily Khoruzhick <[email protected]>: > While RK3328 is capable of 4K resolutions, dw-hdmi driver in u-boot > seems to have some issue with 4K. 1440p or lower works fine. > > Limit max resolutions to 2560x1440x60Hz, by filtering the modes with > pixel clock > 297MHz > > Fixes: f3ea872970d603 ("video: rockchip: Add rk3328 hdmi support") > Signed-off-by: Vasily Khoruzhick <[email protected]> > --- > v2: add a comment that max pixel clock limit is a workaround > > drivers/video/rockchip/rk3328_hdmi.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/video/rockchip/rk3328_hdmi.c > b/drivers/video/rockchip/rk3328_hdmi.c > index 763669c09be..ff351aaac7c 100644 > --- a/drivers/video/rockchip/rk3328_hdmi.c > +++ b/drivers/video/rockchip/rk3328_hdmi.c > @@ -105,9 +105,20 @@ static int rk3328_hdmi_probe(struct udevice *dev) > return 0; > } > > +static bool rk3328_hdmi_mode_valid(struct udevice *dev, > + const struct display_timing *timing) > +{ > + /* Limit pixel clock to 297MHz. While RK3328 support higher rates > and it > + * works in Linux, it doesn't seem to work in u-boot. That limits > max > + * resolution to 1440p > + */ > + return timing->pixelclock.typ <= 297000000; > +} > + > static const struct dm_display_ops rk3328_hdmi_ops = { > .read_edid = rk_hdmi_read_edid, > .enable = rk3328_hdmi_enable, > + .mode_valid = rk3328_hdmi_mode_valid, > }; > > static const struct udevice_id rk3328_hdmi_ids[] = { > -- > 2.49.0 > >

