mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
drm: rockchip: hdmi: attach HDR_SOURCE_METADATA property
HDR_SOURCE_METADATA property is used to set source hdr metadata, which will be sent to sink though HDMI DRM infoframe. Change-Id: If3500cb505c16c2f0caf66b8e64b4d80b93b228f Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
This commit is contained in:
@@ -800,6 +800,10 @@ dw_hdmi_rockchip_attatch_properties(struct drm_connector *connector,
|
||||
hdmi->outputmode_capacity = prop;
|
||||
drm_object_attach_property(&connector->base, prop, 0);
|
||||
}
|
||||
|
||||
prop = connector->dev->mode_config.hdr_source_metadata_property;
|
||||
if (version >= 0x211a)
|
||||
drm_object_attach_property(&connector->base, prop, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -841,6 +845,7 @@ dw_hdmi_rockchip_set_property(struct drm_connector *connector,
|
||||
void *data)
|
||||
{
|
||||
struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data;
|
||||
struct drm_mode_config *config = &connector->dev->mode_config;
|
||||
|
||||
if (property == hdmi->color_depth_property) {
|
||||
hdmi->colordepth = val;
|
||||
@@ -848,6 +853,8 @@ dw_hdmi_rockchip_set_property(struct drm_connector *connector,
|
||||
} else if (property == hdmi->hdmi_output_property) {
|
||||
hdmi->hdmi_output = val;
|
||||
return 0;
|
||||
} else if (property == config->hdr_source_metadata_property) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
DRM_ERROR("failed to set rockchip hdmi connector property\n");
|
||||
@@ -863,6 +870,8 @@ dw_hdmi_rockchip_get_property(struct drm_connector *connector,
|
||||
{
|
||||
struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data;
|
||||
struct drm_display_info *info = &connector->display_info;
|
||||
struct drm_mode_config *config = &connector->dev->mode_config;
|
||||
const struct drm_connector_state *conn_state = connector->state;
|
||||
|
||||
if (property == hdmi->color_depth_property) {
|
||||
*val = hdmi->colordepth;
|
||||
@@ -898,6 +907,9 @@ dw_hdmi_rockchip_get_property(struct drm_connector *connector,
|
||||
info->color_formats & DRM_COLOR_FORMAT_YCRCB420)
|
||||
*val |= BIT(DRM_HDMI_OUTPUT_YCBCR420);
|
||||
return 0;
|
||||
} else if (property == config->hdr_source_metadata_property) {
|
||||
*val = conn_state->blob_id;
|
||||
return 0;
|
||||
}
|
||||
|
||||
DRM_ERROR("failed to get rockchip hdmi connector property\n");
|
||||
|
||||
Reference in New Issue
Block a user