linux/drivers
Kalle Jokiniemi 20c9d2c4ab i2c-omap: add mpu wake up latency constraint in i2c
While waiting for completion of the i2c transfer, the
MPU could hit OFF mode and cause several msecs of
delay that made i2c transfers fail more often. The
extra delays and subsequent re-trys cause i2c clocks
to be active more often. This has also an negative
effect on power consumption.

Created a mechanism for passing and using the
constraint setting function in driver code. The used
mpu wake up latency constraints are now set individually
per bus, and they are calculated based on clock rate
and fifo size.

Thanks to Jarkko Nikula, Moiz Sonasath, Paul Walmsley,
and Nishanth Menon for tuning out the details of
this patch.

Updates by Kevin as requested by Tony:

- Remove omap_set_i2c_constraint_func() in favor of conditionally
  adding the flag in omap_i2c_add_bus() in order to keep all the OMAP
  conditional checking in a single location.
- Update set_mpu_wkup_lat prototypes to match OMAP PM layer so
  OMAP PM function can be used directly in pdata.

Cc: Moiz Sonasath <m-sonasath@ti.com>
Cc: Jarkko Nikula <jhnikula@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Nishanth Menon <nm@ti.com>
Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@digia.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-20 00:18:59 +01:00
..
accessibility
acpi Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 09:15:57 -07:00
amba
ata pata_pcmcia / ide-cs: Fix bad hashes for Transcend and kingston IDs 2010-05-05 14:48:48 -04:00
atm include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
auxdisplay include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-05-19 11:36:03 -07:00
block Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 08:17:35 -07:00
bluetooth include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cdrom
char Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 08:35:04 -07:00
clocksource Merge branch 'sh/stable-updates' 2010-04-26 16:08:27 +09:00
connector include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cpufreq Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 08:49:13 -07:00
cpuidle cpuidle: Fix incorrect optimization 2010-05-09 18:35:36 -07:00
crypto include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dca include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dio
dma Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-05-19 11:36:03 -07:00
edac edac, mce: Fix wrong mask and macro usage 2010-04-30 10:15:39 -07:00
eisa
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2010-04-22 12:54:54 -07:00
firmware Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip 2010-04-07 11:02:23 -07:00
gpio it8761e_gpio: fix bug in gpio numbering 2010-05-11 17:33:41 -07:00
gpu drivers/gpu/drm/i915/i915_irq.c:i915_error_object_create(): use correct kmap-atomic slot 2010-05-11 17:33:42 -07:00
hid HID: fix suspend crash by moving initializations earlier 2010-05-07 23:33:52 +02:00
hwmon Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2010-05-11 17:38:04 -07:00
i2c i2c-omap: add mpu wake up latency constraint in i2c 2010-05-20 00:18:59 +01:00
ide pata_pcmcia / ide-cs: Fix bad hashes for Transcend and kingston IDs 2010-05-05 14:48:48 -04:00
idle include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ieee1394 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ieee802154
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2010-04-09 11:53:06 -07:00
input Merge branch 'for-linus/samsung4' of git://git.fluff.org/bjdooks/linux 2010-05-19 11:49:33 -07:00
isdn Fix ISDN/Gigaset build failure 2010-04-19 11:53:17 -07:00
leds include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
lguest lguest: stop using KVM hypercall mechanism 2010-04-14 21:43:56 +09:30
macintosh device_attributes: add sysfs_attr_init() for dynamic attributes 2010-04-07 08:38:03 -07:00
mca
md md: restore ability of spare drives to spin down. 2010-05-07 21:10:57 +10:00
media V4L/DVB: pxa_camera: move fifo reset direct before dma start 2010-05-06 19:20:52 -03:00
memstick include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
message include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mfd mfd: Clean up after WM83xx AUXADC interrupt if it arrives late 2010-05-13 12:58:55 +02:00
misc Modify the VMware balloon driver for the new x86_hyper API 2010-05-09 01:13:42 -07:00
mmc Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-05-19 11:37:22 -07:00
mtd [MTD] Remove zero-length files mtdbdi.c and internal.ho 2010-05-05 15:25:12 -04:00
net m68k: amiga - Zorro bus modalias support 2010-05-17 21:37:41 +02:00
nubus include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
of of: check for IS_ERR() 2010-04-28 01:07:29 -06:00
oprofile oprofile: protect from not being in an IRQ context 2010-05-03 23:02:39 +02:00
parisc include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
parport include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 07:22:37 -07:00
pcmcia [ARM] pxa: add support for Voipac PXA270 PCMCIA 2010-05-11 17:25:02 +02:00
platform eeepc-laptop: add missing sparse_keymap_free 2010-04-23 15:23:21 -04:00
pnp Merge branches 'bugzilla-14337', 'bugzilla-14998', 'bugzilla-15407', 'bugzilla-15903' and 'misc-2.6.34' into release 2010-05-06 22:04:31 -04:00
power include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pps include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ps3 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rapidio
regulator regulator: fix enabling regulator issue on max8925 2010-04-28 15:24:34 +01:00
rtc Revert "rtc: omap: let device wakeup capability be configured from chip init logic" 2010-05-19 11:37:20 -07:00
s390 [S390] drivers/s390/char: Use kmemdup 2010-05-17 10:00:18 +02:00
sbus include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
scsi m68k: amiga - Zorro bus modalias support 2010-05-17 21:37:41 +02:00
serial Merge branch 'for-linus/samsung4' of git://git.fluff.org/bjdooks/linux 2010-05-19 11:49:33 -07:00
sfi
sh sh: simplify WARN usage in SH clock driver 2010-05-13 17:43:11 +09:00
sn include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi [ARM] pxa: add namespace on ssp 2010-05-11 17:25:06 +02:00
ssb MIPS: Fix SSB PCIcore IO resource management 2010-04-12 17:26:14 +01:00
staging Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2010-04-30 13:04:14 -07:00
tc include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
telephony
thermal drivers/thermal/thermal_sys.c: fix 'key f70f4b50 not in .data' in thermal_sys 2010-04-07 08:38:03 -07:00
uio include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
usb Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-05-19 11:37:22 -07:00
uwb include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
vhost vhost: fix barrier pairing 2010-05-12 18:04:04 +03:00
video m68k: amiga - Frame buffer platform device conversion 2010-05-17 21:37:43 +02:00
virtio virtio: Fix GFP flags passed from the virtio balloon driver 2010-04-22 07:34:05 -07:00
vlynq include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
w1 w1: fix omap 1-wire driver compilation 2010-04-24 11:31:25 -07:00
watchdog ARM: 6126/1: ARM mpcore_wdt: fix build failure and other fixes 2010-05-12 11:18:14 +01:00
xen stop_machine: reimplement using cpu_stop 2010-05-06 18:49:20 +02:00
zorro m68k: amiga - Zorro host bridge platform device conversion 2010-05-17 21:37:42 +02:00
Kconfig
Makefile virtio: initialize earlier 2010-05-07 14:01:17 -07:00