linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Manuel Lauss <manuel.lauss-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
To: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Manuel Lauss <manuel.lauss-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
Subject: [PATCH V2 3/4] i2c/au1550: increase timeout waiting for master done
Date: Mon,  5 Sep 2011 15:00:08 +0200	[thread overview]
Message-ID: <1315227609-9310-4-git-send-email-manuel.lauss@googlemail.com> (raw)
In-Reply-To: <1315227609-9310-1-git-send-email-manuel.lauss-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>

Double the timeout in the loop which busy-waits for the "master-done"
bit to be set.  This bit indicates whether an i2c transaction has
completed;  on the DB1300 board this timeout is slightly too small
and causes transactions to the WM8731 codec to be falsely flagged
as failed.  The timeout itself is necessary since transactions to
non-existant slaves never set this bit in the first place and hang
e.g. i2cdetect.

With this change the WM8731 codec on the DB1300 board is correctly
detected and initialized.

Signed-off-by: Manuel Lauss <manuel.lauss-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
---
V2: changed timeout only for master done bit, updated patch description.

 drivers/i2c/busses/i2c-au1550.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/i2c/busses/i2c-au1550.c b/drivers/i2c/busses/i2c-au1550.c
index 98ee11a..4f5150c 100644
--- a/drivers/i2c/busses/i2c-au1550.c
+++ b/drivers/i2c/busses/i2c-au1550.c
@@ -101,7 +101,7 @@ static int wait_master_done(struct i2c_au1550_data *adap)
 	int i;
 
 	/* Wait for Master Done. */
-	for (i = 0; i < adap->xfer_timeout; i++) {
+	for (i = 0; i < 2 * adap->xfer_timeout; i++) {
 		if ((RD(adap, PSC_SMBEVNT) & PSC_SMBEVNT_MD) != 0)
 			return 0;
 		udelay(1);
-- 
1.7.6.1

  parent reply	other threads:[~2011-09-05 13:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-05 13:00 [PATCH V2 0/4] i2c: i2c-au1550 updates Manuel Lauss
     [not found] ` <1315227609-9310-1-git-send-email-manuel.lauss-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2011-09-05 13:00   ` [PATCH V2 1/4] i2c/au1550: remove usage of volatile keyword Manuel Lauss
2011-09-05 13:00   ` [PATCH V2 2/4] i2c/au1550: remove unused ack_timeout Manuel Lauss
2011-09-05 13:00   ` Manuel Lauss [this message]
2011-09-05 13:00   ` [PATCH V2 4/4] i2c/au1550: dev_pm_ops conversion Manuel Lauss

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=1315227609-9310-4-git-send-email-manuel.lauss@googlemail.com \
    --to=manuel.lauss-gm/ye1e23mwn+bqq9rbeug@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.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).