summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/meson/meson_vclk.h
diff options
context:
space:
mode:
authorNeil Armstrong <narmstrong@baylibre.com>2020-03-04 11:40:51 +0100
committerNeil Armstrong <narmstrong@baylibre.com>2020-03-10 10:51:24 +0100
commite5fab2ec9ca4f7db47aaf1d7f39e43a13b03a4b7 (patch)
tree5a2daba4dfa69c5e7ad2b7e1b127436c8da99bf0 /drivers/gpu/drm/meson/meson_vclk.h
parentdrm/meson: venc: add support for YUV420 setup (diff)
downloadlinux-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.h7
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 */