Merge tag 'pwm/for-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 16 Nov 2013 20:21:40 +0000 (12:21 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 16 Nov 2013 20:21:40 +0000 (12:21 -0800)
Pull pwm changes from Thierry Reding:
 "Mostly bug fixes and clean up.  There is a new driver, which is
  actually moving a custom PWM driver from drivers/misc.

  The majority of the patches are enhancements to the device tree
  support in the pwm-backlight driver.  Backlights can now additionally
  be powered using a regulator and enabled using a GPIO in addition to
  just the PWM input"

* tag 'pwm/for-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (30 commits)
  Documentation/pwm: Update supported SoC name for pwm-samsung
  pwm: samsung: Fix kernel warning while unexporting a channel
  MAINTAINERS: Move PWM subsystem tree to kernel.org
  Documentation/pwm: Fix trivial typos
  pwm-backlight: Remove unused variable
  pwm_backlight: avoid short blank screen while doing hibernation
  pwm-backlight: Fix brightness adjustment
  pwm: add ep93xx PWM support
  pwm-backlight: Allow for non-increasing brightness levels
  pwm-backlight: Add power supply support
  pwm-backlight: Use new enable_gpio field
  unicore32: Initialize PWM backlight enable_gpio field
  ARM: shmobile: Initialize PWM backlight enable_gpio field
  ARM: SAMSUNG: Initialize PWM backlight enable_gpio field
  ARM: pxa: Initialize PWM backlight enable_gpio field
  ARM: OMAP: Initialize PWM backlight enable_gpio field
  pwm-backlight: Add optional enable GPIO
  pwm-backlight: Track enable state
  pwm-backlight: Refactor backlight power on/off
  pwm-backlight: Improve readability
  ...

1  2 
MAINTAINERS
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/mach-hmt.c
arch/arm/mach-s3c64xx/mach-smartq.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-shmobile/board-armadillo800eva.c
drivers/misc/Kconfig
drivers/misc/Makefile
drivers/video/backlight/pwm_bl.c

diff --combined MAINTAINERS
index aef332323256bbcb34674d3845d80d73819fc197,57b0a9f697b37349079f2662de69e2a9096eda33..88bc6edee2627735a9ac79f89f91266d41223b88
@@@ -237,11 -237,11 +237,11 @@@ F:      drivers/platform/x86/acer-wmi.
  
  ACPI
  M:    Len Brown <lenb@kernel.org>
 -M:    Rafael J. Wysocki <rjw@sisk.pl>
 +M:    Rafael J. Wysocki <rjw@rjwysocki.net>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 -Q:    http://patchwork.kernel.org/project/linux-acpi/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
 +W:    https://01.org/linux-acpi
 +Q:    https://patchwork.kernel.org/project/linux-acpi/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
  S:    Supported
  F:    drivers/acpi/
  F:    drivers/pnp/pnpacpi/
@@@ -253,38 -253,24 +253,38 @@@ F:      drivers/pci/*acpi
  F:    drivers/pci/*/*acpi*
  F:    drivers/pci/*/*/*acpi*
  
 +ACPI COMPONENT ARCHITECTURE (ACPICA)
 +M:    Robert Moore <robert.moore@intel.com>
 +M:    Lv Zheng <lv.zheng@intel.com>
 +M:    Rafael J. Wysocki <rafael.j.wysocki@intel.com>
 +L:    linux-acpi@vger.kernel.org
 +L:    devel@acpica.org
 +W:    https://acpica.org/
 +W:    https://github.com/acpica/acpica/
 +Q:    https://patchwork.kernel.org/project/linux-acpi/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
 +S:    Supported
 +F:    drivers/acpi/acpica/
 +F:    include/acpi/
 +
  ACPI FAN DRIVER
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/acpi/fan.c
  
  ACPI THERMAL DRIVER
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/acpi/*thermal*
  
  ACPI VIDEO DRIVER
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/acpi/video.c
  
@@@ -777,10 -763,6 +777,10 @@@ W:       http://maxim.org.za/at91_26.htm
  W:    http://www.linux4sam.org
  S:    Supported
  F:    arch/arm/mach-at91/
 +F:    arch/arm/boot/dts/at91*.dts
 +F:    arch/arm/boot/dts/at91*.dtsi
 +F:    arch/arm/boot/dts/sama*.dts
 +F:    arch/arm/boot/dts/sama*.dtsi
  
  ARM/CALXEDA HIGHBANK ARCHITECTURE
  M:    Rob Herring <rob.herring@calxeda.com>
@@@ -842,21 -824,15 +842,21 @@@ S:      Maintaine
  F:    arch/arm/mach-gemini/
  
  ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
 -M:    Barry Song <baohua.song@csr.com>
 +M:    Barry Song <baohua@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git
  S:    Maintained
  F:    arch/arm/mach-prima2/
 +F:    drivers/clk/clk-prima2.c
 +F:    drivers/clocksource/timer-prima2.c
 +F:    drivers/clocksource/timer-marco.c
  F:    drivers/dma/sirf-dma.c
  F:    drivers/i2c/busses/i2c-sirf.c
 +F:    drivers/input/misc/sirfsoc-onkey.c
 +F:    drivers/irqchip/irq-sirfsoc.c
  F:    drivers/mmc/host/sdhci-sirf.c
  F:    drivers/pinctrl/sirf/
 +F:    drivers/rtc/rtc-sirfsoc.c
  F:    drivers/spi/spi-sirf.c
  
  ARM/EBSA110 MACHINE SUPPORT
@@@ -947,7 -923,7 +947,7 @@@ M: Javier Martinez Canillas <javier@dow
  L:    linux-omap@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/mach-omap2/board-igep0020.c
 +F:    arch/arm/boot/dts/omap3-igep*
  
  ARM/INCOME PXA270 SUPPORT
  M:    Marek Vasut <marek.vasut@gmail.com>
@@@ -1027,7 -1003,6 +1027,7 @@@ ARM/Marvell Armada 370 and Armada XP SO
  M:    Jason Cooper <jason@lakedaemon.net>
  M:    Andrew Lunn <andrew@lunn.ch>
  M:    Gregory Clement <gregory.clement@free-electrons.com>
 +M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-mvebu/
  ARM/Marvell Dove/Kirkwood/MV78xx0/Orion SOC support
  M:    Jason Cooper <jason@lakedaemon.net>
  M:    Andrew Lunn <andrew@lunn.ch>
 +M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-dove/
@@@ -1168,12 -1142,10 +1168,12 @@@ F:   drivers/net/ethernet/i825xx/ether1
  F:    drivers/net/ethernet/seeq/ether3*
  F:    drivers/scsi/arm/
  
 -ARM/SHARK MACHINE SUPPORT
 -M:    Alexander Schulz <alex@shark-linux.de>
 -W:    http://www.shark-linux.de/shark.html
 +ARM/Rockchip SoC support
 +M:    Heiko Stuebner <heiko@sntech.de>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 +F:    arch/arm/mach-rockchip/
 +F:    drivers/*/*rockchip*
  
  ARM/SAMSUNG ARM ARCHITECTURES
  M:    Ben Dooks <ben-linux@fluff.org>
