diff options
Diffstat (limited to 'drivers/gpu/drm/stm')
| -rw-r--r-- | drivers/gpu/drm/stm/ltdc.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c index 195de30eb90c..dbdee954692a 100644 --- a/drivers/gpu/drm/stm/ltdc.c +++ b/drivers/gpu/drm/stm/ltdc.c @@ -845,7 +845,7 @@ static void ltdc_plane_atomic_update(struct drm_plane *plane,  			LXCFBLR_CFBLL | LXCFBLR_CFBP, val);  	/* Specifies the constant alpha value */ -	val = CONSTA_MAX; +	val = newstate->alpha >> 8;  	reg_update_bits(ldev->regs, LTDC_L1CACR + lofs, LXCACR_CONSTA, val);  	/* Specifies the blending factors */ @@ -997,6 +997,8 @@ static struct drm_plane *ltdc_plane_create(struct drm_device *ddev,  	drm_plane_helper_add(plane, <dc_plane_helper_funcs); +	drm_plane_create_alpha_property(plane); +  	DRM_DEBUG_DRIVER("plane:%d created\n", plane->base.id);  	return plane; @@ -1024,6 +1026,8 @@ static int ltdc_crtc_init(struct drm_device *ddev, struct drm_crtc *crtc)  		return -EINVAL;  	} +	drm_plane_create_zpos_immutable_property(primary, 0); +  	ret = drm_crtc_init_with_planes(ddev, crtc, primary, NULL,  					<dc_crtc_funcs, NULL);  	if (ret) { @@ -1046,6 +1050,7 @@ static int ltdc_crtc_init(struct drm_device *ddev, struct drm_crtc *crtc)  			DRM_ERROR("Can not create overlay plane %d\n", i);  			goto cleanup;  		} +		drm_plane_create_zpos_immutable_property(overlay, i);  	}  	return 0; |