From patchwork Mon Apr 11 08:38:39 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanimir Varbanov X-Patchwork-Id: 65476 Delivered-To: patch@linaro.org Received: by 10.112.43.237 with SMTP id z13csp1338467lbl; Mon, 11 Apr 2016 01:40:19 -0700 (PDT) X-Received: by 10.66.180.111 with SMTP id dn15mr30849528pac.69.1460364019119; Mon, 11 Apr 2016 01:40:19 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id rk11si2552758pac.222.2016.04.11.01.40.18; Mon, 11 Apr 2016 01:40:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753477AbcDKIjd (ORCPT + 29 others); Mon, 11 Apr 2016 04:39:33 -0400 Received: from mail-wm0-f47.google.com ([74.125.82.47]:35929 "EHLO mail-wm0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750839AbcDKIja (ORCPT ); Mon, 11 Apr 2016 04:39:30 -0400 Received: by mail-wm0-f47.google.com with SMTP id v188so76463189wme.1 for ; Mon, 11 Apr 2016 01:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=knX78BHhl5HDgPLV00HEcBAPZqv/5QALHwNlsklolXg=; b=a7/0i+hBQAmga0qgUc8lQvFdJhpNuXF6/TxrdicKKV31dTRNXesWflFvY8pCC2p8mL 6GJLRm7gpZVJyU369+5UXuZY4IE7vyQ9ma8AVXdS6R7XzFP8LDwcSjPtbclVMNHMDoze SY7Y1anGQNZ2ed12n5kjRnYM4pFd7BkTQuS7w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=knX78BHhl5HDgPLV00HEcBAPZqv/5QALHwNlsklolXg=; b=aQKCI4w7Xjh/mTdaIsKH0id2ywRtE1ca/wjwD7J+VKOSkVTPSSilHLPinzK8ZE/NI9 /zdJv5umEXrGn+XM3pIKxc4guWNsaxquWvHv8K7DbZLWETnKIUWIOzENuHV7WKXaLfSk gkd16Qf0fUuLOVIx6P9JfmInpuuzte1z4CyJ+M493TAHrOT6VBF9MSrH3wBRQoW/n5Eq 38CCsorNIdnsDzzBWr3b8osiEluOCVmetAi9BFbOX9PFOE22tgi5zhIGZhUOl9TC3I/v PRenUK+xlHbdS2h1KcmL8Z6oASmlxCIsGajKlBFq+PLOu0vSmBbvvOh6JArsIiCo+Ett WSjA== X-Gm-Message-State: AD7BkJIGXQutUDahx9zY4Bf3iUenUaDZ8TwNbRqETaMoGRGfPw2sBS1Oj9q3dye3eQy5+anM X-Received: by 10.194.243.226 with SMTP id xb2mr22216183wjc.35.1460363963015; Mon, 11 Apr 2016 01:39:23 -0700 (PDT) Received: from mms734.qualcomm.mm-sol.com ([37.157.136.206]) by smtp.gmail.com with ESMTPSA id d1sm16078604wmh.18.2016.04.11.01.39.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 11 Apr 2016 01:39:22 -0700 (PDT) From: Stanimir Varbanov To: Rob Herring , Mark Rutland , Vinod Koul , Andy Gross Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, dmaengine@vger.kernel.org, Archit Taneja , Sinan Kaya , Pramod Gurav , Stanimir Varbanov Subject: [PATCH v3 2/6] dmaengine: qcom: bam_dma: clear BAM interrupt only if it is raised Date: Mon, 11 Apr 2016 11:38:39 +0300 Message-Id: <1460363923-16296-3-git-send-email-stanimir.varbanov@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1460363923-16296-1-git-send-email-stanimir.varbanov@linaro.org> References: <1460363923-16296-1-git-send-email-stanimir.varbanov@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently we write BAM_IRQ_CLR register with zero even when no BAM_IRQ occured. This write has some bad side effects when the BAM instance is for the crypto engine. In case of crypto engine some of the BAM registers are xPU protected and they cannot be controlled by the driver. Signed-off-by: Stanimir Varbanov Reviewed-by: Andy Gross Tested-by: Pramod Gurav --- drivers/dma/qcom/bam_dma.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) -- 1.7.9.5 diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index a486bc0f82e0..789d5f836bf7 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -801,13 +801,17 @@ static irqreturn_t bam_dma_irq(int irq, void *data) if (srcs & P_IRQ) tasklet_schedule(&bdev->task); - if (srcs & BAM_IRQ) + if (srcs & BAM_IRQ) { clr_mask = readl_relaxed(bam_addr(bdev, 0, BAM_IRQ_STTS)); - /* don't allow reorder of the various accesses to the BAM registers */ - mb(); + /* + * don't allow reorder of the various accesses to the BAM + * registers + */ + mb(); - writel_relaxed(clr_mask, bam_addr(bdev, 0, BAM_IRQ_CLR)); + writel_relaxed(clr_mask, bam_addr(bdev, 0, BAM_IRQ_CLR)); + } return IRQ_HANDLED; }