[PATCH 07/23] drm: omapdrm: Handle FIFO underflow IRQs internally

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Jun 5 23:21:26 UTC 2016


Hi Tomi,

On Monday 09 May 2016 17:42:43 Tomi Valkeinen wrote:
> On 26/04/16 23:35, Laurent Pinchart wrote:
> > As the FIFO underflow IRQ handler just prints an error message to the
> > kernel log, simplify the code by not registering one IRQ handler per
> > plane but print the messages directly from the main IRQ handler.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> > 
> >  drivers/gpu/drm/omapdrm/omap_drv.h   |  2 +-
> >  drivers/gpu/drm/omapdrm/omap_irq.c   | 49 ++++++++++++++++++++++++++++---
> >  drivers/gpu/drm/omapdrm/omap_plane.c | 24 ------------------
> >  3 files changed, 47 insertions(+), 28 deletions(-)
> > 
> > @@ -233,6 +271,11 @@ int omap_drm_irq_install(struct drm_device *dev)
> > 
> >  	INIT_LIST_HEAD(&priv->irq_list);
> > 
> > +	priv->irq_mask = DISPC_IRQ_GFX_FIFO_UNDERFLOW
> > +		       | DISPC_IRQ_VID1_FIFO_UNDERFLOW
> > +		       | DISPC_IRQ_VID2_FIFO_UNDERFLOW
> > +		       | DISPC_IRQ_VID3_FIFO_UNDERFLOW;
> 
> Not all VID overlays exist on all DSS versions, so we shouldn't register
> irqs that don't exist on the HW.

Good point, I'll fix that.

> Also, I do like it that we deal with crtc or plane interrupts in
> omap_crtc or omap_plane. Would similar approach here work as you use in
> the following patches, i.e. just call underflow-handler func in
> omap_plane.c directly, instead of using the registration mechanism?

I can do that, but given that all we do is just printing error messages, it 
sounds a bit overkill. I propose moving FIFO underflow IRQ handling to the 
CRTC and plane code later when/if we need to perform more work in the 
handlers.

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list