Linus, I2C updates for 4.7: * Peter Rosin did some major rework on the locking of i2c muxes by seperating parent-locked muxes and mux-locked muxes. This avoids deadlocks/workarounds when the mux itself needs i2c commands for muxing. And as a side-effect, other workarounds in the media layer could be eliminated. Also, Peter stepped up as the i2c mux maintainer and will keep an eye on these changes. * major updates to the octeon driver * Add a helper to the core to generate the address+rw_bit octal and make drivers use it * quite a bunch of driver updates Please pull. Thanks, Wolfram The following changes since commit bf16200689118d19de1b8d2a3c314fc21f5dc7bb: Linux 4.6-rc3 (2016-04-10 17:58:30 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-4.7 for you to fetch changes up to 73e8b0528346e88a0624f2d9821f382cd6256677: i2c: rcar: add DMA support (2016-05-15 08:52:49 +0200) ---------------------------------------------------------------- Antti Palosaari (1): [media] si2168: change the i2c gate to be mux-locked Axel Lin (2): i2c: exynos5: Use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS instead of open-coded i2c: s3c2410: Use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS instead of open-coded Bartosz Golaszewski (2): eeprom: at24: remove a reduntant if eeprom: at24: replace msleep() with usleep_range() David Daney (2): i2c: octeon: Enable High-Level Controller i2c: octeon: Add workaround for broken irqs on CN3860 David Wu (1): i2c: rk3x: switch to i2c generic dt parsing Irina Tirdea (1): i2c: dln2: Pass forward ACPI companion Jan Glauber (9): i2c: octeon: Increase retry default and use fixed timeout value i2c: octeon: Move set-clock and init-lowlevel upward i2c: octeon: Rename [read|write]_sw to reg_[read|write] i2c: octeon: Introduce helper functions for register access i2c: octeon: Remove superfluous check in octeon_i2c_test_iflg i2c: octeon: Improve error status checking i2c: octeon: Use i2c recovery framework i2c: octeon: Add support for cn78xx chips i2c: octeon: Remove zero-length message support Jarkko Nikula (2): i2c: i801: Convert to struct dev_pm_ops for suspend/resume i2c: i801: Add runtime PM support with autosuspend Javier Martinez Canillas (3): i2c: s3c2410: Print errno code in error logs i2c: s3c2410: Check clk_prepare_enable() return value i2c: nforce2: Use IS_ENABLED() instead of checking for built-in or module Krzysztof Kozlowski (3): i2c: s3c2410: Add missing clock unprepare on probe() error path i2c: s3c2410: Minor function-level comment cleanup i2c: s3c2410: Cleanup indentation and comment style Linus Walleij (1): i2c: let I2C masters ignore their children for PM Masahiro Yamada (1): i2c: uniphier: add "\n" at the end of error log Michele Curti (1): i2c: algo-bit: declare i2c_bit_quirk_no_clk_stretch as static Niklas Söderlund (1): i2c: rcar: add DMA support Oleksij Rempel (1): i2c: imx: reduce load by using usleep_range instead of udelay Peter Griffin (1): i2c: st: Implement bus clear Peter Rosin (23): i2c: mux: add common data for every i2c-mux instance i2c: i2c-mux-gpio: convert to use an explicit i2c mux core i2c: i2c-mux-pinctrl: convert to use an explicit i2c mux core i2c: i2c-arb-gpio-challenge: convert to use an explicit i2c mux core i2c: i2c-mux-pca9541: convert to use an explicit i2c mux core i2c: i2c-mux-pca954x: convert to use an explicit i2c mux core i2c: i2c-mux-reg: convert to use an explicit i2c mux core iio: imu: inv_mpu6050: convert to use an explicit i2c mux core [media] m88ds3103: convert to use an explicit i2c mux core [media] rtl2830: convert to use an explicit i2c mux core [media] rtl2832: convert to use an explicit i2c mux core [media] si2168: convert to use an explicit i2c mux core [media] cx231xx: convert to use an explicit i2c mux core of/unittest: convert to use an explicit i2c mux core i2c: mux: drop old unused i2c-mux api i2c: allow adapter drivers to override the adapter locking i2c: muxes always lock the parent adapter i2c: mux: relax locking of the top i2c adapter during mux-locked muxing i2c: mux: document i2c muxes and elaborate on parent-/mux-locked muxes iio: imu: inv_mpu6050: change the i2c gate to be mux-locked [media] rtl2832: change the i2c gate to be mux-locked [media] rtl2832_sdr: get rid of empty regmap wrappers [media] rtl2832: regmap is aware of lockdep, drop local locking hack Peter Swain (2): i2c: octeon: Add flush writeq helper function i2c: octeon: Improve performance if interrupt is early Sebastian Andrzej Siewior (1): i2c: omap: drop the lock hard irq context Shardar Shariff Md (2): i2c: tegra: enable multi master mode for tegra210 i2c: tegra: disable clock before returning error Thomas Petazzoni (4): i2c: mv64xxx: enable the driver on ARCH_MVEBU i2c: mv64xxx: handle probe deferral for the clock i2c: mv64xxx: use clk_{prepare_enable,disable_unprepare} i2c: mv64xxx: remove CONFIG_HAVE_CLK conditionals Wolfram Sang (20): i2c: guarantee that I2C_M_RD will be 0x0001 forever i2c: introduce helper function to get 8 bit address from a message i2c: core: use new 8 bit address helper function i2c: bcm-iproc: use new 8 bit address helper function i2c: bcm-kona: use new 8 bit address helper function i2c: brcmstb: use new 8 bit address helper function i2c: cpm: use new 8 bit address helper function i2c: ibm_iic: use new 8 bit address helper function i2c: img-scb: use new 8 bit address helper function i2c: iop3xx: use new 8 bit address helper function i2c: lpc2k: use new 8 bit address helper function i2c: mt65xx: use new 8 bit address helper function i2c: ocores: use new 8 bit address helper function i2c: powermac: use new 8 bit address helper function i2c: qup: use new 8 bit address helper function i2c: sh_mobile: use new 8 bit address helper function i2c: sirf: use new 8 bit address helper function i2c: st: use new 8 bit address helper function i2c: mux: pinctrl: fix indentation for better readability i2c: only check scl functions when using generic recovery .../devicetree/bindings/i2c/i2c-octeon.txt | 6 + Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 3 + Documentation/i2c/i2c-topology | 370 ++++++++ MAINTAINERS | 1 + drivers/i2c/algos/i2c-algo-bit.c | 2 +- drivers/i2c/busses/Kconfig | 2 +- drivers/i2c/busses/i2c-bcm-iproc.c | 2 +- drivers/i2c/busses/i2c-bcm-kona.c | 5 +- drivers/i2c/busses/i2c-brcmstb.c | 4 +- drivers/i2c/busses/i2c-cpm.c | 4 +- drivers/i2c/busses/i2c-dln2.c | 2 + drivers/i2c/busses/i2c-exynos5.c | 10 +- drivers/i2c/busses/i2c-i801.c | 52 +- drivers/i2c/busses/i2c-ibm_iic.c | 2 +- drivers/i2c/busses/i2c-img-scb.c | 4 +- drivers/i2c/busses/i2c-imx.c | 2 +- drivers/i2c/busses/i2c-iop3xx.c | 5 +- drivers/i2c/busses/i2c-lpc2k.c | 4 +- drivers/i2c/busses/i2c-mt65xx.c | 5 +- drivers/i2c/busses/i2c-mv64xxx.c | 45 +- drivers/i2c/busses/i2c-nforce2.c | 2 +- drivers/i2c/busses/i2c-ocores.c | 5 +- drivers/i2c/busses/i2c-octeon.c | 998 +++++++++++++++++---- drivers/i2c/busses/i2c-omap.c | 12 +- drivers/i2c/busses/i2c-powermac.c | 4 +- drivers/i2c/busses/i2c-qup.c | 2 +- drivers/i2c/busses/i2c-rcar.c | 233 ++++- drivers/i2c/busses/i2c-rk3x.c | 87 +- drivers/i2c/busses/i2c-s3c2410.c | 244 +++-- drivers/i2c/busses/i2c-sh_mobile.c | 3 +- drivers/i2c/busses/i2c-sirf.c | 4 +- drivers/i2c/busses/i2c-st.c | 48 +- drivers/i2c/busses/i2c-tegra.c | 81 +- drivers/i2c/busses/i2c-uniphier-f.c | 2 +- drivers/i2c/busses/i2c-uniphier.c | 2 +- drivers/i2c/i2c-core.c | 72 +- drivers/i2c/i2c-mux.c | 300 +++++-- drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 47 +- drivers/i2c/muxes/i2c-mux-gpio.c | 73 +- drivers/i2c/muxes/i2c-mux-pca9541.c | 58 +- drivers/i2c/muxes/i2c-mux-pca954x.c | 61 +- drivers/i2c/muxes/i2c-mux-pinctrl.c | 135 +-- drivers/i2c/muxes/i2c-mux-reg.c | 69 +- drivers/iio/imu/inv_mpu6050/inv_mpu_acpi.c | 2 +- drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 1 - drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 79 +- drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 3 +- drivers/media/dvb-frontends/m88ds3103.c | 19 +- drivers/media/dvb-frontends/m88ds3103_priv.h | 2 +- drivers/media/dvb-frontends/rtl2830.c | 20 +- drivers/media/dvb-frontends/rtl2830_priv.h | 2 +- drivers/media/dvb-frontends/rtl2832.c | 243 +---- drivers/media/dvb-frontends/rtl2832.h | 4 +- drivers/media/dvb-frontends/rtl2832_priv.h | 3 +- drivers/media/dvb-frontends/rtl2832_sdr.c | 303 +++---- drivers/media/dvb-frontends/rtl2832_sdr.h | 5 +- drivers/media/dvb-frontends/si2168.c | 106 +-- drivers/media/dvb-frontends/si2168_priv.h | 3 +- drivers/media/usb/cx231xx/cx231xx-core.c | 6 +- drivers/media/usb/cx231xx/cx231xx-i2c.c | 47 +- drivers/media/usb/cx231xx/cx231xx.h | 4 +- drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 5 +- drivers/misc/eeprom/at24.c | 9 +- drivers/of/unittest.c | 37 +- include/linux/i2c-mux.h | 55 +- include/linux/i2c.h | 50 +- include/uapi/linux/i2c.h | 13 +- 67 files changed, 2648 insertions(+), 1445 deletions(-) create mode 100644 Documentation/i2c/i2c-topology
Attachment:
signature.asc
Description: PGP signature