From: davidb@codeaurora.org (David Brown)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 06/11] ssbi: Comment the use of udelay()
Date: Tue, 12 Mar 2013 11:41:51 -0700 [thread overview]
Message-ID: <1363113716-25897-7-git-send-email-davidb@codeaurora.org> (raw)
In-Reply-To: <1363113716-25897-1-git-send-email-davidb@codeaurora.org>
The ssbi driver uses a busywait loop to read its status register. Add
a comment explaining the timing of the device itself so that future
developers can better understand this delay, and possibly diagnose any
problems.
Signed-off-by: David Brown <davidb@codeaurora.org>
---
drivers/ssbi/ssbi.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/ssbi/ssbi.c b/drivers/ssbi/ssbi.c
index 6fbcb25..7ae8925 100644
--- a/drivers/ssbi/ssbi.c
+++ b/drivers/ssbi/ssbi.c
@@ -87,6 +87,15 @@ static inline void ssbi_writel(struct msm_ssbi *ssbi, u32 val, u32 reg)
writel(val, ssbi->base + reg);
}
+/*
+ * Via private exchange with one of the original authors, the hardware
+ * should generally finish a transaction in about 5us. The worst
+ * case, is when using the arbiter and both other CPUs have just
+ * started trying to use the SSBI bus will result in a time of about
+ * 20us. It should never take longer than this.
+ *
+ * As such, this wait merely spins, with a udelay.
+ */
static int ssbi_wait_mask(struct msm_ssbi *ssbi, u32 set_mask, u32 clr_mask)
{
u32 timeout = SSBI_TIMEOUT_US;
@@ -161,6 +170,10 @@ err:
return ret;
}
+/*
+ * See ssbi_wait_mask for an explanation of the time and the
+ * busywait.
+ */
static inline int
msm_ssbi_pa_transfer(struct msm_ssbi *ssbi, u32 cmd, u8 *data)
{
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
next prev parent reply other threads:[~2013-03-12 18:41 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-07 0:29 [PATCH 0/6] Qualcomm SSBI bus driver David Brown
2013-03-07 0:29 ` [PATCH 1/6] platform-drivers: msm: add single-wire serial bus interface (SSBI) driver David Brown
2013-03-07 1:30 ` Greg Kroah-Hartman
2013-03-07 5:20 ` David Brown
2013-03-07 6:01 ` Greg Kroah-Hartman
2013-03-07 10:05 ` Sekhar Nori
2013-03-07 18:45 ` David Brown
2013-03-07 18:50 ` David Brown
2013-03-07 23:29 ` Greg Kroah-Hartman
2013-03-12 6:51 ` David Brown
2013-03-12 13:27 ` Greg Kroah-Hartman
2013-03-07 0:29 ` [PATCH 2/6] SSBI: Convert SSBI to device tree David Brown
2013-03-07 0:29 ` [PATCH 3/6] ssbi: Fix exit mismatch in remove function David Brown
2013-03-07 1:30 ` Greg Kroah-Hartman
2013-03-07 5:21 ` David Brown
2013-03-07 0:29 ` [PATCH 4/6] ssbi: Use regular init level David Brown
2013-03-07 0:29 ` [PATCH 5/6] ARM: msm: enable SSBI driver in defconfig David Brown
2013-03-07 0:29 ` [PATCH 6/6] RFC: SSBI: Simple pm8058 test driver David Brown
2013-03-12 18:41 ` [PATCH v2 0/11] Qualcomm SSBI bus driver David Brown
2013-03-12 18:41 ` [PATCH v2 01/11] platform-drivers: msm: add single-wire serial bus interface (SSBI) driver David Brown
2013-03-12 18:41 ` [PATCH v2 02/11] fix: Use EXPORT_SYMBOL_GPL David Brown
2013-03-12 18:41 ` [PATCH v2 03/11] ssbi: Fix exit mismatch in remove function David Brown
2013-03-12 18:41 ` [PATCH v2 04/11] ssbi: Allow compilation as a module David Brown
2013-03-12 18:41 ` [PATCH v2 05/11] SSBI: Convert SSBI to device tree David Brown
2013-03-12 20:46 ` Stephen Boyd
2013-03-12 18:41 ` David Brown [this message]
2013-03-12 18:41 ` [PATCH v2 07/11] ssbi: Use regular init level David Brown
2013-03-12 20:26 ` Stephen Boyd
2013-03-12 18:41 ` [PATCH v2 08/11] ssbi: Remove extraneous logging David Brown
2013-03-12 18:41 ` [PATCH v2 09/11] SSBI: Remove MSM_ prefix from SSBI drivers David Brown
2013-03-12 18:41 ` [PATCH v2 10/11] MAINTAINERS: add ssbi David Brown
2013-03-25 17:40 ` [PATCH v2 0/11] Qualcomm SSBI bus driver Greg Kroah-Hartman
2013-03-12 20:12 ` [PATCH v2 11/11] RFC: SSBI: Simple pm8058 test driver David Brown
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=1363113716-25897-7-git-send-email-davidb@codeaurora.org \
--to=davidb@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).