@@@ -1182,8 -1154,6 +1182,8 @@@ L:      linux-arm-kernel@lists.infradead.or
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  W:    http://www.fluff.org/ben/linux/
  S:    Maintained
 +F:    arch/arm/boot/dts/s3c*
 +F:    arch/arm/boot/dts/exynos*
  F:    arch/arm/plat-samsung/
  F:    arch/arm/mach-s3c24*/
  F:    arch/arm/mach-s3c64xx/
@@@ -1675,15 -1645,16 +1675,15 @@@ S:   Maintaine
  F:    drivers/net/wireless/b43legacy/
  
  BACKLIGHT CLASS/SUBSYSTEM
 -M:    Richard Purdie <rpurdie@rpsys.net>
  M:    Jingoo Han <jg1.han@samsung.com>
  S:    Maintained
  F:    drivers/video/backlight/
  F:    include/linux/backlight.h
  
  BATMAN ADVANCED
 -M:    Marek Lindner <lindner_marek@yahoo.de>
 -M:    Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
 -M:    Antonio Quartulli <ordex@autistici.org>
 +M:    Marek Lindner <mareklindner@neomailbox.ch>
 +M:    Simon Wunderlich <sw@simonwunderlich.de>
 +M:    Antonio Quartulli <antonio@meshcoding.com>
  L:    b.a.t.m.a.n@lists.open-mesh.org
  W:    http://www.open-mesh.org/
  S:    Maintained
@@@ -1814,7 -1785,6 +1814,7 @@@ F:      include/net/bluetooth
  
  BONDING DRIVER
  M:    Jay Vosburgh <fubar@us.ibm.com>
 +M:    Veaceslav Falico <vfalico@redhat.com>
  M:    Andy Gospodarek <andy@greyhouse.net>
  L:    netdev@vger.kernel.org
  W:    http://sourceforge.net/projects/bonding/
@@@ -1836,14 -1806,13 +1836,14 @@@ F:   drivers/net/ethernet/broadcom/bnx2.
  F:    drivers/net/ethernet/broadcom/bnx2_*
  
  BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
 -M:    Eilon Greenstein <eilong@broadcom.com>
 +M:    Ariel Elior <ariele@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bnx2x/
  
  BROADCOM BCM281XX/BCM11XXX ARM ARCHITECTURE
 -M:    Christian Daudt <csd@broadcom.com>
 +M:    Christian Daudt <bcm@fixthebug.org>
 +L:    bcm-kernel-feedback-list@broadcom.com
  T:    git git://git.github.com/broadcom/bcm11351
  S:    Maintained
  F:    arch/arm/mach-bcm/
@@@ -1881,7 -1850,7 +1881,7 @@@ S:      Supporte
  F:    drivers/net/wireless/brcm80211/
  
  BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER
 -M:    Bhanu Prakash Gollapudi <bprakash@broadcom.com>
 +M:    Eddie Wai <eddie.wai@broadcom.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/bnx2fc/
@@@ -2324,7 -2293,7 +2324,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/ti/cpmac.c
  
  CPU FREQUENCY DRIVERS
 -M:    Rafael J. Wysocki <rjw@sisk.pl>
 +M:    Rafael J. Wysocki <rjw@rjwysocki.net>
  M:    Viresh Kumar <viresh.kumar@linaro.org>
  L:    cpufreq@vger.kernel.org
  L:    linux-pm@vger.kernel.org
@@@ -2355,7 -2324,7 +2355,7 @@@ S:      Maintaine
  F:      drivers/cpuidle/cpuidle-big_little.c
  
  CPUIDLE DRIVERS
 -M:    Rafael J. Wysocki <rjw@sisk.pl>
 +M:    Rafael J. Wysocki <rjw@rjwysocki.net>
  M:    Daniel Lezcano <daniel.lezcano@linaro.org>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
@@@ -2386,7 -2355,7 +2386,7 @@@ F:      kernel/cpuset.
  
  CRAMFS FILESYSTEM
  W:    http://sourceforge.net/projects/cramfs/
 -S:    Orphan
 +S:    Orphan / Obsolete
  F:    Documentation/filesystems/cramfs.txt
  F:    fs/cramfs/
  
@@@ -2661,7 -2630,6 +2661,7 @@@ M:      dm-devel@redhat.co
  L:    dm-devel@redhat.com
  W:    http://sources.redhat.com/dm
  Q:    http://patchwork.kernel.org/project/dm-devel/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
  T:    quilt http://people.redhat.com/agk/patches/linux/editing/
  S:    Maintained
  F:    Documentation/device-mapper/
@@@ -2671,18 -2639,6 +2671,18 @@@ F:    include/linux/device-mapper.
  F:    include/linux/dm-*.h
  F:    include/uapi/linux/dm-*.h
  
 +DIGI NEO AND CLASSIC PCI PRODUCTS
 +M:    Lidza Louina <lidza.louina@gmail.com>
 +L:    driverdev-devel@linuxdriverproject.org
 +S:    Maintained
 +F:    drivers/staging/dgnc/
 +
 +DIGI EPCA PCI PRODUCTS
 +M:    Lidza Louina <lidza.louina@gmail.com>
 +L:    driverdev-devel@linuxdriverproject.org
 +S:    Maintained
 +F:    drivers/staging/dgap/
 +
  DIOLAN U2C-12 I2C DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-i2c@vger.kernel.org
@@@ -2743,8 -2699,6 +2743,8 @@@ T:      git git://git.linaro.org/people/sumi
  DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
  M:    Vinod Koul <vinod.koul@intel.com>
  M:    Dan Williams <dan.j.williams@intel.com>
 +L:    dmaengine@vger.kernel.org
 +Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
  S:    Supported
  F:    drivers/dma/
  F:    include/linux/dma*
@@@ -2848,10 -2802,8 +2848,10 @@@ M:    Terje Bergström <tbergstrom@nvidia.
  L:    dri-devel@lists.freedesktop.org
  L:    linux-tegra@vger.kernel.org
  T:    git git://anongit.freedesktop.org/tegra/linux.git
 -S:    Maintained
 +S:    Supported
 +F:    drivers/gpu/drm/tegra/
  F:    drivers/gpu/host1x/
 +F:    include/linux/host1x.h
  F:    include/uapi/drm/tegra_drm.h
  F:    Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt
  
@@@ -3582,7 -3534,7 +3582,7 @@@ F:      fs/freevxfs
  
  FREEZER
  M:    Pavel Machek <pavel@ucw.cz>
 -M:    "Rafael J. Wysocki" <rjw@sisk.pl>
 +M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    Documentation/power/freezing-of-tasks.txt
