drm/vc4: hdmi: Add full range RGB helper
We're going to need to tell whether we want to run with a full or limited range RGB output in multiple places in the code, so let's create a helper that will return whether we need with full range or not. Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20220120151625.594595-6-maxime@cerno.tech
This commit is contained in:
parent
c03d0b52ff
commit
a649cc821a
@ -104,6 +104,15 @@ static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode *mode)
|
|||||||
return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK;
|
return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool vc4_hdmi_is_full_range_rgb(struct vc4_hdmi *vc4_hdmi,
|
||||||
|
const struct drm_display_mode *mode)
|
||||||
|
{
|
||||||
|
struct vc4_hdmi_encoder *vc4_encoder = &vc4_hdmi->encoder;
|
||||||
|
|
||||||
|
return !vc4_encoder->hdmi_monitor ||
|
||||||
|
drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_FULL;
|
||||||
|
}
|
||||||
|
|
||||||
static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused)
|
static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused)
|
||||||
{
|
{
|
||||||
struct drm_info_node *node = (struct drm_info_node *)m->private;
|
struct drm_info_node *node = (struct drm_info_node *)m->private;
|
||||||
@ -1119,8 +1128,7 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
|
|||||||
|
|
||||||
mutex_lock(&vc4_hdmi->mutex);
|
mutex_lock(&vc4_hdmi->mutex);
|
||||||
|
|
||||||
if (vc4_encoder->hdmi_monitor &&
|
if (!vc4_hdmi_is_full_range_rgb(vc4_hdmi, mode)) {
|
||||||
drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_LIMITED) {
|
|
||||||
if (vc4_hdmi->variant->csc_setup)
|
if (vc4_hdmi->variant->csc_setup)
|
||||||
vc4_hdmi->variant->csc_setup(vc4_hdmi, true);
|
vc4_hdmi->variant->csc_setup(vc4_hdmi, true);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user