From: Yaniv Gardi <ygardi@codeaurora.org>
To: robherring2@gmail.com, James.Bottomley@HansenPartnership.com,
pebolle@tiscali.nl, hch@infradead.org
Cc: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-arm-msm@vger.kernel.org, santoshsy@gmail.com,
linux-scsi-owner@vger.kernel.org, subhashj@codeaurora.org,
ygardi@codeaurora.org, Vinayak Holikatti <vinholikatti@gmail.com>,
"James E.J. Bottomley" <JBottomley@odin.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>
Subject: [v4 02/14] scsi: ufs: avoid spurious UFS host controller interrupts
Date: Thu, 4 Feb 2016 12:36:08 +0200 [thread overview]
Message-ID: <1454582180-3823-3-git-send-email-ygardi@codeaurora.org> (raw)
In-Reply-To: <1454582180-3823-1-git-send-email-ygardi@codeaurora.org>
When control reaches to Linux UFS driver during UFS boot mode, UFS host
controller interrupt status/enable registers may have left over
settings.
In order to avoid any spurious interrupts due to these left overs,
it's important to clear these interrupt status/enable registers before
enabling UFS interrupt handling.
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org>
---
drivers/scsi/ufs/ufshcd.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 65593b3..b0ef94d 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -5837,6 +5837,21 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
init_waitqueue_head(&hba->dev_cmd.tag_wq);
ufshcd_init_clk_gating(hba);
+
+ /*
+ * In order to avoid any spurious interrupt immediately after
+ * registering UFS controller interrupt handler, clear any pending UFS
+ * interrupt status and disable all the UFS interrupts.
+ */
+ ufshcd_writel(hba, ufshcd_readl(hba, REG_INTERRUPT_STATUS),
+ REG_INTERRUPT_STATUS);
+ ufshcd_writel(hba, 0, REG_INTERRUPT_ENABLE);
+ /*
+ * Make sure that UFS interrupts are disabled and any pending interrupt
+ * status is cleared before registering UFS interrupt handler.
+ */
+ mb();
+
/* IRQ registration */
err = devm_request_irq(dev, irq, ufshcd_intr, IRQF_SHARED, UFSHCD, hba);
if (err) {
--
1.8.5.2
--
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
next prev parent reply other threads:[~2016-02-04 10:36 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-04 10:36 [v4 00/14] add fixes, device quirks, error recovery, Yaniv Gardi
2016-02-04 10:36 ` [v4 01/14] scsi: ufs-qcom: add number of lanes per direction Yaniv Gardi
2016-02-04 10:36 ` Yaniv Gardi
2016-02-08 17:53 ` Rob Herring
2016-02-04 10:36 ` Yaniv Gardi [this message]
2016-02-04 10:36 ` [v4 03/14] scsi: ufs: implement scsi host timeout handler Yaniv Gardi
2016-02-04 10:36 ` [v4 04/14] scsi: ufs: verify hba controller hce reg value Yaniv Gardi
2016-02-04 10:36 ` [v4 05/14] scsi: ufs: separate device and host quirks Yaniv Gardi
2016-02-09 17:02 ` Winkler, Tomas
2016-02-28 13:37 ` ygardi
2016-02-04 10:36 ` [v4 06/14] scsi: ufs: disable vccq if it's not needed by UFS device Yaniv Gardi
2016-02-04 10:36 ` [v4 07/14] scsi: ufs: make error handling bit faster Yaniv Gardi
2016-02-04 10:36 ` [v4 08/14] scsi: ufs: add error recovery after DL NAC error Yaniv Gardi
2016-02-04 10:36 ` [v4 09/14] scsi: ufs: add retry for query descriptors Yaniv Gardi
2016-02-04 10:36 ` [v4 10/14] scsi: ufs: handle non spec compliant bkops behaviour by device Yaniv Gardi
2016-02-04 10:36 ` [v4 11/14] scsi: ufs: tune UniPro parameters to optimize hibern8 exit time Yaniv Gardi
2016-02-04 10:36 ` [v4 12/14] scsi: ufs: fix leakage during link off state Yaniv Gardi
2016-02-04 10:36 ` [v4 13/14] scsi: ufs: add device quirk delay before putting UFS rails in LPM Yaniv Gardi
2016-02-04 10:36 ` [v4 14/14] scsi: ufs-qcom: set PA_Local_TX_LCC_Enable before link startup Yaniv Gardi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1454582180-3823-3-git-send-email-ygardi@codeaurora.org \
--to=ygardi@codeaurora.org \
--cc=JBottomley@odin.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=hch@infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi-owner@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=pebolle@tiscali.nl \
--cc=robherring2@gmail.com \
--cc=santoshsy@gmail.com \
--cc=subhashj@codeaurora.org \
--cc=vinholikatti@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.