Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit acd2ce06 authored by Steve Cohen's avatar Steve Cohen Committed by Jayant Shekhar
Browse files

drm/msm/sde: clear dim-layer settings when setting default value



Clear all dim-layers when the default value of 0 (NULL) is set for
the dim layer property.  This setting needs to be cleared when
resetting the crtc custom properties during lastclose.

Change-Id: Ib451f918d7448e4952d086827852516445f137c1
Signed-off-by: default avatarSteve Cohen <cohens@codeaurora.org>
parent 5c705745
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -2439,6 +2439,23 @@ static void _sde_crtc_set_input_fence_timeout(struct sde_crtc_state *cstate)
	cstate->input_fence_timeout_ns *= NSEC_PER_MSEC;
}

/**
 * _sde_crtc_clear_dim_layers_v1 - clear all dim layer settings
 * @cstate:      Pointer to sde crtc state
 */
static void _sde_crtc_clear_dim_layers_v1(struct sde_crtc_state *cstate)
{
	u32 i;

	if (!cstate)
		return;

	for (i = 0; i < cstate->num_dim_layers; i++)
		memset(&cstate->dim_layer[i], 0, sizeof(cstate->dim_layer[i]));

	cstate->num_dim_layers = 0;
}

/**
 * _sde_crtc_set_dim_layer_v1 - copy dim layer settings from userspace
 * @cstate:      Pointer to sde crtc state
@@ -2459,6 +2476,8 @@ static void _sde_crtc_set_dim_layer_v1(struct sde_crtc_state *cstate,
	dim_layer = cstate->dim_layer;

	if (!usr_ptr) {
		/* usr_ptr is null when setting the default property value */
		_sde_crtc_clear_dim_layers_v1(cstate);
		SDE_DEBUG("dim_layer data removed\n");
		return;
	}