diff options
author | Neil Armstrong <narmstrong@baylibre.com> | 2020-03-04 11:40:51 +0100 |
---|---|---|
committer | Neil Armstrong <narmstrong@baylibre.com> | 2020-03-10 10:51:24 +0100 |
commit | e5fab2ec9ca4f7db47aaf1d7f39e43a13b03a4b7 (patch) | |
tree | 5a2daba4dfa69c5e7ad2b7e1b127436c8da99bf0 /drivers/gpu/drm/meson/meson_vclk.h | |
parent | drm/meson: venc: add support for YUV420 setup (diff) | |
download | linux-e5fab2ec9ca4f7db47aaf1d7f39e43a13b03a4b7.tar.xz linux-e5fab2ec9ca4f7db47aaf1d7f39e43a13b03a4b7.zip |
drm/meson: vclk: add support for YUV420 setup
This patch adds clocking support for the YUV420 output from the
Amlogic Meson SoCs Video Processing Unit to the HDMI Controller.
The YUV420 is obtained by generating a YUV444 pixel stream like
the classic HDMI display modes, but then the Video Encoder output
can be configured to down-sample the YUV444 pixel stream to a YUV420
stream.
This mode needs a different clock generation scheme since the TMDS PHY
clock must match the 10x ratio with the YUV420 pixel clock, but
the video encoder must run at 2x the pixel clock.
This patch adds the TMDS PHY clock value in all the video clock setup
in order to better support these specific uses cases and switch
to the Common Clock framework for clocks handling in the future.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Jernej Škrabec <jernej.skrabec@siol.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20200304104052.17196-11-narmstrong@baylibre.com
Diffstat (limited to 'drivers/gpu/drm/meson/meson_vclk.h')
-rw-r--r-- | drivers/gpu/drm/meson/meson_vclk.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/meson/meson_vclk.h b/drivers/gpu/drm/meson/meson_vclk.h index b62125540aef..aed0ab2efa71 100644 --- a/drivers/gpu/drm/meson/meson_vclk.h +++ b/drivers/gpu/drm/meson/meson_vclk.h @@ -25,10 +25,11 @@ enum { enum drm_mode_status meson_vclk_dmt_supported_freq(struct meson_drm *priv, unsigned int freq); enum drm_mode_status -meson_vclk_vic_supported_freq(unsigned int freq); +meson_vclk_vic_supported_freq(unsigned int phy_freq, unsigned int vclk_freq); void meson_vclk_setup(struct meson_drm *priv, unsigned int target, - unsigned int vclk_freq, unsigned int venc_freq, - unsigned int dac_freq, bool hdmi_use_enci); + unsigned int phy_freq, unsigned int vclk_freq, + unsigned int venc_freq, unsigned int dac_freq, + bool hdmi_use_enci); #endif /* __MESON_VCLK_H */ |