linux/drivers/i2c/busses
Tony Lindgren f08ac4e794 i2c-omap: Fix unhandled fault
If an I2C interrupt happens between disabling interface clock
and functional clock, the interrupt handler will produce an
external abort on non-linefetch error when trying to access
driver registers while interface clock is disabled.

This patch fixes the problem by saving and disabling i2c-omap
interrupt before turning off the clocks. Also disable functional
clock before the interface clock as suggested by Paul Walmsley.

Patch also renames enable/disable_clocks functions to unidle/idle
functions. Note that the driver is currently not taking advantage
of the idle interrupts. To use the idle interrupts, driver would
have to enable interface clock based on the idle interrupt
and dev->idle flag.

This patch has been tested in linux-omap tree with various omaps.

Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
2008-03-23 20:28:20 +01:00
..
i2c-acorn.c make i2c-acorn tristate 2007-07-15 16:40:52 -07:00
i2c-ali15x3.c i2c: Shrink struct i2c_client 2007-05-01 23:26:28 +02:00
i2c-ali1535.c i2c: Shrink struct i2c_client 2007-05-01 23:26:28 +02:00
i2c-ali1563.c i2c: Add IDs to adapters 2007-02-13 22:09:01 +01:00
i2c-amd756-s4882.c i2c: Declare more i2c_adapter parent devices 2007-02-13 22:09:03 +01:00
i2c-amd756.c i2c-amd756: Fix off-by-one 2008-03-12 14:15:00 +01:00
i2c-amd8111.c i2c: Rename the PEC functionality bit 2007-10-13 23:56:33 +02:00
i2c-at91.c i2c: Spelling fixes 2008-01-14 21:53:30 +01:00
i2c-au1550.c i2c-au1550: Convert to platform driver 2008-01-27 18:14:52 +01:00
i2c-bfin-twi.c i2c-bfin-twi: Register adapter with a specific bus number 2008-01-27 18:14:52 +01:00
i2c-davinci.c i2c: Don't uselessly set i2c_adapter.retries 2008-01-27 18:14:47 +01:00
i2c-elektor.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
i2c-gpio.c i2c-gpio: Initialize adapter class 2007-12-12 13:45:24 +01:00
i2c-hydra.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
i2c-i801.c i2c-i801: Add support for the ICH10 2008-02-24 20:03:42 +01:00
i2c-i810.c i2c: Add IDs to adapters 2007-02-13 22:09:01 +01:00
i2c-ibm_iic.c i2c: Don't uselessly set i2c_adapter.retries 2008-01-27 18:14:47 +01:00
i2c-ibm_iic.h i2c-ibm_iic: Whitespace cleanup 2008-01-27 18:14:45 +01:00
i2c-iop3xx.c i2c: Don't uselessly set i2c_adapter.retries 2008-01-27 18:14:47 +01:00
i2c-iop3xx.h [PATCH] i2c-iop3xx: Avoid addressing self 2006-07-12 15:43:06 -07:00
i2c-ixp2000.c i2c: Shrink struct i2c_client 2007-05-01 23:26:28 +02:00
i2c-mpc.c mpc-i2c: Propagate error values properly 2008-01-27 18:14:52 +01:00
i2c-mv64xxx.c [I2C] i2c-mv64xxx: Don't set i2c_adapter.retries 2008-01-26 15:04:01 +00:00
i2c-nforce2.c i2c-nforce2: The nForce2 can do block transactions 2008-01-27 18:14:44 +01:00
i2c-ocores.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
i2c-omap.c i2c-omap: Fix unhandled fault 2008-03-23 20:28:20 +01:00
i2c-parport-light.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
i2c-parport.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
i2c-parport.h i2c-parport: Add support for One For All remote JP1 interface 2007-02-13 22:09:02 +01:00
i2c-pasemi.c i2c-pasemi: use i2c_add_numbered_adapter() 2008-01-27 18:14:44 +01:00
i2c-pca-isa.c i2c-pca-isa: Add access check to legacy ioports 2008-02-24 20:03:42 +01:00
i2c-piix4.c i2c-piix4: Drop redundant PCI function number check 2008-01-27 18:14:51 +01:00
i2c-pmcmsp.c i2c: Storage class should be before const qualifier 2008-02-24 20:03:42 +01:00
i2c-pnx.c Add missing newlines to some uses of dev_<level> messages 2007-10-18 14:37:28 -07:00
i2c-powermac.c i2c: Spelling fixes 2008-01-14 21:53:30 +01:00
i2c-prosavage.c i2c: Discard the i2c algo del_bus wrappers 2006-12-10 21:21:33 +01:00
i2c-pxa.c i2c-pxa: Misc fixes 2008-02-24 20:03:42 +01:00
i2c-s3c2410.c i2c-s3c2410: Build fix 2007-08-14 18:37:15 +02:00
i2c-savage4.c i2c-savage4: Delete many unused defines 2007-07-12 14:12:31 +02:00
i2c-sibyte.c i2c-sibyte: Remove the bus scan module parameter 2008-01-27 18:14:50 +01:00
i2c-simtec.c i2c: New Simtec I2C bus driver 2007-05-01 23:26:34 +02:00
i2c-sis96x.c i2c: Shrink struct i2c_client 2007-05-01 23:26:28 +02:00
i2c-sis630.c Replace remaining references to "driverfs" with "sysfs". 2007-02-17 19:13:42 +01:00
i2c-sis5595.c i2c-sis5595: Resolve resource conflict with sis5595 2007-07-12 14:12:30 +02:00
i2c-stub.c i2c-stub: Use a single array for byte and word operations 2008-01-27 18:14:45 +01:00
i2c-taos-evm.c i2c: New bus driver for the TAOS evaluation modules 2007-07-12 14:12:31 +02:00
i2c-tiny-usb.c i2c-tiny-usb: Fix truncated adapter name 2007-05-22 19:49:16 +02:00
i2c-versatile.c i2c: New ARM Versatile/Realview bus driver 2006-12-10 21:21:32 +01:00
i2c-via.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
i2c-viapro.c i2c-viapro: Add support for the VT8237S 2008-01-27 18:14:51 +01:00
i2c-voodoo3.c i2c: Add IDs to adapters 2007-02-13 22:09:01 +01:00
Kconfig i2c-bfin-twi: Disable BF54x support for now 2008-03-23 20:28:20 +01:00
Makefile i2c: some overdue driver removal 2008-01-27 18:14:46 +01:00
scx200_acb.c PCI: Remove users of pci_enable_device_bars() 2008-02-01 15:04:27 -08:00
scx200_i2c.c i2c: Add IDs to adapters 2007-02-13 22:09:01 +01:00