@@@ -3653,12 -3605,6 +3653,12 @@@ L:    linux-scsi@vger.kernel.or
  S:    Odd Fixes (e.g., new signatures)
  F:    drivers/scsi/fdomain.*
  
 +GCOV BASED KERNEL PROFILING
 +M:    Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
 +S:    Maintained
 +F:    kernel/gcov/
 +F:    Documentation/gcov.txt
 +
  GDT SCSI DISK ARRAY CONTROLLER DRIVER
  M:    Achim Leubner <achim_leubner@adaptec.com>
  L:    linux-scsi@vger.kernel.org
@@@ -3708,14 -3654,6 +3708,14 @@@ S:    Maintaine
  F:    include/asm-generic/
  F:    include/uapi/asm-generic/
  
 +GENERIC PHY FRAMEWORK
 +M:    Kishon Vijay Abraham I <kishon@ti.com>
 +L:    linux-kernel@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git
 +S:    Supported
 +F:    drivers/phy/
 +F:    include/linux/phy/
 +
  GENERIC UIO DRIVER FOR PCI DEVICES
  M:    "Michael S. Tsirkin" <mst@redhat.com>
  L:    kvm@vger.kernel.org
@@@ -3932,7 -3870,7 +3932,7 @@@ F:      drivers/video/hgafb.
  
  HIBERNATION (aka Software Suspend, aka swsusp)
  M:    Pavel Machek <pavel@ucw.cz>
 -M:    "Rafael J. Wysocki" <rjw@sisk.pl>
 +M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    arch/x86/power/
@@@ -4257,7 -4195,7 +4257,7 @@@ S:      Maintaine
  F:    drivers/media/rc/iguanair.c
  
  IIO SUBSYSTEM AND DRIVERS
 -M:    Jonathan Cameron <jic23@cam.ac.uk>
 +M:    Jonathan Cameron <jic23@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  F:    drivers/iio/
@@@ -4382,7 -4320,7 +4382,7 @@@ F:      drivers/video/i810
  INTEL MENLOW THERMAL DRIVER
  M:    Sujith Thomas <sujith.thomas@intel.com>
  L:    platform-driver-x86@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/platform/x86/intel_menlow.c
  
@@@ -4394,10 -4332,7 +4394,10 @@@ F:    arch/x86/kernel/microcode_intel.
  
  INTEL I/OAT DMA DRIVER
  M:    Dan Williams <dan.j.williams@intel.com>
 -S:    Maintained
 +M:    Dave Jiang <dave.jiang@intel.com>
 +L:    dmaengine@vger.kernel.org
 +Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
 +S:    Supported
  F:    drivers/dma/ioat*
  
  INTEL IOMMU (VT-d)
@@@ -4456,12 -4391,6 +4456,12 @@@ F:    Documentation/networking/ixgbevf.tx
  F:    Documentation/networking/i40e.txt
  F:    drivers/net/ethernet/intel/
  
 +INTEL-MID GPIO DRIVER
 +M:    David Cohen <david.a.cohen@linux.intel.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-intel-mid.c
 +
  INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
  M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -4528,13 -4457,6 +4528,13 @@@ L:    linux-serial@vger.kernel.or
  S:    Maintained
  F:    drivers/tty/serial/ioc3_serial.c
  
 +IOMMU DRIVERS
 +M:    Joerg Roedel <joro@8bytes.org>
 +L:    iommu@lists.linux-foundation.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
 +S:    Maintained
 +F:    drivers/iommu/
 +
  IP MASQUERADING
  M:    Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
  S:    Maintained
@@@ -4800,18 -4722,10 +4800,18 @@@ S:   Maintaine
  F:    Documentation/hwmon/k8temp
  F:    drivers/hwmon/k8temp.c
  
 +KTAP
 +M:    Jovi Zhangwei <jovi.zhangwei@gmail.com>
 +W:    http://www.ktap.org
 +L:    ktap@freelists.org
 +S:    Maintained
 +F:    drivers/staging/ktap/
 +
  KCONFIG
 -M:    Michal Marek <mmarek@suse.cz>
 +M:    "Yann E. MORIN" <yann.morin.1998@free.fr>
  L:    linux-kbuild@vger.kernel.org
 -S:    Odd Fixes
 +T:    git://gitorious.org/linux-kconfig/linux-kconfig
 +S:    Maintained
  F:    Documentation/kbuild/kconfig-language.txt
  F:    scripts/kconfig/
  
