Reviewed-by: Christophe Branchereau <cbranchereau@xxxxxxxxx> On Tue, Oct 26, 2021 at 8:13 PM Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote: > > Setting the DMA descriptor chain register in the probe function has been > fine until now, because we only ever had one descriptor per foreground. > > As the driver will soon have real descriptor chains, and the DMA > descriptor chain register updates itself to point to the current > descriptor being processed, this register needs to be reset after a full > modeset to point to the first descriptor of the chain. > > Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > index 5dbeca0f8f37..cbc76cede99e 100644 > --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > @@ -186,6 +186,10 @@ static void ingenic_drm_crtc_atomic_enable(struct drm_crtc *crtc, > > regmap_write(priv->map, JZ_REG_LCD_STATE, 0); > > + /* Set address of our DMA descriptor chain */ > + regmap_write(priv->map, JZ_REG_LCD_DA0, dma_hwdesc_addr(priv, 0)); > + regmap_write(priv->map, JZ_REG_LCD_DA1, dma_hwdesc_addr(priv, 1)); > + > regmap_update_bits(priv->map, JZ_REG_LCD_CTRL, > JZ_LCD_CTRL_ENABLE | JZ_LCD_CTRL_DISABLE, > JZ_LCD_CTRL_ENABLE); > -- > 2.33.0 >