From: Laurentiu Palcu Date: Thu, 25 Jan 2018 09:27:46 +0000 (+0200) Subject: MLK-17634-4: drm: move hdr_panel_metadata to drm_hdmi_info X-Git-Tag: C0P2-H0.0--20200415~345 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=77942b6e3776c5ee0a3fbbf8380c74a9f2cd4f64;p=linux.git MLK-17634-4: drm: move hdr_panel_metadata to drm_hdmi_info Signed-off-by: Laurentiu Palcu --- diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 04276815820d..4d635fcb897a 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -3582,22 +3582,23 @@ static uint16_t hdr_metadata_type(const u8 *edid_ext) static void drm_parse_hdr_metadata_block(struct drm_connector *connector, const u8 *db) { + struct drm_hdmi_info *info = &connector->display_info.hdmi; uint16_t len; len = cea_db_payload_len(db); - connector->hdr_panel_metadata->eotf = eotf_supported(db); - connector->hdr_panel_metadata->type = hdr_metadata_type(db); + info->hdr_panel_metadata.eotf = eotf_supported(db); + info->hdr_panel_metadata.type = hdr_metadata_type(db); if (len == 6) { - connector->hdr_panel_metadata->max_cll = db[4]; - connector->hdr_panel_metadata->max_fall = db[5]; - connector->hdr_panel_metadata->min_cll = db[6]; + info->hdr_panel_metadata.max_cll = db[4]; + info->hdr_panel_metadata.max_fall = db[5]; + info->hdr_panel_metadata.min_cll = db[6]; } else if (len == 5) { - connector->hdr_panel_metadata->max_cll = db[4]; - connector->hdr_panel_metadata->max_fall = db[5]; - } else if (len == 4) - connector->hdr_panel_metadata->max_cll = db[4]; - + info->hdr_panel_metadata.max_cll = db[4]; + info->hdr_panel_metadata.max_fall = db[5]; + } else if (len == 4) { + info->hdr_panel_metadata.max_cll = db[4]; + } } static void diff --git a/drivers/gpu/drm/imx/hdp/imx-hdp.c b/drivers/gpu/drm/imx/hdp/imx-hdp.c index d40eae9e3dfe..3455527a71e7 100644 --- a/drivers/gpu/drm/imx/hdp/imx-hdp.c +++ b/drivers/gpu/drm/imx/hdp/imx-hdp.c @@ -1049,6 +1049,9 @@ static int imx_hdp_imx_bind(struct device *dev, struct device *master, &imx_hdp_connector_funcs, DRM_MODE_CONNECTOR_HDMIA); + drm_object_attach_property(&connector->base, + connector->dev->mode_config.hdr_source_metadata_property, 0); + drm_mode_connector_attach_encoder(connector, encoder); dev_set_drvdata(dev, hdp); diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 66023b09076c..be83491199d4 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -135,6 +135,8 @@ struct drm_hdmi_info { struct drm_scdc scdc; /* Colorimerty info from EDID */ u32 colorimetry; + /* Panel HDR capabilities */ + struct hdr_static_metadata hdr_panel_metadata; }; /** @@ -776,7 +778,6 @@ struct drm_connector { uint16_t tile_h_size, tile_v_size; /* HDR metdata */ - struct hdr_static_metadata *hdr_panel_metadata; struct hdr_static_metadata *hdr_source_metadata; };