]> Git Repo - linux.git/commitdiff
Merge tag 'mfd-for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
authorLinus Torvalds <[email protected]>
Fri, 20 May 2016 18:10:24 +0000 (11:10 -0700)
committerLinus Torvalds <[email protected]>
Fri, 20 May 2016 18:10:24 +0000 (11:10 -0700)
Pull MFD updates from Lee Jones:
 "New Drivers:
   - Add new driver for MAXIM MAX77620/MAX20024 PMIC
   - Add new driver for Hisilicon HI665X PMIC

  New Device Support:
   - Add support for AXP809 in axp20x-rsb
   - Add support for Power Supply in axp20x

  New core features:
   - devm_mfd_* managed resources

  Fix-ups:
   - Remove unused code (da9063-irq, wm8400-core, tps6105x,
     smsc-ece1099, twl4030-power)
   - Improve clean-up in error path (intel_quark_i2c_gpio)
   - Explicitly include headers (syscon.h)
   - Allow building as modules (max77693)
   - Use IS_ENABLED() instead of rolling your own (dm355evm_msp,
     wm8400-core)
   - DT adaptions (axp20x, hi655x, arizona, max77620)
   - Remove CLK_IS_ROOT flag (intel-lpss, intel_quark)
   - Move to gpiochip API (asic3, dm355evm_msp, htc-egpio, htc-i2cpld,
     sm501, tc6393xb, tps65010, ucb1x00, vexpress)
   - Make use of devm_mfd_* calls (act8945a, as3711, atmel-hlcdc,
     bcm590xx, hi6421-pmic-core, lp3943, menf21bmc, mt6397, rdc321x,
     rk808, rn5t618, rt5033, sky81452, stw481x, tps6507x, tps65217,
     wm8400)

  Bug Fixes"
   - Fix ACPI child matching (mfd-core)
   - Fix start-up ordering issues (mt6397-core, arizona-core)
   - Fix forgotten register state on resume (intel-lpss)
   - Fix Clock related issues (twl6040)
   - Fix scheduling whilst atomic (omap-usb-tll)
   - Kconfig changes (vexpress)"

* tag 'mfd-for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (73 commits)
  mfd: hi655x: Add MFD driver for hi655x
  mfd: ab8500-debugfs: Trivial fix of spelling mistake on "between"
  mfd: vexpress: Add !ARCH_USES_GETTIMEOFFSET dependency
  mfd: Add device-tree binding doc for PMIC MAX77620/MAX20024
  mfd: max77620: Add core driver for MAX77620/MAX20024
  mfd: arizona: Add defines for GPSW values that can be used from DT
  mfd: omap-usb-tll: Fix scheduling while atomic BUG
  mfd: wm5110: ARIZONA_CLOCK_CONTROL should be volatile
  mfd: axp20x: Add a cell for the ac power_supply part of the axp20x PMICs
  mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup table correctly
  mfd: wl1273-core: Use devm_mfd_add_devices() for mfd_device registration
  mfd: tps65910: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
  mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
  mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq
  mfd: max77686: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
  mfd: as3722: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
  mfd: twl4030-power: Remove driver path in file comment
  MAINTAINERS: Add entry for X-Powers AXP family PMIC drivers
  mfd: smsc-ece1099: Remove unnecessarily remove callback
  mfd: Use IS_ENABLED(CONFIG_FOO) instead of checking FOO || FOO_MODULE
  ...

1  2 
Documentation/driver-model/devres.txt
MAINTAINERS
drivers/mfd/intel-lpss.c
drivers/mfd/intel_quark_i2c_gpio.c
drivers/mfd/mfd-core.c
include/linux/mfd/core.h

index 7281fb4b43164624f076648477098e753243c33a,7f8c416f3bcf6f099e20422b6bee7b532a9f1d6c..6c4478ce582df71cce821611b5df6fe73c497592
@@@ -268,9 -268,6 +268,9 @@@ II
    devm_iio_trigger_alloc()
    devm_iio_trigger_free()
  
 +INPUT
 +  devm_input_allocate_device()
 +
  IO region
    devm_release_mem_region()
    devm_release_region()
@@@ -320,6 -317,9 +320,9 @@@ ME
    devm_kvasprintf()
    devm_kzalloc()
  
+ MFD
+  devm_mfd_add_devices()
  PCI
    pcim_enable_device()        : after success, all PCI ops become managed
    pcim_pin_device()   : keep PCI device enabled after release
@@@ -331,8 -331,6 +334,8 @@@ PH
  PINCTRL
    devm_pinctrl_get()
    devm_pinctrl_put()
 +  devm_pinctrl_register()
 +  devm_pinctrl_unregister()
  
  PWM
    devm_pwm_get()
diff --combined MAINTAINERS
index 2c670ba7b7dbad458f4f6e246785d5a2da57719f,f4ba27328a39b765298da2b51a9eb28c0e9665ae..374ffa2d81b7767647da43003739d190b92191f0
@@@ -627,7 -627,6 +627,7 @@@ F: include/linux/altera_jtaguart.
  
  AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
  M:    Tom Lendacky <[email protected]>
 +M:    Gary Hook <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/crypto/ccp/
@@@ -873,9 -872,9 +873,9 @@@ F: drivers/perf/arm_pmu.
  F:    include/linux/perf/arm_pmu.h
  
  ARM PORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/
  
@@@ -887,35 -886,35 +887,35 @@@ F:      arch/arm/plat-*
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
  
  ARM PRIMECELL AACI PL041 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    sound/arm/aaci.*
  
  ARM PRIMECELL CLCD PL110 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/video/fbdev/amba-clcd.*
  
  ARM PRIMECELL KMI PL050 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/input/serio/ambakmi.*
  F:    include/linux/amba/kmi.h
  
  ARM PRIMECELL MMCI PL180/1 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/mmc/host/mmci.*
  F:    include/linux/amba/mmci.h
  
  ARM PRIMECELL UART PL010 AND PL011 DRIVERS
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/tty/serial/amba-pl01*.c
  F:    include/linux/amba/serial.h
  
  ARM PRIMECELL BUS SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/amba/
  F:    include/linux/amba/bus.h
@@@ -949,15 -948,12 +949,15 @@@ F:      drivers/clk/sunxi
  
  ARM/Amlogic Meson SoC support
  M:    Carlo Caione <[email protected]>
 +M:    Kevin Hilman <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -L:    linux-[email protected]
 +L:    linux-[email protected]
  W:    http://linux-meson.com/
  S:    Maintained
  F:    arch/arm/mach-meson/
  F:    arch/arm/boot/dts/meson*
 +F:    arch/arm64/boot/dts/amlogic/
 +F:    drivers/pinctrl/meson/
  N:    meson
  
  ARM/Annapurna Labs ALPINE ARCHITECTURE
@@@ -979,13 -975,6 +979,13 @@@ F:       arch/arm/mach-artpe
  F:    arch/arm/boot/dts/artpec6*
  F:    drivers/clk/clk-artpec6.c
  
 +ARM/ASPEED MACHINE SUPPORT
 +M:    Joel Stanley <[email protected]>
 +S:    Maintained
 +F:    arch/arm/mach-aspeed/
 +F:    arch/arm/boot/dts/aspeed-*
 +F:    drivers/*/*aspeed*
 +
  ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT
  M:    Nicolas Ferre <[email protected]>
  M:    Alexandre Belloni <[email protected]>
@@@ -1047,7 -1036,7 +1047,7 @@@ L:      [email protected]
  S:    Maintained
  
  ARM/CLKDEV SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/include/asm/clkdev.h
@@@ -1104,9 -1093,9 +1104,9 @@@ F:      arch/arm/boot/dts/cx92755
  N:    digicolor
  
  ARM/EBSA110 MACHINE SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/mach-ebsa110/
  F:    drivers/net/ethernet/amd/am79c961a.*
@@@ -1135,9 -1124,9 +1135,9 @@@ T:      git git://git.berlios.de/gemini-boar
  F:    arch/arm/mm/*-fa*
  
  ARM/FOOTBRIDGE ARCHITECTURE
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/include/asm/hardware/dec21285.h
  F:    arch/arm/mach-footbridge/
@@@ -1271,7 -1260,7 +1271,7 @@@ M:      Santosh Shilimkar <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-keystone/
 -F:    arch/arm/boot/dts/k2*
 +F:    arch/arm/boot/dts/keystone-*
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
  
  ARM/TEXAS INSTRUMENT KEYSTONE CLOCK FRAMEWORK
  S:    Maintained
  F:    drivers/memory/*emif*
  
 +ARM/LG1K ARCHITECTURE
 +M:    Chanho Min <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm64/boot/dts/lg/
 +
  ARM/LOGICPD PXA270 MACHINE SUPPORT
  M:    Lennert Buytenhek <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -1323,25 -1306,11 +1323,25 @@@ F:   drivers/mtd/spi-nor/nxp-spifi.
  F:    drivers/rtc/rtc-lpc24xx.c
  N:    lpc18xx
  
 +ARM/LPC32XX SOC SUPPORT
 +M:    Vladimir Zapolskiy <[email protected]>
 +M:    Sylvain Lemieux <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +T:    git git://github.com/vzapolskiy/linux-lpc32xx.git
 +S:    Maintained
 +F:    arch/arm/boot/dts/lpc32*
 +F:    arch/arm/mach-lpc32xx/
 +F:    drivers/i2c/busses/i2c-pnx.c
 +F:    drivers/net/ethernet/nxp/lpc_eth.c
 +F:    drivers/usb/host/ohci-nxp.c
 +F:    drivers/watchdog/pnx4008_wdt.c
 +N:    lpc32xx
 +
  ARM/MAGICIAN MACHINE SUPPORT
  M:    Philipp Zabel <[email protected]>
  S:    Maintained
  
 -ARM/Marvell Kirkwood and Armada 370, 375, 38x, XP SOC support
 +ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K SOC support
  M:    Jason Cooper <[email protected]>
  M:    Andrew Lunn <[email protected]>
  M:    Gregory Clement <[email protected]>
@@@ -1353,8 -1322,7 +1353,8 @@@ F:      drivers/rtc/rtc-armada38x.
  F:    arch/arm/boot/dts/armada*
  F:    arch/arm/boot/dts/kirkwood*
  F:    arch/arm64/boot/dts/marvell/armada*
 -
 +F:    drivers/cpufreq/mvebu-cpufreq.c
 +F:    arch/arm/configs/mvebu_*_defconfig
  
  ARM/Marvell Berlin SoC support
  M:    Sebastian Hesselbarth <[email protected]>
@@@ -1387,15 -1355,6 +1387,15 @@@ W:    http://www.digriz.org.uk/ts78xx/kern
  S:    Maintained
  F:    arch/arm/mach-orion5x/ts78xx-*
  
 +ARM/OXNAS platform support
 +M:    Neil Armstrong <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/mach-oxnas/
 +F:    arch/arm/boot/dts/oxnas*
 +F:    arch/arm/boot/dts/wd-mbwe.dts
 +N:    oxnas
 +
  ARM/Mediatek RTC DRIVER
  M:    Eddie Huang <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -1498,7 -1457,7 +1498,7 @@@ S:      Maintaine
  ARM/PT DIGITAL BOARD PORT
  M:    Stefan Eletzhofer <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  
  ARM/QUALCOMM SUPPORT
@@@ -1511,10 -1470,7 +1511,10 @@@ F:    arch/arm/boot/dts/qcom-*.dt
  F:    arch/arm/boot/dts/qcom-*.dtsi
  F:    arch/arm/mach-qcom/
  F:    arch/arm64/boot/dts/qcom/*
 +F:    drivers/i2c/busses/i2c-qup.c
 +F:    drivers/clk/qcom/
  F:    drivers/soc/qcom/
 +F:    drivers/spi/spi-qup.c
  F:    drivers/tty/serial/msm_serial.h
  F:    drivers/tty/serial/msm_serial.c
  F:    drivers/*/pm8???-*
@@@ -1535,13 -1491,11 +1535,13 @@@ Q:   http://patchwork.kernel.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
  S:    Supported
  F:    arch/arm64/boot/dts/renesas/
 +F:    drivers/soc/renesas/
 +F:    include/linux/soc/renesas/
  
  ARM/RISCPC ARCHITECTURE
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/include/asm/hardware/entry-macro-iomd.S
  F:    arch/arm/include/asm/hardware/ioc.h
@@@ -1586,7 -1540,6 +1586,7 @@@ F:      arch/arm/mach-s5p*
  F:    arch/arm/mach-exynos*/
  F:    drivers/*/*s3c2410*
  F:    drivers/*/*/*s3c2410*
 +F:    drivers/memory/samsung/*
  F:    drivers/soc/samsung/*
  F:    drivers/spi/spi-s3c*
  F:    sound/soc/samsung/*
@@@ -1651,8 -1604,6 +1651,8 @@@ F:      arch/arm/configs/shmobile_defconfi
  F:    arch/arm/include/debug/renesas-scif.S
  F:    arch/arm/mach-shmobile/
  F:    drivers/sh/
 +F:    drivers/soc/renesas/
 +F:    include/linux/soc/renesas/
  
  ARM/SOCFPGA ARCHITECTURE
  M:    Dinh Nguyen <[email protected]>
@@@ -1687,7 -1638,6 +1687,7 @@@ F:      arch/arm/boot/dts/sti
  F:    drivers/char/hw_random/st-rng.c
  F:    drivers/clocksource/arm_global_timer.c
  F:    drivers/clocksource/clksrc_st_lpc.c
 +F:    drivers/cpufreq/sti-cpufreq.c
  F:    drivers/i2c/busses/i2c-st.c
  F:    drivers/media/rc/st_rc.c
  F:    drivers/media/platform/sti/c8sectpfe/
@@@ -1697,7 -1647,6 +1697,7 @@@ F:      drivers/phy/phy-miphy365x.
  F:    drivers/phy/phy-stih407-usb.c
  F:    drivers/phy/phy-stih41x-usb.c
  F:    drivers/pinctrl/pinctrl-st.c
 +F:    drivers/remoteproc/st_remoteproc.c
  F:    drivers/reset/sti/
  F:    drivers/rtc/rtc-st-lpc.c
  F:    drivers/tty/serial/st-asc.c
@@@ -1822,12 -1771,11 +1822,12 @@@ F:   */*/vexpress
  F:    */*/*/vexpress*
  F:    drivers/clk/versatile/clk-vexpress-osc.c
  F:    drivers/clocksource/versatile.c
 +N:    mps2
  
  ARM/VFP SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/vfp/
  
@@@ -2255,13 -2203,10 +2255,13 @@@ BATMAN ADVANCE
  M:    Marek Lindner <[email protected]>
  M:    Simon Wunderlich <[email protected]>
  M:    Antonio Quartulli <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  W:    https://www.open-mesh.org/
  Q:    https://patchwork.open-mesh.org/project/batman/list/
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-class-net-batman-adv
 +F:    Documentation/ABI/testing/sysfs-class-net-mesh
 +F:    Documentation/networking/batman-adv.txt
  F:    net/batman-adv/
  
  BAYCOM/HDLCDRV DRIVERS FOR AX.25
@@@ -2976,7 -2921,7 +2976,7 @@@ F:      mm/cleancache.
  F:    include/linux/cleancache.h
  
  CLK API
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    include/linux/clk.h
@@@ -3403,16 -3348,15 +3403,16 @@@ F:   Documentation/powerpc/cxlflash.tx
  
  STMMAC ETHERNET DRIVER
  M:    Giuseppe Cavallaro <[email protected]>
 +M:    Alexandre Torgue <[email protected]>
  L:    [email protected]
  W:    http://www.stlinux.com
  S:    Supported
  F:    drivers/net/ethernet/stmicro/stmmac/
  
  CYBERPRO FB DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    drivers/video/fbdev/cyber2000fb.*
  
@@@ -3595,15 -3539,6 +3595,15 @@@ F:    drivers/devfreq/devfreq-event.
  F:    include/linux/devfreq-event.h
  F:    Documentation/devicetree/bindings/devfreq/event/
  
 +BUS FREQUENCY DRIVER FOR SAMSUNG EXYNOS
 +M:    Chanwoo Choi <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq.git
 +S:    Maintained
 +F:    drivers/devfreq/exynos-bus.c
 +F:    Documentation/devicetree/bindings/devfreq/exynos-bus.txt
 +
  DEVICE NUMBER REGISTRY
  M:    Torben Mathiasen <[email protected]>
  W:    http://lanana.org/docs/device-list/index.html
@@@ -3946,7 -3881,7 +3946,7 @@@ F:      Documentation/devicetree/bindings/di
  
  DRM DRIVERS FOR VIVANTE GPU IP
  M:    Lucas Stach <[email protected]>
 -R:    Russell King <linux+etnaviv@arm.linux.org.uk>
 +R:    Russell King <[email protected]>
  R:    Christian Gmeiner <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -4288,8 -4223,8 +4288,8 @@@ F:      Documentation/efi-stub.tx
  F:    arch/ia64/kernel/efi.c
  F:    arch/x86/boot/compressed/eboot.[ch]
  F:    arch/x86/include/asm/efi.h
 -F:    arch/x86/platform/efi/*
 -F:    drivers/firmware/efi/*
 +F:    arch/x86/platform/efi/
 +F:    drivers/firmware/efi/
  F:    include/linux/efi*.h
  
  EFI VARIABLE FILESYSTEM
@@@ -4367,7 -4302,7 +4367,7 @@@ F:      drivers/net/ethernet/agere
  
  ETHERNET BRIDGE
  M:    Stephen Hemminger <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  W:    http://www.linuxfoundation.org/en/Net:Bridge
  S:    Maintained
@@@ -4444,12 -4379,6 +4444,12 @@@ S:    Maintaine
  F:    drivers/video/fbdev/exynos/exynos_mipi*
  F:    include/video/exynos_mipi*
  
 +EZchip NPS platform support
 +M:    Noam Camus <[email protected]>
 +S:    Supported
 +F:    arch/arc/plat-eznps
 +F:    arch/arc/boot/dts/eznps.dts
 +
  F71805F HARDWARE MONITORING DRIVER
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
@@@ -4732,7 -4661,6 +4732,7 @@@ FREESCALE SOC SOUND DRIVER
  M:    Timur Tabi <[email protected]>
  M:    Nicolin Chen <[email protected]>
  M:    Xiubo Li <[email protected]>
 +R:    Fabio Estevam <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
@@@ -4816,7 -4744,7 +4816,7 @@@ F:      drivers/platform/x86/fujitsu-tablet.
  
  FUSE: FILESYSTEM IN USERSPACE
  M:    Miklos Szeredi <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  W:    http://fuse.sourceforge.net/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git
  S:    Maintained
@@@ -4956,7 -4884,6 +4956,7 @@@ M:      Alexandre Courbot <[email protected]
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/gpio/
  F:    Documentation/gpio/
  F:    Documentation/ABI/testing/gpio-cdev
  F:    Documentation/ABI/obsolete/sysfs-gpio
@@@ -4976,7 -4903,7 +4976,7 @@@ F:      net/ipv4/gre_offload.
  F:    include/net/gre.h
  
  GRETH 10/100/1G Ethernet MAC device driver
 -M:    Kristoffer Glembo <kristoffer@gaisler.com>
 +M:    Andreas Larsson <andreas@gaisler.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/aeroflex/
@@@ -5348,7 -5275,6 +5348,7 @@@ I2C MUXE
  M:    Peter Rosin <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/i2c/i2c-topology
  F:    Documentation/i2c/muxes/
  F:    Documentation/devicetree/bindings/i2c/i2c-mux*
  F:    drivers/i2c/i2c-mux.c
@@@ -5818,7 -5744,14 +5818,7 @@@ F:     drivers/char/hw_random/ixp4xx-rng.
  
  INTEL ETHERNET DRIVERS
  M:    Jeff Kirsher <[email protected]>
 -R:    Jesse Brandeburg <[email protected]>
 -R:    Shannon Nelson <[email protected]>
 -R:    Carolyn Wyborny <[email protected]>
 -R:    Don Skidmore <[email protected]>
 -R:    Bruce Allan <[email protected]>
 -R:    John Ronciak <[email protected]>
 -R:    Mitch Williams <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  W:    http://www.intel.com/support/feedback.htm
  W:    http://e1000.sourceforge.net/
  Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
@@@ -6094,7 -6027,7 +6094,7 @@@ F:      include/scsi/*iscsi
  
  ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
  M:    Or Gerlitz <[email protected]>
 -M:    Sagi Grimberg <sagi[email protected]>
 +M:    Sagi Grimberg <sagi@grimberg.me>
  M:    Roi Dayan <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -6104,7 -6037,7 +6104,7 @@@ Q:      http://patchwork.kernel.org/project/
  F:    drivers/infiniband/ulp/iser/
  
  ISCSI EXTENSIONS FOR RDMA (ISER) TARGET
 -M:    Sagi Grimberg <sagi[email protected]>
 +M:    Sagi Grimberg <sagi@grimberg.me>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git master
  L:    [email protected]
  L:    [email protected]
@@@ -6319,8 -6252,8 +6319,8 @@@ S:      Maintaine
  F:    tools/testing/selftests
  
  KERNEL VIRTUAL MACHINE (KVM)
 -M:    Gleb Natapov <[email protected]>
  M:    Paolo Bonzini <[email protected]>
 +M:    Radim Krčmář <[email protected]>
  L:    [email protected]
  W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
@@@ -6467,7 -6400,7 +6467,7 @@@ F:      mm/kmemleak.
  F:    mm/kmemleak-test.c
  
  KPROBES
 -M:    Ananth N Mavinakayanahalli <ananth@in.ibm.com>
 +M:    Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
  M:    Anil S Keshavamurthy <[email protected]>
  M:    "David S. Miller" <[email protected]>
  M:    Masami Hiramatsu <[email protected]>
@@@ -6493,7 -6426,7 +6493,7 @@@ F:      net/l3mde
  F:    include/net/l3mdev.h
  
  LANTIQ MIPS ARCHITECTURE
 -M:    John Crispin <blogic@openwrt.org>
 +M:    John Crispin <john@phrozen.org>
  L:    [email protected]
  S:    Maintained
  F:    arch/mips/lantiq
@@@ -6675,19 -6608,6 +6675,19 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    Documentation/powerpc/
  F:    arch/powerpc/
 +F:    drivers/char/tpm/tpm_ibmvtpm*
 +F:    drivers/crypto/nx/
 +F:    drivers/crypto/vmx/
 +F:    drivers/net/ethernet/ibm/ibmveth.*
 +F:    drivers/net/ethernet/ibm/ibmvnic.*
 +F:    drivers/pci/hotplug/rpa*
 +F:    drivers/scsi/ibmvscsi/
 +N:    opal
 +N:    /pmac
 +N:    powermac
 +N:    powernv
 +N:    [^a-z0-9]ps3
 +N:    pseries
  
  LINUX FOR POWER MACINTOSH
  M:    Benjamin Herrenschmidt <[email protected]>
@@@ -6768,7 -6688,6 +6768,7 @@@ F:      kernel/livepatch
  F:    include/linux/livepatch.h
  F:    arch/x86/include/asm/livepatch.h
  F:    arch/x86/kernel/livepatch.c
 +F:    Documentation/livepatch/
  F:    Documentation/ABI/testing/sysfs-kernel-livepatch
  F:    samples/livepatch/
  L:    [email protected]
@@@ -6857,6 -6776,12 +6857,6 @@@ W:     logfs.or
  S:    Maintained
  F:    fs/logfs/
  
 -LPC32XX MACHINE SUPPORT
 -M:    Roland Stigge <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -F:    arch/arm/mach-lpc32xx/
 -
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
  M:    Sathya Prakash <[email protected]>
  M:    Chaitra P B <[email protected]>
@@@ -6980,7 -6905,7 +6980,7 @@@ L:      [email protected]
  S:    Maintained
  
  MARVELL ARMADA DRM SUPPORT
 -M:    Russell King <rmk+kernel@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/gpu/drm/armada/
  
@@@ -7095,9 -7020,9 +7095,9 @@@ M:      Chanwoo Choi <[email protected]
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/*/max14577.c
 +F:    drivers/*/max14577*.c
  F:    drivers/*/max77686*.c
 -F:    drivers/*/max77693.c
 +F:    drivers/*/max77693*.c
  F:    drivers/extcon/extcon-max14577.c
  F:    drivers/extcon/extcon-max77693.c
  F:    drivers/rtc/rtc-max77686.c
@@@ -7347,15 -7272,6 +7347,15 @@@ S:    Supporte
  F:    Documentation/mips/
  F:    arch/mips/
  
 +MIPS/LOONGSON1 ARCHITECTURE
 +M:    Keguang Zhang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/mips/loongson32/
 +F:    arch/mips/include/asm/mach-loongson32/
 +F:    drivers/*/*loongson1*
 +F:    drivers/*/*/*loongson1*
 +
  MIROSOUND PCM20 FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -7623,10 -7539,10 +7623,10 @@@ M:   Michael Schmitz <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/scsi/g_NCR5380.txt
 +F:    Documentation/scsi/dtc3x80.txt
  F:    drivers/scsi/NCR5380.*
  F:    drivers/scsi/arm/cumana_1.c
  F:    drivers/scsi/arm/oak.c
 -F:    drivers/scsi/atari_NCR5380.c
  F:    drivers/scsi/atari_scsi.*
  F:    drivers/scsi/dmx3191d.c
  F:    drivers/scsi/dtc.*
@@@ -7660,7 -7576,7 +7660,7 @@@ F:      drivers/infiniband/hw/nes
  
  NETEM NETWORK EMULATOR
  M:    Stephen Hemminger <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    net/sched/sch_netem.c
  
@@@ -7989,7 -7905,7 +7989,7 @@@ S:      Supporte
  F:    drivers/nfc/nxp-nci
  
  NXP TDA998X DRM DRIVER
 -M:    Russell King <rmk+kernel@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Supported
  F:    drivers/gpu/drm/i2c/tda998x_drv.c
  F:    include/drm/i2c/tda998x.h
@@@ -8062,7 -7978,7 +8062,7 @@@ F:      arch/arm/*omap*/*pm
  F:    drivers/cpufreq/omap-cpufreq.c
  
  OMAP POWERDOMAIN SOC ADAPTATION LAYER SUPPORT
 -M:    Rajendra Nayak <rnayak@ti.com>
 +M:    Rajendra Nayak <rnayak@codeaurora.org>
  M:    Paul Walmsley <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -8796,8 -8712,6 +8796,8 @@@ F:      drivers/pinctrl/sh-pfc
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <[email protected]>
 +M:    Krzysztof Kozlowski <[email protected]>
 +M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -9226,13 -9140,6 +9226,13 @@@ T:    git git://github.com/KrasnikovEugene
  S:    Supported
  F:    drivers/net/wireless/ath/wcn36xx/
  
 +QEMU MACHINE EMULATOR AND VIRTUALIZER SUPPORT
 +M:    Gabriel Somlo <[email protected]>
 +M:    "Michael S. Tsirkin" <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/firmware/qemu_fw_cfg.c
 +
  RADOS BLOCK DEVICE (RBD)
  M:    Ilya Dryomov <[email protected]>
  M:    Sage Weil <[email protected]>
@@@ -9275,7 -9182,7 +9275,7 @@@ S:      Maintaine
  F:    drivers/video/fbdev/aty/aty128fb.c
  
  RALINK MIPS ARCHITECTURE
 -M:    John Crispin <blogic@openwrt.org>
 +M:    John Crispin <john@phrozen.org>
  L:    [email protected]
  S:    Maintained
  F:    arch/mips/ralink
@@@ -9573,7 -9480,7 +9573,7 @@@ F:      drivers/net/wireless/realtek/rtlwifi
  RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
  M:    Jes Sorensen <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8723au-mac80211
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8xxxu-devel
  S:    Maintained
  F:    drivers/net/wireless/realtek/rtl8xxxu/
  
@@@ -10055,12 -9962,6 +10055,12 @@@ T:  git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    security/apparmor/
  
 +LOADPIN SECURITY MODULE
 +M:    Kees Cook <[email protected]>
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git lsm/loadpin
 +S:    Supported
 +F:    security/loadpin/
 +
  YAMA SECURITY MODULE
  M:    Kees Cook <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git yama/tip
@@@ -10104,8 -10005,7 +10104,8 @@@ F:   drivers/infiniband/hw/ocrdma
  
  SFC NETWORK DRIVER
  M:    Solarflare linux maintainers <[email protected]>
 -M:    Shradha Shah <[email protected]>
 +M:    Edward Cree <[email protected]>
 +M:    Bert Kenward <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/sfc/
@@@ -10251,8 -10151,8 +10251,8 @@@ F:   arch/arm/mach-s3c24xx/bast-irq.
  TI DAVINCI MACHINE SUPPORT
  M:    Sekhar Nori <[email protected]>
  M:    Kevin Hilman <[email protected]>
 -T:    git git://gitorious.org/linux-davinci/linux-davinci.git
 -Q:    http://patchwork.kernel.org/project/linux-davinci/list/
 +L:    [email protected] (moderated for non-subscribers)
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci.git
  S:    Supported
  F:    arch/arm/mach-davinci/
  F:    drivers/i2c/busses/i2c-davinci.c
  S:    Maintained
  F:    drivers/staging/nvec/
  
 +STAGING - OLPC SECONDARY DISPLAY CONTROLLER (DCON)
 +M:    Jens Frederich <[email protected]>
 +M:    Daniel Drake <[email protected]>
 +M:    Jon Nettleton <[email protected]>
 +W:    http://wiki.laptop.org/go/DCON
 +S:    Maintained
 +F:    drivers/staging/olpc_dcon/
 +
  STAGING - REALTEK RTL8712U DRIVERS
  M:    Larry Finger <[email protected]>
  M:    Florian Schilhabel <[email protected]>.
@@@ -11032,11 -10924,10 +11032,11 @@@ M:        Prashant Gaikwad <[email protected]
  S:    Supported
  F:    drivers/clk/tegra/
  
 -TEGRA DMA DRIVER
 +TEGRA DMA DRIVERS
  M:    Laxman Dewangan <[email protected]>
 +M:    Jon Hunter <[email protected]>
  S:    Supported
 -F:    drivers/dma/tegra20-apb-dma.c
 +F:    drivers/dma/tegra*
  
  TEGRA I2C DRIVER
  M:    Laxman Dewangan <[email protected]>
@@@ -11163,15 -11054,6 +11163,15 @@@ S: Maintaine
  F:    drivers/clk/ti/
  F:    include/linux/clk/ti.h
  
 +TI ETHERNET SWITCH DRIVER (CPSW)
 +M:    Mugunthan V N <[email protected]>
 +R:    Grygorii Strashko <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/ti/cpsw*
 +F:    drivers/net/ethernet/ti/davinci*
 +
  TI FLASH MEDIA INTERFACE DRIVER
  M:    Alex Dubov <[email protected]>
  S:    Maintained
@@@ -11337,13 -11219,14 +11337,13 @@@ S:        Maintaine
  F:    drivers/media/i2c/tc358743*
  F:    include/media/i2c/tc358743.h
  
 -TMIO MMC DRIVER
 -M:    Ian Molton <[email protected]>
 +TMIO/SDHI MMC DRIVER
 +M:    Wolfram Sang <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    drivers/mmc/host/tmio_mmc*
  F:    drivers/mmc/host/sh_mobile_sdhi.c
 -F:    include/linux/mmc/tmio.h
 -F:    include/linux/mmc/sh_mobile_sdhi.h
 +F:    include/linux/mfd/tmio.h
  
  TMP401 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
@@@ -11375,14 -11258,6 +11375,14 @@@ W: https://linuxtv.or
  S:    Odd Fixes
  F:    drivers/media/pci/tw68/
  
 +TW686X VIDEO4LINUX DRIVER
 +M:    Ezequiel Garcia <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/pci/tw686x/
 +
  TPM DEVICE DRIVER
  M:    Peter Huewe <[email protected]>
  M:    Marcel Selhorst <[email protected]>
@@@ -11416,20 -11291,6 +11416,20 @@@ F: include/trace
  F:    kernel/trace/
  F:    tools/testing/selftests/ftrace/
  
 +TRACING MMIO ACCESSES (MMIOTRACE)
 +M:    Steven Rostedt <[email protected]>
 +M:    Ingo Molnar <[email protected]>
 +R:    Karol Herbst <[email protected]>
 +R:    Pekka Paalanen <[email protected]>
 +S:    Maintained
 +L:    [email protected]
 +L:    [email protected]
 +F:    kernel/trace/trace_mmiotrace.c
 +F:    include/linux/mmiotrace.h
 +F:    arch/x86/mm/kmmio.c
 +F:    arch/x86/mm/mmio-mod.c
 +F:    arch/x86/mm/testmmiotrace.c
 +
  TRIVIAL PATCHES
  M:    Jiri Kosina <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
  W:    http://www.slimlogic.co.uk/?p=48
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
  S:    Supported
 +F:    Documentation/devicetree/bindings/regulator/
  F:    drivers/regulator/
 +F:    include/dt-bindings/regulator/
  F:    include/linux/regulator/
  
  VRF
@@@ -12291,6 -12150,12 +12291,12 @@@ F: include/linux/workqueue.
  F:    kernel/workqueue.c
  F:    Documentation/workqueue.txt
  
+ X-POWERS MULTIFUNCTION PMIC DEVICE DRIVERS
+ M:    Chen-Yu Tsai <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ N:    axp[128]
  X.25 NETWORK LAYER
  M:    Andrew Hendry <[email protected]>
  L:    [email protected]
@@@ -12346,9 -12211,9 +12352,9 @@@ S:   Maintaine
  F:    drivers/media/tuners/tuner-xc2028.*
  
  XEN HYPERVISOR INTERFACE
 -M:    Konrad Rzeszutek Wilk <[email protected]>
  M:    Boris Ostrovsky <[email protected]>
  M:    David Vrabel <[email protected]>
 +M:    Juergen Gross <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
  S:    Supported
@@@ -12360,16 -12225,16 +12366,16 @@@ F:        include/xen
  F:    include/uapi/xen/
  
  XEN HYPERVISOR ARM
 -M:    Stefano Stabellini <s[email protected]>
 +M:    Stefano Stabellini <s[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 +S:    Maintained
  F:    arch/arm/xen/
  F:    arch/arm/include/asm/xen/
  
  XEN HYPERVISOR ARM64
 -M:    Stefano Stabellini <s[email protected]>
 +M:    Stefano Stabellini <s[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 +S:    Maintained
  F:    arch/arm64/xen/
  F:    arch/arm64/include/asm/xen/
  
diff --combined drivers/mfd/intel-lpss.c
index 6352aaba96a455095a33b806d9fffe9669e7c097,98e59809a831370aa3eedf4f8702b183842a0adf..41b113875d6452acc545085ffbc4c52c23079338
@@@ -34,6 -34,7 +34,7 @@@
  #define LPSS_DEV_SIZE         0x200
  #define LPSS_PRIV_OFFSET      0x200
  #define LPSS_PRIV_SIZE                0x100
+ #define LPSS_PRIV_REG_COUNT   (LPSS_PRIV_SIZE / 4)
  #define LPSS_IDMA64_OFFSET    0x800
  #define LPSS_IDMA64_SIZE      0x800
  
@@@ -76,6 -77,7 +77,7 @@@ struct intel_lpss 
        struct mfd_cell *cell;
        struct device *dev;
        void __iomem *priv;
+       u32 priv_ctx[LPSS_PRIV_REG_COUNT];
        int devid;
        u32 caps;
        u32 active_ltr;
@@@ -336,8 -338,8 +338,8 @@@ static int intel_lpss_register_clock(st
                return 0;
  
        /* Root clock */
-       clk = clk_register_fixed_rate(NULL, dev_name(lpss->dev), NULL,
-                                     CLK_IS_ROOT, lpss->info->clk_rate);
+       clk = clk_register_fixed_rate(NULL, dev_name(lpss->dev), NULL, 0,
+                                     lpss->info->clk_rate);
        if (IS_ERR(clk))
                return PTR_ERR(clk);
  
@@@ -407,7 -409,7 +409,7 @@@ int intel_lpss_probe(struct device *dev
        if (ret)
                return ret;
  
 -      lpss->cell->pset = info->pset;
 +      lpss->cell->properties = info->properties;
  
        intel_lpss_init_dev(lpss);
  
@@@ -493,6 -495,16 +495,16 @@@ EXPORT_SYMBOL_GPL(intel_lpss_prepare)
  
  int intel_lpss_suspend(struct device *dev)
  {
+       struct intel_lpss *lpss = dev_get_drvdata(dev);
+       unsigned int i;
+       /* Save device context */
+       for (i = 0; i < LPSS_PRIV_REG_COUNT; i++)
+               lpss->priv_ctx[i] = readl(lpss->priv + i * 4);
+       /* Put the device into reset state */
+       writel(0, lpss->priv + LPSS_PRIV_RESETS);
        return 0;
  }
  EXPORT_SYMBOL_GPL(intel_lpss_suspend);
  int intel_lpss_resume(struct device *dev)
  {
        struct intel_lpss *lpss = dev_get_drvdata(dev);
+       unsigned int i;
  
-       intel_lpss_init_dev(lpss);
+       intel_lpss_deassert_reset(lpss);
+       /* Restore device context */
+       for (i = 0; i < LPSS_PRIV_REG_COUNT; i++)
+               writel(lpss->priv_ctx[i], lpss->priv + i * 4);
  
        return 0;
  }
index a24b35fc2b5bf59464ea6a2b2f1e45e23b55f0a4,ce17ae8a81c922820b3f6c7fbeda81b49d1dbb8b..7946d6e38b87201e3904f3247d2807c2ed174ca4
@@@ -53,7 -53,7 +53,7 @@@
  #define INTEL_QUARK_I2C_CLK_HZ        33000000
  
  struct intel_quark_mfd {
-       struct pci_dev          *pdev;
+       struct device           *dev;
        struct clk              *i2c_clk;
        struct clk_lookup       *i2c_clk_lookup;
  };
@@@ -123,14 -123,14 +123,14 @@@ static const struct pci_device_id intel
  };
  MODULE_DEVICE_TABLE(pci, intel_quark_mfd_ids);
  
- static int intel_quark_register_i2c_clk(struct intel_quark_mfd *quark_mfd)
+ static int intel_quark_register_i2c_clk(struct device *dev)
  {
-       struct pci_dev *pdev = quark_mfd->pdev;
+       struct intel_quark_mfd *quark_mfd = dev_get_drvdata(dev);
        struct clk *i2c_clk;
  
-       i2c_clk = clk_register_fixed_rate(&pdev->dev,
+       i2c_clk = clk_register_fixed_rate(dev,
                                          INTEL_QUARK_I2C_CONTROLLER_CLK, NULL,
-                                         CLK_IS_ROOT, INTEL_QUARK_I2C_CLK_HZ);
+                                         0, INTEL_QUARK_I2C_CLK_HZ);
        if (IS_ERR(i2c_clk))
                return PTR_ERR(i2c_clk);
  
                                                INTEL_QUARK_I2C_CONTROLLER_CLK);
  
        if (!quark_mfd->i2c_clk_lookup) {
-               dev_err(&pdev->dev, "Fixed clk register failed\n");
+               clk_unregister(quark_mfd->i2c_clk);
+               dev_err(dev, "Fixed clk register failed\n");
                return -ENOMEM;
        }
  
        return 0;
  }
  
- static void intel_quark_unregister_i2c_clk(struct pci_dev *pdev)
+ static void intel_quark_unregister_i2c_clk(struct device *dev)
  {
-       struct intel_quark_mfd *quark_mfd = dev_get_drvdata(&pdev->dev);
+       struct intel_quark_mfd *quark_mfd = dev_get_drvdata(dev);
  
-       if (!quark_mfd->i2c_clk || !quark_mfd->i2c_clk_lookup)
+       if (!quark_mfd->i2c_clk_lookup)
                return;
  
        clkdev_drop(quark_mfd->i2c_clk_lookup);
@@@ -219,7 -220,8 +220,7 @@@ static int intel_quark_gpio_setup(struc
                return -ENOMEM;
  
        /* Set the properties for portA */
 -      pdata->properties->node         = NULL;
 -      pdata->properties->name         = "intel-quark-x1000-gpio-portA";
 +      pdata->properties->fwnode       = NULL;
        pdata->properties->idx          = 0;
        pdata->properties->ngpio        = INTEL_QUARK_MFD_NGPIO;
        pdata->properties->gpio_base    = INTEL_QUARK_MFD_GPIO_BASE;
@@@ -245,30 -247,38 +246,38 @@@ static int intel_quark_mfd_probe(struc
        quark_mfd = devm_kzalloc(&pdev->dev, sizeof(*quark_mfd), GFP_KERNEL);
        if (!quark_mfd)
                return -ENOMEM;
-       quark_mfd->pdev = pdev;
  
-       ret = intel_quark_register_i2c_clk(quark_mfd);
+       quark_mfd->dev = &pdev->dev;
+       dev_set_drvdata(&pdev->dev, quark_mfd);
+       ret = intel_quark_register_i2c_clk(&pdev->dev);
        if (ret)
                return ret;
  
-       dev_set_drvdata(&pdev->dev, quark_mfd);
        ret = intel_quark_i2c_setup(pdev, &intel_quark_mfd_cells[1]);
        if (ret)
-               return ret;
+               goto err_unregister_i2c_clk;
  
        ret = intel_quark_gpio_setup(pdev, &intel_quark_mfd_cells[0]);
        if (ret)
-               return ret;
+               goto err_unregister_i2c_clk;
+       ret = mfd_add_devices(&pdev->dev, 0, intel_quark_mfd_cells,
+                             ARRAY_SIZE(intel_quark_mfd_cells), NULL, 0,
+                             NULL);
+       if (ret)
+               goto err_unregister_i2c_clk;
+       return 0;
  
-       return mfd_add_devices(&pdev->dev, 0, intel_quark_mfd_cells,
-                              ARRAY_SIZE(intel_quark_mfd_cells), NULL, 0,
-                              NULL);
+ err_unregister_i2c_clk:
+       intel_quark_unregister_i2c_clk(&pdev->dev);
+       return ret;
  }
  
  static void intel_quark_mfd_remove(struct pci_dev *pdev)
  {
-       intel_quark_unregister_i2c_clk(pdev);
+       intel_quark_unregister_i2c_clk(&pdev->dev);
        mfd_remove_devices(&pdev->dev);
  }
  
diff --combined drivers/mfd/mfd-core.c
index fc1c1fc138133d86053ee32a2a7a7b96cd255145,4b4c1d4f32805a93e2f842e790f3332095497dda..3ac486a597f3c31e8e362f1f9954098cdf081086
@@@ -107,7 -107,7 +107,7 @@@ static void mfd_acpi_add_device(const s
  
                        strlcpy(ids[0].id, match->pnpid, sizeof(ids[0].id));
                        list_for_each_entry(child, &parent->children, node) {
-                               if (acpi_match_device_ids(child, ids)) {
+                               if (!acpi_match_device_ids(child, ids)) {
                                        adev = child;
                                        break;
                                }
@@@ -193,8 -193,8 +193,8 @@@ static int mfd_add_device(struct devic
                        goto fail_alias;
        }
  
 -      if (cell->pset) {
 -              ret = platform_device_add_properties(pdev, cell->pset);
 +      if (cell->properties) {
 +              ret = platform_device_add_properties(pdev, cell->properties);
                if (ret)
                        goto fail_alias;
        }
@@@ -334,6 -334,44 +334,44 @@@ void mfd_remove_devices(struct device *
  }
  EXPORT_SYMBOL(mfd_remove_devices);
  
+ static void devm_mfd_dev_release(struct device *dev, void *res)
+ {
+       mfd_remove_devices(dev);
+ }
+ /**
+  * devm_mfd_add_devices - Resource managed version of mfd_add_devices()
+  *
+  * Returns 0 on success or an appropriate negative error number on failure.
+  * All child-devices of the MFD will automatically be removed when it gets
+  * unbinded.
+  */
+ int devm_mfd_add_devices(struct device *dev, int id,
+                        const struct mfd_cell *cells, int n_devs,
+                        struct resource *mem_base,
+                        int irq_base, struct irq_domain *domain)
+ {
+       struct device **ptr;
+       int ret;
+       ptr = devres_alloc(devm_mfd_dev_release, sizeof(*ptr), GFP_KERNEL);
+       if (!ptr)
+               return -ENOMEM;
+       ret = mfd_add_devices(dev, id, cells, n_devs, mem_base,
+                             irq_base, domain);
+       if (ret < 0) {
+               devres_free(ptr);
+               return ret;
+       }
+       *ptr = dev;
+       devres_add(dev, ptr);
+       return ret;
+ }
+ EXPORT_SYMBOL(devm_mfd_add_devices);
  int mfd_clone_cell(const char *cell, const char **clones, size_t n_clones)
  {
        struct mfd_cell cell_entry;
diff --combined include/linux/mfd/core.h
index 9837f1e8c94c172fc257a73cf90db512fcb0f84e,4a0268afe546775bbbaad8dd334a6608f58bcac2..99c0395fe1f90ae2bd0a494ca74410262df30c90
@@@ -17,7 -17,7 +17,7 @@@
  #include <linux/platform_device.h>
  
  struct irq_domain;
 -struct property_set;
 +struct property_entry;
  
  /* Matches ACPI PNP id, either _HID or _CID, or ACPI _ADR */
  struct mfd_cell_acpi_match {
@@@ -47,7 -47,7 +47,7 @@@ struct mfd_cell 
        size_t                  pdata_size;
  
        /* device properties passed to the sub devices drivers */
 -      const struct property_set *pset;
 +      struct property_entry *properties;
  
        /*
         * Device Tree compatible string
@@@ -131,4 -131,8 +131,8 @@@ static inline int mfd_add_hotplug_devic
  
  extern void mfd_remove_devices(struct device *parent);
  
+ extern int devm_mfd_add_devices(struct device *dev, int id,
+                               const struct mfd_cell *cells, int n_devs,
+                               struct resource *mem_base,
+                               int irq_base, struct irq_domain *irq_domain);
  #endif
This page took 0.186218 seconds and 4 git commands to generate.