Re: [PATCH] dmaengine: dw: don't handle interrupt when dmaengine is not used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 20, 2015 at 11:36:05AM +0200, Andy Shevchenko wrote:
> On Tue, 2015-01-20 at 17:12 +0800, Jie Yang wrote:
> > When dma controller is not used by any user and set off,
> > we should disble interrupt handler, at least the interrupt
> > reset part, for some subsystem, e.g. ADSP, may use the
> > dma in its own logic, here reset the interrupt may make
> > this subsystem work abnormally.
> 
> I think like on Intel MID (Medfield) there should be a specific register
> to route interrupt pin from ADSP to CPU and vise versa. So, my
> understanding we have to utilize that register somehow.
> 
> Since it's quite specific to ADSP HW I would consider that ADSP driver
> would take care of this.
> 
> Vinod, it seems we already discussed this earlier, though I'm not quite
> sure I remember your point. Can you share your opinion?
Yes using those registers is recommended. Not handling a kernel irq seems
not a good option.

Do we have an updated patch for this now?

-- 
~Vinod
> 
> > 
> > Signed-off-by: Jie Yang <yang.jie@xxxxxxxxx>
> > ---
> >  drivers/dma/dw/core.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c
> > index 3804785..ac0d6f6 100644
> > --- a/drivers/dma/dw/core.c
> > +++ b/drivers/dma/dw/core.c
> > @@ -619,7 +619,7 @@ static irqreturn_t dw_dma_interrupt(int irq, void *dev_id)
> >  	dev_vdbg(dw->dma.dev, "%s: status=0x%x\n", __func__, status);
> >  
> >  	/* Check if we have any interrupt from the DMAC */
> > -	if (!status)
> > +	if (!status || !dw->in_use)
> >  		return IRQ_NONE;
> >  
> >  	/*
> 
> 
> -- 
> Andy Shevchenko <andriy.shevchenko@xxxxxxxxx>
> Intel Finland Oy
> 

-- 
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux