Jean Delvare
424ed67c7d
i2c-algo-bit: Implement a 50/50 SCL duty cycle
...
The original i2c-algo-bit implementation uses a 33/66 SCL duty cycle
when bits are being written on the bus. While the I2C specification
doesn't forbid it, this prevents us from driving the I2C bus to its
max speed, limiting us to 66 kbps max on standard I2C busses.
Implementing a 50/50 duty cycle instead lets us max out the bandwidth
up to the theoretical max of 100 kbps on standard I2C busses. This is
particularly important when large amounts of data need to be transfered
over the bus, as is the case with some TV adapters when the firmware is
being uploaded.
In fact this change even allows, at least in theory, fast-mode I2C
support at 125, 166 and 250 kbps. There's no way to reach the
theoretical max of 400 kbps with this implementation. But I don't
think we want to put efforts in that direction anyway: software-driven
I2C is very CPU-intensive and bad for latency.
Other timing changes:
* Don't set SDA high explicitly on error, we're going to issue a stop
condition before we leave anyway.
* If an error occurs when sending the slave address, yield the CPU
before retrying, and remove the additional delay after the new start
condition.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
2007-05-01 23:26:33 +02:00
..
acpi
ACPI: Disable MSI on request of FADT
2007-04-25 01:13:47 -04:00
asm-alpha
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
2007-04-27 09:29:04 -07:00
asm-arm
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-arm26
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-avr32
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2007-04-27 09:26:46 -07:00
asm-cris
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-frv
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-generic
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2007-04-27 09:26:46 -07:00
asm-h8300
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-i386
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-ia64
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-m32r
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-m68k
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-m68knommu
[PATCH] m68knommu: GPIO line defines for the ColdFire 5282
2007-03-06 18:08:38 -08:00
asm-mips
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2007-04-27 09:26:46 -07:00
asm-parisc
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-powerpc
Merge branch 'for-2.6.22' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
2007-04-30 08:10:12 -07:00
asm-ppc
[POWERPC] Stop using ppc_sys for Xilinx Virtex boards
2007-04-30 11:02:04 +10:00
asm-s390
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2007-04-27 09:26:46 -07:00
asm-sh
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
2007-04-27 09:29:04 -07:00
asm-sh64
[NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution
2007-04-25 22:24:04 -07:00
asm-sparc
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
2007-04-27 09:29:04 -07:00
asm-sparc64
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
2007-04-27 09:29:04 -07:00
asm-um
[NET]: div64_64 consolidate (rev3)
2007-04-25 22:23:33 -07:00
asm-v850
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-x86_64
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
asm-xtensa
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
2007-04-25 22:24:21 -07:00
crypto
[CRYPTO] api: Allow multiple frontends per backend
2007-02-07 09:21:01 +11:00
keys
[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both
2007-04-26 15:48:28 -07:00
linux
i2c-algo-bit: Implement a 50/50 SCL duty cycle
2007-05-01 23:26:33 +02:00
math-emu
media
i2c: Cleanup the includes of <linux/i2c.h>
2007-05-01 23:26:29 +02:00
mtd
UBI: Unsorted Block Images
2007-04-27 14:23:33 +03:00
net
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2007-04-30 08:14:42 -07:00
pcmcia
serial: Add PCMCIA IDs for Quatech DSP-100 dual RS232 adapter.
2007-02-16 15:19:16 -08:00
rdma
RDMA/cma: Add multicast communication support
2007-02-16 14:29:07 -08:00
rxrpc
[AF_RXRPC]: Delete the old RxRPC code.
2007-04-26 15:55:48 -07:00
scsi
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
2007-02-19 13:32:28 -08:00
sound
[ALSA] version 1.0.14rc3
2007-03-14 08:25:52 +01:00
video
[PATCH] Video: fb, add true ref_count atomicity
2007-02-12 09:48:42 -08:00
Kbuild