MLK-17634-4: drm: move hdr_panel_metadata to drm_hdmi_info
authorLaurentiu Palcu <laurentiu.palcu@nxp.com>
Thu, 25 Jan 2018 09:27:46 +0000 (11:27 +0200)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:55:41 +0000 (14:55 -0500)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
drivers/gpu/drm/drm_edid.c
drivers/gpu/drm/imx/hdp/imx-hdp.c
include/drm/drm_connector.h

index 0427681..4d635fc 100644 (file)
@@ -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
index d40eae9..3455527 100644 (file)
@@ -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);
index 66023b0..be83491 100644 (file)
@@ -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;
 };