From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751576AbcGRGkv (ORCPT ); Mon, 18 Jul 2016 02:40:51 -0400 Received: from mail-pa0-f54.google.com ([209.85.220.54]:34334 "EHLO mail-pa0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750857AbcGRGkq (ORCPT ); Mon, 18 Jul 2016 02:40:46 -0400 Message-ID: <578C79D7.6090800@linaro.org> Date: Mon, 18 Jul 2016 14:40:23 +0800 From: zhangfei User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: John Stultz , lkml CC: Andy Green , Jingoo Han , Krzysztof Kozlowski , Maxime Ripard , Vinod Koul , Dan Williams , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Wei Xu , Rob Herring , Andy Green , Dave Long , Guodong Xu Subject: Re: [RFC][PATCH 3/7] k3dma: Fix "nobody cared" message seen on any error References: <1468635207-20065-1-git-send-email-john.stultz@linaro.org> <1468635207-20065-4-git-send-email-john.stultz@linaro.org> In-Reply-To: <1468635207-20065-4-git-send-email-john.stultz@linaro.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/16/2016 10:13 AM, John Stultz wrote: > From: Andy Green > > As it was before, as soon as the DMAC IP felt there was an error > he would return IRQ_NONE since no actual transfer had completed. > > After spinning on that for 100K interrupts, Linux yanks the IRQ with > a "nobody cared" error. > > This patch lets it handle the interrupt and keep the IRQ alive. > > Cc: Zhangfei Gao > Cc: Jingoo Han > Cc: Krzysztof Kozlowski > Cc: Maxime Ripard > Cc: Vinod Koul > Cc: Dan Williams > Cc: Liam Girdwood > Cc: Mark Brown > Cc: Jaroslav Kysela > Cc: Takashi Iwai > Cc: Wei Xu > Cc: Rob Herring > Cc: Andy Green > Cc: Dave Long > Cc: Guodong Xu > Signed-off-by: Andy Green > [jstultz: Forward ported to mainline] > Signed-off-by: John Stultz Acked-by: Zhangfei Gao > --- > drivers/dma/k3dma.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/dma/k3dma.c b/drivers/dma/k3dma.c > index 8dd050c..c2906a82 100644 > --- a/drivers/dma/k3dma.c > +++ b/drivers/dma/k3dma.c > @@ -220,11 +220,13 @@ static irqreturn_t k3_dma_int_handler(int irq, void *dev_id) > writel_relaxed(err1, d->base + INT_ERR1_RAW); > writel_relaxed(err2, d->base + INT_ERR2_RAW); > > - if (irq_chan) { > + if (irq_chan) > tasklet_schedule(&d->task); > + > + if (irq_chan || err1 || err2) > return IRQ_HANDLED; > - } else > - return IRQ_NONE; > + > + return IRQ_NONE; > } > > static int k3_dma_start_txd(struct k3_dma_chan *c) >