FAILED: patch "[PATCH] drm/ingenic: Switch IPU plane to type OVERLAY" failed to apply to 5.10-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 68b433fe6937cfa3f8975d18643d5956254edd6a Mon Sep 17 00:00:00 2001
From: Paul Cercueil <[email protected]>
Date: Mon, 29 Mar 2021 18:50:45 +0100
Subject: [PATCH] drm/ingenic: Switch IPU plane to type OVERLAY
It should have been an OVERLAY from the beginning. The documentation stipulates that there should be an unique PRIMARY plane per CRTC.
Fixes fc1acf317b01 ("drm/ingenic: Add support for the IPU")
Cc <[email protected]> # 5.8+
Signed-off-by Paul Cercueil <[email protected]>
Acked-by Simon Ser <[email protected]>
drivers/gpu/drm/ingenic/ingenic-drm-drv.c +5 -6
@@ -419,7 +419,7 @@ static void ingenic_drm_plane_enable(struct ingenic_drm *priv,unsigned int en_bit;if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) +if (plane != &priv->f0) en_bit =JZ_LCD_OSDC_F1EN ;else en_bit =JZ_LCD_OSDC_F0EN ;
@@ -434,7 +434,7 @@ void ingenic_drm_plane_disable(struct device *dev, struct drm_plane *plane)unsigned int en_bit;if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) +if (plane != &priv->f0) en_bit =JZ_LCD_OSDC_F1EN ;else en_bit =JZ_LCD_OSDC_F0EN ;
@@ -461,8 +461,7 @@ void ingenic_drm_plane_config(struct device *dev,ingenic_drm_plane_enable (priv, plane); -if (priv->soc_info->has_osd && - plane->type ==DRM_PLANE_TYPE_PRIMARY ) { +if (priv->soc_info->has_osd && plane != &priv->f0) {switch (fourcc) {case DRM_FORMAT_XRGB1555 : ctrl |=JZ_LCD_OSDCTRL_RGB555 ;
@@ -510,7 +509,7 @@ void ingenic_drm_plane_config(struct device *dev, }if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) { +if (plane != &priv->f0) { xy_reg =JZ_REG_LCD_XYP1 ; size_reg =JZ_REG_LCD_SIZE1 ; }else {
@@ -561,7 +560,7 @@ static void ingenic_drm_plane_atomic_update(struct drm_plane *plane, height = newstate->src_h >>16 ; cpp = newstate->fb->format->cpp[0 ]; -if (!priv->soc_info->has_osd || plane->type ==DRM_PLANE_TYPE_OVERLAY ) +if (!priv->soc_info->has_osd || plane == &priv->f0) hwdesc = &priv->dma_hwdescs->hwdesc_f0;else hwdesc = &priv->dma_hwdescs->hwdesc_f1;
drivers/gpu/drm/ingenic/ingenic-ipu.c +1 -1
@@ -767,7 +767,7 @@ static int ingenic_ipu_bind(struct device *dev, struct device *master, void *d) err =drm_universal_plane_init (drm, plane,1 , &ingenic_ipu_plane_funcs, soc_info->formats, soc_info->num_formats, -NULL ,DRM_PLANE_TYPE_PRIMARY ,NULL ); +NULL ,DRM_PLANE_TYPE_OVERLAY ,NULL );if (err) {dev_err (dev,"Failed to init plane: %i\n" , err);return err;