Merge "disp: msm: dp: add colorspace property for MSM DP"

This commit is contained in:
qctecmdr
2019-07-28 01:12:00 -07:00
کامیت شده توسط Gerrit - the friendly Code Review server
کامیت 60d59191c8
13فایلهای تغییر یافته به همراه640 افزوده شده و 165 حذف شده

مشاهده پرونده

@@ -606,6 +606,19 @@ static int _sde_connector_update_bl_scale(struct sde_connector *c_conn)
return rc;
}
void sde_connector_set_colorspace(struct sde_connector *c_conn)
{
int rc = 0;
if (c_conn->ops.set_colorspace)
rc = c_conn->ops.set_colorspace(&c_conn->base,
c_conn->display);
if (rc)
SDE_ERROR_CONN(c_conn, "cannot apply new colorspace %d\n", rc);
}
void sde_connector_set_qsync_params(struct drm_connector *connector)
{
struct sde_connector *c_conn = to_sde_connector(connector);
@@ -680,6 +693,12 @@ static int _sde_connector_update_dirty_properties(
}
}
/* if colorspace needs to be updated do it first */
if (c_conn->colorspace_updated) {
c_conn->colorspace_updated = false;
sde_connector_set_colorspace(c_conn);
}
/*
* Special handling for postproc properties and
* for updating backlight if any unset backlight level is present
@@ -1480,6 +1499,20 @@ static void sde_connector_update_hdr_props(struct drm_connector *connector)
&hdr, sizeof(hdr), CONNECTOR_PROP_EXT_HDR_INFO);
}
static void sde_connector_update_colorspace(struct drm_connector *connector)
{
int ret;
ret = msm_property_set_property(
sde_connector_get_propinfo(connector),
sde_connector_get_property_state(connector->state),
CONNECTOR_PROP_SUPPORTED_COLORSPACES,
connector->color_enc_fmt);
if (ret)
SDE_ERROR("failed to set colorspace property for connector\n");
}
static enum drm_connector_status
sde_connector_detect(struct drm_connector *connector, bool force)
{
@@ -1920,6 +1953,9 @@ static int sde_connector_get_modes(struct drm_connector *connector)
if (c_conn->hdr_capable)
sde_connector_update_hdr_props(connector);
if (c_conn->connector_type == DRM_MODE_CONNECTOR_DisplayPort)
sde_connector_update_colorspace(connector);
return mode_count;
}
@@ -2118,6 +2154,7 @@ static const struct drm_connector_helper_funcs sde_connector_helper_ops = {
.get_modes = sde_connector_get_modes,
.mode_valid = sde_connector_mode_valid,
.best_encoder = sde_connector_best_encoder,
.atomic_check = sde_connector_atomic_check,
};
static const struct drm_connector_helper_funcs sde_connector_helper_ops_v2 = {
@@ -2295,6 +2332,7 @@ static int _sde_connector_install_properties(struct drm_device *dev,
{
struct dsi_display *dsi_display;
int rc;
struct drm_connector *connector;
msm_property_install_blob(&c_conn->property_info, "capabilities",
DRM_MODE_PROP_IMMUTABLE, CONNECTOR_PROP_SDE_INFO);
@@ -2307,6 +2345,8 @@ static int _sde_connector_install_properties(struct drm_device *dev,
return rc;
}
connector = &c_conn->base;
msm_property_install_blob(&c_conn->property_info, "mode_properties",
DRM_MODE_PROP_IMMUTABLE, CONNECTOR_PROP_MODE_INFO);
@@ -2350,6 +2390,11 @@ static int _sde_connector_install_properties(struct drm_device *dev,
&hdr,
sizeof(hdr),
CONNECTOR_PROP_EXT_HDR_INFO);
/* create and attach colorspace property for DP */
if (!drm_mode_create_colorspace_property(connector))
drm_object_attach_property(&connector->base,
connector->colorspace_property, 0);
}
msm_property_install_volatile_range(&c_conn->property_info,
@@ -2389,6 +2434,12 @@ static int _sde_connector_install_properties(struct drm_device *dev,
c_conn->bl_scale = MAX_BL_SCALE_LEVEL;
c_conn->bl_scale_sv = MAX_SV_BL_SCALE_LEVEL;
if (connector_type == DRM_MODE_CONNECTOR_DisplayPort)
msm_property_install_range(&c_conn->property_info,
"supported_colorspaces",
DRM_MODE_PROP_IMMUTABLE, 0, 0xffff, 0,
CONNECTOR_PROP_SUPPORTED_COLORSPACES);
/* enum/bitmask properties */
msm_property_install_enum(&c_conn->property_info, "topology_name",
DRM_MODE_PROP_IMMUTABLE, 0, e_topology_name,