]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
imx-drm: ipuv3-plane: allow local alpha in ipu_plane_mode_set()
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 8 Oct 2014 15:19:12 +0000 (17:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Nov 2014 00:19:58 +0000 (16:19 -0800)
For the overlay plane scanning out a framebuffer with an alpha component,
enable the DP local alpha feature on the partial plane.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/imx-drm/ipuv3-plane.c

index 944962b692bb0c58a2e7f189fb7fc6897201e098..48cbeef73934d7c1c55f067c5f23b0f01b9b0f9b 100644 (file)
@@ -148,14 +148,22 @@ int ipu_plane_mode_set(struct ipu_plane *ipu_plane, struct drm_crtc *crtc,
                                ret);
                        return ret;
                }
-               ipu_dp_set_global_alpha(ipu_plane->dp, 1, 0, 1);
+               ipu_dp_set_global_alpha(ipu_plane->dp, true, 0, true);
                break;
        case IPU_DP_FLOW_SYNC_FG:
                ipu_dp_setup_channel(ipu_plane->dp,
                                ipu_drm_fourcc_to_colorspace(fb->pixel_format),
                                IPUV3_COLORSPACE_UNKNOWN);
                ipu_dp_set_window_pos(ipu_plane->dp, crtc_x, crtc_y);
-               break;
+               /* Enable local alpha on partial plane */
+               switch (fb->pixel_format) {
+               case DRM_FORMAT_ARGB8888:
+               case DRM_FORMAT_ABGR8888:
+                       ipu_dp_set_global_alpha(ipu_plane->dp, false, 0, false);
+                       break;
+               default:
+                       break;
+               }
        }
 
        ret = ipu_dmfc_init_channel(ipu_plane->dmfc, crtc_w);