diff options
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_plane.c')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/omap_plane.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c index 84e1be981cfe..73ec99819a3d 100644 --- a/drivers/gpu/drm/omapdrm/omap_plane.c +++ b/drivers/gpu/drm/omapdrm/omap_plane.c @@ -53,8 +53,12 @@ static void omap_plane_atomic_update(struct drm_plane *plane,  	memset(&info, 0, sizeof(info));  	info.rotation_type = OMAP_DSS_ROT_NONE;  	info.rotation = DRM_MODE_ROTATE_0; -	info.global_alpha = 0xff; +	info.global_alpha = state->alpha >> 8;  	info.zorder = state->normalized_zpos; +	if (state->pixel_blend_mode == DRM_MODE_BLEND_PREMULTI) +		info.pre_mult_alpha = 1; +	else +		info.pre_mult_alpha = 0;  	/* update scanout: */  	omap_framebuffer_update_scanout(state->fb, state, &info); @@ -285,6 +289,9 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,  	omap_plane_install_properties(plane, &plane->base);  	drm_plane_create_zpos_property(plane, 0, 0, num_planes - 1); +	drm_plane_create_alpha_property(plane); +	drm_plane_create_blend_mode_property(plane, BIT(DRM_MODE_BLEND_PREMULTI) | +					     BIT(DRM_MODE_BLEND_COVERAGE));  	return plane;  |