diff mbox

[2/9] drm/imx: ipuv3-plane: disable local alpha for planes without alpha channel

Message ID 20161018160757.11595-2-p.zabel@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Philipp Zabel Oct. 18, 2016, 4:07 p.m. UTC
Without this patch, after enabling the overlay plane with an RGBA
framebuffer, switching to a framebuffer without alpha channel would
cause the plane to vanish, since the pixel local alpha is constant
zero in that case. Disable local alpha again when setting an opaque
framebuffer.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
 drivers/gpu/drm/imx/ipuv3-plane.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ying Liu Oct. 19, 2016, 7:17 a.m. UTC | #1
On Wed, Oct 19, 2016 at 12:07 AM, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Without this patch, after enabling the overlay plane with an RGBA
> framebuffer, switching to a framebuffer without alpha channel would
> cause the plane to vanish, since the pixel local alpha is constant
> zero in that case. Disable local alpha again when setting an opaque
> framebuffer.
>
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>

Looking at the big picture, we've got some hard coding for DP CSC&alpha :(
However, looking at this patch itself, it is acceptable to me.

Regards,
Liu Ying

> ---
>  drivers/gpu/drm/imx/ipuv3-plane.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3-plane.c
> index 3a03fd8..d4a771c 100644
> --- a/drivers/gpu/drm/imx/ipuv3-plane.c
> +++ b/drivers/gpu/drm/imx/ipuv3-plane.c
> @@ -434,6 +434,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane,
>                         ipu_dp_set_global_alpha(ipu_plane->dp, false, 0, false);
>                         break;
>                 default:
> +                       ipu_dp_set_global_alpha(ipu_plane->dp, true, 0, true);
>                         break;
>                 }
>         }
> --
> 2.9.3
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3-plane.c
index 3a03fd8..d4a771c 100644
--- a/drivers/gpu/drm/imx/ipuv3-plane.c
+++ b/drivers/gpu/drm/imx/ipuv3-plane.c
@@ -434,6 +434,7 @@  static void ipu_plane_atomic_update(struct drm_plane *plane,
 			ipu_dp_set_global_alpha(ipu_plane->dp, false, 0, false);
 			break;
 		default:
+			ipu_dp_set_global_alpha(ipu_plane->dp, true, 0, true);
 			break;
 		}
 	}