diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 84ca4b6a303c..3e3ebdf34e9f 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -3724,21 +3724,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 *hdmi = &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); + hdmi->hdr_panel_metadata.eotf = eotf_supported(db); + hdmi->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]; + hdmi->hdr_panel_metadata.max_cll = db[4]; + hdmi->hdr_panel_metadata.max_fall = db[5]; + hdmi->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]; + hdmi->hdr_panel_metadata.max_cll = db[4]; + hdmi->hdr_panel_metadata.max_fall = db[5]; + } else if (len == 4) { + hdmi->hdr_panel_metadata.max_cll = db[4]; + } } static void diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index ba1a1ba1ed02..75e7abcf5810 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -189,6 +189,9 @@ struct drm_hdmi_info { /* Colorimerty info from EDID */ u32 colorimetry; + + /* HDR metdata */ + struct hdr_static_metadata hdr_panel_metadata; }; #define DRM_COLOR_FORMAT_RGB444 (1<<0) @@ -990,9 +993,6 @@ struct drm_connector { uint8_t tile_h_loc, tile_v_loc; uint16_t tile_h_size, tile_v_size; - /* HDR metdata */ - struct hdr_static_metadata *hdr_panel_metadata; - struct hdr_static_metadata *hdr_source_metadata; }; /**