kernel-fxtec-pro1x/drivers/i2c/busses
Max Schwarz 249051f499 i2c: rk3x: handle dynamic clock rate changes correctly
The i2c input clock can change dynamically, e.g. on the RK3066 where
pclk_i2c0 and pclk_i2c1 are connected to the armclk, which changes
rate on cpu frequency scaling.

Until now, we incorrectly called clk_get_rate() while holding the
i2c->lock in rk3x_i2c_xfer() to adapt to clock rate changes.
Thanks to Huang Tao for reporting this issue.

Do it properly now using the clk notifier framework. The callback
logic was taken from i2c-cadence.c.

Also rename all misleading "i2c_rate" variables to "clk_rate", as they
describe the *input* clk rate.

Signed-off-by: Max Schwarz <max.schwarz@online.de>
Tested-by: Doug Anderson <dianders@chromium.org> on RK3288
Reviewed-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2014-11-23 17:27:46 +01:00
..
i2c-acorn.c i2c: acorn: is tristate and should use module.h 2014-01-24 18:21:11 +01:00
i2c-ali15x3.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ali1535.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ali1563.c i2c: ali1563: fix checkpatch.pl issues 2014-05-22 10:09:21 +02:00
i2c-amd756-s4882.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-amd756.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-amd8111.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-at91.c i2c: at91: enable probe deferring on dma channel request 2014-11-23 17:27:29 +01:00
i2c-au1550.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-axxia.c i2c: axxia: Add I2C driver for AXM55xx 2014-10-03 14:11:53 +02:00
i2c-bcm-kona.c i2c: i2c-bcm-kona: Fix module build 2013-11-26 14:00:57 +01:00
i2c-bcm2835.c i2c: i2c-bcm2835: Drop class based scanning to improve bootup time 2014-07-16 22:59:57 +02:00
i2c-bfin-twi.c i2c: i2c-bfin-twi: Drop class based scanning to improve bootup time 2014-07-16 22:59:58 +02:00
i2c-cadence.c i2c: Add driver for Cadence I2C controller 2014-04-06 17:47:19 +02:00
i2c-cbus-gpio.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-cpm.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-cros-ec-tunnel.c Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2014-10-19 12:50:44 -07:00
i2c-davinci.c i2c: davinci: don't use interruptible completion 2014-11-10 09:35:01 +01:00
i2c-designware-core.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-designware-core.h i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-designware-pcidrv.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-designware-platdrv.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-diolan-u2c.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-efm32.c i2c: efm32: correct namespacing of location property 2014-07-17 15:38:49 +02:00
i2c-eg20t.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-elektor.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-exynos5.c i2c: exynos5: use proper errno for timeout 2014-11-10 09:34:59 +01:00
i2c-gpio.c i2c: gpio: Drop dead code in i2c_gpio_remove 2014-08-01 20:01:41 +02:00
i2c-highlander.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-hix5hd2.c i2c: hix5hd2: add i2c controller driver 2014-10-16 09:14:17 +02:00
i2c-hydra.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-i801.c i2c: i801: Add DeviceIDs for SunrisePoint LP 2014-11-12 17:19:13 +01:00
i2c-ibm_iic.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-ibm_iic.h
i2c-img-scb.c i2c: img-scb: Add Imagination Technologies I2C SCB driver 2014-11-17 19:54:24 +01:00
i2c-imx.c i2c: imx: simplify i2c_imx_dma_write() a little 2014-11-19 15:16:19 +01:00
i2c-iop3xx.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-iop3xx.h i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-isch.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ismt.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-kempld.c i2c: Fix Kontron PLD prescaler calculation 2013-08-05 10:31:18 +02:00
i2c-meson.c i2c: add support for Amlogic Meson I2C controller 2014-11-18 16:16:44 +01:00
i2c-mpc.c i2c: mpc: report correct I2C error return codes 2014-11-12 16:34:11 +01:00
i2c-mv64xxx.c i2c: mv64xxx: continue probe when clock-frequency is missing 2014-09-02 12:34:08 +02:00
i2c-mxs.c i2c: imx+mxs: Use the preferred form for passing a size of a struct 2014-11-10 09:34:54 +01:00
i2c-nforce2-s4985.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-nforce2.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-nomadik.c i2c: i2c-nomadik: Drop class based scanning to improve bootup time 2014-07-16 23:00:01 +02:00
i2c-ocores.c i2c: i2c-ocores: Drop class based scanning to improve bootup time 2014-07-16 23:00:02 +02:00
i2c-octeon.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-omap.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-parport-light.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-parport.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-parport.h i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pasemi.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pca-isa.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pca-platform.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-piix4.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pmcmsp.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pnx.c i2c: pnx: Use devm_*() functions 2014-01-16 11:15:50 +01:00
i2c-powermac.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-puv3.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-pxa-pci.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pxa.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-qup.c i2c: qup: Fix order of runtime pm initialization 2014-10-03 03:20:47 +02:00
i2c-rcar.c i2c: rcar: remove sign-compare flaw 2014-09-29 22:43:25 +02:00
i2c-riic.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-rk3x.c i2c: rk3x: handle dynamic clock rate changes correctly 2014-11-23 17:27:46 +01:00
i2c-robotfuzz-osif.c i2c: Add bus driver for for OSIF USB i2c device. 2014-01-13 13:56:56 +01:00
i2c-s3c2410.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-scmi.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-sh7760.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-sh_mobile.c i2c: sh_mobile: use proper device for mapping DMA memory 2014-11-19 15:17:16 +01:00
i2c-sibyte.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-simtec.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sirf.c i2c: i2c-sirf: Drop class based scanning to improve bootup time 2014-07-16 23:00:06 +02:00
i2c-sis96x.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis630.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis5595.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-st.c i2c: st: Update i2c timings 2014-08-01 19:47:17 +02:00
i2c-stu300.c i2c: i2c-stu300: Drop class based scanning to improve bootup time 2014-07-16 23:00:06 +02:00
i2c-sun6i-p2wi.c i2c: sun6i-p2wi: Remove duplicate inclusion of module.h 2014-06-27 14:39:36 +02:00
i2c-taos-evm.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-tegra.c i2c: tegra: Move clk_prepare/clk_set_rate to probe 2014-09-20 11:15:23 +02:00
i2c-tiny-usb.c i2c: i2c-tiny-usb: Remove RobotFuzz USB vendor:product ID 2014-01-13 13:56:52 +01:00
i2c-versatile.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-via.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viapro.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viperboard.c i2c: viperboard: remove superfluous assignment 2014-01-09 22:18:33 +01:00
i2c-wmt.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-xiic.c i2c: xiic: Fix big-endian register access 2014-11-17 19:54:23 +01:00
i2c-xlr.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
Kconfig i2c: img-scb: Allow building for MIPS 2014-11-19 10:06:54 +01:00
Makefile i2c: add support for Amlogic Meson I2C controller 2014-11-18 16:16:44 +01:00
scx200_acb.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00