Hi Piotr, Since kernel 6.14-rc1 I have the problem that visual output is no longer shown on my PineTab2 and a ``git bisect`` pointed to this patch/commit as the culprit. What is important to note is that ``CONFIG_DRM=m`` seems to be required as the problem does not occur with ``CONFIG_DRM=y``.
Near the end of my bisect session, something interesting occurred. I was booted into a 'bad' kernel (ie no visual output) and when I started to build my final kernel, I closed the lid of the PineTab2 which made it go into suspend. When my final kernel was built, I opened the lid again, which made it resume, to transfer my final kernel to it. And much to my surprise, I then did have visual output. When I read the (below) commit message of the 'offending' commit, it may not be such a surprise after all. When I build a (new) 6.14-rc1 kernel with a revert of this commit on top, then I did not have the above mentioned problem, confirming this commit was the 'bad' commit. I did try it on a Quartz64-B (also rk3566) and it did not have any issue (output via HDMI). I don't know what the cause for this issue is, hopefully you do. Cheers, Diederik On Fri Dec 6, 2024 at 8:26 PM CET, Piotr Zalewski wrote: > Remove color_mgmt_changed check from vop2_crtc_atomic_try_set_gamma to > allow gamma LUT rewrite during modeset when coming out of suspend. Add > a check for color_mgmt_changed directly in vop2_crtc_atomic_flush. > > This patch fixes the patch adding gamma LUT support for vop2 [1]. > > [1] > https://lore.kernel.org/linux-rockchip/20241101185545.559090-3-pz010001011...@proton.me/ > > Suggested-by: Andy Yan <andy....@rock-chips.com> > Signed-off-by: Piotr Zalewski <pz010001011...@proton.me> > --- > drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > index 0c8ec7220fbe..d259f1c6571d 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > @@ -1601,7 +1601,7 @@ static void vop2_crtc_atomic_try_set_gamma(struct vop2 > *vop2, > struct drm_crtc *crtc, > struct drm_crtc_state *crtc_state) > { > - if (!vop2->lut_regs || !crtc_state->color_mgmt_changed) > + if (!vop2->lut_regs) > return; > > if (!crtc_state->gamma_lut) { > @@ -2669,7 +2669,7 @@ static void vop2_crtc_atomic_flush(struct drm_crtc > *crtc, > struct vop2 *vop2 = vp->vop2; > > /* In case of modeset, gamma lut update already happened in atomic > enable */ > - if (!drm_atomic_crtc_needs_modeset(crtc_state)) > + if (!drm_atomic_crtc_needs_modeset(crtc_state) && > crtc_state->color_mgmt_changed) > vop2_crtc_atomic_try_set_gamma_locked(vop2, vp, crtc, > crtc_state); > > vop2_post_config(crtc);
signature.asc
Description: PGP signature