public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
Cc: i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
Subject: Re: [patch 4/8] I2C: S3C2410: Add a option of reducing the bus busy waiting time.
Date: Sun, 1 Jun 2008 09:16:43 +0200	[thread overview]
Message-ID: <20080601091643.169fe5d2@hyperion.delvare> (raw)
In-Reply-To: <20080529132406.586501777-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>

Hi Ben,

On Thu, 29 May 2008 14:22:48 +0100, Ben Dooks wrote:
> Add a single-master option to drasitcally reduce the time spent
> waiting to check the bus is free and ready for another transfer.

I don't understand. If you have a single-master bus, then the bus can
simply never be busy when you attempt to start a transaction. So, the
timeout setting shouldn't change anything, as you will get the bus
immediately anyway. Isn't it the case?

As a side note, this timeout loop is pretty broken anyway, as it
depends on the value of HZ. It should be adjusted to be time-based
rather than count-based.

> 
> Signed-off-by: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
> 
> Index: linux-2.6.26-rc4-quilt2/drivers/i2c/busses/i2c-s3c2410.c
> ===================================================================
> --- linux-2.6.26-rc4-quilt2.orig/drivers/i2c/busses/i2c-s3c2410.c	2008-05-28 12:27:38.000000000 +0100
> +++ linux-2.6.26-rc4-quilt2/drivers/i2c/busses/i2c-s3c2410.c	2008-05-28 12:32:10.000000000 +0100
> @@ -472,8 +472,15 @@ static irqreturn_t s3c24xx_i2c_irq(int i
>  
>  static int s3c24xx_i2c_set_master(struct s3c24xx_i2c *i2c)
>  {
> +	struct s3c2410_platform_i2c *pdata;
>  	unsigned long iicstat;
> -	int timeout = 400;
> +	int timeout;
> +
> +	/* if we are a single master on this bus, reduce the delay awaiting
> +	 * for bus traffic to a much lower value. */
> +
> +	pdata = s3c24xx_i2c_get_platformdata(i2c->dev);
> +	timeout = (pdata->flags & S3C_IICFLG_SINGLE_MASTER) ? 10 : 400;
>  
>  	while (timeout-- > 0) {
>  		iicstat = readl(i2c->regs + S3C2410_IICSTAT);
> Index: linux-2.6.26-rc4-quilt2/include/asm-arm/plat-s3c/iic.h
> ===================================================================
> --- linux-2.6.26-rc4-quilt2.orig/include/asm-arm/plat-s3c/iic.h	2008-05-28 12:28:00.000000000 +0100
> +++ linux-2.6.26-rc4-quilt2/include/asm-arm/plat-s3c/iic.h	2008-05-28 12:32:10.000000000 +0100
> @@ -13,7 +13,8 @@
>  #ifndef __ASM_ARCH_IIC_H
>  #define __ASM_ARCH_IIC_H __FILE__
>  
> -#define S3C_IICFLG_FILTER	(1<<0)	/* enable s3c2440 filter */
> +#define S3C_IICFLG_FILTER	 (1<<0)	/* enable s3c2440 filter */
> +#define S3C_IICFLG_SINGLE_MASTER (1<<1) /* s3c24xx is only bus master. */
>  
>  /* Notes:
>   *	1) All frequencies are expressed in Hz
> 


-- 
Jean Delvare

_______________________________________________
i2c mailing list
i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
http://lists.lm-sensors.org/mailman/listinfo/i2c

  parent reply	other threads:[~2008-06-01  7:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-29 13:22 [patch 0/8] I2C fixes and -next from Ben Dooks Ben Dooks
2008-05-29 13:22 ` [patch 1/8] I2C: S3C2410: Check ACK on byte transmission Ben Dooks
     [not found]   ` <20080529132405.971048345-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-05-30 19:45     ` Jean Delvare
     [not found]       ` <20080530214540.638008b7-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-02 19:29         ` Ben Dooks
2008-05-29 13:22 ` [patch 2/8] I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device Ben Dooks
     [not found]   ` <20080529132406.186957190-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-05-30 19:54     ` Jean Delvare
     [not found]       ` <20080530215452.2ee3d4a7-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:51         ` Ben Dooks
     [not found]           ` <20080601215102.GJ7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:59             ` Jean Delvare
2008-05-29 13:22 ` [patch 3/8] I2C: S3C2410: Pass the I2C bus number via drivers platform data Ben Dooks
     [not found]   ` <20080529132406.387873305-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:07     ` Jean Delvare
     [not found]       ` <20080601090706.0e29a76d-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:53         ` Ben Dooks
     [not found]           ` <20080601215335.GK7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:38             ` Jean Delvare
2008-05-29 13:22 ` [patch 4/8] I2C: S3C2410: Add a option of reducing the bus busy waiting time Ben Dooks
     [not found]   ` <20080529132406.586501777-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:16     ` Jean Delvare [this message]
2008-05-29 13:22 ` [patch 5/8] OSIRIS: Add i2c device list to Simtec Osiris Ben Dooks
     [not found]   ` <20080529132406.837870894-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:21     ` Jean Delvare
     [not found]       ` <20080601092116.63c4808e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:35         ` Ben Dooks
     [not found]           ` <20080601213509.GH7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:31             ` Jean Delvare
2008-05-29 13:22 ` [patch 6/8] BAST: Add i2c device list on Simtec Bast Ben Dooks
2008-05-29 13:22 ` [patch 7/8] VR1000: Add i2c device list to Thorcom VR1000 Ben Dooks
     [not found]   ` <20080529132407.211335410-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:32     ` Jean Delvare
     [not found]       ` <20080601093215.67a1ac41-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:38         ` Ben Dooks
     [not found]           ` <20080601213855.GI7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:35             ` Jean Delvare
2008-05-29 13:22 ` [patch 8/8] ANUBIS: Add i2c device list to Simtec Anubis Ben Dooks

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=20080601091643.169fe5d2@hyperion.delvare \
    --to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=i2c-GZX6beZjE8VD60Wz+7aTrA@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