linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Roger Quadros <rogerq@ti.com>
To: wg@grandegger.com, mkl@pengutronix.de
Cc: wsa@the-dreams.de, tony@atomide.com, tglx@linutronix.de,
	mugunthanvnm@ti.com, george.cherian@ti.com, balbi@ti.com,
	nsekhar@ti.comnm@ti.com, sergei.shtylyov@cogentembedded.com,
	linux-omap@vger.kernel.org, linux-can@vger.kernel.org,
	netdev@vger.kernel.org, Roger Quadros <rogerq@ti.com>
Subject: [PATCH v3 1/8] net: can: c_can: Add timeout to c_can_hw_raminit_ti()
Date: Tue, 4 Nov 2014 12:20:54 +0200	[thread overview]
Message-ID: <1415096461-25576-2-git-send-email-rogerq@ti.com> (raw)
In-Reply-To: <1415096461-25576-1-git-send-email-rogerq@ti.com>

TI's RAMINIT DONE mechanism is buggy on AM43xx SoC and may not always
be set after the START bit is set. Although it seems to work fine even
in that case. So add a timeout mechanism to c_can_hw_raminit_wait_ti().
Don't bail out in that failure case but just print an error message.

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 drivers/net/can/c_can/c_can_platform.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c
index fb279d6..b144e71 100644
--- a/drivers/net/can/c_can/c_can_platform.c
+++ b/drivers/net/can/c_can/c_can_platform.c
@@ -75,10 +75,18 @@ static void c_can_plat_write_reg_aligned_to_32bit(const struct c_can_priv *priv,
 static void c_can_hw_raminit_wait_ti(const struct c_can_priv *priv, u32 mask,
 				  u32 val)
 {
+	int timeout = 0;
 	/* We look only at the bits of our instance. */
 	val &= mask;
-	while ((readl(priv->raminit_ctrlreg) & mask) != val)
+	while ((readl(priv->raminit_ctrlreg) & mask) != val) {
 		udelay(1);
+		timeout++;
+
+		if (timeout == 1000) {
+			dev_err(&priv->dev->dev, "%s: time out\n", __func__);
+			break;
+		}
+	}
 }
 
 static void c_can_hw_raminit_ti(const struct c_can_priv *priv, bool enable)
-- 
1.8.3.2


  reply	other threads:[~2014-11-04 10:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-04 10:20 [PATCH v3 0/8] net: can: Use syscon regmap for TI specific RAMINIT register Roger Quadros
2014-11-04 10:20 ` Roger Quadros [this message]
2014-11-04 10:20 ` [PATCH v3 2/8] net: can: c_can: Introduce c_can_driver_data structure Roger Quadros
2014-11-04 10:20 ` [PATCH v3 3/8] net: can: c_can: Add RAMINIT register information to driver data Roger Quadros
2014-11-04 10:20 ` [PATCH v3 4/8] net: can: c_can: Add syscon/regmap RAMINIT mechanism Roger Quadros
2014-11-05 11:37   ` Roger Quadros
2014-11-04 10:20 ` [PATCH v3 5/8] net: can: c_can: Add support for START pulse in RAMINIT sequence Roger Quadros
2014-11-04 10:20 ` [PATCH v3 6/8] net: can: c_can: Disable pins when CAN interface is down Roger Quadros
2014-11-05 13:24   ` Marc Kleine-Budde
2014-11-05 13:33     ` Roger Quadros
2014-11-04 10:21 ` [PATCH v3 7/8] net: can: c_can: Add support for TI DRA7 DCAN Roger Quadros
2014-11-05 13:30   ` Marc Kleine-Budde
2014-11-05 13:36     ` Roger Quadros
2014-11-05 13:43       ` Marc Kleine-Budde
2014-11-04 10:21 ` [PATCH v3 8/8] net: can: c_can: Add support for TI am3352 DCAN Roger Quadros

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=1415096461-25576-2-git-send-email-rogerq@ti.com \
    --to=rogerq@ti.com \
    --cc=balbi@ti.com \
    --cc=george.cherian@ti.com \
    --cc=mkl@pengutronix.de \
    --cc=mugunthanvnm@ti.com \
    --cc=nsekhar@ti.comnm \
    --cc=tglx@linutronix.de \
    --cc=tony@atomide.com \
    --cc=wg@grandegger.com \
    --cc=wsa@the-dreams.de \
    /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).