@@@ -4874,8 -4788,7 +4874,8 @@@ KERNEL VIRTUAL MACHINE (KVM
  M:    Gleb Natapov <gleb@redhat.com>
  M:    Paolo Bonzini <pbonzini@redhat.com>
  L:    kvm@vger.kernel.org
 -W:    http://linux-kvm.org
 +W:    http://www.linux-kvm.org
 +T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
  S:    Supported
  F:    Documentation/*/kvm*.txt
  F:    Documentation/virtual/kvm/
@@@ -5215,7 -5128,6 +5215,7 @@@ M:      Jean Delvare <khali@linux-fr.org
  L:    lm-sensors@lm-sensors.org
  S:    Maintained
  F:    Documentation/hwmon/lm90
 +F:    Documentation/devicetree/bindings/hwmon/lm90.txt
  F:    drivers/hwmon/lm90.c
  
  LM95234 HARDWARE MONITOR DRIVER
@@@ -5394,7 -5306,7 +5394,7 @@@ S:      Orpha
  F:    drivers/net/wireless/libertas/
  
  MARVELL MV643XX ETHERNET DRIVER
 -M:    Lennert Buytenhek <buytenh@wantstofly.org>
 +M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/marvell/mv643xx_eth.*
@@@ -6150,12 -6062,6 +6150,12 @@@ L:    linux-omap@vger.kernel.or
  S:    Maintained
  F:    drivers/gpio/gpio-omap.c
  
 +OMAP/NEWFLOW NANOBONE MACHINE SUPPORT
 +M:    Mark Jackson <mpfj@newflow.co.uk>
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +F:    arch/arm/boot/dts/am335x-nano.dts
 +
  OMFS FILESYSTEM
  M:    Bob Copeland <me@bobcopeland.com>
  L:    linux-karma-devel@lists.sourceforge.net
@@@ -6432,7 -6338,6 +6432,7 @@@ S:      Supporte
  F:    Documentation/PCI/
  F:    drivers/pci/
  F:    include/linux/pci*
 +F:    arch/x86/pci/
  
  PCI DRIVER FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
@@@ -6441,12 -6346,6 +6441,12 @@@ S:    Supporte
  F:    Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
  F:    drivers/pci/host/pci-tegra.c
  
 +PCI DRIVER FOR SAMSUNG EXYNOS
 +M:    Jingoo Han <jg1.han@samsung.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    drivers/pci/host/pci-exynos.c
 +
  PCMCIA SUBSYSTEM
  P:    Linux PCMCIA Team
  L:    linux-pcmcia@lists.infradead.org
@@@ -6696,7 -6595,7 +6696,7 @@@ S:      Obsolet
  F:    drivers/net/wireless/prism54/
  
  PROMISE SATA TX2/TX4 CONTROLLER LIBATA DRIVER
 -M:    Mikael Pettersson <mikpe@it.uu.se>
 +M:    Mikael Pettersson <mikpelinux@gmail.com>
  L:    linux-ide@vger.kernel.org
  S:    Maintained
  F:    drivers/ata/sata_promise.*
@@@ -6785,8 -6684,7 +6785,7 @@@ PWM SUBSYSTE
  M:    Thierry Reding <thierry.reding@gmail.com>
  L:    linux-pwm@vger.kernel.org
  S:    Maintained
- W:    http://gitorious.org/linux-pwm
- T:    git git://gitorious.org/linux-pwm/linux-pwm.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm.git
  F:    Documentation/pwm.txt
  F:    Documentation/devicetree/bindings/pwm/
  F:    include/linux/pwm.h
@@@ -6917,14 -6815,6 +6916,14 @@@ L:    linux-hexagon@vger.kernel.or
  S:    Supported
  F:    arch/hexagon/
  
 +QUALCOMM WCN36XX WIRELESS DRIVER
 +M:    Eugene Krasnikov <k.eugene.e@gmail.com>
 +L:    wcn36xx@lists.infradead.org
 +W:    http://wireless.kernel.org/en/users/Drivers/wcn36xx
 +T:    git git://github.com/KrasnikovEugene/wcn36xx.git
 +S:    Supported
 +F:    drivers/net/wireless/ath/wcn36xx/
 +
  QUICKCAM PARALLEL PORT WEBCAMS
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -7012,7 -6902,7 +7011,7 @@@ M:      "Paul E. McKenney" <paulmck@linux.vn
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
  F:    Documentation/RCU/torture.txt
 -F:    kernel/rcutorture.c
 +F:    kernel/rcu/torture.c
  
  RDC R-321X SoC
  M:    Florian Fainelli <florian@openwrt.org>
@@@ -7039,9 -6929,8 +7038,9 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/RCU/
  X:    Documentation/RCU/torture.txt
  F:    include/linux/rcu*
 -F:    kernel/rcu*
 -X:    kernel/rcutorture.c
 +X:    include/linux/srcu.h
 +F:    kernel/rcu/
 +X:    kernel/rcu/torture.c
  
  REAL TIME CLOCK (RTC) SUBSYSTEM
  M:    Alessandro Zummo <a.zummo@towertech.it>
@@@ -7354,7 -7243,7 +7353,7 @@@ S:      Odd Fixe
  F:    drivers/media/usb/tlg2300/
  
  SC1200 WDT DRIVER
 -M:    Zwane Mwaikambo <zwane@arm.linux.org.uk>
 +M:    Zwane Mwaikambo <zwanem@gmail.com>
  S:    Maintained
  F:    drivers/watchdog/sc1200wdt.c
  
@@@ -7366,13 -7255,11 +7365,13 @@@ S:   Maintaine
  F:    kernel/sched/
  F:    include/linux/sched.h
  F:    include/uapi/linux/sched.h
 +F:    kernel/wait.c
 +F:    include/linux/wait.h
  
  SCORE ARCHITECTURE
 -M:    Chen Liqin <liqin.chen@sunplusct.com>
 +M:    Chen Liqin <liqin.linux@gmail.com>
  M:    Lennox Wu <lennox.wu@gmail.com>
 -W:    http://www.sunplusct.com
 +W:    http://www.sunplus.com
  S:    Supported
  F:    arch/score/
  
@@@ -7730,8 -7617,8 +7729,8 @@@ M:      "Paul E. McKenney" <paulmck@linux.vn
  W:    http://www.rdrop.com/users/paulmck/RCU/
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 -F:    include/linux/srcu*
 -F:    kernel/srcu*
 +F:    include/linux/srcu.h
 +F:    kernel/rcu/srcu.c
  
  SMACK SECURITY MODULE
  M:    Casey Schaufler <casey@schaufler-ca.com>
@@@ -7902,13 -7789,6 +7901,13 @@@ F:    Documentation/sound/alsa/soc
  F:    sound/soc/
  F:    include/sound/soc*
  
 +SOUND - DMAENGINE HELPERS
 +M:    Lars-Peter Clausen <lars@metafoo.de>
 +S:    Supported
 +F:    include/sound/dmaengine_pcm.h
 +F:    sound/core/pcm_dmaengine.c
 +F:    sound/soc/soc-generic-dmaengine-pcm.c
 +
  SPARC + UltraSPARC (sparc/sparc64)
  M:    "David S. Miller" <davem@davemloft.net>
  L:    sparclinux@vger.kernel.org
@@@ -8066,7 -7946,7 +8065,7 @@@ S:      Maintaine
  F:    drivers/staging/media/go7007/
  
  STAGING - INDUSTRIAL IO
 -M:    Jonathan Cameron <jic23@cam.ac.uk>
 +M:    Jonathan Cameron <jic23@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Odd Fixes
  F:    drivers/staging/iio/
@@@ -8188,7 -8068,7 +8187,7 @@@ F:      drivers/sh
  SUSPEND TO RAM
  M:    Len Brown <len.brown@intel.com>
  M:    Pavel Machek <pavel@ucw.cz>
 -M:    "Rafael J. Wysocki" <rjw@sisk.pl>
 +M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    Documentation/power/
@@@ -8381,72 -8261,14 +8380,72 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/rc/ttusbir.c
  
 -TEGRA SUPPORT
 +TEGRA ARCHITECTURE SUPPORT
  M:    Stephen Warren <swarren@wwwdotorg.org>
 +M:    Thierry Reding <thierry.reding@gmail.com>
  L:    linux-tegra@vger.kernel.org
  Q:    http://patchwork.ozlabs.org/project/linux-tegra/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git
  S:    Supported
  N:    [^a-z]tegra
  
 +TEGRA ASOC DRIVER
 +M:    Stephen Warren <swarren@wwwdotorg.org>
 +S:    Supported
 +F:    sound/soc/tegra/
 +
 +TEGRA CLOCK DRIVER
 +M:    Peter De Schrijver <pdeschrijver@nvidia.com>
 +M:    Prashant Gaikwad <pgaikwad@nvidia.com>
 +S:    Supported
 +F:    drivers/clk/tegra/
 +
 +TEGRA DMA DRIVER
 +M:    Laxman Dewangan <ldewangan@nvidia.com>
 +S:    Supported
 +F:    drivers/dma/tegra20-apb-dma.c
 +
 +TEGRA GPIO DRIVER
 +M:    Stephen Warren <swarren@wwwdotorg.org>
 +S:    Supported
 +F:    drivers/gpio/gpio-tegra.c
 +
 +TEGRA I2C DRIVER
 +M:    Laxman Dewangan <ldewangan@nvidia.com>
 +S:    Supported
 +F:    drivers/i2c/busses/i2c-tegra.c
 +
 +TEGRA IOMMU DRIVERS
 +M:    Hiroshi Doyu <hdoyu@nvidia.com>
 +S:    Supported
 +F:    drivers/iommu/tegra*
 +
 +TEGRA KBC DRIVER
 +M:    Rakesh Iyer <riyer@nvidia.com>
 +M:    Laxman Dewangan <ldewangan@nvidia.com>
 +S:    Supported
 +F:    drivers/input/keyboard/tegra-kbc.c
 +
 +TEGRA PINCTRL DRIVER
 +M:    Stephen Warren <swarren@wwwdotorg.org>
 +S:    Supported
 +F:    drivers/pinctrl/pinctrl-tegra*
 +
 +TEGRA PWM DRIVER
 +M:    Thierry Reding <thierry.reding@gmail.com>
 +S:    Supported
 +F:    drivers/pwm/pwm-tegra.c
 +
 +TEGRA SERIAL DRIVER
 +M:    Laxman Dewangan <ldewangan@nvidia.com>
 +S:    Supported
 +F:    drivers/tty/serial/serial-tegra.c
 +
 +TEGRA SPI DRIVER
 +M:    Laxman Dewangan <ldewangan@nvidia.com>
 +S:    Supported
 +F:    drivers/spi/spi-tegra*
 +
  TEHUTI ETHERNET DRIVER
  M:    Andy Gospodarek <andy@greyhouse.net>
  L:    netdev@vger.kernel.org
@@@ -8747,6 -8569,14 +8746,6 @@@ S:     Maintaine
  F:    arch/m68k/*/*_no.*
  F:    arch/m68k/include/asm/*_no.*
  
 -UCLINUX FOR RENESAS H8/300 (H8300)
 -M:    Yoshinori Sato <ysato@users.sourceforge.jp>
 -W:    http://uclinux-h8.sourceforge.jp/
 -S:    Supported
 -F:    arch/h8300/
 -F:    drivers/ide/ide-h8300.c
 -F:    drivers/net/ethernet/8390/ne-h8300.c
 -
  UDF FILESYSTEM
  M:    Jan Kara <jack@suse.cz>
  S:    Maintained
@@@ -8893,8 -8723,9 +8892,8 @@@ F:      Documentation/hid/hiddev.tx
  F:    drivers/hid/usbhid/
  
  USB/IP DRIVERS
 -M:    Matt Mooney <mfm@muteddisk.com>
  L:    linux-usb@vger.kernel.org
 -S:    Maintained
 +S:    Orphan
  F:    drivers/staging/usbip/
  
  USB ISP116X DRIVER
@@@ -8974,14 -8805,61 +8973,14 @@@ W:   http://pegasus2.sourceforge.net
  S:    Maintained
  F:    drivers/net/usb/rtl8150.c
  
 -USB SERIAL BELKIN F5U103 DRIVER
 -M:    William Greathouse <wgreathouse@smva.com>
 -L:    linux-usb@vger.kernel.org
 -S:    Maintained
 -F:    drivers/usb/serial/belkin_sa.*
 -
 -USB SERIAL CYPRESS M8 DRIVER
 -M:    Lonnie Mendez <dignome@gmail.com>
 +USB SERIAL SUBSYSTEM
 +M:    Johan Hovold <jhovold@gmail.com>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
 -W:    http://geocities.com/i0xox0i
 -W:    http://firstlight.net/cvs
 -F:    drivers/usb/serial/cypress_m8.*
 -
 -USB SERIAL CYBERJACK DRIVER
 -M:    Matthias Bruestle and Harald Welte <support@reiner-sct.com>
 -W:    http://www.reiner-sct.de/support/treiber_cyberjack.php
 -S:    Maintained
 -F:    drivers/usb/serial/cyberjack.c
 -
 -USB SERIAL DIGI ACCELEPORT DRIVER
 -M:    Peter Berger <pberger@brimson.com>
 -M:    Al Borchers <alborchers@steinerpoint.com>
 -L:    linux-usb@vger.kernel.org
 -S:    Maintained
 -F:    drivers/usb/serial/digi_acceleport.c
 -
 -USB SERIAL DRIVER
 -M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -L:    linux-usb@vger.kernel.org
 -S:    Supported
  F:    Documentation/usb/usb-serial.txt
 -F:    drivers/usb/serial/generic.c
 -F:    drivers/usb/serial/usb-serial.c
 +F:    drivers/usb/serial/
  F:    include/linux/usb/serial.h
  
 -USB SERIAL EMPEG EMPEG-CAR MARK I/II DRIVER
 -M:    Gary Brubaker <xavyer@ix.netcom.com>
 -L:    linux-usb@vger.kernel.org
 -S:    Maintained
 -F:    drivers/usb/serial/empeg.c
 -
 -USB SERIAL KEYSPAN DRIVER
 -M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -L:    linux-usb@vger.kernel.org
 -S:    Maintained
 -F:    drivers/usb/serial/*keyspan*
 -
 -USB SERIAL WHITEHEAT DRIVER
 -M:    Support Department <support@connecttech.com>
 -L:    linux-usb@vger.kernel.org
 -W:    http://www.connecttech.com
 -S:    Supported
 -F:    drivers/usb/serial/whiteheat*
 -
  USB SMSC75XX ETHERNET DRIVER
  M:    Steve Glendinning <steve.glendinning@shawell.net>
  L:    netdev@vger.kernel.org
@@@ -9487,7 -9365,6 +9486,7 @@@ F:      arch/arm64/include/asm/xen
  
  XEN NETWORK BACKEND DRIVER
  M:    Ian Campbell <ian.campbell@citrix.com>
 +M:    Wei Liu <wei.liu2@citrix.com>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
  L:    netdev@vger.kernel.org
  S:    Supported
index aca7d16e195dec0fda2989680cc58e73abb50315,51d0fcd161d5d139f26c718e976ad68301233cff..758e31b265501de472aa6eba453038385e102536
@@@ -114,6 -114,7 +114,7 @@@ static struct platform_pwm_backlight_da
        .max_brightness = 1000,
        .dft_brightness = 600,
        .pwm_period_ns  = 100000,       /* about 1kHz */
+       .enable_gpio    = -1,
  };
  
  static struct platform_device crag6410_backlight_device = {
@@@ -310,6 -311,10 +311,6 @@@ static struct regulator_consumer_suppl
  
        REGULATOR_SUPPLY("SPKVDDL", "spi0.1"),
        REGULATOR_SUPPLY("SPKVDDR", "spi0.1"),
 -      REGULATOR_SUPPLY("SPKVDDL", "wm5102-codec"),
 -      REGULATOR_SUPPLY("SPKVDDR", "wm5102-codec"),
 -      REGULATOR_SUPPLY("SPKVDDL", "wm5110-codec"),
 -      REGULATOR_SUPPLY("SPKVDDR", "wm5110-codec"),
  
        REGULATOR_SUPPLY("DC1VDD", "0-0034"),
        REGULATOR_SUPPLY("DC2VDD", "0-0034"),
@@@ -649,6 -654,14 +650,6 @@@ static struct regulator_consumer_suppl
        REGULATOR_SUPPLY("DBVDD3", "spi0.1"),
        REGULATOR_SUPPLY("LDOVDD", "spi0.1"),
        REGULATOR_SUPPLY("CPVDD", "spi0.1"),
 -
 -      REGULATOR_SUPPLY("DBVDD2", "wm5102-codec"),
 -      REGULATOR_SUPPLY("DBVDD3", "wm5102-codec"),
 -      REGULATOR_SUPPLY("CPVDD", "wm5102-codec"),
 -
 -      REGULATOR_SUPPLY("DBVDD2", "wm5110-codec"),
 -      REGULATOR_SUPPLY("DBVDD3", "wm5110-codec"),
 -      REGULATOR_SUPPLY("CPVDD", "wm5110-codec"),
  };
  
  static struct regulator_init_data pvdd_1v8 = {
@@@ -731,7 -744,7 +732,7 @@@ static struct s3c2410_platform_i2c i2c1
  static void __init crag6410_map_io(void)
  {
        s3c64xx_init_io(NULL, 0);
 -      s3c24xx_init_clocks(12000000);
 +      s3c64xx_set_xtal_freq(12000000);
        s3c24xx_init_uarts(crag6410_uartcfgs, ARRAY_SIZE(crag6410_uartcfgs));
        samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4);
  
index e8064044ef796d35a12bfcc0e06c86dea065dca1,7ce417da3103487e74ac4e048b320c360aeb09fd..614a03a92cf70545be3fd60bb66a29dc46b1fb6e
@@@ -114,6 -114,7 +114,7 @@@ static struct platform_pwm_backlight_da
        .max_brightness = 100 * 256,
        .dft_brightness = 40 * 256,
        .pwm_period_ns  = 1000000000 / (100 * 256 * 20),
+       .enable_gpio    = -1,
        .init           = hmt_bl_init,
        .notify         = hmt_bl_notify,
        .exit           = hmt_bl_exit,
@@@ -247,7 -248,7 +248,7 @@@ static struct platform_device *hmt_devi
  static void __init hmt_map_io(void)
  {
        s3c64xx_init_io(hmt_iodesc, ARRAY_SIZE(hmt_iodesc));
 -      s3c24xx_init_clocks(12000000);
 +      s3c64xx_set_xtal_freq(12000000);
        s3c24xx_init_uarts(hmt_uartcfgs, ARRAY_SIZE(hmt_uartcfgs));
        samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4);
  }
index 0f47237be3b2dd2286fe0582791548d16df3a786,f3699a92d4381a5e63990dd41e6bd29928d5358a..a6b338fd0470d6b55f0601058f4dc5446cfc480c
@@@ -151,6 -151,7 +151,7 @@@ static struct platform_pwm_backlight_da
        .max_brightness = 1000,
        .dft_brightness = 600,
        .pwm_period_ns  = 1000000000 / (1000 * 20),
+       .enable_gpio    = -1,
        .init           = smartq_bl_init,
  };
  
@@@ -337,6 -338,13 +338,6 @@@ err
        return ret;
  }
  
 -static int __init smartq_usb_otg_init(void)
 -{
 -      clk_xusbxti.rate = 12000000;
 -
 -      return 0;
 -}
 -
  static int __init smartq_wifi_init(void)
  {
        int ret;
@@@ -370,8 -378,7 +371,8 @@@ static struct map_desc smartq_iodesc[] 
  void __init smartq_map_io(void)
  {
        s3c64xx_init_io(smartq_iodesc, ARRAY_SIZE(smartq_iodesc));
 -      s3c24xx_init_clocks(12000000);
 +      s3c64xx_set_xtal_freq(12000000);
 +      s3c64xx_set_xusbxti_freq(12000000);
        s3c24xx_init_uarts(smartq_uartcfgs, ARRAY_SIZE(smartq_uartcfgs));
        samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4);
  
@@@ -393,6 -400,7 +394,6 @@@ void __init smartq_machine_init(void
        WARN_ON(smartq_lcd_setup_gpio());
        WARN_ON(smartq_power_off_init());
        WARN_ON(smartq_usb_host_init());
 -      WARN_ON(smartq_usb_otg_init());
        WARN_ON(smartq_wifi_init());
  
        platform_add_devices(smartq_devices, ARRAY_SIZE(smartq_devices));
index 2a7b32ca5c96a3037c007eeb032092cf2127bfec,0bf5b331ba5c767c98f2fd18a339b94882c5a5af..d5ea938cc9a1a03f7b6f884155de620a3fc0c3b3
@@@ -625,6 -625,7 +625,7 @@@ static struct samsung_bl_gpio_info smdk
  
  static struct platform_pwm_backlight_data smdk6410_bl_data = {
        .pwm_id = 1,
+       .enable_gpio = -1,
  };
  
  static struct s3c_hsotg_plat smdk6410_hsotg_pdata;
@@@ -634,7 -635,7 +635,7 @@@ static void __init smdk6410_map_io(void
        u32 tmp;
  
        s3c64xx_init_io(smdk6410_iodesc, ARRAY_SIZE(smdk6410_iodesc));
 -      s3c24xx_init_clocks(12000000);
 +      s3c64xx_set_xtal_freq(12000000);
        s3c24xx_init_uarts(smdk6410_uartcfgs, ARRAY_SIZE(smdk6410_uartcfgs));
        samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4);
  
index 8bc8e4c5884767f381c09da79ffcf2b52e2ffdc9,f68634a07c15051b038ddf89ff5e290b65dccbb0..958e3cbf0ac2f2110e7f4fc9ca41dc19e66e4ca8
@@@ -423,6 -423,7 +423,7 @@@ static struct platform_pwm_backlight_da
        .max_brightness = 255,
        .dft_brightness = 255,
        .pwm_period_ns = 33333, /* 30kHz */
+       .enable_gpio = -1,
  };
  
  static struct platform_device pwm_backlight_device = {
@@@ -823,7 -824,6 +824,7 @@@ static struct sh_mmcif_plat_data sh_mmc
        .caps           = MMC_CAP_4_BIT_DATA |
                          MMC_CAP_8_BIT_DATA |
                          MMC_CAP_NONREMOVABLE,
 +      .ccs_unsupported = true,
        .slave_id_tx    = SHDMA_SLAVE_MMCIF_TX,
        .slave_id_rx    = SHDMA_SLAVE_MMCIF_RX,
  };
@@@ -1109,9 -1109,9 +1110,9 @@@ static const struct pinctrl_map eva_pin
        PIN_MAP_MUX_GROUP_DEFAULT("asoc-simple-card.1", "pfc-r8a7740",
                                  "fsib_mclk_in", "fsib"),
        /* GETHER */
 -      PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7740",
 +      PIN_MAP_MUX_GROUP_DEFAULT("r8a7740-gether", "pfc-r8a7740",
                                  "gether_mii", "gether"),
 -      PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7740",
 +      PIN_MAP_MUX_GROUP_DEFAULT("r8a7740-gether", "pfc-r8a7740",
                                  "gether_int", "gether"),
        /* HDMI */
        PIN_MAP_MUX_GROUP_DEFAULT("sh-mobile-hdmi", "pfc-r8a7740",
diff --combined drivers/misc/Kconfig
index e760715bd9cbd30c01c6c16da430c06931fb04c1,c43c66ad5721d084d0d0e0ed1f54320aa52adc13..a3e291d0df9a19211c7b3d855fc31ad3463524ff
@@@ -381,19 -381,6 +381,6 @@@ config HMC635
          This driver provides support for the Honeywell HMC6352 compass,
          providing configuration and heading data via sysfs.
  
- config EP93XX_PWM
-       tristate "EP93xx PWM support"
-       depends on ARCH_EP93XX
-       help
-         This option enables device driver support for the PWM channels
-         on the Cirrus EP93xx processors.  The EP9307 chip only has one
-         PWM channel all the others have two, the second channel is an
-         alternate function of the EGPIO14 pin.  A sysfs interface is
-         provided to control the PWM channels.
-         To compile this driver as a module, choose M here: the module will
-         be called ep93xx_pwm.
  config DS1682
        tristate "Dallas DS1682 Total Elapsed Time Recorder with Alarm"
        depends on I2C
@@@ -537,5 -524,4 +524,5 @@@ source "drivers/misc/carma/Kconfig
  source "drivers/misc/altera-stapl/Kconfig"
  source "drivers/misc/mei/Kconfig"
  source "drivers/misc/vmw_vmci/Kconfig"
 +source "drivers/misc/mic/Kconfig"
  endmenu
diff --combined drivers/misc/Makefile
index 0b7ea3ea8bb86cc3971c7af15258c285100bd8e1,ecccd00393536f56fe4b593a5f3ba96ad088d0c9..f45473e68bf71d7ab65e40e06c9bf0a0484242e6
@@@ -33,7 -33,6 +33,6 @@@ obj-$(CONFIG_APDS9802ALS)     += apds9802al
  obj-$(CONFIG_ISL29003)                += isl29003.o
  obj-$(CONFIG_ISL29020)                += isl29020.o
  obj-$(CONFIG_SENSORS_TSL2550) += tsl2550.o
- obj-$(CONFIG_EP93XX_PWM)      += ep93xx_pwm.o
  obj-$(CONFIG_DS1682)          += ds1682.o
  obj-$(CONFIG_TI_DAC7512)      += ti_dac7512.o
  obj-$(CONFIG_C2PORT)          += c2port/
@@@ -53,4 -52,3 +52,4 @@@ obj-$(CONFIG_INTEL_MEI)               += mei
  obj-$(CONFIG_VMWARE_VMCI)     += vmw_vmci/
  obj-$(CONFIG_LATTICE_ECP3_CONFIG)     += lattice-ecp3-config.o
  obj-$(CONFIG_SRAM)            += sram.o
 +obj-y                         += mic/
index 36db5d98dd2f5e900d9dafe3bd6e0e10b30e082e,368232af78d29fb714fa6462ed354c8a947c9846..fb80d68f4d3366e5672498da5bd05f3140e7a753
@@@ -10,6 -10,8 +10,8 @@@
   * published by the Free Software Foundation.
   */
  
+ #include <linux/gpio.h>
+ #include <linux/of_gpio.h>
  #include <linux/module.h>
  #include <linux/kernel.h>
  #include <linux/init.h>
@@@ -19,6 -21,7 +21,7 @@@
  #include <linux/err.h>
  #include <linux/pwm.h>
  #include <linux/pwm_backlight.h>
+ #include <linux/regulator/consumer.h>
  #include <linux/slab.h>
  
  struct pwm_bl_data {
        unsigned int            period;
        unsigned int            lth_brightness;
        unsigned int            *levels;
+       bool                    enabled;
+       struct regulator        *power_supply;
+       int                     enable_gpio;
+       unsigned long           enable_gpio_flags;
+       unsigned int            scale;
        int                     (*notify)(struct device *,
                                          int brightness);
        void                    (*notify_after)(struct device *,
        void                    (*exit)(struct device *);
  };
  
+ static void pwm_backlight_power_on(struct pwm_bl_data *pb, int brightness)
+ {
+       int err;
+       if (pb->enabled)
+               return;
+       err = regulator_enable(pb->power_supply);
+       if (err < 0)
+               dev_err(pb->dev, "failed to enable power supply\n");
+       if (gpio_is_valid(pb->enable_gpio)) {
+               if (pb->enable_gpio_flags & PWM_BACKLIGHT_GPIO_ACTIVE_LOW)
+                       gpio_set_value(pb->enable_gpio, 0);
+               else
+                       gpio_set_value(pb->enable_gpio, 1);
+       }
+       pwm_enable(pb->pwm);
+       pb->enabled = true;
+ }
+ static void pwm_backlight_power_off(struct pwm_bl_data *pb)
+ {
+       if (!pb->enabled)
+               return;
+       pwm_config(pb->pwm, 0, pb->period);
+       pwm_disable(pb->pwm);
+       if (gpio_is_valid(pb->enable_gpio)) {
+               if (pb->enable_gpio_flags & PWM_BACKLIGHT_GPIO_ACTIVE_LOW)
+                       gpio_set_value(pb->enable_gpio, 1);
+               else
+                       gpio_set_value(pb->enable_gpio, 0);
+       }
+       regulator_disable(pb->power_supply);
+       pb->enabled = false;
+ }
+ static int compute_duty_cycle(struct pwm_bl_data *pb, int brightness)
+ {
+       unsigned int lth = pb->lth_brightness;
+       int duty_cycle;
+       if (pb->levels)
+               duty_cycle = pb->levels[brightness];
+       else
+               duty_cycle = brightness;
+       return (duty_cycle * (pb->period - lth) / pb->scale) + lth;
+ }
  static int pwm_backlight_update_status(struct backlight_device *bl)
  {
        struct pwm_bl_data *pb = bl_get_data(bl);
        int brightness = bl->props.brightness;
-       int max = bl->props.max_brightness;
+       int duty_cycle;
  
        if (bl->props.power != FB_BLANK_UNBLANK ||
            bl->props.fb_blank != FB_BLANK_UNBLANK ||
        if (pb->notify)
                brightness = pb->notify(pb->dev, brightness);
  
-       if (brightness == 0) {
-               pwm_config(pb->pwm, 0, pb->period);
-               pwm_disable(pb->pwm);
-       } else {
-               int duty_cycle;
-               if (pb->levels) {
-                       duty_cycle = pb->levels[brightness];
-                       max = pb->levels[max];
-               } else {
-                       duty_cycle = brightness;
-               }
-               duty_cycle = pb->lth_brightness +
-                    (duty_cycle * (pb->period - pb->lth_brightness) / max);
+       if (brightness > 0) {
+               duty_cycle = compute_duty_cycle(pb, brightness);
                pwm_config(pb->pwm, duty_cycle, pb->period);
-               pwm_enable(pb->pwm);
-       }
+               pwm_backlight_power_on(pb, brightness);
+       } else
+               pwm_backlight_power_off(pb);
  
        if (pb->notify_after)
                pb->notify_after(pb->dev, brightness);
@@@ -98,6 -148,7 +148,7 @@@ static int pwm_backlight_parse_dt(struc
                                  struct platform_pwm_backlight_data *data)
  {
        struct device_node *node = dev->of_node;
+       enum of_gpio_flags flags;
        struct property *prop;
        int length;
        u32 value;
                data->max_brightness--;
        }
  
-       /*
-        * TODO: Most users of this driver use a number of GPIOs to control
-        *       backlight power. Support for specifying these needs to be
-        *       added.
-        */
+       data->enable_gpio = of_get_named_gpio_flags(node, "enable-gpios", 0,
+                                                   &flags);
+       if (data->enable_gpio == -EPROBE_DEFER)
+               return -EPROBE_DEFER;
+       if (gpio_is_valid(data->enable_gpio) && (flags & OF_GPIO_ACTIVE_LOW))
+               data->enable_gpio_flags |= PWM_BACKLIGHT_GPIO_ACTIVE_LOW;
  
        return 0;
  }
@@@ -163,12 -216,11 +216,11 @@@ static int pwm_backlight_parse_dt(struc
  
  static int pwm_backlight_probe(struct platform_device *pdev)
  {
 -      struct platform_pwm_backlight_data *data = pdev->dev.platform_data;
 +      struct platform_pwm_backlight_data *data = dev_get_platdata(&pdev->dev);
        struct platform_pwm_backlight_data defdata;
        struct backlight_properties props;
        struct backlight_device *bl;
        struct pwm_bl_data *pb;
-       unsigned int max;
        int ret;
  
        if (!data) {
        }
  
        if (data->levels) {
-               max = data->levels[data->max_brightness];
+               unsigned int i;
+               for (i = 0; i <= data->max_brightness; i++)
+                       if (data->levels[i] > pb->scale)
+                               pb->scale = data->levels[i];
                pb->levels = data->levels;
        } else
-               max = data->max_brightness;
+               pb->scale = data->max_brightness;
  
+       pb->enable_gpio = data->enable_gpio;
+       pb->enable_gpio_flags = data->enable_gpio_flags;
        pb->notify = data->notify;
        pb->notify_after = data->notify_after;
        pb->check_fb = data->check_fb;
        pb->exit = data->exit;
        pb->dev = &pdev->dev;
+       pb->enabled = false;
+       if (gpio_is_valid(pb->enable_gpio)) {
+               unsigned long flags;
+               if (pb->enable_gpio_flags & PWM_BACKLIGHT_GPIO_ACTIVE_LOW)
+                       flags = GPIOF_OUT_INIT_HIGH;
+               else
+                       flags = GPIOF_OUT_INIT_LOW;
+               ret = gpio_request_one(pb->enable_gpio, flags, "enable");
+               if (ret < 0) {
+                       dev_err(&pdev->dev, "failed to request GPIO#%d: %d\n",
+                               pb->enable_gpio, ret);
+                       goto err_alloc;
+               }
+       }
+       pb->power_supply = devm_regulator_get(&pdev->dev, "power");
+       if (IS_ERR(pb->power_supply)) {
+               ret = PTR_ERR(pb->power_supply);
+               goto err_gpio;
+       }
  
        pb->pwm = devm_pwm_get(&pdev->dev, NULL);
        if (IS_ERR(pb->pwm)) {
                if (IS_ERR(pb->pwm)) {
                        dev_err(&pdev->dev, "unable to request legacy PWM\n");
                        ret = PTR_ERR(pb->pwm);
-                       goto err_alloc;
+                       goto err_gpio;
                }
        }
  
                pwm_set_period(pb->pwm, data->pwm_period_ns);
  
        pb->period = pwm_get_period(pb->pwm);
-       pb->lth_brightness = data->lth_brightness * (pb->period / max);
+       pb->lth_brightness = data->lth_brightness * (pb->period / pb->scale);
  
        memset(&props, 0, sizeof(struct backlight_properties));
        props.type = BACKLIGHT_RAW;
        if (IS_ERR(bl)) {
                dev_err(&pdev->dev, "failed to register backlight\n");
                ret = PTR_ERR(bl);
-               goto err_alloc;
+               goto err_gpio;
        }
  
        if (data->dft_brightness > data->max_brightness) {
        platform_set_drvdata(pdev, bl);
        return 0;
  
+ err_gpio:
+       if (gpio_is_valid(pb->enable_gpio))
+               gpio_free(pb->enable_gpio);
  err_alloc:
        if (data->exit)
                data->exit(&pdev->dev);
@@@ -267,10 -352,11 +352,11 @@@ static int pwm_backlight_remove(struct 
        struct pwm_bl_data *pb = bl_get_data(bl);
  
        backlight_device_unregister(bl);
-       pwm_config(pb->pwm, 0, pb->period);
-       pwm_disable(pb->pwm);
+       pwm_backlight_power_off(pb);
        if (pb->exit)
                pb->exit(&pdev->dev);
        return 0;
  }
  
@@@ -282,10 -368,12 +368,12 @@@ static int pwm_backlight_suspend(struc
  
        if (pb->notify)
                pb->notify(pb->dev, 0);
-       pwm_config(pb->pwm, 0, pb->period);
-       pwm_disable(pb->pwm);
+       pwm_backlight_power_off(pb);
        if (pb->notify_after)
                pb->notify_after(pb->dev, 0);
        return 0;
  }
  
@@@ -294,12 -382,19 +382,19 @@@ static int pwm_backlight_resume(struct 
        struct backlight_device *bl = dev_get_drvdata(dev);
  
        backlight_update_status(bl);
        return 0;
  }
  #endif
  
- static SIMPLE_DEV_PM_OPS(pwm_backlight_pm_ops, pwm_backlight_suspend,
-                        pwm_backlight_resume);
+ static const struct dev_pm_ops pwm_backlight_pm_ops = {
+ #ifdef CONFIG_PM_SLEEP
+       .suspend = pwm_backlight_suspend,
+       .resume = pwm_backlight_resume,
+       .poweroff = pwm_backlight_suspend,
+       .restore = pwm_backlight_resume,
+ #endif
+ };
  
  static struct platform_driver pwm_backlight_driver = {
        .driver         = {
@@@ -317,4 -412,3 +412,3 @@@ module_platform_driver(pwm_backlight_dr
  MODULE_DESCRIPTION("PWM based Backlight Driver");
  MODULE_LICENSE("GPL");
  MODULE_ALIAS("platform:pwm-backlight");