From patchwork Sun Apr 1 15:53:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Steinar H. Gunderson" X-Patchwork-Id: 10519 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1SEN6Z-0006mx-Vh for patchwork@linuxtv.org; Sun, 01 Apr 2012 17:54:11 +0200 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-4) with esmtp for id 1SEN6Z-0005s9-Al; Sun, 01 Apr 2012 17:54:11 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752497Ab2DAPyJ (ORCPT ); Sun, 1 Apr 2012 11:54:09 -0400 Received: from cassarossa.samfundet.no ([129.241.93.19]:40804 "EHLO cassarossa.samfundet.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752161Ab2DAPyD (ORCPT ); Sun, 1 Apr 2012 11:54:03 -0400 Received: from pannekake.samfundet.no ([2001:700:300:1800::dddd] ident=unknown) by cassarossa.samfundet.no with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1SEN6P-0001US-W2; Sun, 01 Apr 2012 17:54:02 +0200 Received: from sesse by pannekake.samfundet.no with local (Exim 4.72) (envelope-from ) id 1SEN6P-0008M4-NY; Sun, 01 Apr 2012 17:54:01 +0200 From: "Steinar H. Gunderson" To: linux-media@vger.kernel.org Cc: "Steinar H. Gunderson" Subject: [PATCH 04/11] Show timeouts on I2C transfers. Date: Sun, 1 Apr 2012 17:53:44 +0200 Message-Id: <1333295631-31866-4-git-send-email-sgunderson@bigfoot.com> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <20120401155330.GA31901@uio.no> References: <20120401155330.GA31901@uio.no> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.4.1.154227 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_2000_2999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __SANE_MSGID 0, __STOCK_PHRASE_7 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' From: "Steinar H. Gunderson" On I2C reads and writes, show if we had any timeouts in the debug output. Signed-off-by: Steinar H. Gunderson --- drivers/media/dvb/mantis/mantis_i2c.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/drivers/media/dvb/mantis/mantis_i2c.c b/drivers/media/dvb/mantis/mantis_i2c.c index e779451..ddd1922 100644 --- a/drivers/media/dvb/mantis/mantis_i2c.c +++ b/drivers/media/dvb/mantis/mantis_i2c.c @@ -38,6 +38,7 @@ static int mantis_i2c_read(struct mantis_pci *mantis, const struct i2c_msg *msg) { u32 rxd, i, stat, trials; + u32 timeouts = 0; dprintk(MANTIS_INFO, 0, " %s: Address=[0x%02x] [ ", __func__, msg->addr); @@ -60,6 +61,9 @@ static int mantis_i2c_read(struct mantis_pci *mantis, const struct i2c_msg *msg) if (stat & MANTIS_INT_I2CDONE) break; } + if (trials == TRIALS) { + ++timeouts; + } dprintk(MANTIS_TMG, 0, "I2CDONE: trials=%d\n", trials); @@ -69,6 +73,9 @@ static int mantis_i2c_read(struct mantis_pci *mantis, const struct i2c_msg *msg) if (stat & MANTIS_INT_I2CRACK) break; } + if (trials == TRIALS) { + ++timeouts; + } dprintk(MANTIS_TMG, 0, "I2CRACK: trials=%d\n", trials); @@ -76,7 +83,11 @@ static int mantis_i2c_read(struct mantis_pci *mantis, const struct i2c_msg *msg) msg->buf[i] = (u8)((rxd >> 8) & 0xFF); dprintk(MANTIS_INFO, 0, "%02x ", msg->buf[i]); } - dprintk(MANTIS_INFO, 0, "]\n"); + if (timeouts) { + dprintk(MANTIS_INFO, 0, "] %d timeouts\n", timeouts); + } else { + dprintk(MANTIS_INFO, 0, "]\n"); + } return 0; } @@ -85,6 +96,7 @@ static int mantis_i2c_write(struct mantis_pci *mantis, const struct i2c_msg *msg { int i; u32 txd = 0, stat, trials; + u32 timeouts = 0; dprintk(MANTIS_INFO, 0, " %s: Address=[0x%02x] [ ", __func__, msg->addr); @@ -108,6 +120,9 @@ static int mantis_i2c_write(struct mantis_pci *mantis, const struct i2c_msg *msg if (stat & MANTIS_INT_I2CDONE) break; } + if (trials == TRIALS) { + ++timeouts; + } dprintk(MANTIS_TMG, 0, "I2CDONE: trials=%d\n", trials); @@ -117,10 +132,17 @@ static int mantis_i2c_write(struct mantis_pci *mantis, const struct i2c_msg *msg if (stat & MANTIS_INT_I2CRACK) break; } + if (trials == TRIALS) { + ++timeouts; + } dprintk(MANTIS_TMG, 0, "I2CRACK: trials=%d\n", trials); } - dprintk(MANTIS_INFO, 0, "]\n"); + if (timeouts) { + dprintk(MANTIS_INFO, 0, "] %d timeouts\n", timeouts); + } else { + dprintk(MANTIS_INFO, 0, "]\n"); + } return 0; }