On Do, 2026-06-18 at 14:46 +0300, Cristian Ciocaltea wrote: > On 6/18/26 12:39 PM, Philipp Zabel wrote: > > On Mi, 2026-06-17 at 21:51 +0300, Cristian Ciocaltea wrote: > > > Assert the AXI reset in the CRTC disable path, and the VP DCLK reset in > > > the enable path. > > > > > > These resets are intended to leave the hardware in a clean state for the > > > next use, helping recover from exceptions such as IOMMU page faults, as > > > well as to prevent random display output glitches, such as a blank > > > image, observed when switching modes that also change the color format, > > > e.g. from RGB to YUV420 and vice versa. > > > > > > For now this seems to affect only the RK3588, hence the resets are > > > optional and will be provided in the device tree for this SoC only. > > > > > > Co-developed-by: Andy Yan <[email protected]> > > > Signed-off-by: Andy Yan <[email protected]> > > > Signed-off-by: Cristian Ciocaltea <[email protected]> > > > --- > > > drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 35 > > > ++++++++++++++++++++++++++++ > > > drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 4 ++++ > > > 2 files changed, 39 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > > > b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > > > index 4cce3e336f5b..2833fb49ad81 100644 > > > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > > > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > > > @@ -17,6 +17,7 @@ > > > #include <linux/platform_device.h> > > > #include <linux/pm_runtime.h> > > > #include <linux/regmap.h> > > > +#include <linux/reset.h> > > > #include <linux/swab.h> > > > > > > #include <drm/drm.h> > > > @@ -860,6 +861,26 @@ static int vop2_core_clks_prepare_enable(struct vop2 > > > *vop2) > > > return ret; > > > } > > > > > > +static void vop2_clk_reset(struct vop2 *vop2, struct reset_control *rstc) > > > > The _clk part of the function name is misleading ... > > Ack. > > We need to make this clearly distinct from another similarly named function, > vop2_crtc_reset(), hence I'd propose: > > - vop2_reset_assert_deassert() > - vop2_reset_cycle() > - vop2_do_reset() > > Any preference / alternative suggestions?
Or vop2_reset_control_reset(). The three above are equally fine. regards Philipp
