From nobody Sun Jun 14 01:36:54 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F1433ACA65 for ; Mon, 4 May 2026 18:24:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919080; cv=none; b=d1g88v4fxADRs3ZrDdCE8Kla8XZkY+WfTHA49XSPPv7PunzPTWMN89TCGMs9cYtEZsMWqfrncLtvxzDvaHIL9X8DzuiA48n7Z41kIk056cRJwdmm1h8eczqtcaW+QSmQMC4sLM696bgT/1kOiz+PooqCBkxRIgFhZ33ElagM6cY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919080; c=relaxed/simple; bh=LIaSlxFKDMGdLUeGmCaMWboNkyhoBoZUFgC5ptDTBTY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eh6MAvU4Ay0AwgzUL0iPXfm7UMmLPyR47ODWuXjxFA9dhVRB7CiMC0/FxR6SGAw2LBGwh0GQhVd3q2+Iw5dXVMc3AXnCDtDiCr6Jou0//I9Dop+Lwm+Q/mEaUrNJniR+4dZD4bIfgG5INLnkY4/oJ5sNGTYP7Wylw+uISBrLk00= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=dHOSERkt; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="dHOSERkt" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777919072; bh=LIaSlxFKDMGdLUeGmCaMWboNkyhoBoZUFgC5ptDTBTY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=dHOSERktEipbU+Wy5cUpTDKMgYTumbdri8JkAkRQx8MyFLu1p8Q8dmBxIMPiaDVJ0 LYPgZ23rp4iDtFnvdH6yV/I2idGqV/U6rXewcU1tGeyN6IY2Op/F5Zyjt/J7lw6jJM XC8qF7J2Aff+pvBonsUcvNSHkMxH5WoRiTk3uGshvfnEEbwntiQkGGXE79LCMmqlKI Nab986FKJVQtoexN1/0dulZd+j+xOP+DC51j5W56tXb7AhUgvKATpZXHuRU/mI1wSl DvG4T2Ee/aHvKPAws6G16WI2hfEjlze156z9+oxVP49QjzWiaPTal1paHuqwvtfwza tljjXr3RF7LAw== Received: from localhost (unknown [100.64.0.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id 0FBFC17E12EB; Mon, 4 May 2026 20:24:32 +0200 (CEST) From: Cristian Ciocaltea Date: Mon, 04 May 2026 21:23:59 +0300 Subject: [PATCH 1/5] drm/rockchip: vop2: Fix wrong wait target in layer cfg done check Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260504-vop2-layer-cfg-tmout-v1-1-730226a7331e@collabora.com> References: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> In-Reply-To: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.1 rk3568_vop2_setup_layer_mixer() waits for the previous Video Port (VP) layer configuration to take effect before writing a new one to the shared RK3568_OVL_LAYER_SEL shadow register. However, it passes vop2->old_layer_sel to rk3568_vop2_wait_for_layer_cfg_done() as the expected value, which at that point already contains the new VP layer. This causes the wait to poll for a value that has not been written to the shadow register yet, resulting in spurious timeouts when two non-blocking atomic commits race: rockchip-drm display-subsystem: [drm] *ERROR* wait layer cfg done timeout= [...] Pass the local old_layer_sel instead, which still holds the value captured from vop2->old_layer_sel before it was overwritten, i.e. the previous VP target that the hardware is expected to latch. Fixes: 3e89a8c68354 ("drm/rockchip: vop2: Fix the update of LAYER/PORT sele= ct registers when there are multi display output on rk3588/rk3568") Signed-off-by: Cristian Ciocaltea --- drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm= /rockchip/rockchip_vop2_reg.c index 02a788a4dfdd..edca0fb16e08 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2307,7 +2307,7 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) * Changes of other VPs' overlays have not taken effect */ if (cfg_done) - rk3568_vop2_wait_for_layer_cfg_done(vop2, vop2->old_layer_sel); + rk3568_vop2_wait_for_layer_cfg_done(vop2, old_layer_sel); } =20 vop2_writel(vop2, RK3568_OVL_LAYER_SEL, layer_sel); --=20 2.53.0 From nobody Sun Jun 14 01:36:54 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A8C43E559E for ; Mon, 4 May 2026 18:24:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919081; cv=none; b=SAdIt9hZq++S7rutqv+L/g2Us7rtI6/6OPUQPUIA5Vw4IiEQbGAylJ5+SlDpaoopkjvQt4TYrPHzrkIfP5U7HgQThsPX0TpEeI2uGPS0j9rKkurGDAwPk3NlBdqoqSD4XIQjwixs2S4lq056P7Lk5EnX4deDXGKpyBGqaWxahHs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919081; c=relaxed/simple; bh=jm/lt6k4t2SfRczOWUuIy+qaUOxXJRsGSdhhtyXdzA4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S/Zea2oLYXL2uQ7GOblY6F54qggb4j/iHQNDWraaDqa4agR4ETbPZ85GJIIy4HtVmTZAeX3IgKW+eBt02WST2oCSVbTaVx9FUqFY2k4Z+eD1TJigeUauEC6ZucYqEknwkxo5p1QWC/r7K7C+0xWrx7fVFZIi2fXAO8jQxldO3ZM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=XNoP1Bg6; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="XNoP1Bg6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777919073; bh=jm/lt6k4t2SfRczOWUuIy+qaUOxXJRsGSdhhtyXdzA4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=XNoP1Bg6q4Sg+qqaqAh2bxRigOTIw0IeoavObVSWfih7ku0MbgGJBl7yoITM4n9zA k1/NcadjVIg1+B6fg6oTuYkWuDNFPcrQw8LLVKcmklCq8azji3PjTNODZqE748afU2 tulqTHi4bnsPMSueuPzim+Iny9hVRfdNAqKIPVopcDbkFvm7fQuGBGTmSavTpzLp5R cbj874WmAhEkKFM3MNRsKTGc/I4pg0iQ8LjpU/2FIjK+3LIDofi4u/d7g7Wj3QDp66 q9F6W1mfNKG6FxxkMuWqEBFwfOJV7Qt9HYHUTqQCZQSFvAk0ei1D6wLq3AkdKStnIC M1dwO0WzigYIA== Received: from localhost (unknown [100.64.0.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id DE42517E1525; Mon, 4 May 2026 20:24:32 +0200 (CEST) From: Cristian Ciocaltea Date: Mon, 04 May 2026 21:24:00 +0300 Subject: [PATCH 2/5] drm/rockchip: vop2: Wait for layer cfg done before switching LAYERSEL_REGDONE_SEL Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260504-vop2-layer-cfg-tmout-v1-2-730226a7331e@collabora.com> References: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> In-Reply-To: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.1 LAYERSEL_REGDONE_SEL mask of RK3568_OVL_CTRL register controls which Video Port (VP) vsync latches the shared RK3568_OVL_{LAYER|PORT}_SEL shadow registers into the active configuration. rk3568_vop2_setup_layer_mixer() overwrites LAYERSEL_REGDONE_SEL to the current VP ID before waiting for the previous VP layer configuration to take effect. As a consequence, the previous VP vsync can no longer trigger the latch, so the wait polls a value that might never appear. Move the layer cfg done wait before the RK3568_OVL_CTRL write so the previous VP vsync can still commit the pending configuration. Fixes: 3e89a8c68354 ("drm/rockchip: vop2: Fix the update of LAYER/PORT sele= ct registers when there are multi display output on rk3588/rk3568") Signed-off-by: Cristian Ciocaltea --- drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm= /rockchip/rockchip_vop2_reg.c index edca0fb16e08..5206f01ec787 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2289,15 +2289,6 @@ static void rk3568_vop2_setup_layer_mixer(struct vop= 2_video_port *vp) * lead to the configuration of the previous VP being take effect alon= g with the VSYNC * of the new VP. */ - if (layer_sel !=3D old_layer_sel || port_sel !=3D old_port_sel) - ovl_ctrl |=3D FIELD_PREP(RK3568_OVL_CTRL__LAYERSEL_REGDONE_SEL, vp->id); - vop2_writel(vop2, RK3568_OVL_CTRL, ovl_ctrl); - - if (port_sel !=3D old_port_sel) { - vop2_writel(vop2, RK3568_OVL_PORT_SEL, port_sel); - vop2_cfg_done(vp); - rk3568_vop2_wait_for_port_mux_done(vop2); - } =20 if (layer_sel !=3D old_layer_sel && atv_layer_sel !=3D old_layer_sel) { cfg_done =3D vop2_readl(vop2, RK3568_REG_CFG_DONE); @@ -2310,6 +2301,16 @@ static void rk3568_vop2_setup_layer_mixer(struct vop= 2_video_port *vp) rk3568_vop2_wait_for_layer_cfg_done(vop2, old_layer_sel); } =20 + if (layer_sel !=3D old_layer_sel || port_sel !=3D old_port_sel) + ovl_ctrl |=3D FIELD_PREP(RK3568_OVL_CTRL__LAYERSEL_REGDONE_SEL, vp->id); + vop2_writel(vop2, RK3568_OVL_CTRL, ovl_ctrl); + + if (port_sel !=3D old_port_sel) { + vop2_writel(vop2, RK3568_OVL_PORT_SEL, port_sel); + vop2_cfg_done(vp); + rk3568_vop2_wait_for_port_mux_done(vop2); + } + vop2_writel(vop2, RK3568_OVL_LAYER_SEL, layer_sel); mutex_unlock(&vop2->ovl_lock); } --=20 2.53.0 From nobody Sun Jun 14 01:36:54 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3BFCA3E5EFB for ; Mon, 4 May 2026 18:24:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919082; cv=none; b=J6lJgVICaUNEoVAkXgoT5GJYBDmcU91qOdYTOner5fe/j4RQliEfDaJF0FIn6ew/D1ckjIVExkHTF+GzbanSOAx2GYVnTY/WVooRrLK6ZbuWgBhL2Q/JNaTuhHoo43HNxBE0krdW3ii86RkhQXBjA7mzIs4k6Cm4MF2aDdxgvhU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919082; c=relaxed/simple; bh=CrUMD80L0tPh/ReWZWhyFAP6sKoT7Ci2SErvfpP/5Yw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j7eq6z3kyCRAtvj5Wzi+A2QgzEvdJwHuLFkR0wFnQuChu9Icw3E+/MGBO893XpsBx2swZSylCd0y26UjmHgBSZeh/c6LPHFUZ9VTtPT4hI8CDrVlhwnoP9UYmaDKaRpnPcgeHaFHHCsNOdd78P2J9xZHaKuGAg5PePwfNE4DUNU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=JP5VsES8; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="JP5VsES8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777919073; bh=CrUMD80L0tPh/ReWZWhyFAP6sKoT7Ci2SErvfpP/5Yw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JP5VsES8QC1489VuseSPugmyxnxbDiuYlt8+kzwVkBDDylqpXKJusT9MIQh5C1sMG y3E83asCjPuVmbkyDC2EjGW/npf9cwyZ4bfqf3S+XwcU40F55chYjBX3eg7quNLeVl wV2eZ9wtDrpTTc6RmF094up8hDhZP+kHwe1QcjXZ6TDXzpCD+Eduno4ZlQJ9Jivh68 cNReNQaFZaZEvD5EWv/V15iriP/1qxDfCYIWDR8IVphwDyFFe67Hb19CSKEpv3Gsax POgzyFY7MWM672rRs87w2g0v5dRz0OAFNeWz6fVu4Yry6Lv0/WNOp1pTgj5M3vAIJd BTsCn7Man/5ow== Received: from localhost (unknown [100.64.0.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id B448717E1544; Mon, 4 May 2026 20:24:33 +0200 (CEST) From: Cristian Ciocaltea Date: Mon, 04 May 2026 21:24:01 +0300 Subject: [PATCH 3/5] drm/rockchip: vop2: Delay old_{layer|port}_sel updates in setup_layer_mixer() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260504-vop2-layer-cfg-tmout-v1-3-730226a7331e@collabora.com> References: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> In-Reply-To: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.1 The old_layer_sel and old_port_sel local variables were introduced to hold the previous VP configuration for comparisons and wait targets, working around the premature update of vop2->old_layer_sel and vop2->old_port_sel earlier in the function. Remove these superfluous locals and instead defer the assignments of vop2->old_layer_sel and vop2->old_port_sel to just before the corresponding shadow register writes, where the transition from old to new logically belongs. No functional change intended. Signed-off-by: Cristian Ciocaltea --- drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm= /rockchip/rockchip_vop2_reg.c index 5206f01ec787..1f5e8c2acecd 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2136,9 +2136,7 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) struct drm_plane *plane; u32 layer_sel =3D 0; u32 port_sel; - u32 old_layer_sel =3D 0; u32 atv_layer_sel =3D 0; - u32 old_port_sel =3D 0; u8 layer_id; u8 old_layer_id; u8 layer_sel_id; @@ -2161,8 +2159,7 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) else ovl_ctrl &=3D ~RK3568_OVL_CTRL__YUV_MODE(vp->id); =20 - old_port_sel =3D vop2->old_port_sel; - port_sel =3D old_port_sel; + port_sel =3D vop2->old_port_sel; port_sel &=3D RK3568_OVL_PORT_SEL__SEL_PORT; =20 if (vp0->nlayers) @@ -2188,8 +2185,7 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) port_sel |=3D FIELD_PREP(RK3588_OVL_PORT_SET__PORT3_MUX, 7); =20 atv_layer_sel =3D vop2_readl(vop2, RK3568_OVL_LAYER_SEL); - old_layer_sel =3D vop2->old_layer_sel; - layer_sel =3D old_layer_sel; + layer_sel =3D vop2->old_layer_sel; =20 ofs =3D 0; for (i =3D 0; i < vp->id; i++) @@ -2273,8 +2269,6 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) old_win->data->layer_sel_id[vp->id]); } =20 - vop2->old_layer_sel =3D layer_sel; - vop2->old_port_sel =3D port_sel; /* * As the RK3568_OVL_LAYER_SEL and RK3568_OVL_PORT_SEL are shared by all = Video Ports, * and the configuration take effect by one Video Port's vsync. @@ -2290,7 +2284,7 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) * of the new VP. */ =20 - if (layer_sel !=3D old_layer_sel && atv_layer_sel !=3D old_layer_sel) { + if (layer_sel !=3D vop2->old_layer_sel && atv_layer_sel !=3D vop2->old_la= yer_sel) { cfg_done =3D vop2_readl(vop2, RK3568_REG_CFG_DONE); cfg_done &=3D (BIT(vop2->data->nr_vps) - 1); cfg_done &=3D ~BIT(vp->id); @@ -2298,20 +2292,23 @@ static void rk3568_vop2_setup_layer_mixer(struct vo= p2_video_port *vp) * Changes of other VPs' overlays have not taken effect */ if (cfg_done) - rk3568_vop2_wait_for_layer_cfg_done(vop2, old_layer_sel); + rk3568_vop2_wait_for_layer_cfg_done(vop2, vop2->old_layer_sel); } =20 - if (layer_sel !=3D old_layer_sel || port_sel !=3D old_port_sel) + if (layer_sel !=3D vop2->old_layer_sel || port_sel !=3D vop2->old_port_se= l) ovl_ctrl |=3D FIELD_PREP(RK3568_OVL_CTRL__LAYERSEL_REGDONE_SEL, vp->id); vop2_writel(vop2, RK3568_OVL_CTRL, ovl_ctrl); =20 - if (port_sel !=3D old_port_sel) { + if (port_sel !=3D vop2->old_port_sel) { + vop2->old_port_sel =3D port_sel; vop2_writel(vop2, RK3568_OVL_PORT_SEL, port_sel); vop2_cfg_done(vp); rk3568_vop2_wait_for_port_mux_done(vop2); } =20 + vop2->old_layer_sel =3D layer_sel; vop2_writel(vop2, RK3568_OVL_LAYER_SEL, layer_sel); + mutex_unlock(&vop2->ovl_lock); } =20 --=20 2.53.0 From nobody Sun Jun 14 01:36:54 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CDBC3E63A1 for ; Mon, 4 May 2026 18:24:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919083; cv=none; b=nMntbXRNAKi/+eDeF4Ml7pat+iXj9ulbC/xI9v3gSEqxS3lTh8EcYSnW589pZABMyV1PphAQmKI3fj0NFKPt17y2e+U4kP2m5GrZkJcFPVkXxw3mBSFopo9V0qP1DkN1QAlGBYrSDETdSirzGxyhNVOO9dYNT3BEcMEPaMMqhBw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919083; c=relaxed/simple; bh=ZPL0/m2C5FPMkrDboCKPEVtxYEWiPUuSLnVJOAS9x2Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qZKL3Jk/qvBuP7aYkszENOkaJ8f8sC6OW7NQV9Wm8JW2szIVcmGtLVFZ3ce4SfuE19BIoSAX1c27XSi4Ev7NGAhsku8bS69jazKOsNVPxRRRf5oFQwVFtTN//tXcPE2grVWOQHbV4vfCD3lNPPrsIVxfezbQ8hsfKZzn9f4iAmg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=JINh5v7P; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="JINh5v7P" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777919074; bh=ZPL0/m2C5FPMkrDboCKPEVtxYEWiPUuSLnVJOAS9x2Q=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JINh5v7PHzTOk4WwFMRRwKsYD0iu2f1S9ZWkPcCc+AA1dbNcNblQEab8oRf22wRzw YKwVzvBfMSYejLfsOYBU3KuVO/3VvEk0CM97dT7HIizUt3uSxVWELoqvvOAyhEqKAQ Tr7jIXJMrEHD026rseSnW0BgxY/jI8Q09qpZp25JfW/MC51zhh4m3Iovw+ehPqZ/Pu PA0yo0YS4UlCJ531HLt7lvjtCKHi8c/jo09YCZLufQph2a40vDpgpxNVZ9XW57eFID ChYRAHkuYACULx3dWlN+5UiPTys+21Arw6g7a6fAWEwtVm0QsoGkNltkolSk8/D4qh mG8snLKNYH6QQ== Received: from localhost (unknown [100.64.0.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id 846D417E156E; Mon, 4 May 2026 20:24:34 +0200 (CEST) From: Cristian Ciocaltea Date: Mon, 04 May 2026 21:24:02 +0300 Subject: [PATCH 4/5] drm/rockchip: vop2: Drop redundant zero-init in setup_layer_mixer() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260504-vop2-layer-cfg-tmout-v1-4-730226a7331e@collabora.com> References: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> In-Reply-To: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.1 The layer_sel and atv_layer_sel local variables in rk3568_vop2_setup_layer_mixer() are unconditionally assigned from vop2->old_layer_sel and the RK3568_OVL_LAYER_SEL register read, respectively, before any use. Remove the superfluous zero-initializers. Signed-off-by: Cristian Ciocaltea --- drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm= /rockchip/rockchip_vop2_reg.c index 1f5e8c2acecd..0849bd922ffb 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2134,9 +2134,9 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) { struct vop2 *vop2 =3D vp->vop2; struct drm_plane *plane; - u32 layer_sel =3D 0; + u32 layer_sel; u32 port_sel; - u32 atv_layer_sel =3D 0; + u32 atv_layer_sel; u8 layer_id; u8 old_layer_id; u8 layer_sel_id; --=20 2.53.0 From nobody Sun Jun 14 01:36:54 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3C05F3E5EFD for ; Mon, 4 May 2026 18:24:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919082; cv=none; b=hezaHraIn70DB/ef/vHHh2LOl9E6TJ0y8uEV7m/od8CAfpZkEcXILn1sHA05toZyDSItT9IhGTT+wIK4W3aFWjapBNcCHCi7M4KwRk7v/+jOsTOX2vBuw872y1UWE3AUqNETREZ+CsrUX+JJ1hBSufoLv9Ys0qsuh7bQ9jvXb4g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777919082; c=relaxed/simple; bh=jHuSqMydnxiUHThU8cOES4vmkolWOAEvO+AN9naJXTY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aM4JLsOhyWuBQRLBwHSJ6lX0J4lg5xTxiVItTi932RxOcnQnttQ5vR+Ahu8IYP/Xr4aYIRIr9GORv+1oPlXylTHBYclr/c9wHsVxH+hrdI4ubHfn0DH464rhHqCZ4A/Y4hw4F+FZrR6cT+r/hUOWSwGFyT4XFphPQpkcxElxUts= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=B/09ckXK; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="B/09ckXK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777919075; bh=jHuSqMydnxiUHThU8cOES4vmkolWOAEvO+AN9naJXTY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=B/09ckXKQzf514XPJzFyIS/PKyLlXbepjl2xTrXGkkHHYMpE4F7AHWq97nKrUrxfW iSihq+CPx6i1tIWvXrI5os7Q3U0NxwmmQpPZJOIvEx/aehD4ofPVpzgvPHPka/r/qR lkW6QSpfW+3LWDOF7eQH/Ix2qF2b+hbYYHTDaJR2py4+JZcg6LzrRLPoCjxR7+fheW EshtPwH8zVszmo1gahnwHZcmkzIFVM2GxM1hoNYf+tfmBr2nP877lwiHEd2jcElQ7b 4urbsWKZ8UmLt6UtTnocb9I3ZO0uvYFGgMVz3+2MIwMeyFY6JqxHFx23UDdiGmI0Nl +ImcDG8l8v3lw== Received: from localhost (unknown [100.64.0.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id 5B70117E1582; Mon, 4 May 2026 20:24:35 +0200 (CEST) From: Cristian Ciocaltea Date: Mon, 04 May 2026 21:24:03 +0300 Subject: [PATCH 5/5] drm/rockchip: vop2: Use vop2->old_layer_sel directly in wait_for_layer_cfg_done() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260504-vop2-layer-cfg-tmout-v1-5-730226a7331e@collabora.com> References: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> In-Reply-To: <20260504-vop2-layer-cfg-tmout-v1-0-730226a7331e@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.1 After the old_layer_sel local was removed, the only caller of rk3568_vop2_wait_for_layer_cfg_done() already passes vop2->old_layer_sel as the expected value. Drop the redundant parameter and read the member directly inside the function. Signed-off-by: Cristian Ciocaltea --- drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm= /rockchip/rockchip_vop2_reg.c index 0849bd922ffb..1d8473a6dfd1 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2115,7 +2115,7 @@ static u32 rk3568_vop2_read_layer_cfg(struct vop2 *vo= p2) return vop2_readl(vop2, RK3568_OVL_LAYER_SEL); } =20 -static void rk3568_vop2_wait_for_layer_cfg_done(struct vop2 *vop2, u32 cfg) +static void rk3568_vop2_wait_for_layer_cfg_done(struct vop2 *vop2) { u32 atv_layer_cfg; int ret; @@ -2124,10 +2124,10 @@ static void rk3568_vop2_wait_for_layer_cfg_done(str= uct vop2 *vop2, u32 cfg) * Spin until the previous layer configuration is done. */ ret =3D readx_poll_timeout_atomic(rk3568_vop2_read_layer_cfg, vop2, atv_l= ayer_cfg, - atv_layer_cfg =3D=3D cfg, 10, 50 * 1000); + atv_layer_cfg =3D=3D vop2->old_layer_sel, 10, 50 * 1000); if (ret) drm_err_ratelimited(vop2->drm, "wait layer cfg done timeout: 0x%x--0x%x\= n", - atv_layer_cfg, cfg); + atv_layer_cfg, vop2->old_layer_sel); } =20 static void rk3568_vop2_setup_layer_mixer(struct vop2_video_port *vp) @@ -2292,7 +2292,7 @@ static void rk3568_vop2_setup_layer_mixer(struct vop2= _video_port *vp) * Changes of other VPs' overlays have not taken effect */ if (cfg_done) - rk3568_vop2_wait_for_layer_cfg_done(vop2, vop2->old_layer_sel); + rk3568_vop2_wait_for_layer_cfg_done(vop2); } =20 if (layer_sel !=3D vop2->old_layer_sel || port_sel !=3D vop2->old_port_se= l) --=20 2.53.0