[PATCH] drm: lcdif: change burst size to 256B
Marco Felsch
m.felsch at pengutronix.de
Wed Jul 27 03:56:18 UTC 2022
Hi Marek, Liu,
On 22-07-26, Liu Ying wrote:
> On Tue, 2022-07-26 at 16:19 +0200, Marek Vasut wrote:
> > On 7/26/22 11:43, Marco Felsch wrote:
> > > FIFO underruns are seen if a AXI bus master with a higher priority
> > > do a
> > > lot of memory access. Increase the burst size to 256B to avoid such
> > > underruns and to improve the memory access efficiency.
> >
> > Sigh, this again ...
I know.. we also tried the PANIC mode but this somehow didn't worked as
documented. So this was the only way to reduce the underruns without
adapting the interconnect prio for the hdmi-lcdif.
> > > diff --git a/drivers/gpu/drm/mxsfb/lcdif_kms.c
> > > b/drivers/gpu/drm/mxsfb/lcdif_kms.c
> > > index 1bec1279c8b5..1f22ea5896d5 100644
> > > --- a/drivers/gpu/drm/mxsfb/lcdif_kms.c
> > > +++ b/drivers/gpu/drm/mxsfb/lcdif_kms.c
> > > @@ -143,8 +143,20 @@ static void lcdif_set_mode(struct
> > > lcdif_drm_private *lcdif, u32 bus_flags)
> > > CTRLDESCL0_1_WIDTH(m->crtc_hdisplay),
> > > lcdif->base + LCDC_V8_CTRLDESCL0_1);
> > >
> > > - writel(CTRLDESCL0_3_PITCH(lcdif->crtc.primary->state->fb-
> > > >pitches[0]),
> > > - lcdif->base + LCDC_V8_CTRLDESCL0_3);
> > > + /*
> > > + * Undocumented P_SIZE and T_SIZE bit fields but according the
> > > + * downstream kernel they control the AXI burst size. As of now
> > > there
>
> I'm not sure if it is AXI burst size or any other burst size, though it
> seems to be AXI burst size.
>
> Cc'ing Jian who mentioned 'burst size' and changed it from 128B to 256B
> in the downstream kernel.
Thanks.
> > > + * are two known values:
> > > + * 1 - 128Byte
> > > + * 2 - 256Byte
> > > + *
> > > + * Downstream has set the burst size to 256Byte to improve the
> > > memory
> > > + * efficiency so set it here too. This also reduces the FIFO
> > > underrun
> > > + * possibility.
> > > + */
> > > + ctrl = CTRLDESCL0_3_P_SIZE(2) | CTRLDESCL0_3_T_SIZE(2) |
> > > + CTRLDESCL0_3_PITCH(lcdif->crtc.primary->state->fb-
> > > >pitches[0]);
> > > + writel(ctrl, lcdif->base + LCDC_V8_CTRLDESCL0_3);
>
> Nit: I would write the register directly, instead of caching the value
> in ctrl.
IMHO it's more readable that way.
Regards,
Marco
> > > }
> >
> > Sometimes I wonder whether this might be some successor of MXSFB
> > LCDIF_CTRL2n OUTSTANDING_REQS and BURST_LEN_B fields.
>
> No idea...
>
> Liu Ying
>
> >
> > +CC Liu, who seems to have a lot of knowledge about this IP.
> >
> > Reviewed-by: Marek Vasut <marex at denx.de>
>
>
More information about the dri-devel
mailing list