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
&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);
struct drm_scdc scdc;
/* Colorimerty info from EDID */
u32 colorimetry;
+ /* Panel HDR capabilities */
+ struct hdr_static_metadata hdr_panel_metadata;
};
/**
uint16_t tile_h_size, tile_v_size;
/* HDR metdata */
- struct hdr_static_metadata *hdr_panel_metadata;
struct hdr_static_metadata *hdr_source_metadata;
};