[PATCH 09/23] drm: omapdrm: Handle OCP error IRQ directly

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jun 6 00:45:53 UTC 2016


Hi Tomi,

On Tuesday 10 May 2016 16:10:59 Tomi Valkeinen wrote:
> On 26/04/16 23:35, Laurent Pinchart wrote:
> > Instead of going through a complicated registration mechanism, just
> > call the OCP error IRQ handler directly from the main IRQ handler.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> > 
> >  drivers/gpu/drm/omapdrm/omap_drv.h |  1 -
> >  drivers/gpu/drm/omapdrm/omap_irq.c | 29 +++++++++++------------------
> >  2 files changed, 11 insertions(+), 19 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h
> > b/drivers/gpu/drm/omapdrm/omap_drv.h index 2d8fbdb2d39f..17dd3b98fc1a
> > 100644
> > --- a/drivers/gpu/drm/omapdrm/omap_drv.h
> > +++ b/drivers/gpu/drm/omapdrm/omap_drv.h

[snip]

> > diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c
> > b/drivers/gpu/drm/omapdrm/omap_irq.c index a90e093f5f42..499da6e2c5a4
> > 100644
> > --- a/drivers/gpu/drm/omapdrm/omap_irq.c
> > +++ b/drivers/gpu/drm/omapdrm/omap_irq.c

[snip]

> > @@ -219,6 +213,14 @@ static void omap_irq_fifo_underflow(uint32_t
> > irqstatus)> 
> >  	pr_cont("(0x%08x)\n", irqstatus);
> >  }
> > 
> > +static void omap_irq_error_handler(uint32_t irqstatus)
> 
> I think the function should mention "ocp_error".
> 
> > +{
> > +	if (!(irqstatus & DISPC_IRQ_OCP_ERR))
> > +		return;
> > +
> > +	DRM_ERROR("errors: %08x\n", irqstatus);
> 
> Now we have a separate print for OCP error, so we could instead of
> printing hex numbers, print "OCP error".

I'll fix those two issues in v2.

> > +}

[snip]

> > @@ -293,16 +296,6 @@ int omap_drm_irq_install(struct drm_device *dev)
> > 
> >  	if (ret < 0)
> >  	
> >  		return ret;
> > 
> > -	error_handler->irq = omap_irq_error_handler;
> > -	error_handler->irqmask = DISPC_IRQ_OCP_ERR;
> > -
> > -	/* for now ignore DISPC_IRQ_SYNC_LOST_DIGIT.. really I think
> > -	 * we just need to ignore it while enabling tv-out
> > -	 */
> > -	error_handler->irqmask &= ~DISPC_IRQ_SYNC_LOST_DIGIT;
> > -
> > -	omap_irq_register(dev, error_handler);
> 
> This makes me wonder is the previous patch correct... It doesn't ignore
> the SYNC_LOST_DIGIT. Oh, but is this ignore only for the error handler
> that only prints. Ah, confusing =).

The good news is that this patch removes the confusing code :-)

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list