]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 9 May 2013 16:59:16 +0000 (09:59 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 9 May 2013 16:59:16 +0000 (09:59 -0700)
Pull removal of GENERIC_GPIO from Grant Likely:
 "GENERIC_GPIO now synonymous with GPIOLIB.  There are no longer any
  valid cases for enableing GENERIC_GPIO without GPIOLIB, even though it
  is possible to do so which has been causing confusion and breakage.
  This branch does the work to completely eliminate GENERIC_GPIO."

* tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux:
  gpio: update gpio Chinese documentation
  Remove GENERIC_GPIO config option
  Convert selectors of GENERIC_GPIO to GPIOLIB
  blackfin: force use of gpiolib
  m68k: coldfire: use gpiolib
  mips: pnx833x: remove requirement for GENERIC_GPIO
  openrisc: default GENERIC_GPIO to false
  avr32: default GENERIC_GPIO to false
  xtensa: remove explicit selection of GENERIC_GPIO
  sh: replace CONFIG_GENERIC_GPIO by CONFIG_GPIOLIB
  powerpc: remove redundant GENERIC_GPIO selection
  unicore32: default GENERIC_GPIO to false
  unicore32: remove unneeded select GENERIC_GPIO
  arm: plat-orion: use GPIO driver on CONFIG_GPIOLIB
  arm: remove redundant GENERIC_GPIO selection
  mips: alchemy: require gpiolib
  mips: txx9: change GENERIC_GPIO to GPIOLIB
  mips: loongson: use GPIO driver on CONFIG_GPIOLIB
  mips: remove redundant GENERIC_GPIO select

34 files changed:
1  2 
arch/alpha/Kconfig
arch/arm/Kconfig
arch/arm/plat-orion/Makefile
arch/arm/plat-orion/gpio.c
arch/arm64/Kconfig
arch/avr32/Kconfig
arch/blackfin/Kconfig
arch/hexagon/Kconfig
arch/ia64/Kconfig
arch/metag/Kconfig
arch/microblaze/Kconfig
arch/mips/Kconfig
arch/openrisc/Kconfig
arch/powerpc/Kconfig
arch/powerpc/platforms/40x/Kconfig
arch/powerpc/platforms/44x/Kconfig
arch/powerpc/platforms/85xx/Kconfig
arch/powerpc/platforms/Kconfig
arch/sh/Kconfig
arch/sparc/Kconfig
arch/x86/Kconfig
drivers/gpio/Kconfig
drivers/gpio/gpio-lpc32xx.c
drivers/i2c/muxes/Kconfig
drivers/input/keyboard/Kconfig
drivers/input/misc/Kconfig
drivers/leds/Kconfig
drivers/pinctrl/sh-pfc/Kconfig
drivers/spi/Kconfig
drivers/staging/android/Kconfig
drivers/staging/iio/adc/Kconfig
drivers/usb/phy/Kconfig
drivers/video/Kconfig
drivers/video/backlight/Kconfig

diff --combined arch/alpha/Kconfig
index 8629127640cff0779bdaebd87d4fadd32799e04e,282ff372a06ec5e6c9bb2bb8aec69a80cc532e40..837a1f2d8b965a60b61252521f21129be9e80afe
@@@ -4,6 -4,7 +4,6 @@@ config ALPH
        select HAVE_AOUT
        select HAVE_IDE
        select HAVE_OPROFILE
 -      select HAVE_SYSCALL_WRAPPERS
        select HAVE_PCSPKR_PLATFORM
        select HAVE_PERF_EVENTS
        select HAVE_DMA_ATTRS
@@@ -55,9 -56,6 +55,6 @@@ config GENERIC_CALIBRATE_DELA
        bool
        default y
  
- config GENERIC_GPIO
-       bool
  config ZONE_DMA
        bool
        default y
diff --combined arch/arm/Kconfig
index aa71a2321040ab2995acb134d0cf686c3a546345,ceac9a43da7d4d3da401151e0673bc9e837fd3cf..46e2b5228606c725f5e3fe4226d57c55146842da
@@@ -15,7 -15,6 +15,7 @@@ config AR
        select GENERIC_IRQ_SHOW
        select GENERIC_PCI_IOMAP
        select GENERIC_SMP_IDLE_THREAD
 +      select GENERIC_IDLE_POLL_SETUP
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select HARDIRQS_SW_RESEND
@@@ -59,7 -58,6 +59,7 @@@
        select CLONE_BACKWARDS
        select OLD_SIGSUSPEND3
        select OLD_SIGACTION
 +      select HAVE_CONTEXT_TRACKING
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@@ -109,9 -107,6 +109,6 @@@ config MIGHT_HAVE_PC
  config SYS_SUPPORTS_APM_EMULATION
        bool
  
- config GENERIC_GPIO
-       bool
  config HAVE_TCM
        bool
        select GENERIC_ALLOCATOR
@@@ -363,6 -358,37 +360,6 @@@ config ARCH_AT9
          This enables support for systems based on Atmel
          AT91RM9200 and AT91SAM9* processors.
  
 -config ARCH_BCM2835
 -      bool "Broadcom BCM2835 family"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select ARM_ERRATA_411920
 -      select ARM_TIMER_SP804
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_OF
 -      select COMMON_CLK
 -      select CPU_V6
 -      select GENERIC_CLOCKEVENTS
 -      select MULTI_IRQ_HANDLER
 -      select PINCTRL
 -      select PINCTRL_BCM2835
 -      select SPARSE_IRQ
 -      select USE_OF
 -      help
 -        This enables support for the Broadcom BCM2835 SoC. This SoC is
 -        use in the Raspberry Pi, and Roku 2 devices.
 -
 -config ARCH_CNS3XXX
 -      bool "Cavium Networks CNS3XXX family"
 -      select ARM_GIC
 -      select CPU_V6K
 -      select GENERIC_CLOCKEVENTS
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select MIGHT_HAVE_PCI
 -      select PCI_DOMAINS if PCI
 -      help
 -        Support for Cavium Networks CNS3XXX platform.
 -
  config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
        select ARCH_REQUIRE_GPIOLIB
@@@ -381,11 -407,25 +378,11 @@@ config ARCH_GEMIN
        bool "Cortina Systems Gemini"
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_USES_GETTIMEOFFSET
 +      select NEED_MACH_GPIO_H
        select CPU_FA526
        help
          Support for the Cortina Systems Gemini family SoCs
  
 -config ARCH_SIRF
 -      bool "CSR SiRF"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select AUTO_ZRELADDR
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select GENERIC_IRQ_CHIP
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select NO_IOPORT
 -      select PINCTRL
 -      select PINCTRL_SIRF
 -      select USE_OF
 -      help
 -        Support for CSR SiRFprimaII/Marco/Polo platforms
 -
  config ARCH_EBSA110
        bool "EBSA-110"
        select ARCH_USES_GETTIMEOFFSET
@@@ -425,6 -465,21 +422,6 @@@ config ARCH_FOOTBRIDG
          Support for systems based on the DC21285 companion chip
          ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
  
 -config ARCH_MXS
 -      bool "Freescale MXS-based"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_MMIO
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK_PREPARE
 -      select MULTI_IRQ_HANDLER
 -      select PINCTRL
 -      select SPARSE_IRQ
 -      select USE_OF
 -      help
 -        Support for Freescale MXS-based family of processors
 -
  config ARCH_NETX
        bool "Hilscher NetX based"
        select ARM_VIC
        help
          This enables support for systems based on the Hilscher NetX Soc
  
 -config ARCH_H720X
 -      bool "Hynix HMS720x-based"
 -      select ARCH_USES_GETTIMEOFFSET
 -      select CPU_ARM720T
 -      select ISA_DMA_API
 -      help
 -        This enables support for systems based on the Hynix HMS720x
 -
  config ARCH_IOP13XX
        bool "IOP13xx-based"
        depends on MMU
@@@ -483,8 -546,6 +480,8 @@@ config ARCH_IXP4X
        select GENERIC_CLOCKEVENTS
        select MIGHT_HAVE_PCI
        select NEED_MACH_IO_H
 +      select USB_EHCI_BIG_ENDIAN_MMIO
 +      select USB_EHCI_BIG_ENDIAN_DESC
        help
          Support for Intel's IXP4XX (XScale) family of processors.
  
@@@ -498,7 -559,6 +495,7 @@@ config ARCH_DOV
        select PINCTRL_DOVE
        select PLAT_ORION_LEGACY
        select USB_ARCH_HAS_EHCI
 +      select MVEBU_MBUS
        help
          Support for the Marvell Dove SoC 88AP510
  
@@@ -512,7 -572,6 +509,7 @@@ config ARCH_KIRKWOO
        select PINCTRL
        select PINCTRL_KIRKWOOD
        select PLAT_ORION_LEGACY
 +      select MVEBU_MBUS
        help
          Support for the following Marvell Kirkwood series SoCs:
          88F6180, 88F6192 and 88F6281.
@@@ -524,7 -583,6 +521,7 @@@ config ARCH_MV78XX
        select GENERIC_CLOCKEVENTS
        select PCI
        select PLAT_ORION_LEGACY
 +      select MVEBU_MBUS
        help
          Support for the following Marvell MV78xx0 series SoCs:
          MV781x0, MV782x0.
@@@ -537,7 -595,6 +534,7 @@@ config ARCH_ORION5
        select GENERIC_CLOCKEVENTS
        select PCI
        select PLAT_ORION_LEGACY
 +      select MVEBU_MBUS
        help
          Support for the following Marvell Orion 5x series SoCs:
          Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
@@@ -601,6 -658,24 +598,6 @@@ config ARCH_LPC32X
        help
          Support for the NXP LPC32XX family of processors
  
 -config ARCH_TEGRA
 -      bool "NVIDIA Tegra"
 -      select ARCH_HAS_CPUFREQ
 -      select ARCH_REQUIRE_GPIOLIB
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_MMIO
 -      select CLKSRC_OF
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK
 -      select HAVE_SMP
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select SPARSE_IRQ
 -      select USE_OF
 -      help
 -        This enables support for NVIDIA Tegra based systems (Tegra APX,
 -        Tegra 6xx and Tegra 2 series).
 -
  config ARCH_PXA
        bool "PXA2xx/PXA3xx-based"
        depends on MMU
@@@ -638,8 -713,6 +635,8 @@@ config ARCH_SHMOBIL
        bool "Renesas SH-Mobile / R-Mobile"
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
 +      select HAVE_ARM_SCU if SMP
 +      select HAVE_ARM_TWD if LOCAL_TIMERS
        select HAVE_CLK
        select HAVE_MACH_CLKDEV
        select HAVE_SMP
        select MULTI_IRQ_HANDLER
        select NEED_MACH_MEMORY_H
        select NO_IOPORT
 -      select PINCTRL
 +      select PINCTRL if ARCH_WANT_OPTIONAL_GPIOLIB
        select PM_GENERIC_DOMAINS if PM
        select SPARSE_IRQ
        help
@@@ -693,15 -766,12 +690,15 @@@ config ARCH_SA110
  config ARCH_S3C24XX
        bool "Samsung S3C24XX SoCs"
        select ARCH_HAS_CPUFREQ
 -      select ARCH_USES_GETTIMEOFFSET
 +      select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
 +      select CLKSRC_MMIO
 +      select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
 +      select MULTI_IRQ_HANDLER
        select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H
        help
@@@ -714,11 -784,10 +711,11 @@@ config ARCH_S3C64X
        bool "Samsung S3C64XX"
        select ARCH_HAS_CPUFREQ
        select ARCH_REQUIRE_GPIOLIB
 -      select ARCH_USES_GETTIMEOFFSET
        select ARM_VIC
        select CLKDEV_LOOKUP
 +      select CLKSRC_MMIO
        select CPU_V6
 +      select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@@ -752,11 -821,9 +749,11 @@@ config ARCH_S5P64X
  
  config ARCH_S5PC100
        bool "Samsung S5PC100"
 -      select ARCH_USES_GETTIMEOFFSET
 +      select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
 +      select CLKSRC_MMIO
        select CPU_V7
 +      select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@@ -789,7 -856,6 +786,7 @@@ config ARCH_EXYNO
        select ARCH_HAS_HOLES_MEMORYMODEL
        select ARCH_SPARSEMEM_ENABLE
        select CLKDEV_LOOKUP
 +      select COMMON_CLK
        select CPU_V7
        select GENERIC_CLOCKEVENTS
        select HAVE_CLK
@@@ -832,6 -898,51 +829,6 @@@ config ARCH_U30
        help
          Support for ST-Ericsson U300 series mobile platforms.
  
 -config ARCH_U8500
 -      bool "ST-Ericsson U8500 Series"
 -      depends on MMU
 -      select ARCH_HAS_CPUFREQ
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select CLKDEV_LOOKUP
 -      select CPU_V7
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_SMP
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select SPARSE_IRQ
 -      help
 -        Support for ST-Ericsson's Ux500 architecture
 -
 -config ARCH_NOMADIK
 -      bool "STMicroelectronics Nomadik"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select ARM_VIC
 -      select CLKSRC_NOMADIK_MTU
 -      select COMMON_CLK
 -      select CPU_ARM926T
 -      select GENERIC_CLOCKEVENTS
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select USE_OF
 -      select PINCTRL
 -      select PINCTRL_STN8815
 -      select SPARSE_IRQ
 -      help
 -        Support for the Nomadik platform by ST-Ericsson
 -
 -config PLAT_SPEAR
 -      bool "ST SPEAr"
 -      select ARCH_HAS_CPUFREQ
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_MMIO
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK
 -      help
 -        Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
 -
  config ARCH_DAVINCI
        bool "TI DaVinci"
        select ARCH_HAS_HOLES_MEMORYMODEL
@@@ -923,8 -1034,6 +920,8 @@@ source "arch/arm/mach-at91/Kconfig
  
  source "arch/arm/mach-bcm/Kconfig"
  
 +source "arch/arm/mach-bcm2835/Kconfig"
 +
  source "arch/arm/mach-clps711x/Kconfig"
  
  source "arch/arm/mach-cns3xxx/Kconfig"
@@@ -939,6 -1048,8 +936,6 @@@ source "arch/arm/mach-footbridge/Kconfi
  
  source "arch/arm/mach-gemini/Kconfig"
  
 -source "arch/arm/mach-h720x/Kconfig"
 -
  source "arch/arm/mach-highbank/Kconfig"
  
  source "arch/arm/mach-integrator/Kconfig"
@@@ -990,7 -1101,7 +987,7 @@@ source "arch/arm/plat-samsung/Kconfig
  
  source "arch/arm/mach-socfpga/Kconfig"
  
 -source "arch/arm/plat-spear/Kconfig"
 +source "arch/arm/mach-spear/Kconfig"
  
  source "arch/arm/mach-s3c24xx/Kconfig"
  
@@@ -1059,7 -1170,7 +1056,7 @@@ config PLAT_VERSATIL
  config ARM_TIMER_SP804
        bool
        select CLKSRC_MMIO
 -      select HAVE_SCHED_CLOCK
 +      select CLKSRC_OF if OF
  
  source arch/arm/mm/Kconfig
  
@@@ -1069,9 -1180,9 +1066,9 @@@ config ARM_NR_BANK
        default 8
  
  config IWMMXT
 -      bool "Enable iWMMXt support"
 +      bool "Enable iWMMXt support" if !CPU_PJ4
        depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
 -      default y if PXA27x || PXA3xx || ARCH_MMP
 +      default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4
        help
          Enable support for iWMMXt context switching at run time if
          running on a CPU that supports it.
@@@ -1325,16 -1436,6 +1322,16 @@@ config ARM_ERRATA_77542
         to deadlock. This workaround puts DSB before executing ISB if
         an abort may occur on cache maintenance.
  
 +config ARM_ERRATA_798181
 +      bool "ARM errata: TLBI/DSB failure on Cortex-A15"
 +      depends on CPU_V7 && SMP
 +      help
 +        On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not
 +        adequately shooting down all use of the old entries. This
 +        option enables the Linux kernel workaround for this erratum
 +        which sends an IPI to the CPUs that are running the same ASID
 +        as the one being invalidated.
 +
  endmenu
  
  source "arch/arm/common/Kconfig"
@@@ -1418,6 -1519,7 +1415,6 @@@ config SM
        depends on GENERIC_CLOCKEVENTS
        depends on HAVE_SMP
        depends on MMU
 -      select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
        select USE_GENERIC_SMP_HELPERS
        help
          This enables support for systems with more than one CPU. If you have
@@@ -1488,18 -1590,9 +1485,18 @@@ config HAVE_ARM_ARCH_TIME
  config HAVE_ARM_TWD
        bool
        depends on SMP
 +      select CLKSRC_OF if OF
        help
          This options enables support for the ARM timer and watchdog unit
  
 +config MCPM
 +      bool "Multi-Cluster Power Management"
 +      depends on CPU_V7 && SMP
 +      help
 +        This option provides the common power management infrastructure
 +        for (multi-)cluster based systems, such as big.LITTLE based
 +        systems.
 +
  choice
        prompt "Memory split"
        default VMSPLIT_3G
@@@ -1550,6 -1643,7 +1547,6 @@@ config LOCAL_TIMER
        bool "Use local timer interrupts"
        depends on SMP
        default y
 -      select HAVE_ARM_TWD if (!ARCH_MSM_SCORPIONMP && !EXYNOS4_MCT)
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
@@@ -1563,9 -1657,8 +1560,9 @@@ config ARCH_NR_GPI
        int
        default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
        default 512 if SOC_OMAP5
 -      default 355 if ARCH_U8500
 -      default 288 if ARCH_VT8500 || ARCH_SUNXI
 +      default 392 if ARCH_U8500
 +      default 352 if ARCH_VT8500
 +      default 288 if ARCH_SUNXI
        default 264 if MACH_H4700
        default 0
        help
@@@ -1587,9 -1680,8 +1584,9 @@@ config SCHED_HRTIC
        def_bool HIGH_RES_TIMERS
  
  config THUMB2_KERNEL
 -      bool "Compile the kernel in Thumb-2 mode"
 +      bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
        depends on CPU_V7 && !CPU_V6 && !CPU_V6K
 +      default y if CPU_THUMBONLY
        select AEABI
        select ARM_ASM_UNIFIED
        select ARM_UNWIND
@@@ -1794,7 -1886,6 +1791,7 @@@ config XE
        depends on ARM && AEABI && OF
        depends on CPU_V7 && !CPU_V6
        depends on !GENERIC_ATOMIC64
 +      select ARM_PSCI
        help
          Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
  
@@@ -2056,8 -2147,40 +2053,8 @@@ endmen
  menu "CPU Power Management"
  
  if ARCH_HAS_CPUFREQ
 -
  source "drivers/cpufreq/Kconfig"
  
 -config CPU_FREQ_IMX
 -      tristate "CPUfreq driver for i.MX CPUs"
 -      depends on ARCH_MXC && CPU_FREQ
 -      select CPU_FREQ_TABLE
 -      help
 -        This enables the CPUfreq driver for i.MX CPUs.
 -
 -config CPU_FREQ_SA1100
 -      bool
 -
 -config CPU_FREQ_SA1110
 -      bool
 -
 -config CPU_FREQ_INTEGRATOR
 -      tristate "CPUfreq driver for ARM Integrator CPUs"
 -      depends on ARCH_INTEGRATOR && CPU_FREQ
 -      default y
 -      help
 -        This enables the CPUfreq driver for ARM Integrator CPUs.
 -
 -        For details, take a look at <file:Documentation/cpu-freq>.
 -
 -        If in doubt, say Y.
 -
 -config CPU_FREQ_PXA
 -      bool
 -      depends on CPU_FREQ && ARCH_PXA && PXA25x
 -      default y
 -      select CPU_FREQ_DEFAULT_GOV_USERSPACE
 -      select CPU_FREQ_TABLE
 -
  config CPU_FREQ_S3C
        bool
        help
index 2eca54b65906e1ffbf69ffd9a27b74d71b7415d6,bbc0d6b6aac4323ad91b0a508530c5f6e66e8c80..9433605cd290b38aabba4e6d0f94de822d84e743
@@@ -3,6 -3,8 +3,6 @@@
  #
  ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
  
- orion-gpio-$(CONFIG_GENERIC_GPIO) += gpio.o
 -obj-y                             += addr-map.o
 -
+ orion-gpio-$(CONFIG_GPIOLIB)      += gpio.o
  obj-$(CONFIG_PLAT_ORION_LEGACY)   += irq.o pcie.o time.o common.o mpp.o
  obj-$(CONFIG_PLAT_ORION_LEGACY)   += $(orion-gpio-y)
index e39c2ba6e2fba385aae9b9ce43db23e48d2caa05,59ddf4d0aca9ae6a218f45368f97aa36476cdadc..249fe6333e180b8240b1734c7066957fdf4c9e41
@@@ -150,7 -150,7 +150,7 @@@ err_out
  }
  
  /*
-  * GENERIC_GPIO primitives.
+  * GPIO primitives.
   */
  static int orion_gpio_request(struct gpio_chip *chip, unsigned pin)
  {
@@@ -439,64 -439,6 +439,64 @@@ static void gpio_irq_handler(unsigned i
        }
  }
  
 +#ifdef CONFIG_DEBUG_FS
 +#include <linux/seq_file.h>
 +
 +static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
 +{
 +      struct orion_gpio_chip *ochip =
 +              container_of(chip, struct orion_gpio_chip, chip);
 +      u32 out, io_conf, blink, in_pol, data_in, cause, edg_msk, lvl_msk;
 +      int i;
 +
 +      out     = readl_relaxed(GPIO_OUT(ochip));
 +      io_conf = readl_relaxed(GPIO_IO_CONF(ochip));
 +      blink   = readl_relaxed(GPIO_BLINK_EN(ochip));
 +      in_pol  = readl_relaxed(GPIO_IN_POL(ochip));
 +      data_in = readl_relaxed(GPIO_DATA_IN(ochip));
 +      cause   = readl_relaxed(GPIO_EDGE_CAUSE(ochip));
 +      edg_msk = readl_relaxed(GPIO_EDGE_MASK(ochip));
 +      lvl_msk = readl_relaxed(GPIO_LEVEL_MASK(ochip));
 +
 +      for (i = 0; i < chip->ngpio; i++) {
 +              const char *label;
 +              u32 msk;
 +              bool is_out;
 +
 +              label = gpiochip_is_requested(chip, i);
 +              if (!label)
 +                      continue;
 +
 +              msk = 1 << i;
 +              is_out = !(io_conf & msk);
 +
 +              seq_printf(s, " gpio-%-3d (%-20.20s)", chip->base + i, label);
 +
 +              if (is_out) {
 +                      seq_printf(s, " out %s %s\n",
 +                                 out & msk ? "hi" : "lo",
 +                                 blink & msk ? "(blink )" : "");
 +                      continue;
 +              }
 +
 +              seq_printf(s, " in  %s (act %s) - IRQ",
 +                         (data_in ^ in_pol) & msk  ? "hi" : "lo",
 +                         in_pol & msk ? "lo" : "hi");
 +              if (!((edg_msk | lvl_msk) & msk)) {
 +                      seq_printf(s, " disabled\n");
 +                      continue;
 +              }
 +              if (edg_msk & msk)
 +                      seq_printf(s, " edge ");
 +              if (lvl_msk & msk)
 +                      seq_printf(s, " level");
 +              seq_printf(s, " (%s)\n", cause & msk ? "pending" : "clear  ");
 +      }
 +}
 +#else
 +#define orion_gpio_dbg_show NULL
 +#endif
 +
  void __init orion_gpio_init(struct device_node *np,
                            int gpio_base, int ngpio,
                            void __iomem *base, int mask_offset,
  #ifdef CONFIG_OF
        ochip->chip.of_node = np;
  #endif
 +      ochip->chip.dbg_show = orion_gpio_dbg_show;
  
        spin_lock_init(&ochip->lock);
        ochip->base = (void __iomem *)base;
diff --combined arch/arm64/Kconfig
index 43b0e9f10a39a322faf4a64959a32a958b46cd66,e6e700740b7eafd09a43b6bdd2ae0a566fae8c5c..48347dcf056681641936a8cedcfeb88272fc8f7e
@@@ -6,7 -6,6 +6,7 @@@ config ARM6
        select ARCH_WANT_FRAME_POINTERS
        select ARM_AMBA
        select ARM_ARCH_TIMER
 +      select ARM_GIC
        select CLONE_BACKWARDS
        select COMMON_CLK
        select GENERIC_CLOCKEVENTS
@@@ -32,8 -31,6 +32,8 @@@
        select OF
        select OF_EARLY_FLATTREE
        select PERF_USE_VMALLOC
 +      select POWER_RESET
 +      select POWER_SUPPLY
        select RTC_LIB
        select SPARSE_IRQ
        select SYSCTL_EXCEPTION_TRACE
@@@ -95,24 -92,11 +95,21 @@@ config SWIOTL
  config IOMMU_HELPER
        def_bool SWIOTLB
  
- config GENERIC_GPIO
-       bool
  source "init/Kconfig"
  
  source "kernel/Kconfig.freezer"
  
 -menu "System Type"
 +menu "Platform selection"
 +
 +config ARCH_VEXPRESS
 +      bool "ARMv8 software model (Versatile Express)"
 +      select ARCH_REQUIRE_GPIOLIB
 +      select COMMON_CLK_VERSATILE
 +      select POWER_RESET_VEXPRESS
 +      select VEXPRESS_CONFIG
 +      help
 +        This enables support for the ARMv8 software model (Versatile
 +        Express).
  
  endmenu
  
diff --combined arch/avr32/Kconfig
index 22c40308360bb0a76071db11c5493ecd09aff6af,ff775b8e322838adf6c41c578e927bfdcf8993a2..bdc35589277f721805eed5675fe0bfabd8dc0aec
@@@ -26,9 -26,6 +26,6 @@@ config AVR3
          There is an AVR32 Linux project with a web page at
          http://avr32linux.org/.
  
- config GENERIC_GPIO
-       def_bool y
  config STACKTRACE_SUPPORT
        def_bool y
  
@@@ -250,7 -247,20 +247,7 @@@ config ARCH_SUSPEND_POSSIBL
        def_bool y
  
  menu "CPU Frequency scaling"
 -
  source "drivers/cpufreq/Kconfig"
 -
 -config CPU_FREQ_AT32AP
 -      bool "CPU frequency driver for AT32AP"
 -      depends on CPU_FREQ && PLATFORM_AT32AP
 -      default n
 -      help
 -        This enables the CPU frequency driver for AT32AP processors.
 -
 -        For details, take a look in <file:Documentation/cpu-freq>.
 -
 -        If in doubt, say N.
 -
  endmenu
  
  endmenu
diff --combined arch/blackfin/Kconfig
index 453ebe46b065d01d0afa272528220f9e73aede52,71dd50b7c13a47a42dcea1c9561be6bbea3787fb..a117652b5feaac84e4bb880bb8b1b4772c8b6f5a
@@@ -1,3 -1,7 +1,3 @@@
 -config SYMBOL_PREFIX
 -      string
 -      default "_"
 -
  config MMU
        def_bool n
  
@@@ -27,9 -31,8 +27,9 @@@ config BLACKFI
        select HAVE_OPROFILE
        select HAVE_PERF_EVENTS
        select ARCH_HAVE_CUSTOM_GPIO_H
-       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select ARCH_REQUIRE_GPIOLIB
        select HAVE_UID16
 +      select HAVE_UNDERSCORE_SYMBOL_PREFIX
        select VIRT_TO_BUS
        select ARCH_WANT_IPC_PARSE_VERSION
        select HAVE_GENERIC_HARDIRQS
@@@ -52,9 -55,6 +52,6 @@@ config GENERIC_BU
  config ZONE_DMA
        def_bool y
  
- config GENERIC_GPIO
-       def_bool y
  config FORCE_MAX_ZONEORDER
        int
        default "14"
diff --combined arch/hexagon/Kconfig
index 841325f60df87ab7bffc5aab449ef04f30e4bbf8,21d6ba9782e509d73c2d11dc1f8d6be1952bac6b..33a97929d055ca9d1131ffce9c517b3a4597bb38
@@@ -29,15 -29,21 +29,15 @@@ config HEXAGO
        select GENERIC_CLOCKEVENTS
        select GENERIC_CLOCKEVENTS_BROADCAST
        select MODULES_USE_ELF_RELA
 +      select GENERIC_CPU_DEVICES
        ---help---
          Qualcomm Hexagon is a processor architecture designed for high
          performance and low power across a wide variety of applications.
  
 -config HEXAGON_ARCH_V1
 -      bool
 -
 -config HEXAGON_ARCH_V2
 -      bool
 -
 -config HEXAGON_ARCH_V3
 -      bool
 -
 -config HEXAGON_ARCH_V4
 -      bool
 +config HEXAGON_PHYS_OFFSET
 +      def_bool y
 +      ---help---
 +        Platforms that don't load the kernel at zero set this.
  
  config FRAME_POINTER
        def_bool y
@@@ -75,6 -81,9 +75,6 @@@ config RWSEM_GENERIC_SPINLOC
  config RWSEM_XCHGADD_ALGORITHM
        def_bool y
  
 -config GENERIC_FIND_NEXT_BIT
 -      def_bool y
 -
  config GENERIC_HWEIGHT
        def_bool y
  
@@@ -94,14 -103,14 +94,14 @@@ choic
  
  config HEXAGON_COMET
        bool "Comet Board"
 -      select HEXAGON_ARCH_V2
        ---help---
          Support for the Comet platform.
  
  endchoice
  
 -config HEXAGON_VM
 -      def_bool y
 +config HEXAGON_ARCH_VERSION
 +      int "Architecture version"
 +      default 2
  
  config CMDLINE
        string "Default kernel command string"
          minimum, you should specify the memory size and the root device
          (e.g., mem=64M root=/dev/nfs).
  
 -config HEXAGON_ANGEL_TRAPS
 -      bool "Use Angel Traps"
 -      default n
 -      ---help---
 -        Enable angel debug traps (for printk's).
 -
  config SMP
        bool "Multi-Processing support"
        ---help---
@@@ -155,9 -170,6 +155,6 @@@ source "mm/Kconfig
  
  source "kernel/Kconfig.hz"
  
- config GENERIC_GPIO
-       def_bool n
  endmenu
  
  source "init/Kconfig"
diff --combined arch/ia64/Kconfig
index d393f841ff5acb660f120de6c545803e9b0b6dd3,38ef339190ee62730b3cfa974c63c776f5a4de71..1a2b7749b0478a75c49e58df2862de0765d71980
@@@ -101,16 -101,12 +101,13 @@@ config GENERIC_CALIBRATE_DELA
  config HAVE_SETUP_PER_CPU_AREA
        def_bool y
  
- config GENERIC_GPIO
-       bool
  config DMI
        bool
        default y
  
  config EFI
        bool
 +      select UCS2_STRING
        default y
  
  config SCHED_OMIT_FRAME_POINTER
@@@ -188,7 -184,7 +185,7 @@@ config IA64_DI
  
  config IA64_DIG_VTD
        bool "DIG+Intel+IOMMU"
 -      select DMAR
 +      select INTEL_IOMMU
        select PCI_MSI
  
  config IA64_HP_ZX1
@@@ -592,9 -588,9 +589,9 @@@ source "kernel/power/Kconfig
  source "drivers/acpi/Kconfig"
  
  if PM
 -
 -source "arch/ia64/kernel/cpufreq/Kconfig"
 -
 +menu "CPU Frequency scaling"
 +source "drivers/cpufreq/Kconfig"
 +endmenu
  endif
  
  endmenu
diff --combined arch/metag/Kconfig
index 6f16c14693272e593aa0f98d33e6b62d60f8ce79,0e97f5c50ff487a8c5443c9f9ced73b60f7a1c5b..dcd94406030e3e9cebd2a15a01260c389d2d24a8
@@@ -1,3 -1,7 +1,3 @@@
 -config SYMBOL_PREFIX
 -      string
 -      default "_"
 -
  config METAG
        def_bool y
        select EMBEDDED
        select HAVE_MEMBLOCK
        select HAVE_MEMBLOCK_NODE_MAP
        select HAVE_MOD_ARCH_SPECIFIC
 +      select HAVE_OPROFILE
        select HAVE_PERF_EVENTS
        select HAVE_SYSCALL_TRACEPOINTS
 +      select HAVE_UNDERSCORE_SYMBOL_PREFIX
        select IRQ_DOMAIN
        select MODULES_USE_ELF_RELA
        select OF
@@@ -52,9 -54,6 +52,6 @@@ config GENERIC_HWEIGH
  config GENERIC_CALIBRATE_DELAY
        def_bool y
  
- config GENERIC_GPIO
-       def_bool n
  config NO_IOPORT
        def_bool y
  
@@@ -207,9 -206,6 +204,9 @@@ config METAG_PERFCOUNTER_IRQ
          When disabled, Performance Counters information will be collected
          based on Timer Interrupt.
  
 +config HW_PERF_EVENTS
 +      def_bool METAG_PERFCOUNTER_IRQS && PERF_EVENTS
 +
  config METAG_DA
        bool "DA support"
        help
diff --combined arch/microblaze/Kconfig
index 54237af0b07c8736a46554bcf176a0d22ae2ef44,4fb682a7d4e942925991f998217ff21d551df307..d22a4ecffff422f542e96f81527b45a4e3f9c6c2
@@@ -26,7 -26,6 +26,7 @@@ config MICROBLAZ
        select GENERIC_CPU_DEVICES
        select GENERIC_ATOMIC64
        select GENERIC_CLOCKEVENTS
 +      select GENERIC_IDLE_POLL_SETUP
        select MODULES_USE_ELF_RELA
        select CLONE_BACKWARDS
  
@@@ -39,6 -38,9 +39,6 @@@ config RWSEM_GENERIC_SPINLOC
  config ZONE_DMA
        def_bool y
  
 -config ARCH_POPULATES_NODE_MAP
 -      def_bool y
 -
  config RWSEM_XCHGADD_ALGORITHM
        bool
  
@@@ -54,9 -56,6 +54,6 @@@ config GENERIC_HWEIGH
  config GENERIC_CALIBRATE_DELAY
        def_bool y
  
- config GENERIC_GPIO
-       bool
  config GENERIC_CSUM
        def_bool y
  
diff --combined arch/mips/Kconfig
index e5f3794744f14c12707d8631de62341e56e36ecb,53939817958435b877d59b1f9648b51b76d19dc8..a90cfc702bb1a31cade6c98d0bd4eb0ead652f8d
@@@ -18,7 -18,7 +18,7 @@@ config MIP
        select HAVE_KRETPROBES
        select HAVE_DEBUG_KMEMLEAK
        select ARCH_BINFMT_ELF_RANDOMIZE_PIE
 -      select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 +      select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES && 64BIT
        select RTC_LIB if !MACH_LOONGSON
        select GENERIC_ATOMIC64 if !64BIT
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
@@@ -61,8 -61,7 +61,7 @@@ config MIPS_ALCHEM
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_APM_EMULATION
-       select GENERIC_GPIO
-       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select ARCH_REQUIRE_GPIOLIB
        select SYS_SUPPORTS_ZBOOT
        select USB_ARCH_HAS_OHCI
        select USB_ARCH_HAS_EHCI
@@@ -225,7 -224,6 +224,6 @@@ config MACH_JZ474
        select SYS_SUPPORTS_ZBOOT_UART16550
        select DMA_NONCOHERENT
        select IRQ_CPU
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        select SYS_HAS_EARLY_PRINTK
        select HAVE_PWM
@@@ -404,8 -402,6 +402,8 @@@ config PMC_MS
        select IRQ_CPU
        select SERIAL_8250
        select SERIAL_8250_CONSOLE
 +      select USB_EHCI_BIG_ENDIAN_MMIO
 +      select USB_EHCI_BIG_ENDIAN_DESC
        help
          This adds support for the PMC-Sierra family of Multi-Service
          Processor System-On-A-Chips.  These parts include a number
@@@ -659,7 -655,7 +657,7 @@@ config SNI_R
        bool "SNI RM200/300/400"
        select FW_ARC if CPU_LITTLE_ENDIAN
        select FW_ARC32 if CPU_LITTLE_ENDIAN
 -      select SNIPROM if CPU_BIG_ENDIAN
 +      select FW_SNIPROM if CPU_BIG_ENDIAN
        select ARCH_MAY_HAVE_PC_FDC
        select BOOT_ELF32
        select CEVT_R4K
@@@ -937,7 -933,6 +935,6 @@@ config CSRC_SB125
        bool
  
  config GPIO_TXX9
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        bool
  
@@@ -1009,9 -1004,6 +1006,6 @@@ config GENERIC_ISA_DMA_SUPPORT_BROKE
  config ISA_DMA_API
        bool
  
- config GENERIC_GPIO
-       bool
  config HOLES_IN_ZONE
        bool
  
@@@ -1112,7 -1104,6 +1106,6 @@@ config SOC_PNX833
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select SYS_SUPPORTS_BIG_ENDIAN
-       select GENERIC_GPIO
        select CPU_MIPSR2_IRQ_VI
  
  config SOC_PNX8335
@@@ -1146,7 -1137,7 +1139,7 @@@ config DEFAULT_SGI_PARTITIO
  config FW_ARC32
        bool
  
 -config SNIPROM
 +config FW_SNIPROM
        bool
  
  config BOOT_ELF32
@@@ -1203,7 -1194,6 +1196,6 @@@ config CPU_LOONGSON2
        bool "Loongson 2F"
        depends on SYS_HAS_CPU_LOONGSON2F
        select CPU_LOONGSON2
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        help
          The Loongson 2F processor implements the MIPS III instruction set
@@@ -1435,7 -1425,6 +1427,7 @@@ config CPU_CAVIUM_OCTEO
        select CPU_SUPPORTS_HUGEPAGES
        select LIBFDT
        select USE_OF
 +      select USB_EHCI_BIG_ENDIAN_MMIO
        help
          The Cavium Octeon processor is a highly integrated chip containing
          many ethernet hardware widgets for networking tasks. The processor
@@@ -1496,6 -1485,7 +1488,6 @@@ config CPU_XL
        select CPU_SUPPORTS_32BIT_KERNEL
        select CPU_SUPPORTS_64BIT_KERNEL
        select CPU_SUPPORTS_HIGHMEM
 -      select CPU_HAS_LLSC
        select WEAK_ORDERING
        select WEAK_REORDERING_BEYOND_LLSC
        select CPU_HAS_PREFETCH
@@@ -1739,6 -1729,7 +1731,6 @@@ config 32BI
  config 64BIT
        bool "64-bit kernel"
        depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
 -      select HAVE_SYSCALL_WRAPPERS
        help
          Select this option if you want to build a 64-bit kernel.
  
@@@ -2540,14 -2531,7 +2532,14 @@@ source "kernel/power/Kconfig
  
  endmenu
  
 -source "arch/mips/kernel/cpufreq/Kconfig"
 +config MIPS_EXTERNAL_TIMER
 +      bool
 +
 +if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
 +menu "CPU Power Management"
 +source "drivers/cpufreq/Kconfig"
 +endmenu
 +endif
  
  source "net/Kconfig"
  
diff --combined arch/openrisc/Kconfig
index 81b9ddbc9166473ef46a85c7640a135807c920c8,6c404eee9901a557af6a3fb0bfb8b081fe37a79c..1072bfd18c5083034aabb20116c21f144f88b55e
@@@ -44,9 -44,6 +44,6 @@@ config GENERIC_HWEIGH
  config NO_IOPORT
        def_bool y
  
- config GENERIC_GPIO
-       def_bool y
  config TRACE_IRQFLAGS_SUPPORT
          def_bool y
  
@@@ -55,6 -52,9 +52,6 @@@
  config GENERIC_CSUM
          def_bool y
  
 -config GENERIC_FIND_NEXT_BIT
 -      def_bool y
 -
  source "init/Kconfig"
  
  
diff --combined arch/powerpc/Kconfig
index bbbe02197afbdf151858beecc662adb7b5cddd0c,9c5bc6882e08683ec6f9be3d1aeb820a20775aa3..c33e3ad2c8fd52c9e0c31dfc272faf3d34902f37
@@@ -82,11 -82,6 +82,6 @@@ config GENERIC_HWEIGH
        bool
        default y
  
- config GENERIC_GPIO
-       bool
-       help
-         Generic GPIO API support
  config PPC
        bool
        default y
        select USE_GENERIC_SMP_HELPERS if SMP
        select HAVE_OPROFILE
        select HAVE_DEBUG_KMEMLEAK
 -      select HAVE_SYSCALL_WRAPPERS if PPC64
        select GENERIC_ATOMIC64 if PPC32
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select HAVE_PERF_EVENTS
@@@ -427,6 -423,11 +422,6 @@@ config NODES_SHIF
        default "4"
        depends on NEED_MULTIPLE_NODES
  
 -config MAX_ACTIVE_REGIONS
 -      int
 -      default "256" if PPC64
 -      default "32"
 -
  config ARCH_SELECT_MEMORY_MODEL
        def_bool y
        depends on PPC64
@@@ -641,14 -642,14 +636,14 @@@ menu "Bus options
  
  config ISA
        bool "Support for ISA-bus hardware"
 -      depends on PPC_PREP || PPC_CHRP
 +      depends on PPC_CHRP
        select PPC_I8259
        help
          Find out whether you have ISA slots on your motherboard.  ISA is the
          name of a bus system, i.e. the way the CPU talks to the other stuff
          inside your box.  If you have an Apple machine, say N here; if you
 -        have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
 -        you have an embedded board, consult your board documentation.
 +        have an IBM RS/6000 or pSeries machine, say Y.  If you have an
 +        embedded board, consult your board documentation.
  
  config ZONE_DMA
        bool
@@@ -680,6 -681,7 +675,6 @@@ config SBU
  config FSL_SOC
        bool
        select HAVE_CAN_FLEXCAN if NET && CAN
 -      select PPC_CLOCK
  
  config FSL_PCI
        bool
@@@ -738,6 -740,7 +733,6 @@@ config PC
        bool "PCI support" if PPC_PCI_CHOICE
        default y if !40x && !CPM2 && !8xx && !PPC_83xx \
                && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON
 -      default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
        default PCI_QSPAN if !4xx && !CPM2 && 8xx
        select ARCH_SUPPORTS_MSI
        select GENERIC_PCI_IOMAP
@@@ -767,6 -770,11 +762,6 @@@ config PCI_826
        select PPC_INDIRECT_PCI
        default y
  
 -config 8260_PCI9
 -      bool "Enable workaround for MPC826x erratum PCI 9"
 -      depends on PCI_8260 && !8272
 -      default y
 -
  source "drivers/pci/pcie/Kconfig"
  
  source "drivers/pci/Kconfig"
@@@ -956,7 -964,7 +951,7 @@@ config TASK_SIZE_BOO
  
  config TASK_SIZE
        hex "Size of user task space" if TASK_SIZE_BOOL
 -      default "0x80000000" if PPC_PREP || PPC_8xx
 +      default "0x80000000" if PPC_8xx
        default "0xc0000000"
  
  config CONSISTENT_SIZE_BOOL
index bd40bbb15e1476d72a487bcd83e62c8c04cdd155,d0b46a2fc85febf97d124ba4f17bd2049e3fab78..6e287f1294fa3837a714d50816d3068527c94a9d
@@@ -20,6 -20,7 +20,6 @@@ config HOTFOO
          bool "Hotfoot"
        depends on 40x
        default n
 -      select 405EP
        select PPC40x_SIMPLE
        select PCI
          help
@@@ -104,6 -105,9 +104,6 @@@ config 405G
        select IBM405_ERR51
        select IBM_EMAC_ZMII
  
 -config 405EP
 -      bool
 -
  config 405EX
        bool
        select IBM_EMAC_EMAC4
@@@ -115,6 -119,9 +115,6 @@@ config 405E
        select IBM_EMAC_MAL_CLR_ICINTSTAT
        select IBM_EMAC_MAL_COMMON_ERR
  
 -config 405GPR
 -      bool
 -
  config XILINX_VIRTEX
        bool
        select DEFAULT_UIMAGE
@@@ -138,7 -145,6 +138,6 @@@ config PPC4xx_GPI
        bool "PPC4xx GPIO support"
        depends on 40x
        select ARCH_REQUIRE_GPIOLIB
-       select GENERIC_GPIO
        help
          Enable gpiolib support for ppc40x based boards
  
index 7be93367d92f4dccbb4f0c4eeea747b2b0334402,50306b8e7e6c35e586f2583ab25de86ccdeec33d..d6c7506ec7d9d2f84ad91d92e012229db29f2880
@@@ -248,7 -248,6 +248,6 @@@ config PPC4xx_GPI
        bool "PPC4xx GPIO support"
        depends on 44x
        select ARCH_REQUIRE_GPIOLIB
-       select GENERIC_GPIO
        help
          Enable gpiolib support for ppc440 based boards
  
@@@ -274,8 -273,6 +273,8 @@@ config 440EP
        select IBM_EMAC_EMAC4
        select IBM_EMAC_RGMII
        select IBM_EMAC_ZMII
 +      select USB_EHCI_BIG_ENDIAN_MMIO
 +      select USB_EHCI_BIG_ENDIAN_DESC
  
  config 440GRX
        bool
index 8f02b05f4c96f8f8ef868819bb6e82e203ab063a,78549b6ebf30ca3414db02c30c4668cb9338b37a..efdd37c775ad40dd489f90c02a37c37d78ed3c5f
@@@ -203,7 -203,6 +203,6 @@@ config GE_IMP3
        select DEFAULT_UIMAGE
        select SWIOTLB
        select MMIO_NVRAM
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        select GE_FPGA
        help
@@@ -305,40 -304,6 +304,40 @@@ config PPC_QEMU_E50
          unset based on the emulated CPU (or actual host CPU in the case
          of KVM).
  
-       select GENERIC_GPIO
 +if PPC64
 +
 +config T4240_QDS
 +      bool "Freescale T4240 QDS"
 +      select DEFAULT_UIMAGE
 +      select E500
 +      select PPC_E500MC
 +      select PHYS_64BIT
 +      select SWIOTLB
 +      select ARCH_REQUIRE_GPIOLIB
 +      select GPIO_MPC8XXX
 +      select HAS_RAPIDIO
 +      select PPC_EPAPR_HV_PIC
 +      help
 +        This option enables support for the T4240 QDS board
 +
 +config B4_QDS
 +      bool "Freescale B4 QDS"
 +      select DEFAULT_UIMAGE
 +      select E500
 +      select PPC_E500MC
 +      select PHYS_64BIT
 +      select SWIOTLB
++      select GPIOLIB
 +      select ARCH_REQUIRE_GPIOLIB
 +      select HAS_RAPIDIO
 +      select PPC_EPAPR_HV_PIC
 +      help
 +        This option enables support for the B4 QDS board
 +        The B4 application development system B4 QDS is a complete
 +        debugging environment intended for engineers developing
 +        applications for the B4.
 +
 +endif
  endif # FSL_SOC_BOOKE
  
  config TQM85xx
index 34d224be93ba223fcd48b45e32a165281f409907,15095d58bc97fe750fe68b73e4fe23ca13367b50..a881232a3cce1bdafee6f5f2a6536a89afe188ab
@@@ -6,6 -6,7 +6,6 @@@ source "arch/powerpc/platforms/chrp/Kco
  source "arch/powerpc/platforms/512x/Kconfig"
  source "arch/powerpc/platforms/52xx/Kconfig"
  source "arch/powerpc/platforms/powermac/Kconfig"
 -source "arch/powerpc/platforms/prep/Kconfig"
  source "arch/powerpc/platforms/maple/Kconfig"
  source "arch/powerpc/platforms/pasemi/Kconfig"
  source "arch/powerpc/platforms/ps3/Kconfig"
@@@ -232,7 -233,7 +232,7 @@@ endmen
  
  config PPC601_SYNC_FIX
        bool "Workarounds for PPC601 bugs"
 -      depends on 6xx && (PPC_PREP || PPC_PMAC)
 +      depends on 6xx && PPC_PMAC
        help
          Some versions of the PPC601 (the first PowerPC chip) have bugs which
          mean that extra synchronization instructions are required near
@@@ -302,7 -303,6 +302,6 @@@ config QUICC_ENGIN
  config QE_GPIO
        bool "QE GPIO support"
        depends on QUICC_ENGINE
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        help
          Say Y here if you're going to use hardware that connects to the
@@@ -315,7 -315,6 +314,6 @@@ config CPM
        select PPC_LIB_RHEAP
        select PPC_PCI_CHOICE
        select ARCH_REQUIRE_GPIOLIB
-       select GENERIC_GPIO
        help
          The CPM2 (Communications Processor Module) is a coprocessor on
          embedded CPUs made by Freescale.  Selecting this option means that
@@@ -343,6 -342,7 +341,6 @@@ config FSL_ULI157
  
  config CPM
        bool
 -      select PPC_CLOCK
  
  config OF_RTC
        bool
  config SIMPLE_GPIO
        bool "Support for simple, memory-mapped GPIO controllers"
        depends on PPC
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        help
          Say Y here to support simple, memory-mapped GPIO controllers.
  config MCU_MPC8349EMITX
        bool "MPC8349E-mITX MCU driver"
        depends on I2C=y && PPC_83xx
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        help
          Say Y here to enable soft power-off functionality on the Freescale
diff --combined arch/sh/Kconfig
index 78d8ace5727253ef135dbc8adb046caa7323a656,f9391a692ef69bbf554e43c62e286847999a5d0f..8c868cf2cf93febf478cc199e2a996ff64b244d1
@@@ -33,7 -33,6 +33,7 @@@ config SUPER
        select GENERIC_ATOMIC64
        select GENERIC_IRQ_SHOW
        select GENERIC_SMP_IDLE_THREAD
 +      select GENERIC_IDLE_POLL_SETUP
        select GENERIC_CLOCKEVENTS
        select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
        select GENERIC_STRNCPY_FROM_USER
@@@ -93,9 -92,6 +93,6 @@@ config GENERIC_CSU
  config GENERIC_HWEIGHT
        def_bool y
  
- config GENERIC_GPIO
-       def_bool n
  config GENERIC_CALIBRATE_DELAY
        bool
  
@@@ -149,6 -145,9 +146,6 @@@ config ARCH_HAS_ILOG2_U3
  config ARCH_HAS_ILOG2_U64
        def_bool n
  
 -config ARCH_HAS_DEFAULT_IDLE
 -      def_bool y
 -
  config NO_IOPORT
        def_bool !PCI
        depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN && \
@@@ -622,7 -621,25 +619,7 @@@ config SH_CLK_CPG_LEGAC
  endmenu
  
  menu "CPU Frequency scaling"
 -
  source "drivers/cpufreq/Kconfig"
 -
 -config SH_CPU_FREQ
 -      tristate "SuperH CPU Frequency driver"
 -      depends on CPU_FREQ
 -      select CPU_FREQ_TABLE
 -      help
 -        This adds the cpufreq driver for SuperH. Any CPU that supports
 -        clock rate rounding through the clock framework can use this
 -        driver. While it will make the kernel slightly larger, this is
 -        harmless for CPUs that don't support rate rounding. The driver
 -        will also generate a notice in the boot log before disabling
 -        itself if the CPU in question is not capable of rate rounding.
 -
 -        For details, take a look at <file:Documentation/cpu-freq>.
 -
 -        If unsure, say N.
 -
  endmenu
  
  source "arch/sh/drivers/Kconfig"
diff --combined arch/sparc/Kconfig
index a639c0d07b8ba952f23f8f11930cd927e93da50d,90b3a0f66d909438f34bc40737753eb055ddcd98..9ac9f1666339015c3220631a4efe43226844b6d3
@@@ -62,6 -62,7 +62,6 @@@ config SPARC6
        select HAVE_RCU_TABLE_FREE if SMP
        select HAVE_MEMBLOCK
        select HAVE_MEMBLOCK_NODE_MAP
 -      select HAVE_SYSCALL_WRAPPERS
        select HAVE_ARCH_TRANSPARENT_HUGEPAGE
        select HAVE_DYNAMIC_FTRACE
        select HAVE_FTRACE_MCOUNT_RECORD
@@@ -99,9 -100,6 +99,9 @@@ config HAVE_LATENCYTOP_SUPPOR
        bool
        default y if SPARC64
  
 +config ARCH_HIBERNATION_POSSIBLE
 +      def_bool y if SPARC64
 +
  config AUDIT_ARCH
        bool
        default y
@@@ -137,11 -135,6 +137,6 @@@ config GENERIC_ISA_DM
        bool
        default y if SPARC32
  
- config GENERIC_GPIO
-       bool
-       help
-         Generic GPIO API support
  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
        def_bool y if SPARC64
  
@@@ -256,6 -249,29 +251,6 @@@ config HOTPLUG_CP
  
  if SPARC64
  source "drivers/cpufreq/Kconfig"
 -
 -config US3_FREQ
 -      tristate "UltraSPARC-III CPU Frequency driver"
 -      depends on CPU_FREQ
 -      select CPU_FREQ_TABLE
 -      help
 -        This adds the CPUFreq driver for UltraSPARC-III processors.
 -
 -        For details, take a look at <file:Documentation/cpu-freq>.
 -
 -        If in doubt, say N.
 -
 -config US2E_FREQ
 -      tristate "UltraSPARC-IIe CPU Frequency driver"
 -      depends on CPU_FREQ
 -      select CPU_FREQ_TABLE
 -      help
 -        This adds the CPUFreq driver for UltraSPARC-IIe processors.
 -
 -        For details, take a look at <file:Documentation/cpu-freq>.
 -
 -        If in doubt, say N.
 -
  endif
  
  config US3_MC
@@@ -306,10 -322,6 +301,10 @@@ config ARCH_SPARSEMEM_DEFAUL
  
  source "mm/Kconfig"
  
 +if SPARC64
 +source "kernel/power/Kconfig"
 +endif
 +
  config SCHED_SMT
        bool "SMT (Hyperthreading) scheduler support"
        depends on SPARC64 && SMP
@@@ -390,8 -402,6 +385,8 @@@ config SERIAL_CONSOL
  config SPARC_LEON
        bool "Sparc Leon processor family"
        depends on SPARC32
 +      select USB_EHCI_BIG_ENDIAN_MMIO
 +      select USB_EHCI_BIG_ENDIAN_DESC
        ---help---
          If you say Y here if you are running on a SPARC-LEON processor.
          The LEON processor is a synthesizable VHDL model of the
@@@ -479,18 -489,7 +474,18 @@@ config LEON_PC
        depends on PCI && SPARC_LEON
        default y
  
 -config GRPCI2
 +config SPARC_GRPCI1
 +      bool "GRPCI Host Bridge Support"
 +      depends on LEON_PCI
 +      default y
 +      help
 +        Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
 +        PCI host controller is typically found in GRLIB SPARC32/LEON
 +        systems. The driver has one property (all_pci_errors) controlled
 +        from the bootloader that makes the GRPCI to generate interrupts
 +        on detected PCI Parity and System errors.
 +
 +config SPARC_GRPCI2
        bool "GRPCI2 Host Bridge Support"
        depends on LEON_PCI
        default y
diff --combined arch/x86/Kconfig
index 5db2117ae28830757d88db9ad25e54c224332e50,a6298c20c6ceb52cae76b8d33c6a9706665fc118..6a154a91c7e746342f35cf6aa13bdae24f544a88
@@@ -20,7 -20,6 +20,7 @@@ config X86_6
  ### Arch settings
  config X86
        def_bool y
 +      select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
        select HAVE_AOUT if X86_32
        select HAVE_UNSTABLE_SCHED_CLOCK
        select ARCH_SUPPORTS_NUMA_BALANCING
        select OLD_SIGSUSPEND3 if X86_32 || IA32_EMULATION
        select OLD_SIGACTION if X86_32
        select COMPAT_OLD_SIGACTION if IA32_EMULATION
 +      select RTC_LIB
  
  config INSTRUCTION_DECODER
        def_bool y
@@@ -174,9 -172,6 +174,6 @@@ config GENERIC_BUG_RELATIVE_POINTER
  config GENERIC_HWEIGHT
        def_bool y
  
- config GENERIC_GPIO
-       bool
  config ARCH_MAY_HAVE_PC_FDC
        def_bool y
        depends on ISA_DMA_API
@@@ -190,6 -185,9 +187,6 @@@ config GENERIC_CALIBRATE_DELA
  config ARCH_HAS_CPU_RELAX
        def_bool y
  
 -config ARCH_HAS_DEFAULT_IDLE
 -      def_bool y
 -
  config ARCH_HAS_CACHE_LINE_SIZE
        def_bool y
  
@@@ -388,7 -386,7 +385,7 @@@ config X86_NUMACHI
  
  config X86_VSMP
        bool "ScaleMP vSMP"
 -      select PARAVIRT_GUEST
 +      select HYPERVISOR_GUEST
        select PARAVIRT
        depends on X86_64 && PCI
        depends on X86_EXTENDED_PLATFORM
@@@ -595,17 -593,44 +592,17 @@@ config SCHED_OMIT_FRAME_POINTE
  
          If in doubt, say "Y".
  
 -menuconfig PARAVIRT_GUEST
 -      bool "Paravirtualized guest support"
 -      ---help---
 -        Say Y here to get to see options related to running Linux under
 -        various hypervisors.  This option alone does not add any kernel code.
 -
 -        If you say N, all options in this submenu will be skipped and disabled.
 -
 -if PARAVIRT_GUEST
 -
 -config PARAVIRT_TIME_ACCOUNTING
 -      bool "Paravirtual steal time accounting"
 -      select PARAVIRT
 -      default n
 +menuconfig HYPERVISOR_GUEST
 +      bool "Linux guest support"
        ---help---
 -        Select this option to enable fine granularity task steal time
 -        accounting. Time spent executing other tasks in parallel with
 -        the current vCPU is discounted from the vCPU power. To account for
 -        that, there can be a small performance impact.
 -
 -        If in doubt, say N here.
 -
 -source "arch/x86/xen/Kconfig"
 +        Say Y here to enable options for running Linux under various hyper-
 +        visors. This option enables basic hypervisor detection and platform
 +        setup.
  
 -config KVM_GUEST
 -      bool "KVM Guest support (including kvmclock)"
 -      select PARAVIRT
 -      select PARAVIRT
 -      select PARAVIRT_CLOCK
 -      default y if PARAVIRT_GUEST
 -      ---help---
 -        This option enables various optimizations for running under the KVM
 -        hypervisor. It includes a paravirtualized clock, so that instead
 -        of relying on a PIT (or probably other) emulation by the
 -        underlying device model, the host provides the guest with
 -        timing infrastructure such as time of day, and system time
 +        If you say N, all options in this submenu will be skipped and
 +        disabled, and Linux guest support won't be built in.
  
 -source "arch/x86/lguest/Kconfig"
 +if HYPERVISOR_GUEST
  
  config PARAVIRT
        bool "Enable paravirtualization code"
          over full virtualization.  However, when run without a hypervisor
          the kernel is theoretically slower and slightly larger.
  
 +config PARAVIRT_DEBUG
 +      bool "paravirt-ops debugging"
 +      depends on PARAVIRT && DEBUG_KERNEL
 +      ---help---
 +        Enable to debug paravirt_ops internals.  Specifically, BUG if
 +        a paravirt_op is missing when it is called.
 +
  config PARAVIRT_SPINLOCKS
        bool "Paravirtualization layer for spinlocks"
        depends on PARAVIRT && SMP
  
          If you are unsure how to answer this question, answer N.
  
 -config PARAVIRT_CLOCK
 -      bool
 +source "arch/x86/xen/Kconfig"
  
 -endif
 +config KVM_GUEST
 +      bool "KVM Guest support (including kvmclock)"
 +      depends on PARAVIRT
 +      select PARAVIRT_CLOCK
 +      default y
 +      ---help---
 +        This option enables various optimizations for running under the KVM
 +        hypervisor. It includes a paravirtualized clock, so that instead
 +        of relying on a PIT (or probably other) emulation by the
 +        underlying device model, the host provides the guest with
 +        timing infrastructure such as time of day, and system time
  
 -config PARAVIRT_DEBUG
 -      bool "paravirt-ops debugging"
 -      depends on PARAVIRT && DEBUG_KERNEL
 +source "arch/x86/lguest/Kconfig"
 +
 +config PARAVIRT_TIME_ACCOUNTING
 +      bool "Paravirtual steal time accounting"
 +      depends on PARAVIRT
 +      default n
        ---help---
 -        Enable to debug paravirt_ops internals.  Specifically, BUG if
 -        a paravirt_op is missing when it is called.
 +        Select this option to enable fine granularity task steal time
 +        accounting. Time spent executing other tasks in parallel with
 +        the current vCPU is discounted from the vCPU power. To account for
 +        that, there can be a small performance impact.
 +
 +        If in doubt, say N here.
 +
 +config PARAVIRT_CLOCK
 +      bool
 +
 +endif #HYPERVISOR_GUEST
  
  config NO_BOOTMEM
        def_bool y
@@@ -1549,7 -1546,6 +1546,7 @@@ config X86_SMA
  config EFI
        bool "EFI runtime service support"
        depends on ACPI
 +      select UCS2_STRING
        ---help---
          This enables the kernel to use EFI runtime services that are
          available (such as the EFI variable services).
diff --combined drivers/gpio/Kconfig
index c22eed9481e3afd4f6d7dcc8b583e347d500491e,5d53aba8e1c6cde23b4d5d5795d5fa7496374d8b..87d567089f13653297ddc001ec0fda8746254465
@@@ -38,7 -38,6 +38,6 @@@ config GPIO_DEVRE
  menuconfig GPIOLIB
        bool "GPIO Support"
        depends on ARCH_WANT_OPTIONAL_GPIOLIB || ARCH_REQUIRE_GPIOLIB
-       select GENERIC_GPIO
        help
          This enables GPIO support through the generic GPIO library.
          You only need to enable this, if you also want to enable
@@@ -204,12 -203,6 +203,12 @@@ config GPIO_PX
        help
          Say yes here to support the PXA GPIO device
  
 +config GPIO_RCAR
 +      tristate "Renesas R-Car GPIO"
 +      depends on ARM
 +      help
 +        Say yes here to support GPIO on Renesas R-Car SoCs.
 +
  config GPIO_SPEAR_SPICS
        bool "ST SPEAr13xx SPI Chip Select as GPIO support"
        depends on PLAT_SPEAR
@@@ -233,6 -226,12 +232,6 @@@ config GPIO_TS550
          blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
          LCD port.
  
 -config GPIO_VT8500
 -      bool "VIA/Wondermedia SoC GPIO Support"
 -      depends on ARCH_VT8500
 -      help
 -        Say yes here to support the VT8500/WM8505/WM8650 GPIO controller.
 -
  config GPIO_XILINX
        bool "Xilinx GPIO support"
        depends on PPC_OF || MICROBLAZE
@@@ -303,21 -302,12 +302,21 @@@ config GPIO_GE_FPG
  
  config GPIO_LYNXPOINT
        bool "Intel Lynxpoint GPIO support"
 -      depends on ACPI
 +      depends on ACPI && X86
        select IRQ_DOMAIN
        help
          driver for GPIO functionality on Intel Lynxpoint PCH chipset
          Requires ACPI device enumeration code to set up a platform device.
  
 +config GPIO_GRGPIO
 +      tristate "Aeroflex Gaisler GRGPIO support"
 +      depends on OF
 +      select GPIO_GENERIC
 +      select IRQ_DOMAIN
 +      help
 +        Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB
 +        VHDL IP core library.
 +
  comment "I2C GPIO expanders:"
  
  config GPIO_ARIZONA
index dda6a756a3d9946b6d51693a9e09fe48c3cd4ac9,4ad9c6b6a13480962e861573fa94b124ecab266f..90a80eb688a920ca594c144264d15b158b113af0
@@@ -255,7 -255,7 +255,7 @@@ static int __get_gpo_state_p3(struct lp
  }
  
  /*
-  * GENERIC_GPIO primitives.
+  * GPIO primitives.
   */
  static int lpc32xx_gpio_dir_input_p012(struct gpio_chip *chip,
        unsigned pin)
@@@ -533,7 -533,7 +533,7 @@@ static int lpc32xx_of_xlate(struct gpio
  {
        /* Is this the correct bank? */
        u32 bank = gpiospec->args[0];
 -      if ((bank > ARRAY_SIZE(lpc32xx_gpiochip) ||
 +      if ((bank >= ARRAY_SIZE(lpc32xx_gpiochip) ||
            (gc != &lpc32xx_gpiochip[bank].chip)))
                return -EINVAL;
  
index 5faf244d2476bc35f245c067c767226af37a3d05,40062ed83f37884ac2ff59a001ba675d7f28c1b9..f7f9865b8b898864d4d711ada8bb8591ce289529
@@@ -5,21 -5,9 +5,21 @@@
  menu "Multiplexer I2C Chip support"
        depends on I2C_MUX
  
-       depends on GENERIC_GPIO && OF
 +config I2C_ARB_GPIO_CHALLENGE
 +      tristate "GPIO-based I2C arbitration"
++      depends on GPIOLIB && OF
 +      help
 +        If you say yes to this option, support will be included for an
 +        I2C multimaster arbitration scheme using GPIOs and a challenge &
 +        response mechanism where masters have to claim the bus by asserting
 +        a GPIO.
 +
 +        This driver can also be built as a module.  If so, the module
 +        will be called i2c-arb-gpio-challenge.
 +
  config I2C_MUX_GPIO
        tristate "GPIO-based I2C multiplexer"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          If you say yes to this option, support will be included for a
          GPIO based I2C multiplexer. This driver provides access to
index 6a195d5e90ff6e3b62b463bf635cb5537334642e,772666f7d2ba89730f5577dc6c8af105a2da51d6..62a2c0e4cc998774e1c12185b4f04369bbde4d28
@@@ -175,7 -175,7 +175,7 @@@ config KEYBOARD_EP93X
  
  config KEYBOARD_GPIO
        tristate "GPIO Buttons"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          This driver implements support for buttons connected
          to GPIO pins of various CPUs (and some other chips).
  
  config KEYBOARD_GPIO_POLLED
        tristate "Polled GPIO buttons"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_POLLDEV
        help
          This driver implements support for buttons connected
@@@ -241,7 -241,7 +241,7 @@@ config KEYBOARD_TCA841
  
  config KEYBOARD_MATRIX
        tristate "GPIO driven matrix keypad support"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_MATRIXKMAP
        help
          Enable support for GPIO driven matrix keypad.
@@@ -628,16 -628,4 +628,16 @@@ config KEYBOARD_W90P91
          To compile this driver as a module, choose M here: the
          module will be called w90p910_keypad.
  
 +config KEYBOARD_CROS_EC
 +      tristate "ChromeOS EC keyboard"
 +      select INPUT_MATRIXKMAP
 +      depends on MFD_CROS_EC
 +      help
 +        Say Y here to enable the matrix keyboard used by ChromeOS devices
 +        and implemented on the ChromeOS EC. You must enable one bus option
 +        (MFD_CROS_EC_I2C or MFD_CROS_EC_SPI) to use this.
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called cros_ec_keyb.
 +
  endif
index af80928a46b43a14ce54b325ab07094848797bc6,262cda21dcb47844ab6c6293516f4d11fdcf7062..bb698e1f9e429b1c5d6dee2b59f0603807918d84
@@@ -214,7 -214,7 +214,7 @@@ config INPUT_APANE
  config INPUT_GP2A
        tristate "Sharp GP2AP002A00F I2C Proximity/Opto sensor driver"
        depends on I2C
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          Say Y here if you have a Sharp GP2AP002A00F proximity/als combo-chip
          hooked to an I2C bus.
  
  config INPUT_GPIO_TILT_POLLED
        tristate "Polled GPIO tilt switch"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_POLLDEV
        help
          This driver implements support for tilt switches connected
@@@ -472,7 -472,7 +472,7 @@@ config INPUT_PWM_BEEPE
  
  config INPUT_GPIO_ROTARY_ENCODER
        tristate "Rotary encoders connected to GPIO pins"
-       depends on GPIOLIB && GENERIC_GPIO
+       depends on GPIOLIB
        help
          Say Y here to add support for rotary encoders connected to GPIO lines.
          Check file:Documentation/input/rotary-encoder.txt for more
  config INPUT_RB532_BUTTON
        tristate "Mikrotik Routerboard 532 button interface"
        depends on MIKROTIK_RB532
-       depends on GPIOLIB && GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_POLLDEV
        help
          Say Y here if you want support for the S1 button built into
@@@ -590,16 -590,6 +590,16 @@@ config INPUT_ADXL34X_SP
          To compile this driver as a module, choose M here: the
          module will be called adxl34x-spi.
  
 +config INPUT_IMS_PCU
 +      tristate "IMS Passenger Control Unit driver"
 +      depends on USB
 +      depends on LEDS_CLASS
 +      help
 +        Say Y here if you have system with IMS Rave Passenger Control Unit.
 +
 +        To compile this driver as a module, choose M here: the module will be
 +        called ims_pcu.
 +
  config INPUT_CMA3000
        tristate "VTI CMA3000 Tri-axis accelerometer"
        help
diff --combined drivers/leds/Kconfig
index d44806d41b4468838fdd151da7dea61fa2e54b14,2a531774f4d11f124e3c0a6a18223e6c4ac28fb7..ef992293598a6d71296c28209e116cbbea75b026
@@@ -173,7 -173,7 +173,7 @@@ config LEDS_PCA9532_GPI
  config LEDS_GPIO
        tristate "LED Support for GPIO connected LEDs"
        depends on LEDS_CLASS
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          This option enables support for the LEDs connected to GPIO
          outputs. To be useful the particular board must have LEDs
@@@ -194,8 -194,8 +194,8 @@@ config LEDS_LP394
          module will be called leds-lp3944.
  
  config LEDS_LP55XX_COMMON
 -      tristate "Common Driver for TI/National LP5521 and LP5523/55231"
 -      depends on LEDS_LP5521 || LEDS_LP5523
 +      tristate "Common Driver for TI/National LP5521, LP5523/55231 and LP5562"
 +      depends on LEDS_LP5521 || LEDS_LP5523 || LEDS_LP5562
        select FW_LOADER
        help
          This option supports common operations for LP5521 and LP5523/55231
@@@ -222,16 -222,6 +222,16 @@@ config LEDS_LP552
          Driver provides direct control via LED class and interface for
          programming the engines.
  
 +config LEDS_LP5562
 +      tristate "LED Support for TI LP5562 LED driver chip"
 +      depends on LEDS_CLASS && I2C
 +      select LEDS_LP55XX_COMMON
 +      help
 +        If you say yes here you get support for TI LP5562 LED driver.
 +        It is 4 channels chip with programmable engines.
 +        Driver provides direct control via LED class and interface for
 +        programming the engines.
 +
  config LEDS_LP8788
        tristate "LED support for the TI LP8788 PMIC"
        depends on LEDS_CLASS
@@@ -362,7 -352,7 +362,7 @@@ config LEDS_INTEL_SS420
  config LEDS_LT3593
        tristate "LED driver for LT3593 controllers"
        depends on LEDS_CLASS
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          This option enables support for LEDs driven by a Linear Technology
          LT3593 controller. This controller uses a special one-wire pulse
@@@ -431,7 -421,7 +431,7 @@@ config LEDS_ASIC
  
  config LEDS_RENESAS_TPU
        bool "LED support for Renesas TPU"
-       depends on LEDS_CLASS=y && HAVE_CLK && GENERIC_GPIO
+       depends on LEDS_CLASS=y && HAVE_CLK && GPIOLIB
        help
          This option enables build of the LED TPU platform driver,
          suitable to drive any TPU channel on newer Renesas SoCs.
@@@ -479,7 -469,106 +479,7 @@@ config LEDS_BLINK
          This option enables support for the BlinkM RGB LED connected
          through I2C. Say Y to enable support for the BlinkM LED.
  
 -config LEDS_TRIGGERS
 -      bool "LED Trigger support"
 -      depends on LEDS_CLASS
 -      help
 -        This option enables trigger support for the leds class.
 -        These triggers allow kernel events to drive the LEDs and can
 -        be configured via sysfs. If unsure, say Y.
 -
  comment "LED Triggers"
 -
 -config LEDS_TRIGGER_TIMER
 -      tristate "LED Timer Trigger"
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows LEDs to be controlled by a programmable timer
 -        via sysfs. Some LED hardware can be programmed to start
 -        blinking the LED without any further software interaction.
 -        For more details read Documentation/leds/leds-class.txt.
 -
 -        If unsure, say Y.
 -
 -config LEDS_TRIGGER_ONESHOT
 -      tristate "LED One-shot Trigger"
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows LEDs to blink in one-shot pulses with parameters
 -        controlled via sysfs.  It's useful to notify the user on
 -        sporadic events, when there are no clear begin and end trap points,
 -        or on dense events, where this blinks the LED at constant rate if
 -        rearmed continuously.
 -
 -        It also shows how to use the led_blink_set_oneshot() function.
 -
 -        If unsure, say Y.
 -
 -config LEDS_TRIGGER_IDE_DISK
 -      bool "LED IDE Disk Trigger"
 -      depends on IDE_GD_ATA
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows LEDs to be controlled by IDE disk activity.
 -        If unsure, say Y.
 -
 -config LEDS_TRIGGER_HEARTBEAT
 -      tristate "LED Heartbeat Trigger"
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows LEDs to be controlled by a CPU load average.
 -        The flash frequency is a hyperbolic function of the 1-minute
 -        load average.
 -        If unsure, say Y.
 -
 -config LEDS_TRIGGER_BACKLIGHT
 -      tristate "LED backlight Trigger"
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows LEDs to be controlled as a backlight device: they
 -        turn off and on when the display is blanked and unblanked.
 -
 -        If unsure, say N.
 -
 -config LEDS_TRIGGER_CPU
 -      bool "LED CPU Trigger"
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows LEDs to be controlled by active CPUs. This shows
 -        the active CPUs across an array of LEDs so you can see which
 -        CPUs are active on the system at any given moment.
 -
 -        If unsure, say N.
 -
 -config LEDS_TRIGGER_GPIO
 -      tristate "LED GPIO Trigger"
 -      depends on LEDS_TRIGGERS
 -      depends on GPIOLIB
 -      help
 -        This allows LEDs to be controlled by gpio events. It's good
 -        when using gpios as switches and triggering the needed LEDs
 -        from there. One use case is n810's keypad LEDs that could
 -        be triggered by this trigger when user slides up to show
 -        keypad.
 -
 -        If unsure, say N.
 -
 -config LEDS_TRIGGER_DEFAULT_ON
 -      tristate "LED Default ON Trigger"
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows LEDs to be initialised in the ON state.
 -        If unsure, say Y.
 -
 -comment "iptables trigger is under Netfilter config (LED target)"
 -      depends on LEDS_TRIGGERS
 -
 -config LEDS_TRIGGER_TRANSIENT
 -      tristate "LED Transient Trigger"
 -      depends on LEDS_TRIGGERS
 -      help
 -        This allows one time activation of a transient state on
 -        GPIO/PWM based hardware.
 -        If unsure, say Y.
 +source "drivers/leds/trigger/Kconfig"
  
  endif # NEW_LEDS
index 0e1f99c33d47d3cfcb6677ee4736cbe37edf80d4,99ba8e4f2a30aee8637c5286d81aed273eda0da5..f8a2ae413c7f1366901d66d1570eb2de87d3ce60
@@@ -6,11 -6,10 +6,11 @@@ if ARCH_SHMOBILE || SUPER
  
  config PINCTRL_SH_PFC
        # XXX move off the gpio dependency
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select GPIO_SH_PFC if ARCH_REQUIRE_GPIOLIB
        select PINMUX
        select PINCONF
 +      select GENERIC_PINCONF
        def_bool y
        help
          This enables pin control drivers for SH and SH Mobile platforms
@@@ -22,11 -21,6 +22,11 @@@ config GPIO_SH_PF
          This enables support for GPIOs within the SoC's pin function
          controller.
  
 +config PINCTRL_PFC_R8A73A4
 +      def_bool y
 +      depends on ARCH_R8A73A4
 +      select PINCTRL_SH_PFC
 +
  config PINCTRL_PFC_R8A7740
        def_bool y
        depends on ARCH_R8A7740
@@@ -40,19 -34,19 +40,19 @@@ config PINCTRL_PFC_R8A777
  config PINCTRL_PFC_SH7203
        def_bool y
        depends on CPU_SUBTYPE_SH7203
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7264
        def_bool y
        depends on CPU_SUBTYPE_SH7264
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7269
        def_bool y
        depends on CPU_SUBTYPE_SH7269
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7372
@@@ -68,55 -62,55 +68,55 @@@ config PINCTRL_PFC_SH73A
  config PINCTRL_PFC_SH7720
        def_bool y
        depends on CPU_SUBTYPE_SH7720
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7722
        def_bool y
        depends on CPU_SUBTYPE_SH7722
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7723
        def_bool y
        depends on CPU_SUBTYPE_SH7723
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7724
        def_bool y
        depends on CPU_SUBTYPE_SH7724
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7734
        def_bool y
        depends on CPU_SUBTYPE_SH7734
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7757
        def_bool y
        depends on CPU_SUBTYPE_SH7757
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7785
        def_bool y
        depends on CPU_SUBTYPE_SH7785
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SH7786
        def_bool y
        depends on CPU_SUBTYPE_SH7786
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  config PINCTRL_PFC_SHX3
        def_bool y
        depends on CPU_SUBTYPE_SHX3
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select PINCTRL_SH_PFC
  
  endif
diff --combined drivers/spi/Kconfig
index 141d8c10b7645bb29f0d2c1dd03c2d067d3577e1,134b6f3d0274dc2e479909a31e22eaaffd2e38f1..92a9345d7a6bdeaa26fc8ca64a72a9d3a4d0554e
@@@ -55,14 -55,13 +55,14 @@@ comment "SPI Master Controller Drivers
  
  config SPI_ALTERA
        tristate "Altera SPI Controller"
 +      depends on GENERIC_HARDIRQS
        select SPI_BITBANG
        help
          This is the driver for the Altera SPI Controller.
  
  config SPI_ATH79
        tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
-       depends on ATH79 && GENERIC_GPIO
+       depends on ATH79 && GPIOLIB
        select SPI_BITBANG
        help
          This enables support for the SPI controller present on the
@@@ -75,17 -74,6 +75,17 @@@ config SPI_ATME
          This selects a driver for the Atmel SPI Controller, present on
          many AT32 (AVR32) and AT91 (ARM) chips.
  
 +config SPI_BCM2835
 +      tristate "BCM2835 SPI controller"
 +      depends on ARCH_BCM2835
 +      help
 +        This selects a driver for the Broadcom BCM2835 SPI master.
 +
 +        The BCM2835 contains two types of SPI master controller; the
 +        "universal SPI master", and the regular SPI controller. This driver
 +        is for the regular SPI controller. Slave mode operation is not also
 +        not supported.
 +
  config SPI_BFIN5XX
        tristate "SPI controller driver for ADI Blackfin5xx"
        depends on BLACKFIN
@@@ -175,7 -163,7 +175,7 @@@ config SPI_FALCO
  
  config SPI_GPIO
        tristate "GPIO-based bitbanging SPI Master"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select SPI_BITBANG
        help
          This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
@@@ -229,24 -217,17 +229,24 @@@ config SPI_MPC512x_PS
          Controller in SPI master mode.
  
  config SPI_FSL_LIB
 +      tristate
 +      depends on OF
 +
 +config SPI_FSL_CPM
        tristate
        depends on FSL_SOC
  
  config SPI_FSL_SPI
 -      bool "Freescale SPI controller"
 -      depends on FSL_SOC
 +      bool "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
 +      depends on OF
        select SPI_FSL_LIB
 +      select SPI_FSL_CPM if FSL_SOC
        help
          This enables using the Freescale SPI controllers in master mode.
          MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
          MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
 +        This also enables using the Aeroflex Gaisler GRLIB SPI controller in
 +        master mode.
  
  config SPI_FSL_ESPI
        bool "Freescale eSPI controller"
  
  config SPI_OC_TINY
        tristate "OpenCores tiny SPI"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select SPI_BITBANG
        help
          This is the driver for OpenCores tiny SPI master controller.
@@@ -329,7 -310,7 +329,7 @@@ config SPI_PXA2XX_DM
  
  config SPI_PXA2XX
        tristate "PXA2xx SSP SPI master"
 -      depends on ARCH_PXA || PCI || ACPI
 +      depends on (ARCH_PXA || PCI || ACPI) && GENERIC_HARDIRQS
        select PXA_SSP if ARCH_PXA
        help
          This enables using a PXA2xx or Sodaville SSP port as a SPI master
@@@ -416,14 -397,6 +416,14 @@@ config SPI_MX
        help
          SPI driver for Freescale MXS devices.
  
 +config SPI_TEGRA114
 +      tristate "NVIDIA Tegra114 SPI Controller"
 +      depends on ARCH_TEGRA && TEGRA20_APB_DMA
 +      help
 +        SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
 +        is different than the older SoCs SPI controller and also register interface
 +        get changed with this controller.
 +
  config SPI_TEGRA20_SFLASH
        tristate "Nvidia Tegra20 Serial flash Controller"
        depends on ARCH_TEGRA
@@@ -457,7 -430,7 +457,7 @@@ config SPI_TOPCLIFF_PC
  
  config SPI_TXX9
        tristate "Toshiba TXx9 SPI controller"
-       depends on GENERIC_GPIO && CPU_TX49XX
+       depends on GPIOLIB && CPU_TX49XX
        help
          SPI driver for Toshiba TXx9 MIPS SoCs
  
index 9f61d46da157ed031c67a102ba6584fbfb022d05,9feb6ff0650566c308c36ec085d5b00f78ea8b2f..c0c95be0f969de825119ce2a6ee535fd6668a63b
@@@ -22,7 -22,7 +22,7 @@@ config ANDROID_BINDER_IP
  config ASHMEM
        bool "Enable the Anonymous Shared Memory Subsystem"
        default n
 -      depends on SHMEM || TINY_SHMEM
 +      depends on SHMEM
        ---help---
          The ashmem subsystem is a new shared memory allocator, similar to
          POSIX SHM but with different behavior and sporting a simpler
@@@ -54,7 -54,7 +54,7 @@@ config ANDROID_TIMED_OUTPU
  
  config ANDROID_TIMED_GPIO
        tristate "Android timed gpio driver"
-       depends on GENERIC_GPIO && ANDROID_TIMED_OUTPUT
+       depends on GPIOLIB && ANDROID_TIMED_OUTPUT
        default n
  
  config ANDROID_LOW_MEMORY_KILLER
@@@ -72,33 -72,6 +72,33 @@@ config ANDROID_INTF_ALARM_DE
          elapsed realtime, and a non-wakeup alarm on the monotonic clock.
          Also exports the alarm interface to user-space.
  
 +config SYNC
 +      bool "Synchronization framework"
 +      default n
 +      select ANON_INODES
 +      help
 +        This option enables the framework for synchronization between multiple
 +        drivers.  Sync implementations can take advantage of hardware
 +        synchronization built into devices like GPUs.
 +
 +config SW_SYNC
 +      bool "Software synchronization objects"
 +      default n
 +      depends on SYNC
 +      help
 +        A sync object driver that uses a 32bit counter to coordinate
 +        syncrhronization.  Useful when there is no hardware primitive backing
 +        the synchronization.
 +
 +config SW_SYNC_USER
 +      bool "Userspace API for SW_SYNC"
 +      default n
 +      depends on SW_SYNC
 +      help
 +        Provides a user space API to the sw sync object.
 +        *WARNING* improper use of this can result in deadlocking kernel
 +        drivers from userspace.
 +
  endif # if ANDROID
  
  endmenu
index d990829008ffc2c45a163b08212e272f16bd21a5,a48eee1b64570262ad76db7f596d682fe0fb0f38..cabc7a367db50833f6e40dc55ebec4efb9cb57bb
@@@ -73,7 -73,7 +73,7 @@@ config AD778
  config AD7816
        tristate "Analog Devices AD7816/7/8 temperature sensor and ADC driver"
        depends on SPI
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          Say yes here to build support for Analog Devices AD7816/7/8
          temperature sensors and ADC.
@@@ -90,6 -90,13 +90,6 @@@ config AD719
          To compile this driver as a module, choose M here: the
          module will be called ad7192.
  
 -config ADT7410
 -      tristate "Analog Devices ADT7310/ADT7410 temperature sensor driver"
 -      depends on I2C || SPI_MASTER
 -      help
 -        Say yes here to build support for Analog Devices ADT7310/ADT7410
 -        temperature sensors.
 -
  config AD7280
        tristate "Analog Devices AD7280A Lithium Ion Battery Monitoring System"
        depends on SPI
diff --combined drivers/usb/phy/Kconfig
index aab2ab2fbc90d050a474cb39df7563bbfedb8633,65217a5900689028e68a61e28c8011fbc9cbbaea..371d0e74e9094132eb378366858dedd7e654d89f
@@@ -1,74 -1,13 +1,74 @@@
  #
  # Physical Layer USB driver configuration
  #
 -comment "USB Physical Layer drivers"
 -      depends on USB || USB_GADGET
 +menuconfig USB_PHY
 +      bool "USB Physical Layer drivers"
 +      help
 +        USB controllers (those which are host, device or DRD) need a
 +        device to handle the physical layer signalling, commonly called
 +        a PHY.
 +
 +        The following drivers add support for such PHY devices.
 +
 +if USB_PHY
 +
 +#
 +# USB Transceiver Drivers
 +#
 +config AB8500_USB
 +      tristate "AB8500 USB Transceiver Driver"
 +      depends on AB8500_CORE
 +      help
 +        Enable this to support the USB OTG transceiver in AB8500 chip.
 +        This transceiver supports high and full speed devices plus,
 +        in host mode, low speed.
 +
 +config FSL_USB2_OTG
 +      bool "Freescale USB OTG Transceiver Driver"
 +      depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_SUSPEND
 +      select USB_OTG
 +      help
 +        Enable this to support Freescale USB OTG transceiver.
 +
 +config ISP1301_OMAP
 +      tristate "Philips ISP1301 with OMAP OTG"
 +      depends on I2C && ARCH_OMAP_OTG
 +      help
 +        If you say yes here you get support for the Philips ISP1301
 +        USB-On-The-Go transceiver working with the OMAP OTG controller.
 +        The ISP1301 is a full speed USB  transceiver which is used in
 +        products including H2, H3, and H4 development boards for Texas
 +        Instruments OMAP processors.
 +
 +        This driver can also be built as a module.  If so, the module
 +        will be called isp1301_omap.
 +
 +config MV_U3D_PHY
 +      bool "Marvell USB 3.0 PHY controller Driver"
 +      depends on CPU_MMP3
 +      help
 +        Enable this to support Marvell USB 3.0 phy controller for Marvell
 +        SoC.
 +
 +config NOP_USB_XCEIV
 +      tristate "NOP USB Transceiver Driver"
 +      help
 +        This driver is to be used by all the usb transceiver which are either
 +        built-in with usb ip or which are autonomous and doesn't require any
 +        phy programming such as ISP1x04 etc.
 +
 +config OMAP_CONTROL_USB
 +      tristate "OMAP CONTROL USB Driver"
 +      help
 +        Enable this to add support for the USB part present in the control
 +        module. This driver has API to power on the USB2 PHY and to write to
 +        the mailbox. The mailbox is present only in omap4 and the register to
 +        power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
 +        additional register to power on USB3 PHY.
  
  config OMAP_USB2
        tristate "OMAP USB2 PHY Driver"
        depends on ARCH_OMAP2PLUS
 -      select USB_OTG_UTILS
        select OMAP_CONTROL_USB
        help
          Enable this to support the transceiver that is part of SOC. This
@@@ -78,6 -17,7 +78,6 @@@
  
  config OMAP_USB3
        tristate "OMAP USB3 PHY Driver"
 -      select USB_OTG_UTILS
        select OMAP_CONTROL_USB
        help
          Enable this to support the USB3 PHY that is part of SOC. This
          This driver interacts with the "OMAP Control USB Driver" to power
          on/off the PHY.
  
 -config OMAP_CONTROL_USB
 -      tristate "OMAP CONTROL USB Driver"
 +config SAMSUNG_USBPHY
 +      tristate "Samsung USB PHY Driver"
        help
 -        Enable this to add support for the USB part present in the control
 -        module. This driver has API to power on the USB2 PHY and to write to
 -        the mailbox. The mailbox is present only in omap4 and the register to
 -        power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
 -        additional register to power on USB3 PHY.
 +        Enable this to support Samsung USB phy helper driver for Samsung SoCs.
 +        This driver provides common interface to interact, for Samsung USB 2.0 PHY
 +        driver and later for Samsung USB 3.0 PHY driver.
 +
 +config SAMSUNG_USB2PHY
 +      tristate "Samsung USB 2.0 PHY controller Driver"
 +      select SAMSUNG_USBPHY
 +      help
 +        Enable this to support Samsung USB 2.0 (High Speed) PHY controller
 +        driver for Samsung SoCs.
 +
 +config SAMSUNG_USB3PHY
 +      tristate "Samsung USB 3.0 PHY controller Driver"
 +      select SAMSUNG_USBPHY
 +      help
 +        Enable this to support Samsung USB 3.0 (Super Speed) phy controller
 +        for samsung SoCs.
 +
 +config TWL4030_USB
 +      tristate "TWL4030 USB Transceiver Driver"
 +      depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
 +      help
 +        Enable this to support the USB OTG transceiver on TWL4030
 +        family chips (including the TWL5030 and TPS659x0 devices).
 +        This transceiver supports high and full speed devices plus,
 +        in host mode, low speed.
 +
 +config TWL6030_USB
 +      tristate "TWL6030 USB Transceiver Driver"
 +      depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
 +      help
 +        Enable this to support the USB OTG transceiver on TWL6030
 +        family chips. This TWL6030 transceiver has the VBUS and ID GND
 +        and OTG SRP events capabilities. For all other transceiver functionality
 +        UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
 +        are hooked to this driver through platform_data structure.
 +        The definition of internal PHY APIs are in the mach-omap2 layer.
 +
 +config USB_GPIO_VBUS
 +      tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
-       depends on GENERIC_GPIO
++      depends on GPIOLIB
 +      help
 +        Provides simple GPIO VBUS sensing for controllers with an
 +        internal transceiver via the usb_phy interface, and
 +        optionally control of a D+ pullup GPIO as well as a VBUS
 +        current limit regulator.
  
  config USB_ISP1301
        tristate "NXP ISP1301 USB transceiver support"
        depends on USB || USB_GADGET
        depends on I2C
 +      select USB_OTG_UTILS
        help
          Say Y here to add support for the NXP ISP1301 USB transceiver driver.
          This chip is typically used as USB transceiver for USB host, gadget
          To compile this driver as a module, choose M here: the
          module will be called isp1301.
  
 -config MV_U3D_PHY
 -      bool "Marvell USB 3.0 PHY controller Driver"
 -      depends on USB_MV_U3D
 -      select USB_OTG_UTILS
 +config USB_MSM_OTG
 +      tristate "OTG support for Qualcomm on-chip USB controller"
 +      depends on (USB || USB_GADGET) && ARCH_MSM
        help
 -        Enable this to support Marvell USB 3.0 phy controller for Marvell
 -        SoC.
 +        Enable this to support the USB OTG transceiver on MSM chips. It
 +        handles PHY initialization, clock management, and workarounds
 +        required after resetting the hardware and power management.
 +        This driver is required even for peripheral only or host only
 +        mode configurations.
 +        This driver is not supported on boards like trout which
 +        has an external PHY.
 +
 +config USB_MV_OTG
 +      tristate "Marvell USB OTG support"
 +      depends on USB_EHCI_MV && USB_MV_UDC && USB_SUSPEND
 +      select USB_OTG
 +      help
 +        Say Y here if you want to build Marvell USB OTG transciever
 +        driver in kernel (including PXA and MMP series). This driver
 +        implements role switch between EHCI host driver and gadget driver.
 +
 +        To compile this driver as a module, choose M here.
 +
 +config USB_MXS_PHY
 +      tristate "Freescale MXS USB PHY support"
 +      depends on ARCH_MXC || ARCH_MXS
 +      select STMP_DEVICE
 +      help
 +        Enable this to support the Freescale MXS USB PHY.
 +
 +        MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
  
  config USB_RCAR_PHY
        tristate "Renesas R-Car USB phy support"
        depends on USB || USB_GADGET
 -      select USB_OTG_UTILS
        help
          Say Y here to add support for the Renesas R-Car USB phy driver.
          This chip is typically used as USB phy for USB host, gadget.
          To compile this driver as a module, choose M here: the
          module will be called rcar-phy.
  
 -config SAMSUNG_USBPHY
 -      bool "Samsung USB PHY controller Driver"
 -      depends on USB_S3C_HSOTG || USB_EHCI_S5P || USB_OHCI_EXYNOS
 -      select USB_OTG_UTILS
 +config USB_ULPI
 +      bool "Generic ULPI Transceiver Driver"
 +      depends on ARM
 +      help
 +        Enable this to support ULPI connected USB OTG transceivers which
 +        are likely found on embedded boards.
 +
 +config USB_ULPI_VIEWPORT
 +      bool
 +      depends on USB_ULPI
        help
 -        Enable this to support Samsung USB phy controller for samsung
 -        SoCs.
 +        Provides read/write operations to the ULPI phy register set for
 +        controllers with a viewport register (e.g. Chipidea/ARC controllers).
 +
 +endif # USB_PHY
diff --combined drivers/video/Kconfig
index c04ccdf60eaa21ddd4d441b07ad6b3201ce62614,df9c738d1ff257ca9466c09702e183687bf2487f..1534cf3c1423fe7899c6672c83259990d916a16c
@@@ -21,8 -21,6 +21,8 @@@ source "drivers/gpu/vga/Kconfig
  
  source "drivers/gpu/drm/Kconfig"
  
 +source "drivers/gpu/host1x/Kconfig"
 +
  config VGASTATE
         tristate
         default n
@@@ -33,8 -31,26 +33,8 @@@ config VIDEO_OUTPUT_CONTRO
          This framework adds support for low-level control of the video 
          output switch.
  
 -config DISPLAY_TIMING
 -       bool
 -
 -config VIDEOMODE
 -       bool
 -
 -config OF_DISPLAY_TIMING
 -      bool "Enable device tree display timing support"
 -      depends on OF
 -      select DISPLAY_TIMING
 -      help
 -        helper to parse display timings from the devicetree
 -
 -config OF_VIDEOMODE
 -      bool "Enable device tree videomode support"
 -      depends on OF
 -      select VIDEOMODE
 -      select OF_DISPLAY_TIMING
 -      help
 -        helper to get videomodes from the devicetree
 +config VIDEOMODE_HELPERS
 +      bool
  
  config HDMI
        bool
@@@ -196,6 -212,14 +196,6 @@@ config FB_SYS_FOP
         depends on FB
         default n
  
 -config FB_WMT_GE_ROPS
 -      tristate
 -      depends on FB
 -      default n
 -      ---help---
 -        Include functions for accelerated rectangle filling and area
 -        copying using WonderMedia Graphics Engine operations.
 -
  config FB_DEFERRED_IO
        bool
        depends on FB
@@@ -1773,37 -1797,22 +1773,37 @@@ config FB_AU120
          option au1200fb:panel=<name>.
  
  config FB_VT8500
 -      bool "VT8500 LCD Driver"
 +      bool "VIA VT8500 framebuffer support"
        depends on (FB = y) && ARM && ARCH_VT8500
 -      select FB_WMT_GE_ROPS
 +      select FB_SYS_FILLRECT if (!FB_WMT_GE_ROPS)
 +      select FB_SYS_COPYAREA if (!FB_WMT_GE_ROPS)
        select FB_SYS_IMAGEBLIT
 +      select FB_MODE_HELPERS
 +      select VIDEOMODE_HELPERS
        help
          This is the framebuffer driver for VIA VT8500 integrated LCD
          controller.
  
  config FB_WM8505
 -      bool "WM8505 frame buffer support"
 +      bool "Wondermedia WM8xxx-series frame buffer support"
        depends on (FB = y) && ARM && ARCH_VT8500
 -      select FB_WMT_GE_ROPS
 +      select FB_SYS_FILLRECT if (!FB_WMT_GE_ROPS)
 +      select FB_SYS_COPYAREA if (!FB_WMT_GE_ROPS)
        select FB_SYS_IMAGEBLIT
 +      select FB_MODE_HELPERS
 +      select VIDEOMODE_HELPERS
 +      help
 +        This is the framebuffer driver for WonderMedia WM8xxx-series
 +        integrated LCD controller. This driver covers the WM8505, WM8650
 +        and WM8850 SoCs.
 +
 +config FB_WMT_GE_ROPS
 +      bool "VT8500/WM8xxx accelerated raster ops support"
 +      depends on (FB = y) && (FB_VT8500 || FB_WM8505)
 +      default n
        help
 -        This is the framebuffer driver for WonderMedia WM8505/WM8650
 -        integrated LCD controller.
 +        This adds support for accelerated raster operations on the
 +        VIA VT8500 and Wondermedia 85xx series SoCs.
  
  source "drivers/video/geode/Kconfig"
  
@@@ -2268,7 -2277,7 +2268,7 @@@ config XEN_FBDEV_FRONTEN
        select FB_SYS_IMAGEBLIT
        select FB_SYS_FOPS
        select FB_DEFERRED_IO
 -      select INPUT_XEN_KBDDEV_FRONTEND
 +      select INPUT_XEN_KBDDEV_FRONTEND if INPUT_MISC
        select XEN_XENBUS_FRONTEND
        default y
        help
@@@ -2428,8 -2437,6 +2428,8 @@@ config FB_MX
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
 +      select FB_MODE_HELPERS
 +      select OF_VIDEOMODE
        help
          Framebuffer support for the MXS SoC.
  
@@@ -2444,15 -2451,6 +2444,15 @@@ config FB_PUV3_UNIGF
          Choose this option if you want to use the Unigfx device as a
          framebuffer device. Without the support of PCI & AGP.
  
 +config FB_HYPERV
 +      tristate "Microsoft Hyper-V Synthetic Video support"
 +      depends on FB && HYPERV
 +      select FB_CFB_FILLRECT
 +      select FB_CFB_COPYAREA
 +      select FB_CFB_IMAGEBLIT
 +      help
 +        This framebuffer driver supports Microsoft Hyper-V Synthetic Video.
 +
  source "drivers/video/omap/Kconfig"
  source "drivers/video/omap2/Kconfig"
  source "drivers/video/exynos/Kconfig"
@@@ -2483,7 -2481,7 +2483,7 @@@ config FB_SSD130
        tristate "Solomon SSD1307 framebuffer support"
        depends on FB && I2C
        depends on OF
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select FB_SYS_FOPS
        select FB_SYS_FILLRECT
        select FB_SYS_COPYAREA
index 2e166c3fc4c354c1184343b265d17ef02f6c212f,b83d1557d421b6c74c2f53f3cfebdd360f560f92..d5ab6583f440492fe1c3caa77001e32bcfcf0efa
@@@ -36,14 -36,14 +36,14 @@@ config LCD_CORG
  
  config LCD_L4F00242T03
        tristate "Epson L4F00242T03 LCD"
-       depends on SPI_MASTER && GENERIC_GPIO
+       depends on SPI_MASTER && GPIOLIB
        help
          SPI driver for Epson L4F00242T03. This provides basic support
          for init and powering the LCD up/down through a sysfs interface.
  
  config LCD_LMS283GF05
        tristate "Samsung LMS283GF05 LCD"
-       depends on SPI_MASTER && GENERIC_GPIO
+       depends on SPI_MASTER && GPIOLIB
        help
          SPI driver for Samsung LMS283GF05. This provides basic support
          for powering the LCD up/down through a sysfs interface.
@@@ -59,13 -59,6 +59,13 @@@ config LCD_LTV350Q
  
          The LTV350QV panel is present on all ATSTK1000 boards.
  
 +config LCD_ILI922X
 +      tristate "ILI Technology ILI9221/ILI9222 support"
 +      depends on SPI
 +      help
 +        If you have a panel based on the ILI9221/9222 controller
 +        chip then say y to include a driver for it.
 +
  config LCD_ILI9320
        tristate "ILI Technology ILI9320 controller support"
        depends on SPI
@@@ -168,7 -161,7 +168,7 @@@ if BACKLIGHT_CLASS_DEVIC
  config BACKLIGHT_ATMEL_LCDC
        bool "Atmel LCDC Contrast-as-Backlight control"
        depends on FB_ATMEL
 -      default y if MACH_SAM9261EK || MACH_SAM9G10EK || MACH_SAM9263EK
 +      default y if MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK
        help
          This provides a backlight control internal to the Atmel LCDC
          driver.  If the LCD "contrast control" on your board is wired