diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0475-drm-vc4-Add-HDR-metadata-property-to-the-VC5-HDMI-co.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0475-drm-vc4-Add-HDR-metadata-property-to-the-VC5-HDMI-co.patch | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0475-drm-vc4-Add-HDR-metadata-property-to-the-VC5-HDMI-co.patch b/target/linux/bcm27xx/patches-5.10/950-0475-drm-vc4-Add-HDR-metadata-property-to-the-VC5-HDMI-co.patch deleted file mode 100644 index 554fffc09e..0000000000 --- a/target/linux/bcm27xx/patches-5.10/950-0475-drm-vc4-Add-HDR-metadata-property-to-the-VC5-HDMI-co.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 82a5aa1df1b04efef46c7be82a7d71ea5300ce92 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson <dave.stevenson@raspberrypi.com> -Date: Wed, 2 Dec 2020 18:36:24 +0000 -Subject: [PATCH] drm/vc4: Add HDR metadata property to the VC5 HDMI - connectors - -Now that we can export deeper colour depths, add in the signalling -for HDR metadata. - -Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 28 ++++++++++++++++++++++++++++ - drivers/gpu/drm/vc4/vc4_hdmi.h | 3 +++ - 2 files changed, 31 insertions(+) - ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -310,6 +310,10 @@ static int vc4_hdmi_connector_init(struc - connector->doublescan_allowed = 0; - connector->stereo_allowed = 1; - -+ if (vc4_hdmi->variant->supports_hdr) -+ drm_object_attach_property(&connector->base, -+ connector->dev->mode_config.hdr_output_metadata_property, 0); -+ - drm_connector_attach_encoder(connector, encoder); - - return 0; -@@ -449,6 +453,25 @@ static void vc4_hdmi_set_audio_infoframe - vc4_hdmi_write_infoframe(encoder, &frame); - } - -+static void vc4_hdmi_set_hdr_infoframe(struct drm_encoder *encoder) -+{ -+ struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); -+ struct drm_connector *connector = &vc4_hdmi->connector; -+ struct drm_connector_state *conn_state = connector->state; -+ union hdmi_infoframe frame; -+ -+ if (!vc4_hdmi->variant->supports_hdr) -+ return; -+ -+ if (!conn_state->hdr_output_metadata) -+ return; -+ -+ if (drm_hdmi_infoframe_set_hdr_metadata(&frame.drm, conn_state)) -+ return; -+ -+ vc4_hdmi_write_infoframe(encoder, &frame); -+} -+ - static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) - { - struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); -@@ -461,6 +484,8 @@ static void vc4_hdmi_set_infoframes(stru - */ - if (vc4_hdmi->audio.streaming) - vc4_hdmi_set_audio_infoframe(encoder); -+ -+ vc4_hdmi_set_hdr_infoframe(encoder); - } - - static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, -@@ -2298,6 +2323,7 @@ static const struct vc4_hdmi_variant bcm - .phy_rng_enable = vc4_hdmi_phy_rng_enable, - .phy_rng_disable = vc4_hdmi_phy_rng_disable, - .channel_map = vc4_hdmi_channel_map, -+ .supports_hdr = false, - }; - - static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { -@@ -2325,6 +2351,7 @@ static const struct vc4_hdmi_variant bcm - .phy_rng_enable = vc5_hdmi_phy_rng_enable, - .phy_rng_disable = vc5_hdmi_phy_rng_disable, - .channel_map = vc5_hdmi_channel_map, -+ .supports_hdr = true, - }; - - static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { -@@ -2352,6 +2379,7 @@ static const struct vc4_hdmi_variant bcm - .phy_rng_enable = vc5_hdmi_phy_rng_enable, - .phy_rng_disable = vc5_hdmi_phy_rng_disable, - .channel_map = vc5_hdmi_channel_map, -+ .supports_hdr = true, - }; - - static const struct of_device_id vc4_hdmi_dt_match[] = { ---- a/drivers/gpu/drm/vc4/vc4_hdmi.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -99,6 +99,9 @@ struct vc4_hdmi_variant { - - /* Callback to get channel map */ - u32 (*channel_map)(struct vc4_hdmi *vc4_hdmi, u32 channel_mask); -+ -+ /* Enables HDR metadata */ -+ bool supports_hdr; - }; - - /* HDMI audio information */ |