[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3346283.VqM8IeB0Os@diego>
Date: Fri, 15 Nov 2024 09:34:50 +0100
From: Heiko Stübner <heiko@...ech.de>
To: linux-kernel@...r.kernel.org,
Detlev Casanova <detlev.casanova@...labora.com>
Cc: Sandy Huang <hjc@...k-chips.com>, Andy Yan <andy.yan@...k-chips.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Heiko Stuebner <heiko.stuebner@...rry.de>,
Sebastian Reichel <sebastian.reichel@...labora.com>,
Dragan Simic <dsimic@...jaro.org>, Alexey Charkov <alchark@...il.com>,
Jianfeng Liu <liujianfeng1994@...il.com>, dri-devel@...ts.freedesktop.org,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-rockchip@...ts.infradead.org, kernel@...labora.com,
Detlev Casanova <detlev.casanova@...labora.com>
Subject: Re: [PATCH v3 1/3] vop2: Add clock resets support
Hi Detlev,
Am Freitag, 8. November 2024, 19:50:39 CET schrieb Detlev Casanova:
> At the end of initialization, each VP clock needs to be reset before
> they can be used.
>
> Failing to do so can put the VOP in an undefined state where the
> generated HDMI signal is either lost or not matching the selected mode.
>
> This issue can be reproduced by switching modes multiple times.
> Depending on the setup, after about 10 mode switches, the signal will be
> lost and the value in register 0x890 (VSYNCWIDTH + VFRONT) will take the value
> `0x0000018c`.
> That makes VSYNCWIDTH=0, which is wrong.
>
> Adding the clock resets after the VOP configuration fixes the issue.
>
> Signed-off-by: Detlev Casanova <detlev.casanova@...labora.com>
patch subject should be "drm/rockchip: vop2: ...." please
> static void vop2_crtc_atomic_enable(struct drm_crtc *crtc,
> struct drm_atomic_state *state)
> {
> @@ -2057,6 +2079,8 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc,
>
> vop2_vp_write(vp, RK3568_VP_DSP_CTRL, dsp_ctrl);
>
> + vop2_clk_reset(vp);
> +
> drm_crtc_vblank_on(crtc);
>
> vop2_unlock(vop2);
this conflicts with the merge gamma lut support, can you please rebase on
top of drm-misc-next? Or alternatively just tell me if it should be
vop2_vp_write(vp, RK3568_VP_DSP_CTRL, dsp_ctrl);
+ vop2_clk_reset(vp);
+
vop2_crtc_atomic_try_set_gamma(vop2, vp, crtc, crtc_state);
drm_crtc_vblank_on(crtc);
----- or ----
vop2_vp_write(vp, RK3568_VP_DSP_CTRL, dsp_ctrl);
vop2_crtc_atomic_try_set_gamma(vop2, vp, crtc, crtc_state);
+ vop2_clk_reset(vp);
+
drm_crtc_vblank_on(crtc);
Thanks a lot
Heiko
Powered by blists - more mailing lists