linux/drivers
Daniel Kurtz d3ff6ce400 i2c-i801: Enable IRQ for byte_by_byte transactions
Byte-by-byte transactions are used primarily for accessing I2C devices
with an SMBus controller.  For these transactions, for each byte that is
read or written, the SMBus controller generates a BYTE_DONE IRQ.  The isr
reads/writes the next byte, and clears the IRQ flag to start the next byte.
On the penultimate IRQ, the isr also sets the LAST_BYTE flag.

There is no locking around the cmd/len/count/data variables, since the
I2C adapter lock ensures there is never multiple simultaneous transactions
for the same device, and the driver thread never accesses these variables
while interrupts might be occurring.

The end result is faster I2C block read and write transactions.

Note: This patch has only been tested and verified by doing I2C read and
write block transfers on Cougar Point 6 Series PCH, as well as I2C read
block transfers on ICH5.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
2012-07-24 14:13:59 +02:00
..
accessibility
acpi Merge branch 'pm-acpi' 2012-07-19 00:03:35 +02:00
amba
ata Viresh has moved 2012-06-20 14:39:36 -07:00
atm
auxdisplay
base Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-07-23 12:27:27 -07:00
bcma
block Power management updates for 3.6 2012-07-22 13:36:52 -07:00
bluetooth Bluetooth: btmrvl: Do not send vendor events to bluetooth stack 2012-06-19 00:19:11 -03:00
cdrom
char Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-07-23 18:54:23 -07:00
clk arm-soc: new SoC support 2012-07-23 16:31:31 -07:00
clocksource arm-soc: new SoC support 2012-07-23 16:31:31 -07:00
connector
cpufreq cpufreq: Fix sysfs deadlock with concurrent hotplug/frequency switch 2012-07-20 21:39:25 +02:00
cpuidle Merge branch 'pm-domains' 2012-07-19 00:03:17 +02:00
crypto arm-soc: clk changes 2012-07-23 17:51:03 -07:00
dca
devfreq
dio
dma Merge branch 'imx/sparse-irq' of git://git.linaro.org/people/shawnguo/linux-2.6 into next/irq 2012-07-02 23:18:19 +02:00
edac edac: Do alignment logic properly in edac_align_ptr() 2012-06-11 12:43:16 -03:00
eisa
extcon extcon: max8997: Add missing kfree for info->edev in max8997_muic_remove() 2012-06-18 16:30:42 -07:00
firewire
firmware
gpio arm-soc: sparse IRQ conversion 2012-07-23 17:36:02 -07:00
gpu gma500,cdv: Fix the brightness base 2012-07-16 09:20:33 -07:00
hid Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2012-07-19 08:15:55 -07:00
hsi
hv
hwmon Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-07-22 16:07:45 -07:00
hwspinlock hwspinlock/core: use global ID to register hwspinlocks on multiple devices 2012-07-07 22:35:30 +03:00
i2c i2c-i801: Enable IRQ for byte_by_byte transactions 2012-07-24 14:13:59 +02:00
ide
idle ACPI: intel_idle : break dependency between modules 2012-07-05 22:37:47 +02:00
ieee802154
iio
infiniband Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2012-07-22 13:31:57 -07:00
input arm-soc: clk changes 2012-07-23 17:51:03 -07:00
iommu Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-07-22 12:19:36 -07:00
isdn drivers/isdn/mISDN/stack.c: remove invalid reference to list iterator variable 2012-07-09 15:24:33 -07:00
leds leds: heartbeat: fix bug on panic 2012-07-04 15:55:19 +08:00
lguest
macintosh powerpc/windfarm: Fix crash on SMU based machine after i2c conversion 2012-05-09 10:58:21 +10:00
md Three fixes for device-mapper discard processing: 2012-07-20 11:51:22 -07:00
media arm-soc: sparse IRQ conversion 2012-07-23 17:36:02 -07:00
memory
memstick
message
mfd Linux 3.5-rc7 2012-07-15 21:49:21 +01:00
misc Merge branch 'akpm' (Andrew's patch-bomb) 2012-07-11 16:06:54 -07:00
mmc arm-soc: clk changes 2012-07-23 17:51:03 -07:00
mtd Change the default amount of eraseblocks which UBI reserves for bad block 2012-07-23 15:53:06 -07:00
net ixgbevf: Fix panic when loading driver 2012-07-17 02:56:53 -07:00
nfc
nubus
of Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-07-23 18:54:23 -07:00
oprofile oprofile, perf: Use per-cpu framework 2012-06-22 16:31:20 +02:00
parisc
parport
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2012-07-23 19:10:54 -07:00
pcmcia
pinctrl arm-soc: pincontrol drivers 2012-07-23 17:36:53 -07:00
platform Power management updates for 3.6 2012-07-22 13:36:52 -07:00
pnp
power ARM: OMAP2+: do not allow SmartReflex to be built as a module 2012-06-29 05:54:31 -07:00
pps
ps3
ptp
rapidio
regulator Merge branch 'regulator-drivers' into regulator-next 2012-07-22 19:32:00 +01:00
remoteproc remoteproc: fix missing CONFIG_FW_LOADER configurations 2012-07-04 11:01:12 +03:00
rpmsg rpmsg: fix dependency on initialization order 2012-07-17 13:10:38 +03:00
rtc arm-soc: device tree description updates 2012-07-23 16:17:43 -07:00
s390
sbus
scsi Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2012-07-22 13:31:57 -07:00
sfi drivers/sfi: sfi_acpi.c needs sysfs.h 2011-10-31 19:31:57 -04:00
sh Merge branch 'common/pinctrl' into sh-latest 2012-07-20 16:42:59 +09:00
sn
spi arm-soc: clk changes 2012-07-23 17:51:03 -07:00
ssb
staging arm-soc: clk changes 2012-07-23 17:51:03 -07:00
target iscsi-target: Drop bogus struct file usage for iSCSI/SCTP 2012-07-21 02:44:13 -07:00
tc
thermal
tty arm-soc: sparse IRQ conversion 2012-07-23 17:36:02 -07:00
uio
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2012-07-23 19:10:54 -07:00
uwb
vhost vhost: use USER_DS in vhost_worker thread 2012-06-26 21:10:56 -07:00
video arm-soc: device tree description updates 2012-07-23 16:17:43 -07:00
virt
virtio virtio-balloon: fix add/get API use 2012-07-09 09:07:22 +09:30
vlynq
vme
w1 W1: OMAP HDQ1W: use runtime PM 2012-06-21 21:40:40 -06:00
watchdog Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-07-23 18:54:23 -07:00
xen
zorro
Kconfig
Makefile