[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240904075417.53-1-hui.pu@gehealthcare.com>
Date: Wed, 4 Sep 2024 10:54:17 +0300
From: Paul Pu <hui.pu@...ealthcare.com>
To: p.zabel@...gutronix.de,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Daniel Vetter <daniel@...ll.ch>,
Shawn Guo <shawnguo@...nel.org>, Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
Lucas Stach <l.stach@...gutronix.de>
Cc: hui.pu@...ealthcare.com, HuanWang@...ealthcare.com,
taowang@...ealthcare.com, sebastian.reichel@...labora.com,
ian.ray@...ealthcare.com, stable@...r.kernel.org,
dri-devel@...ts.freedesktop.org, imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: [PATCH v2] drm/imx/ipuv3: ipuv3-plane: Round up plane width for IPUV3_CHANNEL_MEM_DC_SYNC
This changes the judgement of if needing to round up the width or not,
from using the `dp_flow` to the plane's type.
The `dp_flow` can be -22(-EINVAL) even if the plane is a PRIMARY one.
See `client_reg[]` in `ipu-common.c`.
[ 0.605141] [drm:ipu_plane_init] channel 28, dp flow -22, possible_crtcs=0x0
Per the commit message in commit: 4333472f8d7b, using the plane type for
judging if rounding up is needed is correct.
This fixes HDMI cannot work for odd screen resolutions, e.g. 1366x768.
Fixes: 4333472f8d7b ("drm/imx: ipuv3-plane: Fix overlay plane width")
Cc: stable@...r.kernel.org # 5.15+
Signed-off-by: Paul Pu <hui.pu@...ealthcare.com>
---
v1 -> v2: Fixed addressed review comments
---
drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
index 704c549750f9..3ef8ad7ab2a1 100644
--- a/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
+++ b/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
@@ -614,7 +614,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane,
break;
}
- if (ipu_plane->dp_flow == IPU_DP_FLOW_SYNC_BG)
+ if (plane->type == DRM_PLANE_TYPE_PRIMARY)
width = ipu_src_rect_width(new_state);
else
width = drm_rect_width(&new_state->src) >> 16;
base-commit: 431c1646e1f86b949fa3685efc50b660a364c2b6
--
2.39.2
Powered by blists - more mailing lists