disp: msm: dp: add colorspace property for MSM DP
Add the colorspace property for DP controller for MSM. Also, change the default method to send the colorimetry information to the sink from MISC bits of MSA to VSC SDP packets if the sink supports it. This helps to avoid dynamic switches between the packet types for sending the colorimetry information during BT2020 and DCI-P3 use-cases. Change-Id: I7ddf879a187b023fcf7404d64028e4d19b031119 Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Cette révision appartient à :

révisé par
Gerrit - the friendly Code Review server

Parent
7f5f73ff41
révision
14e02e4b02
@@ -326,6 +326,25 @@ int dp_connector_config_hdr(struct drm_connector *connector, void *display,
|
||||
c_state->dyn_hdr_meta.dynamic_hdr_update);
|
||||
}
|
||||
|
||||
int dp_connector_set_colorspace(struct drm_connector *connector,
|
||||
void *display)
|
||||
{
|
||||
struct dp_display *dp_display = display;
|
||||
struct sde_connector *sde_conn;
|
||||
|
||||
if (!dp_display || !connector)
|
||||
return -EINVAL;
|
||||
|
||||
sde_conn = to_sde_connector(connector);
|
||||
if (!sde_conn->drv_panel) {
|
||||
pr_err("invalid dp panel\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return dp_display->set_colorspace(dp_display,
|
||||
sde_conn->drv_panel, connector->state->colorspace);
|
||||
}
|
||||
|
||||
int dp_connector_post_init(struct drm_connector *connector, void *display)
|
||||
{
|
||||
int rc;
|
||||
@@ -469,6 +488,32 @@ void dp_connector_post_open(struct drm_connector *connector, void *display)
|
||||
dp->post_open(dp);
|
||||
}
|
||||
|
||||
int dp_connector_atomic_check(struct drm_connector *connector,
|
||||
void *display,
|
||||
struct drm_connector_state *c_state)
|
||||
{
|
||||
struct sde_connector *sde_conn;
|
||||
struct drm_connector_state *old_state =
|
||||
drm_atomic_get_old_connector_state(c_state->state, connector);
|
||||
|
||||
if (!connector || !display)
|
||||
return -EINVAL;
|
||||
|
||||
sde_conn = to_sde_connector(connector);
|
||||
|
||||
/*
|
||||
* Marking the colorspace has been changed
|
||||
* the flag shall be checked in the pre_kickoff
|
||||
* to configure the new colorspace in HW
|
||||
*/
|
||||
if (c_state->colorspace != old_state->colorspace) {
|
||||
DP_DEBUG("colorspace has been updated\n");
|
||||
sde_conn->colorspace_updated = true;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dp_connector_get_modes(struct drm_connector *connector,
|
||||
void *display, const struct msm_resource_caps_info *avail_res)
|
||||
{
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur