]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
Merge tag 'gpio-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Oct 2016 18:49:09 +0000 (11:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Oct 2016 18:49:09 +0000 (11:49 -0700)
Pull GPIO updates from Linus Walleij:
 "This is the bulk of GPIO changes for the v4.9 series:

  Subsystem improvements:

   - do away with the last users of the obsolete Kconfig options
     ARCH_REQUIRE_GPIOLIB and ARCH_WANT_OPTIONAL_GPIOLIB (the latter
     always sounded like an item on a wishlist to Santa Claus to me). We
     can now select GPIOLIB and be done with it, for all archs. After
     some struggle it even work on UM. Not that it has GPIO, but if it
     wants to, it can select the library.

   - continued efforts to make drivers properly either tristate or bool.

   - introduce a warning for drivers assigning default triggers to their
     irqchip lines when probed from device tree, so we find and fix
     these ambigous drivers. It is agreed that in the OF config path,
     the device tree defines trigger characteristics.

   - the same warning, mutatis mutandis, for ACPI-probed GPIO irqchips.

   - we introduce the ability to mark certain IRQ lines as "unusable" as
     they can be taken by BIOS/firmware, unrouted in silicon and
     generally nasty if you use them, and such things. This is put to
     good use in the STMPE driver and also in the Cherryview pin control
     driver.

   - a new "mockup" virtual GPIO device that can be used for testing.
     The plan is to add unit tests under tools/* for exercising this
     device and verify that the kernel code paths are working as they
     should.

   - make memory-mapped I/O-drivers depend on HAS_IOMEM. This was
     implicit all the time, but when people started building UM with
     allyesconfig or allmodconfig it exploded in their face.

   - move some stray bits of device tree and ACPI HW description
     callbacks down into their respective implementation silo. These
     were causing issues when compiling on !HAS_IOMEM as well, so now
     eventually UM compiles the GPIOLIB library if it wants to.

  New drivers:

   - new driver for the Aspeed GPIO front-end companion to the pin
     controller merged through the pin control tree.

   - new driver for the LP873x PMIC GPIO portions.

   - new driver for Technologic Systems' I2C FPGA GPIO such as TS4900,
     TS-7970, TS-7990 and TS-4100.

   - new driver for the Broadcom BCM63xx series including BCM6338 and
     BCM6345.

   - new driver for the Intel WhiskeyCove PMIC GPIO.

   - new driver for the Allwinner AXP209 PMIC GPIO portions.

   - new driver for Diamond Systems 48 line GPIO-MM, another of these
     port-mapped I/O expansion cards.

   - support the STMicroelectronics STMPE1600 variant in the STMPE
     driver.

  Driver improvements:

   - the STMPE driver now supports rising/falling edge detection
     properly for IRQs.

   - the PCA954x will now fetch and enable its VCC regulator properly.

   - major rework of the PCA953x driver with the goal of eventually
     switching it over to use regmap and thus modernize it even more.

   - switch the IOP driver to use the generic MMIO GPIO library.

   - move the ages old HTC EGPIO (extended GPIO) GPIO expander driver
     over to this subsystem from MFD, achieveing some separation of
     concerns"

* tag 'gpio-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (81 commits)
  gpio: add missing static inline
  gpio: OF: localize some gpiochip init functions
  gpio: acpi: separation of concerns
  gpio: OF: separation of concerns
  gpio: make memory-mapped drivers depend on HAS_IOMEM
  gpio: stmpe: use BIT() macro
  gpio: stmpe: forbid unused lines to be mapped as IRQs
  mfd/gpio: Move HTC GPIO driver to GPIO subsystem
  gpio: MAINTAINERS: Add an entry for GPIO mockup driver
  gpio/mockup: add virtual gpio device
  gpio: Added zynq specific check for special pins on bank zero
  gpio: axp209: Implement get_direction
  gpio: aspeed: remove redundant return value check
  gpio: loongson1: remove redundant return value check
  ARM: omap2: fix missing include
  gpio: tc3589x: fix up complaints on unsigned
  gpio: tc3589x: add .get_direction() and small cleanup
  gpio: f7188x: use gpiochip_get_data instead of container_of
  gpio: tps65218: use devm_gpiochip_add_data() for gpio registration
  gpio: aspeed: fix return value check in aspeed_gpio_probe()
  ...

1  2 
Documentation/kernel-parameters.txt
MAINTAINERS
arch/arm64/Kconfig
arch/arm64/Kconfig.platforms
drivers/gpio/Kconfig
drivers/gpio/gpio-mxc.c
drivers/gpio/gpiolib-of.c
drivers/regulator/Kconfig

index fcf05a07b06a619047b89645b6d7aa32e603debd,61f4dbf9d97ee84afbd68f680c498e46a5c649ea..6fa1d8ab973c50f39e0dcc304cab3772988886b1
@@@ -698,15 -698,6 +698,15 @@@ bytes respectively. Such letter suffixe
                        loops can be debugged more effectively on production
                        systems.
  
 +      clocksource.arm_arch_timer.fsl-a008585=
 +                      [ARM64]
 +                      Format: <bool>
 +                      Enable/disable the workaround of Freescale/NXP
 +                      erratum A-008585.  This can be useful for KVM
 +                      guests, if the guest device tree doesn't show the
 +                      erratum.  If unspecified, the workaround is
 +                      enabled based on the device tree.
 +
        clearcpuid=BITNUM [X86]
                        Disable CPUID feature X for the kernel. See
                        arch/x86/include/asm/cpufeatures.h for the valid bit
                        determined by the stdout-path property in device
                        tree's chosen node.
  
 -              cdns,<addr>
 -                      Start an early, polled-mode console on a cadence serial
 -                      port at the specified address. The cadence serial port
 -                      must already be setup and configured. Options are not
 -                      yet supported.
 +              cdns,<addr>[,options]
 +                      Start an early, polled-mode console on a Cadence
 +                      (xuartps) serial port at the specified address. Only
 +                      supported option is baud rate. If baud rate is not
 +                      specified, the serial port must already be setup and
 +                      configured.
  
                uart[8250],io,<addr>[,options]
                uart[8250],mmio,<addr>[,options]
                        Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
                        Default: 1024
  
+       gpio-mockup.gpio_mockup_ranges
+                       [HW] Sets the ranges of gpiochip of for this device.
+                       Format: <start1>,<end1>,<start2>,<end2>...
        hardlockup_all_cpu_backtrace=
                        [KNL] Should the hard-lockup detector generate
                        backtraces on all cpus.
  
        intel_idle.max_cstate=  [KNL,HW,ACPI,X86]
                        0       disables intel_idle and fall back on acpi_idle.
 -                      1 to 6  specify maximum depth of C-state.
 +                      1 to 9  specify maximum depth of C-state.
  
        intel_pstate=  [X86]
                       disable
                        than or equal to this physical address is ignored.
  
        maxcpus=        [SMP] Maximum number of processors that an SMP kernel
 -                      should make use of.  maxcpus=n : n >= 0 limits the
 -                      kernel to using 'n' processors.  n=0 is a special case,
 -                      it is equivalent to "nosmp", which also disables
 -                      the IO APIC.
 +                      will bring up during bootup.  maxcpus=n : n >= 0 limits
 +                      the kernel to bring up 'n' processors. Surely after
 +                      bootup you can bring up the other plugged cpu by executing
 +                      "echo 1 > /sys/devices/system/cpu/cpuX/online". So maxcpus
 +                      only takes effect during system bootup.
 +                      While n=0 is a special case, it is equivalent to "nosmp",
 +                      which also disables the IO APIC.
  
        max_loop=       [LOOP] The number of loop block devices that get
        (loop.max_loop) unconditionally pre-created at init time. The default
  
        nodelayacct     [KNL] Disable per-task delay accounting
  
 -      nodisconnect    [HW,SCSI,M68K] Disables SCSI disconnects.
 -
        nodsp           [SH] Disable hardware DSP at boot time.
  
        noefi           Disable EFI runtime services support.
  
        nr_cpus=        [SMP] Maximum number of processors that an SMP kernel
                        could support.  nr_cpus=n : n >= 1 limits the kernel to
 -                      supporting 'n' processors. Later in runtime you can not
 -                      use hotplug cpu feature to put more cpu back to online.
 -                      just like you compile the kernel NR_CPUS=n
 +                      support 'n' processors. It could be larger than the
 +                      number of already plugged CPU during bootup, later in
 +                      runtime you can physically add extra cpu until it reaches
 +                      n. So during boot up some boot time memory for per-cpu
 +                      variables need be pre-allocated for later physical cpu
 +                      hot plugging.
  
        nr_uarts=       [SERIAL] maximum number of UARTs to be registered.
  
                                PAGE_SIZE is used as alignment.
                                PCI-PCI bridge can be specified, if resource
                                windows need to be expanded.
 +                              To specify the alignment for several
 +                              instances of a device, the PCI vendor,
 +                              device, subvendor, and subdevice may be
 +                              specified, e.g., 4096@pci:8086:9c22:103c:198f
                ecrc=           Enable/disable PCIe ECRC (transaction layer
                                end-to-end CRC checking).
                                bios: Use BIOS/firmware settings. This is the
                                u = IGNORE_UAS (don't bind to the uas driver);
                                w = NO_WP_DETECT (don't test whether the
                                        medium is write-protected).
 +                              y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE
 +                                      even if the device claims no cache)
                        Example: quirks=0419:aaf5:rl,0421:0433:rc
  
        user_debug=     [KNL,ARM]
diff --combined MAINTAINERS
index f4b944c2683a891a3811b5583c03a447bdac7039,056c1c415307995f7f38b270283bea036aeabf71..4f4d5612309933d9deed6b78815e4ac343430a2a
@@@ -636,15 -636,6 +636,15 @@@ F:       drivers/tty/serial/altera_jtaguart.
  F:    include/linux/altera_uart.h
  F:    include/linux/altera_jtaguart.h
  
 +AMAZON ETHERNET DRIVERS
 +M:    Netanel Belgazal <netanel@annapurnalabs.com>
 +R:    Saeed Bishara <saeed@annapurnalabs.com>
 +R:    Zorik Machulsky <zorik@annapurnalabs.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    Documentation/networking/ena.txt
 +F:    drivers/net/ethernet/amazon/
 +
  AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
  M:    Tom Lendacky <thomas.lendacky@amd.com>
  M:    Gary Hook <gary.hook@amd.com>
@@@ -807,7 -798,6 +807,7 @@@ M: Laura Abbott <labbott@redhat.com
  M:    Sumit Semwal <sumit.semwal@linaro.org>
  L:    devel@driverdev.osuosl.org
  S:    Supported
 +F:    Documentation/devicetree/bindings/staging/ion/
  F:    drivers/staging/android/ion
  F:    drivers/staging/android/uapi/ion.h
  F:    drivers/staging/android/uapi/ion_test.h
@@@ -891,15 -881,6 +891,15 @@@ S:       Supporte
  F:    drivers/gpu/drm/arc/
  F:    Documentation/devicetree/bindings/display/snps,arcpgu.txt
  
 +ARM ARCHITECTED TIMER DRIVER
 +M:    Mark Rutland <mark.rutland@arm.com>
 +M:    Marc Zyngier <marc.zyngier@arm.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/include/asm/arch_timer.h
 +F:    arch/arm64/include/asm/arch_timer.h
 +F:    drivers/clocksource/arm_arch_timer.c
 +
  ARM HDLCD DRM DRIVER
  M:    Liviu Dudau <liviu.dudau@arm.com>
  S:    Supported
@@@ -922,17 -903,15 +922,17 @@@ F:      arch/arm/include/asm/floppy.
  
  ARM PMU PROFILING AND DEBUGGING
  M:    Will Deacon <will.deacon@arm.com>
 -R:    Mark Rutland <mark.rutland@arm.com>
 +M:    Mark Rutland <mark.rutland@arm.com>
  S:    Maintained
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  F:    arch/arm*/kernel/perf_*
  F:    arch/arm/oprofile/common.c
  F:    arch/arm*/kernel/hw_breakpoint.c
  F:    arch/arm*/include/asm/hw_breakpoint.h
  F:    arch/arm*/include/asm/perf_event.h
 -F:    drivers/perf/arm_pmu.c
 +F:    drivers/perf/*
  F:    include/linux/perf/arm_pmu.h
 +F:    Documentation/devicetree/bindings/arm/pmu.txt
  
  ARM PORT
  M:    Russell King <linux@armlinux.org.uk>
@@@ -1134,11 -1113,6 +1134,11 @@@ F:    drivers/hwtracing/coresight/
  F:    Documentation/trace/coresight.txt
  F:    Documentation/devicetree/bindings/arm/coresight.txt
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
 +F:    tools/perf/arch/arm/util/pmu.c
 +F:    tools/perf/arch/arm/util/auxtrace.c
 +F:    tools/perf/arch/arm/util/cs-etm.c
 +F:    tools/perf/arch/arm/util/cs-etm.h
 +F:    tools/perf/util/cs-etm.h
  
  ARM/CORGI MACHINE SUPPORT
  M:    Richard Purdie <rpurdie@rpsys.net>
@@@ -1640,8 -1614,7 +1640,8 @@@ N:      rockchi
  
  ARM/SAMSUNG EXYNOS ARM ARCHITECTURES
  M:    Kukjin Kim <kgene@kernel.org>
 -M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
 +R:    Javier Martinez Canillas <javier@osg.samsung.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  S:    Maintained
@@@ -1661,6 -1634,7 +1661,6 @@@ F:      drivers/*/*s3c64xx
  F:    drivers/*/*s5pv210*
  F:    drivers/memory/samsung/*
  F:    drivers/soc/samsung/*
 -F:    drivers/spi/spi-s3c*
  F:    Documentation/arm/Samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
  F:    Documentation/devicetree/bindings/sram/samsung-sram.txt
@@@ -1848,7 -1822,6 +1848,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  ARM/UNIPHIER ARCHITECTURE
  M:    Masahiro Yamada <yamada.masahiro@socionext.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier.git
  S:    Maintained
  F:    arch/arm/boot/dts/uniphier*
  F:    arch/arm/include/asm/hardware/cache-uniphier.h
@@@ -1856,7 -1829,6 +1856,7 @@@ F:      arch/arm/mach-uniphier
  F:    arch/arm/mm/cache-uniphier.c
  F:    arch/arm64/boot/dts/socionext/
  F:    drivers/bus/uniphier-system-bus.c
 +F:    drivers/clk/uniphier/
  F:    drivers/i2c/busses/i2c-uniphier*
  F:    drivers/pinctrl/uniphier/
  F:    drivers/tty/serial/8250/8250_uniphier.c
@@@ -2131,6 -2103,11 +2131,6 @@@ M:     Ludovic Desroches <ludovic.desroches
  S:    Maintained
  F:    drivers/mmc/host/atmel-mci.c
  
 -ATMEL AT91 / AT32 SERIAL DRIVER
 -M:    Nicolas Ferre <nicolas.ferre@atmel.com>
 -S:    Supported
 -F:    drivers/tty/serial/atmel_serial.c
 -
  ATMEL AT91 SAMA5D2-Compatible Shutdown Controller
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
  S:    Supported
@@@ -2498,7 -2475,7 +2498,7 @@@ F:      include/net/bluetooth
  BONDING DRIVER
  M:    Jay Vosburgh <j.vosburgh@gmail.com>
  M:    Veaceslav Falico <vfalico@gmail.com>
 -M:    Andy Gospodarek <gospo@cumulusnetworks.com>
 +M:    Andy Gospodarek <andy@greyhouse.net>
  L:    netdev@vger.kernel.org
  W:    http://sourceforge.net/projects/bonding/
  S:    Supported
@@@ -2513,7 -2490,7 +2513,7 @@@ S:      Supporte
  F:    kernel/bpf/
  
  BROADCOM B44 10/100 ETHERNET DRIVER
 -M:    Gary Zambrano <zambrano@broadcom.com>
 +M:    Michael Chan <michael.chan@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/broadcom/b44.*
@@@ -3148,7 -3125,7 +3148,7 @@@ L:      cocci@systeme.lip6.fr (moderated fo
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild.git misc
  W:    http://coccinelle.lip6.fr/
  S:    Supported
 -F:    Documentation/coccinelle.txt
 +F:    Documentation/dev-tools/coccinelle.rst
  F:    scripts/coccinelle/
  F:    scripts/coccicheck
  
@@@ -3174,7 -3151,6 +3174,7 @@@ COMMON CLK FRAMEWOR
  M:    Michael Turquette <mturquette@baylibre.com>
  M:    Stephen Boyd <sboyd@codeaurora.org>
  L:    linux-clk@vger.kernel.org
 +Q:    http://patchwork.kernel.org/project/linux-clk/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/clock/
@@@ -3262,7 -3238,7 +3262,7 @@@ F:      kernel/cpuset.
  CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)
  M:    Johannes Weiner <hannes@cmpxchg.org>
  M:    Michal Hocko <mhocko@kernel.org>
 -M:    Vladimir Davydov <vdavydov@virtuozzo.com>
 +M:    Vladimir Davydov <vdavydov.dev@gmail.com>
  L:    cgroups@vger.kernel.org
  L:    linux-mm@kvack.org
  S:    Maintained
@@@ -3283,7 -3259,7 +3283,7 @@@ S:      Maintaine
  F:    drivers/net/wan/cosa*
  
  CPMAC ETHERNET DRIVER
 -M:    Florian Fainelli <florian@openwrt.org>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/ti/cpmac.c
@@@ -3295,7 -3271,6 +3295,7 @@@ L:      linux-pm@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
  T:    git git://git.linaro.org/people/vireshk/linux.git (For ARM Updates)
 +F:    Documentation/cpu-freq/
  F:    drivers/cpufreq/
  F:    include/linux/cpufreq.h
  
@@@ -3794,6 -3769,12 +3794,12 @@@ F:    include/linux/regulator/da9211.
  F:    include/sound/da[79]*.h
  F:    sound/soc/codecs/da[79]*.[ch]
  
+ DIAMOND SYSTEMS GPIO-MM GPIO DRIVER
+ M:    William Breathitt Gray <vilhelm.gray@gmail.com>
+ L:    linux-gpio@vger.kernel.org
+ S:    Maintained
+ F:    drivers/gpio/gpio-gpio-mm.c
  DIGI NEO AND CLASSIC PCI PRODUCTS
  M:    Lidza Louina <lidza.louina@gmail.com>
  M:    Mark Hounschell <markh@compro.net>
@@@ -4419,6 -4400,7 +4425,6 @@@ F:      Documentation/filesystems/ecryptfs.t
  F:    fs/ecryptfs/
  
  EDAC-CORE
 -M:    Doug Thompson <dougthompson@xmission.com>
  M:    Borislav Petkov <bp@alien8.de>
  M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
@@@ -4431,12 -4413,14 +4437,12 @@@ F:   drivers/edac
  F:    include/linux/edac.h
  
  EDAC-AMD64
 -M:    Doug Thompson <dougthompson@xmission.com>
  M:    Borislav Petkov <bp@alien8.de>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/amd64_edac*
  
  EDAC-CALXEDA
 -M:    Doug Thompson <dougthompson@xmission.com>
  M:    Robert Richter <rric@kernel.org>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
@@@ -4452,21 -4436,17 +4458,21 @@@ F:   drivers/edac/octeon_edac
  
  EDAC-E752X
  M:    Mark Gross <mark.gross@intel.com>
 -M:    Doug Thompson <dougthompson@xmission.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/e752x_edac.c
  
  EDAC-E7XXX
 -M:    Doug Thompson <dougthompson@xmission.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/e7xxx_edac.c
  
 +EDAC-FSL_DDR
 +M:    York Sun <york.sun@nxp.com>
 +L:    linux-edac@vger.kernel.org
 +S:    Maintained
 +F:    drivers/edac/fsl_ddr_edac.*
 +
  EDAC-GHES
  M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
@@@ -4481,11 -4461,13 +4487,11 @@@ S:   Maintaine
  F:    drivers/edac/i82443bxgx_edac.c
  
  EDAC-I3000
 -M:    Jason Uhlenkott <juhlenko@akamai.com>
  L:    linux-edac@vger.kernel.org
 -S:    Maintained
 +S:    Orphan
  F:    drivers/edac/i3000_edac.c
  
  EDAC-I5000
 -M:    Doug Thompson <dougthompson@xmission.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/i5000_edac.c
@@@ -4549,12 -4531,6 +4555,12 @@@ L:    linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/sb_edac.c
  
 +EDAC-SKYLAKE
 +M:    Tony Luck <tony.luck@intel.com>
 +L:    linux-edac@vger.kernel.org
 +S:    Maintained
 +F:    drivers/edac/skx_edac.c
 +
  EDAC-XGENE
  APPLIED MICRO (APM) X-GENE SOC EDAC
  M:     Loc Ho <lho@apm.com>
@@@ -4597,13 -4573,6 +4603,13 @@@ M:    Peter Jones <pjones@redhat.com
  S:    Maintained
  F:    drivers/video/fbdev/efifb.c
  
 +EFI TEST DRIVER
 +L:    linux-efi@vger.kernel.org
 +M:    Ivan Hu <ivan.hu@canonical.com>
 +M:    Matt Fleming <matt@codeblueprint.co.uk>
 +S:    Maintained
 +F:    drivers/firmware/efi/test/
 +
  EFS FILESYSTEM
  W:    http://aeschi.ch.eu.org/efs/
  S:    Orphan
@@@ -4871,7 -4840,6 +4877,7 @@@ F:      tools/firewire
  
  FIRMWARE LOADER (request_firmware)
  M:    Ming Lei <ming.lei@canonical.com>
 +M:    Luis R. Rodriguez <mcgrof@kernel.org>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/firmware_class/
@@@ -5157,7 -5125,7 +5163,7 @@@ GCOV BASED KERNEL PROFILIN
  M:    Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
  S:    Maintained
  F:    kernel/gcov/
 -F:    Documentation/gcov.txt
 +F:    Documentation/dev-tools/gcov.rst
  
  GDT SCSI DISK ARRAY CONTROLLER DRIVER
  M:    Achim Leubner <achim_leubner@adaptec.com>
@@@ -5274,6 -5242,13 +5280,13 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/input/touchscreen/goodix.c
  
+ GPIO MOCKUP DRIVER
+ M:    Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
+ L:    linux-gpio@vger.kernel.org
+ S:    Maintained
+ F:    drivers/gpio/gpio-mockup.c
+ F:    tools/testing/selftests/gpio/
  GPIO SUBSYSTEM
  M:    Linus Walleij <linus.walleij@linaro.org>
  M:    Alexandre Courbot <gnurou@gmail.com>
@@@ -5605,9 -5580,10 +5618,9 @@@ F:     Documentation/devicetree/bindings/sc
  
  HOST AP DRIVER
  M:    Jouni Malinen <j@w1.fi>
 -L:    hostap@shmoo.com (subscribers-only)
  L:    linux-wireless@vger.kernel.org
 -W:    http://hostap.epitest.fi/
 -S:    Maintained
 +W:    http://w1.fi/hostap-driver.html
 +S:    Obsolete
  F:    drivers/net/wireless/intersil/hostap/
  
  HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
@@@ -5644,7 -5620,7 +5657,7 @@@ M:      Sebastian Reichel <sre@kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi.git
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-hsi
 -F:    Documentation/hsi.txt
 +F:    Documentation/device-drivers/serial-interfaces.rst
  F:    drivers/hsi/
  F:    include/linux/hsi/
  F:    include/uapi/linux/hsi/
@@@ -6123,7 -6099,7 +6136,7 @@@ S:      Supporte
  F:    drivers/cpufreq/intel_pstate.c
  
  INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
 -M:    Maik Broemme <mbroemme@plusserver.de>
 +M:    Maik Broemme <mbroemme@libmpq.org>
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/fb/intelfb.txt
@@@ -6625,7 -6601,7 +6638,7 @@@ L:      kasan-dev@googlegroups.co
  S:    Maintained
  F:    arch/*/include/asm/kasan.h
  F:    arch/*/mm/kasan_init*
 -F:    Documentation/kasan.txt
 +F:    Documentation/dev-tools/kasan.rst
  F:    include/linux/kasan*.h
  F:    lib/test_kasan.c
  F:    mm/kasan/
@@@ -6841,7 -6817,7 +6854,7 @@@ KMEMCHEC
  M:    Vegard Nossum <vegardno@ifi.uio.no>
  M:    Pekka Enberg <penberg@kernel.org>
  S:    Maintained
 -F:    Documentation/kmemcheck.txt
 +F:    Documentation/dev-tools/kmemcheck.rst
  F:    arch/x86/include/asm/kmemcheck.h
  F:    arch/x86/mm/kmemcheck/
  F:    include/linux/kmemcheck.h
@@@ -6850,7 -6826,7 +6863,7 @@@ F:      mm/kmemcheck.
  KMEMLEAK
  M:    Catalin Marinas <catalin.marinas@arm.com>
  S:    Maintained
 -F:    Documentation/kmemleak.txt
 +F:    Documentation/dev-tools/kmemleak.rst
  F:    include/linux/kmemleak.h
  F:    mm/kmemleak.c
  F:    mm/kmemleak-test.c
@@@ -7463,8 -7439,9 +7476,8 @@@ F:      Documentation/hwmon/max2075
  F:    drivers/hwmon/max20751.c
  
  MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
 -M:    "Hans J. Koch" <hjk@hansjkoch.de>
  L:    linux-hwmon@vger.kernel.org
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/hwmon/max6650
  F:    drivers/hwmon/max6650.c
  
@@@ -7485,8 -7462,7 +7498,8 @@@ F:      Documentation/devicetree/bindings/so
  F:    sound/soc/codecs/max9860.*
  
  MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
 -M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    drivers/power/max14577_charger.c
@@@ -7502,8 -7478,7 +7515,8 @@@ F:      include/dt-bindings/*/*max77802.
  
  MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS BASED BOARDS
  M:    Chanwoo Choi <cw00.choi@samsung.com>
 -M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    drivers/*/max14577*.c
@@@ -7687,26 -7662,13 +7700,26 @@@ W:   http://www.mellanox.co
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
  F:    drivers/net/ethernet/mellanox/mlxsw/
  
 +MELLANOX MLXCPLD LED DRIVER
 +M:    Vadim Pasternak <vadimp@mellanox.com>
 +L:    linux-leds@vger.kernel.org
 +S:    Supported
 +F:    drivers/leds/leds-mlxcpld.c
 +F:    Documentation/leds/leds-mlxcpld.txt
 +
 +MELLANOX PLATFORM DRIVER
 +M:      Vadim Pasternak <vadimp@mellanox.com>
 +L:      platform-driver-x86@vger.kernel.org
 +S:      Supported
 +F:      arch/x86/platform/mellanox/mlx-platform.c
 +
  SOFT-ROCE DRIVER (rxe)
  M:    Moni Shoua <monis@mellanox.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
  W:    https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home
  Q:    http://patchwork.kernel.org/project/linux-rdma/list/
 -F:    drivers/infiniband/hw/rxe/
 +F:    drivers/infiniband/sw/rxe/
  F:    include/uapi/rdma/rdma_user_rxe.h
  
  MEMBARRIER SUPPORT
@@@ -7785,12 -7747,6 +7798,12 @@@ T:    git git://git.monstr.eu/linux-2.6-mi
  S:    Supported
  F:    arch/microblaze/
  
 +MICROCHIP / ATMEL AT91 / AT32 SERIAL DRIVER
 +M:    Richard Genoud <richard.genoud@gmail.com>
 +S:    Maintained
 +F:    drivers/tty/serial/atmel_serial.c
 +F:    include/linux/atmel_serial.h
 +
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <yu.c.chen@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -8199,15 -8155,6 +8212,15 @@@ S:    Maintaine
  W:    https://fedorahosted.org/dropwatch/
  F:    net/core/drop_monitor.c
  
 +NETWORKING [DSA]
 +M:    Andrew Lunn <andrew@lunn.ch>
 +M:    Vivien Didelot <vivien.didelot@savoirfairelinux.com>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
 +S:    Maintained
 +F:    net/dsa/
 +F:    include/net/dsa.h
 +F:    drivers/net/dsa/
 +
  NETWORKING [GENERAL]
  M:    "David S. Miller" <davem@davemloft.net>
  L:    netdev@vger.kernel.org
@@@ -8783,7 -8730,7 +8796,7 @@@ F:      drivers/oprofile
  F:    include/linux/oprofile.h
  
  ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
 -M:    Mark Fasheh <mfasheh@suse.com>
 +M:    Mark Fasheh <mfasheh@versity.com>
  M:    Joel Becker <jlbec@evilplan.org>
  L:    ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
  W:    http://ocfs2.wiki.kernel.org
@@@ -8895,7 -8842,6 +8908,7 @@@ S:      Supporte
  F:    Documentation/virtual/paravirt_ops.txt
  F:    arch/*/kernel/paravirt*
  F:    arch/*/include/asm/paravirt.h
 +F:    include/linux/hypervisor.h
  
  PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES
  M:    Tim Waugh <tim@cyberelk.net>
@@@ -9298,7 -9244,7 +9311,7 @@@ F:      drivers/pinctrl/sh-pfc
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <tomasz.figa@gmail.com>
 -M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
@@@ -9739,12 -9685,6 +9752,12 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/net/wireless/ath/ath10k/
  
 +QUALCOMM EMAC GIGABIT ETHERNET DRIVER
 +M:    Timur Tabi <timur@codeaurora.org>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/qualcomm/emac/
 +
  QUALCOMM HEXAGON ARCHITECTURE
  M:    Richard Kuo <rkuo@codeaurora.org>
  L:    linux-hexagon@vger.kernel.org
@@@ -9965,12 -9905,6 +9978,12 @@@ F:    drivers/rpmsg
  F:    Documentation/rpmsg.txt
  F:    include/linux/rpmsg.h
  
 +RENESAS CLOCK DRIVERS
 +M:    Geert Uytterhoeven <geert+renesas@glider.be>
 +L:    linux-renesas-soc@vger.kernel.org
 +S:    Supported
 +F:    drivers/clk/renesas/
 +
  RENESAS ETHERNET DRIVERS
  R:    Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
  L:    netdev@vger.kernel.org
@@@ -10006,7 -9940,6 +10019,7 @@@ F:    net/rfkill
  
  RHASHTABLE
  M:    Thomas Graf <tgraf@suug.ch>
 +M:    Herbert Xu <herbert@gondor.apana.org.au>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    lib/rhashtable.c
@@@ -10150,8 -10083,8 +10163,8 @@@ S:   Supporte
  F:    drivers/s390/cio/
  
  S390 DASD DRIVER
 -M:    Stefan Weinhuber <wein@de.ibm.com>
 -M:    Stefan Haberland <stefan.haberland@de.ibm.com>
 +M:    Stefan Haberland <sth@linux.vnet.ibm.com>
 +M:    Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
  S:    Supported
@@@ -10244,7 -10177,7 +10257,7 @@@ S:   Maintaine
  F:    drivers/platform/x86/samsung-laptop.c
  
  SAMSUNG AUDIO (ASoC) DRIVERS
 -M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
  M:    Sangbeom Kim <sbkim73@samsung.com>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -10259,8 -10192,7 +10272,8 @@@ F:   drivers/video/fbdev/s3c-fb.
  
  SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVERS
  M:    Sangbeom Kim <sbkim73@samsung.com>
 -M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-kernel@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Supported
@@@ -10315,23 -10247,9 +10328,23 @@@ F: drivers/nfc/s3fwrn
  SAMSUNG SOC CLOCK DRIVERS
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  M:    Tomasz Figa <tomasz.figa@gmail.com>
 +M:    Chanwoo Choi <cw00.choi@samsung.com>
  S:    Supported
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  F:    drivers/clk/samsung/
 +F:    include/dt-bindings/clock/exynos*.h
 +F:    Documentation/devicetree/bindings/clock/exynos*.txt
 +
 +SAMSUNG SPI DRIVERS
 +M:    Kukjin Kim <kgene@kernel.org>
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Andi Shyti <andi.shyti@samsung.com>
 +L:    linux-spi@vger.kernel.org
 +L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/spi-samsung.txt
 +F:    drivers/spi/spi-s3c*
 +F:    include/linux/platform_data/spi-s3c64xx.h
  
  SAMSUNG SXGBE DRIVERS
  M:    Byungho An <bh74.an@samsung.com>
@@@ -11179,7 -11097,6 +11192,7 @@@ F:   Documentation/spi
  F:    drivers/spi/
  F:    include/linux/spi/
  F:    include/uapi/linux/spi/
 +F:    tools/spi/
  
  SPIDERNET NETWORK DRIVER for CELL
  M:    Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
@@@ -11313,8 -11230,12 +11326,8 @@@ S:  Odd Fixe
  F:    drivers/staging/vt665?/
  
  STAGING - WILC1000 WIFI DRIVER
 -M:    Johnny Kim <johnny.kim@atmel.com>
 -M:    Austin Shin <austin.shin@atmel.com>
 -M:    Chris Park <chris.park@atmel.com>
 -M:    Tony Cho <tony.cho@atmel.com>
 -M:    Glen Lee <glen.lee@atmel.com>
 -M:    Leo Kim <leo.kim@atmel.com>
 +M:    Aditya Shankar <aditya.shankar@microchip.com>
 +M:    Ganesh Krishna <ganesh.krishna@microchip.com>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  F:    drivers/staging/wilc1000/
@@@ -11682,7 -11603,7 +11695,7 @@@ F:   Documentation/devicetree/bindings/th
  THERMAL/CPU_COOLING
  M:    Amit Daniel Kachhap <amit.kachhap@gmail.com>
  M:    Viresh Kumar <viresh.kumar@linaro.org>
 -M:    Javi Merino <javi.merino@arm.com>
 +M:    Javi Merino <javi.merino@kernel.org>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    Documentation/thermal/cpu-cooling-api.txt
@@@ -12249,7 -12170,7 +12262,7 @@@ S:   Maintaine
  F:    drivers/net/usb/lan78xx.*
  
  USB MASS STORAGE DRIVER
 -M:    Matthew Dharm <mdharm-usb@one-eyed-alien.net>
 +M:    Alan Stern <stern@rowland.harvard.edu>
  L:    linux-usb@vger.kernel.org
  L:    usb-storage@lists.one-eyed-alien.net
  S:    Maintained
@@@ -12333,7 -12254,6 +12346,7 @@@ F:   drivers/net/usb/rtl8150.
  USB SERIAL SUBSYSTEM
  M:    Johan Hovold <johan@kernel.org>
  L:    linux-usb@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git
  S:    Maintained
  F:    Documentation/usb/usb-serial.txt
  F:    drivers/usb/serial/
@@@ -12347,7 -12267,6 +12360,7 @@@ F:   drivers/net/usb/smsc75xx.
  
  USB SMSC95XX ETHERNET DRIVER
  M:    Steve Glendinning <steve.glendinning@shawell.net>
 +M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/usb/smsc95xx.*
@@@ -12454,6 -12373,7 +12467,6 @@@ F:   fs/hostfs
  F:    fs/hppfs/
  
  USERSPACE I/O (UIO)
 -M:    "Hans J. Koch" <hjk@hansjkoch.de>
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
@@@ -12635,7 -12555,7 +12648,7 @@@ F:   include/linux/if_*vlan.
  F:    net/8021q/
  
  VLYNQ BUS
 -M:    Florian Fainelli <florian@openwrt.org>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    openwrt-devel@lists.openwrt.org (subscribers-only)
  S:    Maintained
  F:    drivers/vlynq/vlynq.c
diff --combined arch/arm64/Kconfig
index 7d6bcf6339e14cbe18c97c4d1c6e324e5bbf24f2,41f300a87c5147c568de6156a5f954fe9c29f780..01600401a53e3f4f926506d8fc6abc193a71301b
@@@ -4,8 -4,6 +4,8 @@@ config ARM6
        select ACPI_GENERIC_GSI if ACPI
        select ACPI_REDUCED_HARDWARE_ONLY if ACPI
        select ACPI_MCFG if ACPI
 +      select ACPI_SPCR_TABLE if ACPI
 +      select ARCH_CLOCKSOURCE_DATA
        select ARCH_HAS_DEVMEM_IS_ALLOWED
        select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
@@@ -17,7 -15,6 +17,6 @@@
        select ARCH_USE_CMPXCHG_LOCKREF
        select ARCH_SUPPORTS_ATOMIC_RMW
        select ARCH_SUPPORTS_NUMA_BALANCING
-       select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
        select ARCH_WANT_FRAME_POINTERS
        select ARCH_HAS_UBSAN_SANITIZE_ALL
        select NO_BOOTMEM
        select OF
        select OF_EARLY_FLATTREE
 -      select OF_NUMA if NUMA && OF
        select OF_RESERVED_MEM
        select PCI_ECAM if ACPI
 -      select PERF_USE_VMALLOC
        select POWER_RESET
        select POWER_SUPPLY
        select SPARSE_IRQ
@@@ -122,9 -121,6 +121,9 @@@ config ARCH_PHYS_ADDR_T_64BI
  config MMU
        def_bool y
  
 +config DEBUG_RODATA
 +      def_bool y
 +
  config ARM64_PAGE_SHIFT
        int
        default 16 if ARM64_64K_PAGES
@@@ -418,13 -414,18 +417,13 @@@ config ARM64_ERRATUM_84571
  
  config ARM64_ERRATUM_843419
        bool "Cortex-A53: 843419: A load or store might access an incorrect address"
 -      depends on MODULES
        default y
 -      select ARM64_MODULE_CMODEL_LARGE
 +      select ARM64_MODULE_CMODEL_LARGE if MODULES
        help
 -        This option builds kernel modules using the large memory model in
 -        order to avoid the use of the ADRP instruction, which can cause
 -        a subsequent memory access to use an incorrect address on Cortex-A53
 -        parts up to r0p4.
 -
 -        Note that the kernel itself must be linked with a version of ld
 -        which fixes potentially affected ADRP instructions through the
 -        use of veneers.
 +        This option links the kernel with '--fix-cortex-a53-843419' and
 +        builds modules using the large memory model in order to avoid the use
 +        of the ADRP instruction, which can cause a subsequent memory access
 +        to use an incorrect address on Cortex-A53 parts up to r0p4.
  
          If unsure, say Y.
  
@@@ -580,8 -581,7 +579,8 @@@ config HOTPLUG_CP
  # Common NUMA Features
  config NUMA
        bool "Numa Memory Allocation and Scheduler Support"
 -      depends on SMP
 +      select ACPI_NUMA if ACPI
 +      select OF_NUMA
        help
          Enable NUMA (Non Uniform Memory Access) support.
  
@@@ -602,18 -602,11 +601,18 @@@ config USE_PERCPU_NUMA_NODE_I
        def_bool y
        depends on NUMA
  
 +config HAVE_SETUP_PER_CPU_AREA
 +      def_bool y
 +      depends on NUMA
 +
 +config NEED_PER_CPU_EMBED_FIRST_CHUNK
 +      def_bool y
 +      depends on NUMA
 +
  source kernel/Kconfig.preempt
  source kernel/Kconfig.hz
  
  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
 -      depends on !HIBERNATION
        def_bool y
  
  config ARCH_HAS_HOLES_MEMORYMODEL
index 96ef543f6bd8b59bda5432b9f44316aaf1d6537c,41d82b327e6a0eeb61d24f65e0b7d1d80318b703..b6b36570b1c0fae5ba3f2ab52b78e62ac58cab84
@@@ -15,8 -15,8 +15,8 @@@ config ARCH_ALPIN
  
  config ARCH_BCM2835
        bool "Broadcom BCM2835 family"
-       select ARCH_REQUIRE_GPIOLIB
        select CLKSRC_OF
+       select GPIOLIB
        select PINCTRL
        select PINCTRL_BCM2835
        select ARM_AMBA
  config ARCH_BCM_IPROC
        bool "Broadcom iProc SoC Family"
        select COMMON_CLK_IPROC
+       select GPIOLIB
        select PINCTRL
-       select ARCH_REQUIRE_GPIOLIB
        help
          This enables support for Broadcom iProc based SoCs
  
  config ARCH_BERLIN
        bool "Marvell Berlin SoC Family"
-       select ARCH_REQUIRE_GPIOLIB
        select DW_APB_ICTL
+       select GPIOLIB
        select PINCTRL
        help
          This enables support for Marvell Berlin SoC Family
@@@ -55,7 -55,6 +55,7 @@@ config ARCH_EXYNO
  
  config ARCH_LAYERSCAPE
        bool "ARMv8 based Freescale Layerscape SoC family"
 +      select EDAC_SUPPORT
        help
          This enables support for the Freescale Layerscape SoC family.
  
@@@ -94,7 -93,6 +94,7 @@@ config ARCH_MVEB
        select ARMADA_CP110_SYSCON
        select ARMADA_37XX_CLK
        select MVEBU_ODMI
 +      select MVEBU_PIC
        help
          This enables support for Marvell EBU familly, including:
           - Armada 3700 SoC Family
@@@ -110,7 -108,7 +110,7 @@@ config ARCH_QCO
  config ARCH_ROCKCHIP
        bool "Rockchip Platforms"
        select ARCH_HAS_RESET_CONTROLLER
-       select ARCH_REQUIRE_GPIOLIB
+       select GPIOLIB
        select PINCTRL
        select PINCTRL_ROCKCHIP
        select ROCKCHIP_TIMER
@@@ -156,11 -154,12 +156,11 @@@ config ARCH_STRATIX1
  config ARCH_TEGRA
        bool "NVIDIA Tegra SoC Family"
        select ARCH_HAS_RESET_CONTROLLER
-       select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select CLKSRC_OF
        select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK
+       select GPIOLIB
        select PINCTRL
        select RESET_CONTROLLER
        help
@@@ -184,8 -183,8 +184,8 @@@ config ARCH_UNIPHIE
  
  config ARCH_VEXPRESS
        bool "ARMv8 software model (Versatile Express)"
-       select ARCH_REQUIRE_GPIOLIB
        select COMMON_CLK_VERSATILE
+       select GPIOLIB
        select PM
        select PM_GENERIC_DOMAINS
        select POWER_RESET_VEXPRESS
diff --combined drivers/gpio/Kconfig
index 24caedb00a7a34f141bced4062f07a8d72439a63,2401443cbf289f51eb3f0de4e320fa6a83c6538e..26ee00f6bd5829c04d66b4621643375959c161da
@@@ -10,27 -10,6 +10,6 @@@ config ARCH_HAVE_CUSTOM_GPIO_
          overriding the default implementations.  New uses of this are
          strongly discouraged.
  
- config ARCH_WANT_OPTIONAL_GPIOLIB
-       bool
-       help
-         Select this config option from the architecture Kconfig, if
-         it is possible to use gpiolib on the architecture, but let the
-         user decide whether to actually build it or not.
-         Select this instead of ARCH_REQUIRE_GPIOLIB, if your architecture does
-         not depend on GPIOs being available, but rather let the user
-         decide whether he needs it or not.
- config ARCH_REQUIRE_GPIOLIB
-       bool
-       select GPIOLIB
-       help
-         Platforms select gpiolib if they use this infrastructure
-         for all their GPIOs, usually starting with ones integrated
-         into SOC processors.
-         Selecting this from the architecture code will cause the gpiolib
-         code to always get built in.
  menuconfig GPIOLIB
        bool "GPIO Support"
        select ANON_INODES
@@@ -50,7 -29,6 +29,7 @@@ config GPIO_DEVRE
  config OF_GPIO
        def_bool y
        depends on OF
 +      depends on HAS_IOMEM
  
  config GPIO_ACPI
        def_bool y
@@@ -87,6 -65,7 +66,7 @@@ config GPIO_SYSF
          exported to userspace; this can be useful when debugging.
  
  config GPIO_GENERIC
+       depends on HAS_IOMEM # Only for IOMEM drivers
        tristate
  
  # put drivers in the right section, in alphabetical order
@@@ -96,6 -75,7 +76,7 @@@ config GPIO_MAX730
        tristate
  
  menu "Memory mapped GPIO drivers"
+       depends on HAS_IOMEM
  
  config GPIO_74XX_MMIO
        tristate "GPIO driver for 74xx-ICs with MMIO access"
@@@ -128,6 -108,13 +109,13 @@@ config GPIO_AMDP
          driver for GPIO functionality on Promontory IOHub
          Require ACPI ASL code to enumerate as a platform device.
  
+ config GPIO_ASPEED
+       tristate "Aspeed GPIO support"
+       depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
+       select GPIOLIB_IRQCHIP
+       help
+         Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers.
  config GPIO_ATH79
        tristate "Atheros AR71XX/AR724X/AR913X GPIO support"
        default y if ATH79
          Select this option to enable GPIO driver for
          Atheros AR71XX/AR724X/AR913X SoC devices.
  
+ config GPIO_AXP209
+       tristate "X-Powers AXP209 PMIC GPIO Support"
+       depends on MFD_AXP20X
+       help
+         Say yes to enable GPIO support for the AXP209 PMIC
  config GPIO_BCM_KONA
        bool "Broadcom Kona GPIO"
        depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
@@@ -189,7 -182,7 +183,7 @@@ config GPIO_EP93X
  config GPIO_ETRAXFS
        bool "Axis ETRAX FS General I/O"
        depends on CRIS || COMPILE_TEST
 -      depends on OF
 +      depends on OF_GPIO
        select GPIO_GENERIC
        select GPIOLIB_IRQCHIP
        help
@@@ -215,7 -208,7 +209,7 @@@ config GPIO_GENERIC_PLATFOR
  
  config GPIO_GRGPIO
        tristate "Aeroflex Gaisler GRGPIO support"
 -      depends on OF
 +      depends on OF_GPIO
        select GPIO_GENERIC
        select IRQ_DOMAIN
        help
@@@ -237,7 -230,8 +231,8 @@@ config GPIO_IC
  
  config GPIO_IOP
        tristate "Intel IOP GPIO"
-       depends on ARM && (ARCH_IOP32X || ARCH_IOP33X)
+       depends on ARCH_IOP32X || ARCH_IOP33X || COMPILE_TEST
+       select GPIO_GENERIC
        help
          Say yes here to support the GPIO functionality of a number of Intel
          IOP32X or IOP33X.
@@@ -287,6 -281,18 +282,18 @@@ config GPIO_MM_LANTI
          (EBU) found on Lantiq SoCs. The gpios are output only as they are
          created by attaching a 16bit latch to the bus.
  
+ config GPIO_MOCKUP
+       tristate "GPIO Testing Driver"
+       depends on GPIOLIB
+       select GPIO_SYSFS
+       help
+         This enables GPIO Testing driver, which provides a way to test GPIO
+         subsystem through sysfs(or char device) and debugfs. GPIO_SYSFS
+         must be selected for this test.
+         User could use it through the script in
+         tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
+         it.
  config GPIO_MOXART
        bool "MOXART GPIO support"
        depends on ARCH_MOXART || COMPILE_TEST
@@@ -313,7 -319,7 +320,7 @@@ config GPIO_MPC8XX
  config GPIO_MVEBU
        def_bool y
        depends on PLAT_ORION
 -      depends on OF
 +      depends on OF_GPIO
        select GENERIC_IRQ_CHIP
  
  config GPIO_MXC
@@@ -406,7 -412,7 +413,7 @@@ config GPIO_TEGR
        bool "NVIDIA Tegra GPIO support"
        default ARCH_TEGRA
        depends on ARCH_TEGRA || COMPILE_TEST
 -      depends on OF
 +      depends on OF_GPIO
        help
          Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
  
@@@ -574,6 -580,19 +581,19 @@@ config GPIO_F7188
          To compile this driver as a module, choose M here: the module will
          be called f7188x-gpio.
  
+ config GPIO_GPIO_MM
+       tristate "Diamond Systems GPIO-MM GPIO support"
+       depends on ISA_BUS_API
+       help
+         Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.
+         The Diamond Systems GPIO-MM device features 48 lines of digital I/O
+         via the emulation of dual 82C55A PPI chips. This driver provides GPIO
+         support for these 48 channels of digital I/O.
+         The base port addresses for the devices may be configured via the base
+         array module parameter.
  config GPIO_IT87
        tristate "IT87xx GPIO support"
        help
@@@ -780,6 -799,13 +800,13 @@@ config GPIO_TPIC281
          To compile this driver as a module, choose M here: the module will
          be called gpio-tpic2810.
  
+ config GPIO_TS4900
+       tristate "Technologic Systems FPGA I2C GPIO"
+       select REGMAP_I2C
+       help
+         Say yes here to enabled the GPIO driver for Technologic's FPGA core.
+         Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
  endmenu
  
  menu "MFD GPIO expanders"
@@@ -849,6 -875,14 +876,14 @@@ config GPIO_DLN
          This driver can also be built as a module. If so, the module
          will be called gpio-dln2.
  
+ config HTC_EGPIO
+       bool "HTC EGPIO support"
+       depends on GPIOLIB && ARM
+       help
+           This driver supports the CPLD egpio chip present on
+           several HTC phones.  It provides basic support for input
+           pins, output pins, and irqs.
  config GPIO_JANZ_TTL
        tristate "Janz VMOD-TTL Digital IO Module"
        depends on MFD_JANZ_CMODIO
@@@ -875,6 -909,16 +910,16 @@@ config GPIO_LP394
          LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
          Open drain outputs are required for this usage.
  
+ config GPIO_LP873X
+       tristate "TI LP873X GPO"
+       depends on MFD_TI_LP873X
+       help
+         This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
+         on LP873X PMICs.
+         This driver can also be built as a module. If so, the module will be
+           called gpio-lp873x.
  config GPIO_MAX77620
        tristate "GPIO support for PMIC MAX77620 and MAX20024"
        depends on MFD_MAX77620
@@@ -985,6 -1029,19 +1030,19 @@@ config GPIO_UCB140
          This enables support for the Philips UCB1400 GPIO pins.
          The UCB1400 is an AC97 audio codec.
  
+ config GPIO_WHISKEY_COVE
+       tristate "GPIO support for Whiskey Cove PMIC"
+       depends on INTEL_SOC_PMIC
+       select GPIOLIB_IRQCHIP
+       help
+         Support for GPIO pins on Whiskey Cove PMIC.
+         Say Yes if you have a Intel SoC based tablet with Whiskey Cove PMIC
+         inside.
+         This driver can also be built as a module. If so, the module will be
+         called gpio-wcove.
  config GPIO_WM831X
        tristate "WM831x GPIOs"
        depends on MFD_WM831X
@@@ -1100,7 -1157,7 +1158,7 @@@ menu "SPI GPIO expanders
  
  config GPIO_74X164
        tristate "74x164 serial-in/parallel-out 8-bits shift register"
 -      depends on OF
 +      depends on OF_GPIO
        help
          Driver for 74x164 compatible serial-in/parallel-out 8-outputs
          shift registers. This driver can be used to provide access
@@@ -1131,7 -1188,6 +1189,7 @@@ menu "SPI or I2C GPIO expanders
  
  config GPIO_MCP23S08
        tristate "Microchip MCP23xxx I/O expander"
 +      depends on OF_GPIO
        select GPIOLIB_IRQCHIP
        help
          SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
diff --combined drivers/gpio/gpio-mxc.c
index e38989a4fa0c6b7ce0384722a07f65154aea178b,e35af5249478b24ac02720abc3a14216c9c0109e..c1a1e00b8cb024f12d6243226fc01de4aa37064a
@@@ -2,7 -2,8 +2,8 @@@
   * MXC GPIO support. (c) 2008 Daniel Mack <daniel@caiaq.de>
   * Copyright 2008 Juergen Beisert, kernel@pengutronix.de
   *
-  * Based on code from Freescale,
+  * Based on code from Freescale Semiconductor,
+  * Authors: Daniel Mack, Juergen Beisert.
   * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
   *
   * This program is free software; you can redistribute it and/or
@@@ -33,7 -34,6 +34,6 @@@
  #include <linux/gpio.h>
  #include <linux/of.h>
  #include <linux/of_device.h>
- #include <linux/module.h>
  #include <linux/bug.h>
  
  enum mxc_gpio_hwtype {
@@@ -458,11 -458,6 +458,11 @@@ static int mxc_gpio_probe(struct platfo
        if (err)
                goto out_bgio;
  
 +      if (of_property_read_bool(np, "gpio-ranges")) {
 +              port->gc.request = gpiochip_generic_request;
 +              port->gc.free = gpiochip_generic_free;
 +      }
 +
        port->gc.to_irq = mxc_gpio_to_irq;
        port->gc.base = (pdev->id < 0) ? of_alias_get_id(np, "gpio") * 32 :
                                             pdev->id * 32;
@@@ -515,10 -510,4 +515,4 @@@ static int __init gpio_mxc_init(void
  {
        return platform_driver_register(&mxc_gpio_driver);
  }
 -postcore_initcall(gpio_mxc_init);
 +subsys_initcall(gpio_mxc_init);
- MODULE_AUTHOR("Freescale Semiconductor, "
-             "Daniel Mack <danielncaiaq.de>, "
-             "Juergen Beisert <kernel@pengutronix.de>");
- MODULE_DESCRIPTION("Freescale MXC GPIO");
- MODULE_LICENSE("GPL");
index a28feb3edf33350f5e7de8986cdca6c3ea2ee764,33b05c8de42f4e1a668ef0e9d59bcd02624ec5ce..ecad3f0e3b772772440bcae1735c3430a71f030d
@@@ -16,6 -16,7 +16,6 @@@
  #include <linux/errno.h>
  #include <linux/module.h>
  #include <linux/io.h>
 -#include <linux/io-mapping.h>
  #include <linux/gpio/consumer.h>
  #include <linux/of.h>
  #include <linux/of_address.h>
@@@ -113,6 -114,45 +113,45 @@@ int of_get_named_gpio_flags(struct devi
  }
  EXPORT_SYMBOL(of_get_named_gpio_flags);
  
+ struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id,
+                              unsigned int idx,
+                              enum gpio_lookup_flags *flags)
+ {
+       char prop_name[32]; /* 32 is max size of property name */
+       enum of_gpio_flags of_flags;
+       struct gpio_desc *desc;
+       unsigned int i;
+       for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
+               if (con_id)
+                       snprintf(prop_name, sizeof(prop_name), "%s-%s", con_id,
+                                gpio_suffixes[i]);
+               else
+                       snprintf(prop_name, sizeof(prop_name), "%s",
+                                gpio_suffixes[i]);
+               desc = of_get_named_gpiod_flags(dev->of_node, prop_name, idx,
+                                               &of_flags);
+               if (!IS_ERR(desc) || (PTR_ERR(desc) != -ENOENT))
+                       break;
+       }
+       if (IS_ERR(desc))
+               return desc;
+       if (of_flags & OF_GPIO_ACTIVE_LOW)
+               *flags |= GPIO_ACTIVE_LOW;
+       if (of_flags & OF_GPIO_SINGLE_ENDED) {
+               if (of_flags & OF_GPIO_ACTIVE_LOW)
+                       *flags |= GPIO_OPEN_DRAIN;
+               else
+                       *flags |= GPIO_OPEN_SOURCE;
+       }
+       return desc;
+ }
  /**
   * of_parse_own_gpio() - Get a GPIO hog descriptor, names and flags for GPIO API
   * @np:               device node to get GPIO from
index 4c2631a2bb3c96c3cdbc3da36383ab212712e280,97dc4cc3ef43f2ea6d116f4ddd7f626d62a5de18..06c75186af80314d32e355efc96724d0dfd8a852
@@@ -323,7 -323,7 +323,7 @@@ config REGULATOR_LP872
  
  config REGULATOR_LP873X
        tristate "TI LP873X Power regulators"
-       depends on MFD_LP873X && OF
+       depends on MFD_TI_LP873X && OF
        help
          This driver supports LP873X voltage regulator chips. LP873X
          provides two step-down converters and two general-purpose LDO
@@@ -353,14 -353,6 +353,14 @@@ config REGULATOR_LTC358
          This enables support for the LTC3589, LTC3589-1, and LTC3589-2
          8-output regulators controlled via I2C.
  
 +config REGULATOR_LTC3676
 +      tristate "LTC3676 8-output voltage regulator"
 +      depends on I2C
 +      select REGMAP_I2C
 +      help
 +        This enables support for the LTC3676
 +        8-output regulators controlled via I2C.
 +
  config REGULATOR_MAX14577
        tristate "Maxim 14577/77836 regulator"
        depends on MFD_MAX14577
@@@ -828,7 -820,7 +828,7 @@@ config REGULATOR_TPS6591
            This driver supports TPS65912 voltage regulator chip.
  
  config REGULATOR_TPS80031
 -      tristate "TI TPS80031/TPS80032 power regualtor driver"
 +      tristate "TI TPS80031/TPS80032 power regulator driver"
        depends on MFD_TPS80031
        help
          TPS80031/ TPS80032 Fully Integrated Power Management with Power