Merge tag 'pm+acpi-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 9 Oct 2014 20:07:43 +0000 (16:07 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 9 Oct 2014 20:07:43 +0000 (16:07 -0400)
Pull ACPI and power management updates from Rafael Wysocki:
 "Features-wise, to me the most important this time is a rework of
  wakeup interrupts handling in the core that makes them work
  consistently across all of the available sleep states, including
  suspend-to-idle.  Many thanks to Thomas Gleixner for his help with
  this work.

  Second is an update of the generic PM domains code that has been in
  need of some care for quite a while.  Unused code is being removed, DT
  support is being added and domains are now going to be attached to
  devices in bus type code in analogy with the ACPI PM domain.  The
  majority of work here was done by Ulf Hansson who also has been the
  most active developer this time.

  Apart from this we have a traditional ACPICA update, this time to
  upstream version 20140828 and a few ACPI wakeup interrupts handling
  patches on top of the general rework mentioned above.  There also are
  several cpufreq commits including renaming the cpufreq-cpu0 driver to
  cpufreq-dt, as this is what implements generic DT-based cpufreq
  support, and a new DT-based idle states infrastructure for cpuidle.

  In addition to that, the ACPI LPSS driver is updated, ACPI support for
  Apple machines is improved, a few bugs are fixed and a few cleanups
  are made all over.

  Finally, the Adaptive Voltage Scaling (AVS) subsystem now has a tree
  maintained by Kevin Hilman that will be merged through the PM tree.

  Numbers-wise, the generic PM domains update takes the lead this time
  with 32 non-merge commits, second is cpufreq (15 commits) and the 3rd
  place goes to the wakeup interrupts handling rework (13 commits).

  Specifics:

   - Rework the handling of wakeup IRQs by the IRQ core such that all of
     them will be switched over to "wakeup" mode in suspend_device_irqs()
     and in that mode the first interrupt will abort system suspend in
     progress or wake up the system if already in suspend-to-idle (or
     equivalent) without executing any interrupt handlers.  Among other
     things that eliminates the wakeup-related motivation to use the
     IRQF_NO_SUSPEND interrupt flag with interrupts which don't really
     need it and should not use it (Thomas Gleixner and Rafael Wysocki)

   - Switch over ACPI to handling wakeup interrupts with the help of the
     new mechanism introduced by the above IRQ core rework (Rafael Wysocki)

   - Rework the core generic PM domains code to eliminate code that's
     not used, add DT support and add a generic mechanism by which
     devices can be added to PM domains automatically during enumeration
     (Ulf Hansson, Geert Uytterhoeven and Tomasz Figa).

   - Add debugfs-based mechanics for debugging generic PM domains
     (Maciej Matraszek).

   - ACPICA update to upstream version 20140828.  Included are updates
     related to the SRAT and GTDT tables and the _PSx methods are in the
     METHOD_NAME list now (Bob Moore and Hanjun Guo).

   - Add _OSI("Darwin") support to the ACPI core (unfortunately, that
     can't really be done in a straightforward way) to prevent
     Thunderbolt from being turned off on Apple systems after boot (or
     after resume from system suspend) and rework the ACPI Smart Battery
     Subsystem (SBS) driver to work correctly with Apple platforms
     (Matthew Garrett and Andreas Noever).

   - ACPI LPSS (Low-Power Subsystem) driver update cleaning up the code,
     adding support for 133MHz I2C source clock on Intel Baytrail to it
     and making it avoid using UART RTS override with Auto Flow Control
     (Heikki Krogerus).

   - ACPI backlight updates removing the video_set_use_native_backlight
     quirk which is not necessary any more, making the code check the
     list of output devices returned by the _DOD method to avoid
     creating acpi_video interfaces that won't work and adding a quirk
     for Lenovo Ideapad Z570 (Hans de Goede, Aaron Lu and Stepan Bujnak)

   - New Win8 ACPI OSI quirks for some Dell laptops (Edward Lin)

   - Assorted ACPI code cleanups (Fabian Frederick, Rasmus Villemoes,
     Sudip Mukherjee, Yijing Wang, and Zhang Rui)

   - cpufreq core updates and cleanups (Viresh Kumar, Preeti U Murthy,
     Rasmus Villemoes)

   - cpufreq driver updates: cpufreq-cpu0/cpufreq-dt (driver name change
     among other things), ppc-corenet, powernv (Viresh Kumar, Preeti U
     Murthy, Shilpasri G Bhat, Lucas Stach)

   - cpuidle support for DT-based idle states infrastructure, new ARM64
     cpuidle driver, cpuidle core cleanups (Lorenzo Pieralisi, Rasmus
     Villemoes)

   - ARM big.LITTLE cpuidle driver updates: support for DT-based
     initialization and Exynos5800 compatible string (Lorenzo Pieralisi,
     Kevin Hilman)

   - Rework of the test_suspend kernel command line argument and a new
     trace event for console resume (Srinivas Pandruvada, Todd E Brandt)

   - Second attempt to optimize swsusp_free() (hibernation core) to make
     it avoid going through all PFNs which may be way too slow on some
     systems (Joerg Roedel)

   - devfreq updates (Paul Bolle, Punit Agrawal, Ãrjan Eide).

   - rockchip-io Adaptive Voltage Scaling (AVS) driver and AVS entry
     update in MAINTAINERS (Heiko Stübner, Kevin Hilman)

   - PM core fix related to clock management (Geert Uytterhoeven)

   - PM core's sysfs code cleanup (Johannes Berg)"

* tag 'pm+acpi-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (105 commits)
  ACPI / fan: printk replacement
  PM / clk: Fix crash in clocks management code if !CONFIG_PM_RUNTIME
  PM / Domains: Rename cpu_data to cpuidle_data
  cpufreq: cpufreq-dt: fix potential double put of cpu OF node
  cpufreq: cpu0: rename driver and internals to 'cpufreq_dt'
  PM / hibernate: Iterate over set bits instead of PFNs in swsusp_free()
  cpufreq: ppc-corenet: remove duplicate update of cpu_data
  ACPI / sleep: Rework the handling of ACPI GPE wakeup from suspend-to-idle
  PM / sleep: Rename platform suspend/resume functions in suspend.c
  PM / sleep: Export dpm_suspend_late/noirq() and dpm_resume_early/noirq()
  ACPICA: Introduce acpi_enable_all_wakeup_gpes()
  ACPICA: Clear all non-wakeup GPEs in acpi_hw_enable_wakeup_gpe_block()
  ACPI / video: check _DOD list when creating backlight devices
  PM / Domains: Move dev_pm_domain_attach|detach() to pm_domain.h
  cpufreq: Replace strnicmp with strncasecmp
  cpufreq: powernv: Set the cpus to nominal frequency during reboot/kexec
  cpufreq: powernv: Set the pstate of the last hotplugged out cpu in policy->cpus to minimum
  cpufreq: Allow stop CPU callback to be used by all cpufreq drivers
  PM / devfreq: exynos: Enable building exynos PPMU as module
  PM / devfreq: Export helper functions for drivers
  ...

1  2 
Documentation/kernel-parameters.txt
MAINTAINERS
arch/arm/mach-shmobile/pm-rmobile.c
arch/arm/mach-zynq/common.c
drivers/acpi/acpi_pnp.c
drivers/cpufreq/Kconfig.arm
drivers/cpuidle/Kconfig.arm
drivers/spi/spi.c
include/linux/irqdesc.h

@@@ -921,12 -921,6 +921,12 @@@ bytes respectively. Such letter suffixe
  
        earlycon=       [KNL] Output early console device and options.
  
 +              cdns,<addr>
 +                      Start an early, polled-mode console on a cadence serial
 +                      port at the specified address. The cadence serial port
 +                      must already be setup and configured. Options are not
 +                      yet supported.
 +
                uart[8250],io,<addr>[,options]
                uart[8250],mmio,<addr>[,options]
                uart[8250],mmio32,<addr>[,options]
                        must already be setup and configured. Options are not
                        yet supported.
  
 +              msm_serial,<addr>
 +                      Start an early, polled-mode console on an msm serial
 +                      port at the specified address. The serial port
 +                      must already be setup and configured. Options are not
 +                      yet supported.
 +
 +              msm_serial_dm,<addr>
 +                      Start an early, polled-mode console on an msm serial
 +                      dm port at the specified address. The serial port
 +                      must already be setup and configured. Options are not
 +                      yet supported.
 +
                smh     Use ARM semihosting calls for early console.
  
        earlyprintk=    [X86,SH,BLACKFIN,ARM,M68k]
  
        tdfx=           [HW,DRM]
  
-       test_suspend=   [SUSPEND]
+       test_suspend=   [SUSPEND][,N]
                        Specify "mem" (for Suspend-to-RAM) or "standby" (for
-                       standby suspend) as the system sleep state to briefly
-                       enter during system startup.  The system is woken from
-                       this state using a wakeup-capable RTC alarm.
+                       standby suspend) or "freeze" (for suspend type freeze)
+                       as the system sleep state during system startup with
+                       the optional capability to repeat N number of times.
+                       The system is woken from this state using a
+                       wakeup-capable RTC alarm.
  
        thash_entries=  [KNL,NET]
                        Set number of hash buckets for TCP connection
                                        READ_DISC_INFO command);
                                e = NO_READ_CAPACITY_16 (don't use
                                        READ_CAPACITY_16 command);
 +                              f = NO_REPORT_OPCODES (don't use report opcodes
 +                                      command, uas only);
                                h = CAPACITY_HEURISTICS (decrease the
                                        reported device capacity by one
                                        sector if the number is odd);
                                        bogus residue values);
                                s = SINGLE_LUN (the device has only one
                                        Logical Unit);
 +                              t = NO_ATA_1X (don't allow ATA(12) and ATA(16)
 +                                      commands, uas only);
                                u = IGNORE_UAS (don't bind to the uas driver);
                                w = NO_WP_DETECT (don't test whether the
                                        medium is write-protected).
diff --combined MAINTAINERS
@@@ -152,9 -152,8 +152,9 @@@ F: drivers/scsi/53c700
  
  6LOWPAN GENERIC (BTLE/IEEE 802.15.4)
  M:    Alexander Aring <alex.aring@gmail.com>
 -L:    linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers)
 +M:    Jukka Rissanen <jukka.rissanen@linux.intel.com>
  L:    linux-bluetooth@vger.kernel.org
 +L:    linux-wpan@vger.kernel.org
  S:    Maintained
  F:    net/6lowpan/
  F:    include/net/6lowpan.h
@@@ -686,17 -685,6 +686,17 @@@ L:       alsa-devel@alsa-project.org (moderat
  W:    http://blackfin.uclinux.org/
  S:    Supported
  F:    sound/soc/blackfin/*
 + 
 +ANALOG DEVICES INC IIO DRIVERS
 +M:    Lars-Peter Clausen <lars@metafoo.de>
 +M:    Michael Hennerich <Michael.Hennerich@analog.com>
 +W:    http://wiki.analog.com/
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/iio/*/ad*
 +X:    drivers/iio/*/adjd*
 +F:    drivers/staging/iio/*/ad*
 +F:    staging/iio/trigger/iio-trig-bfin-timer.c
  
  AOA (Apple Onboard Audio) ALSA DRIVER
  M:    Johannes Berg <johannes@sipsolutions.net>
@@@ -847,12 -835,6 +847,12 @@@ M:       Emilio López <emilio@elopez.com.ar
  S:    Maintained
  F:    drivers/clk/sunxi/
  
 +ARM/Amlogic MesonX SoC support
 +M:    Carlo Caione <carlo@caione.org>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +N:    meson[x68]
 +
  ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
  M:    Andrew Victor <linux@maxim.org.za>
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
@@@ -879,9 -861,10 +879,9 @@@ S:        Maintaine
  F:    arch/arm/mach-highbank/
  
  ARM/CAVIUM NETWORKS CNS3XXX MACHINE SUPPORT
 -M:    Anton Vorontsov <anton@enomsg.org>
 +M:    Krzysztof Halasa <khalasa@piap.pl>
  S:    Maintained
  F:    arch/arm/mach-cns3xxx/
 -T:    git git://git.infradead.org/users/cbou/linux-cns3xxx.git
  
  ARM/CIRRUS LOGIC CLPS711X ARM ARCHITECTURE
  M:    Alexander Shiyan <shc_work@mail.ru>
@@@ -981,7 -964,7 +981,7 @@@ F: arch/arm/include/asm/hardware/dec212
  F:    arch/arm/mach-footbridge/
  
  ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
 -M:    Shawn Guo <shawn.guo@freescale.com>
 +M:    Shawn Guo <shawn.guo@linaro.org>
  M:    Sascha Hauer <kernel@pengutronix.de>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -1042,20 -1025,24 +1042,20 @@@ F:   arch/arm/mach-pxa/colibri-pxa270-inc
  
  ARM/INTEL IOP32X ARM ARCHITECTURE
  M:    Lennert Buytenhek <kernel@wantstofly.org>
 -M:    Dan Williams <dan.j.williams@intel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
  ARM/INTEL IOP33X ARM ARCHITECTURE
 -M:    Dan Williams <dan.j.williams@intel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 +S:    Orphan
  
  ARM/INTEL IOP13XX ARM ARCHITECTURE
  M:    Lennert Buytenhek <kernel@wantstofly.org>
 -M:    Dan Williams <dan.j.williams@intel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
  ARM/INTEL IQ81342EX MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
 -M:    Dan Williams <dan.j.williams@intel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
@@@ -1066,7 -1053,7 +1066,7 @@@ S:      Maintaine
  
  ARM/INTEL IXP4XX ARM ARCHITECTURE
  M:    Imre Kaloz <kaloz@openwrt.org>
 -M:    Krzysztof Halasa <khc@pm.waw.pl>
 +M:    Krzysztof Halasa <khalasa@piap.pl>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-ixp4xx/
@@@ -1080,6 -1067,7 +1080,6 @@@ F:      drivers/pcmcia/pxa2xx_stargate2.
  
  ARM/INTEL XSC3 (MANZANO) ARM CORE
  M:    Lennert Buytenhek <kernel@wantstofly.org>
 -M:    Dan Williams <dan.j.williams@intel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
@@@ -1162,16 -1150,6 +1162,16 @@@ W:    http://www.digriz.org.uk/ts78xx/kern
  S:    Maintained
  F:    arch/arm/mach-orion5x/ts78xx-*
  
 +ARM/Mediatek SoC support
 +M:    Matthias Brugger <matthias.bgg@gmail.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/boot/dts/mt6*
 +F:    arch/arm/boot/dts/mt8*
 +F:    arch/arm/mach-mediatek/
 +N:    mtk
 +K:    mediatek
 +
  ARM/MICREL KS8695 ARCHITECTURE
  M:    Greg Ungerer <gerg@uclinux.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1383,6 -1361,7 +1383,6 @@@ F:      arch/arm/boot/dts/sh
  F:    arch/arm/configs/ape6evm_defconfig
  F:    arch/arm/configs/armadillo800eva_defconfig
  F:    arch/arm/configs/bockw_defconfig
 -F:    arch/arm/configs/genmai_defconfig
  F:    arch/arm/configs/koelsch_defconfig
  F:    arch/arm/configs/kzm9g_defconfig
  F:    arch/arm/configs/lager_defconfig
@@@ -1393,23 -1372,15 +1393,23 @@@ F:   arch/arm/mach-shmobile
  F:    drivers/sh/
  
  ARM/SOCFPGA ARCHITECTURE
 -M:    Dinh Nguyen <dinguyen@altera.com>
 +M:    Dinh Nguyen <dinguyen@opensource.altera.com>
  S:    Maintained
  F:    arch/arm/mach-socfpga/
 +W:    http://www.rocketboards.org
 +T:    git://git.rocketboards.org/linux-socfpga.git
 +T:    git://git.rocketboards.org/linux-socfpga-next.git
  
  ARM/SOCFPGA CLOCK FRAMEWORK SUPPORT
 -M:    Dinh Nguyen <dinguyen@altera.com>
 +M:    Dinh Nguyen <dinguyen@opensource.altera.com>
  S:    Maintained
  F:    drivers/clk/socfpga/
  
 +ARM/SOCFPGA EDAC SUPPORT
 +M:    Thor Thayer <tthayer@opensource.altera.com>
 +S:    Maintained
 +F:    drivers/edac/altera_edac.
 +
  ARM/STI ARCHITECTURE
  M:    Srinivas Kandagatla <srinivas.kandagatla@gmail.com>
  M:    Maxime Coquelin <maxime.coquelin@st.com>
@@@ -1421,17 -1392,12 +1421,17 @@@ S:   Maintaine
  F:    arch/arm/mach-sti/
  F:    arch/arm/boot/dts/sti*
  F:    drivers/clocksource/arm_global_timer.c
 -F:    drivers/reset/sti/
 -F:    drivers/pinctrl/pinctrl-st.c
 -F:    drivers/media/rc/st_rc.c
  F:    drivers/i2c/busses/i2c-st.c
 -F:    drivers/tty/serial/st-asc.c
 +F:    drivers/media/rc/st_rc.c
  F:    drivers/mmc/host/sdhci-st.c
 +F:    drivers/phy/phy-stih407-usb.c
 +F:    drivers/phy/phy-stih41x-usb.c
 +F:    drivers/pinctrl/pinctrl-st.c
 +F:    drivers/reset/sti/
 +F:    drivers/tty/serial/st-asc.c
 +F:    drivers/usb/dwc3/dwc3-st.c
 +F:    drivers/usb/host/ehci-st.c
 +F:    drivers/usb/host/ohci-st.c
  
  ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
@@@ -1596,9 -1562,9 +1596,9 @@@ F:      drivers/platform/x86/asus*.
  F:    drivers/platform/x86/eeepc*.c
  
  ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
 -M:    Dan Williams <dan.j.williams@intel.com>
 +R:    Dan Williams <dan.j.williams@intel.com>
  W:    http://sourceforge.net/projects/xscaleiop
 -S:    Maintained
 +S:    Odd fixes
  F:    Documentation/crypto/async-tx-api.txt
  F:    crypto/async_tx/
  F:    drivers/dma/
@@@ -1650,7 -1616,6 +1650,7 @@@ L:      wil6210@qca.qualcomm.co
  S:    Supported
  W:    http://wireless.kernel.org/en/users/Drivers/wil6210
  F:    drivers/net/wireless/ath/wil6210/
 +F:    include/uapi/linux/wil6210_uapi.h
  
  CARL9170 LINUX COMMUNITY WIRELESS DRIVER
  M:    Christian Lamparter <chunkeey@googlemail.com>
@@@ -2045,7 -2010,6 +2045,7 @@@ F:      drivers/net/ethernet/broadcom/bnx2x
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Christian Daudt <bcm@fixthebug.org>
  M:    Matt Porter <mporter@linaro.org>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    bcm-kernel-feedback-list@broadcom.com
  T:    git git://github.com/broadcom/mach-bcm
  S:    Maintained
@@@ -2075,14 -2039,6 +2075,14 @@@ F:    arch/arm/mach-bcm/bcm_5301x.
  F:    arch/arm/boot/dts/bcm5301x.dtsi
  F:    arch/arm/boot/dts/bcm470*
  
 +BROADCOM BCM63XX ARM ARCHITECTURE
 +M:    Florian Fainelli <f.fainelli@gmail.com>
 +L:    linux-arm-kernel@lists.infradead.org
 +T:    git git://git.github.com/brcm/linux.git
 +S:    Maintained
 +F:    arch/arm/mach-bcm/bcm63xx.c
 +F:    arch/arm/include/debug/bcm63xx.S
 +
  BROADCOM BCM7XXX ARM ARCHITECTURE
  M:    Marc Carino <marc.ceeeee@gmail.com>
  M:    Brian Norris <computersforpeace@gmail.com>
@@@ -2898,7 -2854,6 +2898,7 @@@ F:      drivers/platform/x86/dell-wmi.
  DESIGNWARE USB2 DRD IP DRIVER
  M:    Paul Zimmerman <paulz@synopsys.com>
  L:    linux-usb@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git
  S:    Maintained
  F:    drivers/usb/dwc2/
  
@@@ -2910,13 -2865,6 +2910,13 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/usb/dwc3/
  
 +DEVICE COREDUMP (DEV_COREDUMP)
 +M:    Johannes Berg <johannes@sipsolutions.net>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    drivers/base/devcoredump.c
 +F:    include/linux/devcoredump.h
 +
  DEVICE FREQUENCY (DEVFREQ)
  M:    MyungJoo Ham <myungjoo.ham@samsung.com>
  M:    Kyungmin Park <kyungmin.park@samsung.com>
@@@ -3047,11 -2995,13 +3047,11 @@@ 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
 +S:    Maintained
  F:    drivers/dma/
  F:    include/linux/dma*
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx.git
  T:    git git://git.infradead.org/users/vkoul/slave-dma.git (slave-dma)
  
  DME1737 HARDWARE MONITOR DRIVER
@@@ -3075,7 -3025,6 +3075,7 @@@ F:      Documentation
  X:    Documentation/ABI/
  X:    Documentation/devicetree/
  X:    Documentation/[a-z][a-z]_[A-Z][A-Z]/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/doc.git
  
  DOUBLETALK DRIVER
  M:    "James R. Van Zandt" <jrv@vanzandt.mv.com>
@@@ -3607,11 -3556,6 +3607,11 @@@ T:    git git://git.kernel.org/pub/scm/lin
  F:    drivers/video/fbdev/s1d13xxxfb.c
  F:    include/video/s1d13xxxfb.h
  
 +ET131X NETWORK DRIVER
 +M:    Mark Einon <mark.einon@gmail.com>
 +S:    Odd Fixes
 +F:    drivers/net/ethernet/agere/
 +
  ETHERNET BRIDGE
  M:    Stephen Hemminger <stephen@networkplumber.org>
  L:    bridge@lists.linux-foundation.org
@@@ -4657,14 -4601,13 +4657,14 @@@ F:   drivers/idle/i7300_idle.
  
  IEEE 802.15.4 SUBSYSTEM
  M:    Alexander Aring <alex.aring@gmail.com>
 -L:    linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers)
 -W:    http://apps.sourceforge.net/trac/linux-zigbee
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
 +L:    linux-wpan@vger.kernel.org
 +W:    https://github.com/linux-wpan
 +T:    git git://github.com/linux-wpan/linux-wpan-next.git
  S:    Maintained
  F:    net/ieee802154/
  F:    net/mac802154/
  F:    drivers/net/ieee802154/
 +F:    Documentation/networking/ieee802154.txt
  
  IGUANAWORKS USB IR TRANSCEIVER
  M:    Sean Young <sean@mess.org>
@@@ -4674,9 -4617,6 +4674,9 @@@ F:      drivers/media/rc/iguanair.
  
  IIO SUBSYSTEM AND DRIVERS
  M:    Jonathan Cameron <jic23@kernel.org>
 +R:    Hartmut Knaack <knaack.h@gmx.de>
 +R:    Lars-Peter Clausen <lars@metafoo.de>
 +R:    Peter Meerwald <pmeerw@pmeerw.net>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  F:    drivers/iio/
@@@ -4814,8 -4754,8 +4814,8 @@@ F:      arch/x86/kernel/cpu/microcode/core
  F:    arch/x86/kernel/cpu/microcode/intel*
  
  INTEL I/OAT DMA DRIVER
 -M:    Dan Williams <dan.j.williams@intel.com>
  M:    Dave Jiang <dave.jiang@intel.com>
 +R:    Dan Williams <dan.j.williams@intel.com>
  L:    dmaengine@vger.kernel.org
  Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
  S:    Supported
@@@ -4830,12 -4770,12 +4830,12 @@@ F:   drivers/iommu/intel-iommu.
  F:    include/linux/intel-iommu.h
  
  INTEL IOP-ADMA DMA DRIVER
 -M:    Dan Williams <dan.j.williams@intel.com>
 +R:    Dan Williams <dan.j.williams@intel.com>
  S:    Odd fixes
  F:    drivers/dma/iop-adma.c
  
  INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
 -M:    Krzysztof Halasa <khc@pm.waw.pl>
 +M:    Krzysztof Halasa <khalasa@piap.pl>
  S:    Maintained
  F:    arch/arm/mach-ixp4xx/include/mach/qmgr.h
  F:    arch/arm/mach-ixp4xx/include/mach/npe.h
@@@ -4849,14 -4789,14 +4849,14 @@@ M:   Deepak Saxena <dsaxena@plexity.net
  S:    Maintained
  F:    drivers/char/hw_random/ixp4xx-rng.c
  
 -INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/igbvf/ixgb/ixgbe/ixgbevf/i40e/i40evf)
 +INTEL ETHERNET DRIVERS (e100/e1000/e1000e/fm10k/igb/igbvf/ixgb/ixgbe/ixgbevf/i40e/i40evf)
  M:    Jeff Kirsher <jeffrey.t.kirsher@intel.com>
  M:    Jesse Brandeburg <jesse.brandeburg@intel.com>
  M:    Bruce Allan <bruce.w.allan@intel.com>
  M:    Carolyn Wyborny <carolyn.wyborny@intel.com>
  M:    Don Skidmore <donald.c.skidmore@intel.com>
  M:    Greg Rose <gregory.v.rose@intel.com>
 -M:    Alex Duyck <alexander.h.duyck@intel.com>
 +M:    Matthew Vick <matthew.vick@intel.com>
  M:    John Ronciak <john.ronciak@intel.com>
  M:    Mitch Williams <mitch.a.williams@intel.com>
  M:    Linux NICS <linux.nics@intel.com>
@@@ -5045,7 -4985,6 +5045,7 @@@ L:      linux-kernel@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
  T:    git git://git.infradead.org/users/jcooper/linux.git irqchip/core
 +F:    Documentation/devicetree/bindings/interrupt-controller/
  F:    drivers/irqchip/
  
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
@@@ -6438,7 -6377,7 +6438,7 @@@ M:      Lauro Ramos Venancio <lauro.venancio
  M:    Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
  M:    Samuel Ortiz <sameo@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
 -L:    linux-nfc@lists.01.org (moderated for non-subscribers)
 +L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Supported
  F:    net/nfc/
  F:    include/net/nfc/
@@@ -6939,14 -6878,6 +6939,14 @@@ F:    include/linux/pci
  F:    arch/x86/pci/
  F:    arch/x86/kernel/quirks.c
  
 +PCI DRIVER FOR APPLIEDMICRO XGENE
 +M:    Tanmay Inamdar <tinamdar@apm.com>
 +L:    linux-pci@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/xgene-pci.txt
 +F:    drivers/pci/host/pci-xgene.c
 +
  PCI DRIVER FOR IMX6
  M:    Richard Zhu <r65037@freescale.com>
  M:    Lucas Stach <l.stach@pengutronix.de>
@@@ -6955,13 -6886,6 +6955,13 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    drivers/pci/host/*imx6*
  
 +PCI DRIVER FOR TI KEYSTONE
 +M:    Murali Karicheri <m-karicheri2@ti.com>
 +L:    linux-pci@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/pci/host/*keystone*
 +
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  M:    Jason Cooper <jason@lakedaemon.net>
@@@ -7377,12 -7301,12 +7377,12 @@@ F:   drivers/video/backlight/pwm_bl.
  F:    include/linux/pwm_backlight.h
  
  PXA2xx/PXA3xx SUPPORT
 -M:    Eric Miao <eric.y.miao@gmail.com>
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Daniel Mack <daniel@zonque.org>
  M:    Haojian Zhuang <haojian.zhuang@gmail.com>
 +M:    Robert Jarzmik <robert.jarzmik@free.fr>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  T:    git git://github.com/hzhuang1/linux.git
 -T:    git git://git.linaro.org/people/ycmiao/pxa-linux.git
 +T:    git git://github.com/rjarzmik/linux.git
  S:    Maintained
  F:    arch/arm/mach-pxa/
  F:    drivers/pcmcia/pxa2xx*
@@@ -7459,15 -7383,15 +7459,15 @@@ F:   drivers/net/ethernet/qlogic/qla3xxx.
  
  QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
  M:    Shahed Shaikh <shahed.shaikh@qlogic.com>
 -M:    Dept-HSGLinuxNICDev@qlogic.com
 +M:    Dept-GELinuxNICDev@qlogic.com
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/qlogic/qlcnic/
  
  QLOGIC QLGE 10Gb ETHERNET DRIVER
 -M:    Shahed Shaikh <shahed.shaikh@qlogic.com>
 -M:    Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
 -M:    Ron Mercer <ron.mercer@qlogic.com>
 +M:    Harish Patil <harish.patil@qlogic.com>
 +M:    Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
 +M:    Dept-GELinuxNICDev@qlogic.com
  M:    linux-driver@qlogic.com
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -7570,12 -7494,13 +7570,12 @@@ F:   drivers/video/fbdev/aty/aty128fb.
  
  RALINK RT2X00 WIRELESS LAN DRIVER
  P:    rt2x00 project
 -M:    Ivo van Doorn <IvDoorn@gmail.com>
 +M:    Stanislaw Gruszka <sgruszka@redhat.com>
  M:    Helmut Schaa <helmut.schaa@googlemail.com>
  L:    linux-wireless@vger.kernel.org
  L:    users@rt2x00.serialmonkey.com (moderated for non-subscribers)
  W:    http://rt2x00.serialmonkey.com/
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git
  F:    drivers/net/wireless/rt2x00/
  
  RAMDISK RAM BLOCK DEVICE DRIVER
@@@ -7677,7 -7602,6 +7677,7 @@@ F:      fs/reiserfs
  
  REGISTER MAP ABSTRACTION
  M:    Mark Brown <broonie@kernel.org>
 +L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git
  S:    Supported
  F:    drivers/base/regmap/
@@@ -8490,11 -8414,11 +8490,11 @@@ S:   Maintaine
  F:    Documentation/security/Smack.txt
  F:    security/smack/
  
SMARTREFLEX DRIVERS FOR ADAPTIVE VOLTAGE SCALING (AVS)
+ DRIVERS FOR ADAPTIVE VOLTAGE SCALING (AVS)
  M:    Kevin Hilman <khilman@kernel.org>
  M:    Nishanth Menon <nm@ti.com>
  S:    Maintained
- F:    drivers/power/avs/smartreflex.c
+ F:    drivers/power/avs/
  F:    include/linux/power/smartreflex.h
  L:    linux-pm@vger.kernel.org
  
@@@ -8775,6 -8699,11 +8775,6 @@@ M:     H Hartley Sweeten <hsweeten@visionen
  S:    Odd Fixes
  F:    drivers/staging/comedi/
  
 -STAGING - ET131X NETWORK DRIVER
 -M:    Mark Einon <mark.einon@gmail.com>
 -S:    Odd Fixes
 -F:    drivers/staging/et131x/
 -
  STAGING - FLARION FT1000 DRIVERS
  M:    Marek Belisko <marek.belisko@gmail.com>
  S:    Odd Fixes
@@@ -8792,14 -8721,6 +8792,14 @@@ W:    http://www.lirc.org
  S:    Odd Fixes
  F:    drivers/staging/media/lirc/
  
 +STAGING - LUSTRE PARALLEL FILESYSTEM
 +M:    Oleg Drokin <oleg.drokin@intel.com>
 +M:    Andreas Dilger <andreas.dilger@intel.com>
 +L:    HPDD-discuss@lists.01.org (moderated for non-subscribers)
 +W:    http://lustre.opensfs.org/
 +S:    Maintained
 +F:    drivers/staging/lustre
 +
  STAGING - NVIDIA COMPLIANT EMBEDDED CONTROLLER INTERFACE (nvec)
  M:    Julian Andres Klode <jak@jak-linux.org>
  M:    Marc Dietrich <marvin24@gmx.de>
@@@ -9093,13 -9014,17 +9093,13 @@@ F:   drivers/media/rc/ttusbir.
  TEGRA ARCHITECTURE SUPPORT
  M:    Stephen Warren <swarren@wwwdotorg.org>
  M:    Thierry Reding <thierry.reding@gmail.com>
 +M:    Alexandre Courbot <gnurou@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/tegra/linux.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>
@@@ -9111,6 -9036,11 +9111,6 @@@ M:     Laxman Dewangan <ldewangan@nvidia.co
  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
@@@ -9127,6 -9057,11 +9127,6 @@@ M:     Laxman Dewangan <ldewangan@nvidia.co
  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
@@@ -9217,15 -9152,6 +9217,15 @@@ F:    drivers/misc/tifm
  F:    drivers/mmc/host/tifm_sd.c
  F:    include/linux/tifm.h
  
 +TI KEYSTONE MULTICORE NAVIGATOR DRIVERS
 +M:    Santosh Shilimkar <santosh.shilimkar@ti.com>
 +L:    linux-kernel@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/soc/ti/*
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
 +
 +
  TI LM49xxx FAMILY ASoC CODEC DRIVERS
  M:    M R Swami Reddy <mr.swami.reddy@ti.com>
  M:    Vishwas A Deshpande <vishwas.a.deshpande@ti.com>
@@@ -9761,7 -9687,7 +9761,7 @@@ USB WEBCAM GADGE
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
 -F:    drivers/usb/gadget/function/*uvc*.c
 +F:    drivers/usb/gadget/function/*uvc*
  F:    drivers/usb/gadget/legacy/webcam.c
  
  USB WIRELESS RNDIS DRIVER (rndis_wlan)
@@@ -9975,7 -9901,6 +9975,7 @@@ F:      drivers/scsi/vmw_pvscsi.
  VOLTAGE AND CURRENT REGULATOR FRAMEWORK
  M:    Liam Girdwood <lgirdwood@gmail.com>
  M:    Mark Brown <broonie@kernel.org>
 +L:    linux-kernel@vger.kernel.org
  W:    http://opensource.wolfsonmicro.com/node/15
  W:    http://www.slimlogic.co.uk/?p=48
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
@@@ -10269,12 -10194,6 +10269,12 @@@ L: linux-serial@vger.kernel.or
  S:    Maintained
  F:    drivers/tty/serial/uartlite.c
  
 +XILLYBUS DRIVER
 +M:    Eli Billauer <eli.billauer@gmail.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +F:    drivers/char/xillybus/
 +
  XTENSA XTFPGA PLATFORM SUPPORT
  M:    Max Filippov <jcmvbkbc@gmail.com>
  L:    linux-xtensa@linux-xtensa.org
@@@ -27,6 -27,7 +27,6 @@@
  #define PSTR_RETRIES  100
  #define PSTR_DELAY_US 10
  
 -#ifdef CONFIG_PM
  static int rmobile_pd_power_down(struct generic_pm_domain *genpd)
  {
        struct rmobile_pm_domain *rmobile_pd = to_rmobile_pd(genpd);
@@@ -110,7 -111,6 +110,6 @@@ static void rmobile_init_pm_domain(stru
        genpd->dev_ops.stop             = pm_clk_suspend;
        genpd->dev_ops.start            = pm_clk_resume;
        genpd->dev_ops.active_wakeup    = rmobile_pd_active_wakeup;
-       genpd->dev_irq_safe             = true;
        genpd->power_off                = rmobile_pd_power_down;
        genpd->power_on                 = rmobile_pd_power_up;
        __rmobile_pd_power_up(rmobile_pd, false);
@@@ -150,3 -150,4 +149,3 @@@ void rmobile_add_devices_to_domains(str
                rmobile_add_device_to_domain_td(data[j].domain_name,
                                                data[j].pdev, &latencies);
  }
 -#endif /* CONFIG_PM */
@@@ -98,19 -98,13 +98,19 @@@ static int __init zynq_get_revision(voi
        return revision;
  }
  
 +static void __init zynq_init_late(void)
 +{
 +      zynq_core_pm_init();
 +      zynq_pm_late_init();
 +}
 +
  /**
   * zynq_init_machine - System specific initialization, intended to be
   *                   called from board specific initialization.
   */
  static void __init zynq_init_machine(void)
  {
-       struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
+       struct platform_device_info devinfo = { .name = "cpufreq-dt", };
        struct soc_device_attribute *soc_dev_attr;
        struct soc_device *soc_dev;
        struct device *parent = NULL;
@@@ -204,13 -198,12 +204,13 @@@ static const char * const zynq_dt_match
  
  DT_MACHINE_START(XILINX_EP107, "Xilinx Zynq Platform")
        /* 64KB way size, 8-way associativity, parity disabled */
 -      .l2c_aux_val    = 0x02000000,
 -      .l2c_aux_mask   = 0xf0ffffff,
 +      .l2c_aux_val    = 0x00000000,
 +      .l2c_aux_mask   = 0xffffffff,
        .smp            = smp_ops(zynq_smp_ops),
        .map_io         = zynq_map_io,
        .init_irq       = zynq_irq_init,
        .init_machine   = zynq_init_machine,
 +      .init_late      = zynq_init_late,
        .init_time      = zynq_timer_init,
        .dt_compat      = zynq_dt_match,
        .reserve        = zynq_memory_init,
diff --combined drivers/acpi/acpi_pnp.c
@@@ -15,6 -15,8 +15,6 @@@
  #include <linux/ctype.h>
  
  static const struct acpi_device_id acpi_pnp_device_ids[] = {
 -      /* soc_button_array */
 -      {"PNP0C40"},
        /* pata_isapnp */
        {"PNP0600"},            /* Generic ESDI/IDE/ATA compatible hard disk controller */
        /* floppy */
        {"PNP0401"},            /* ECP Printer Port */
        /* apple-gmux */
        {"APP000B"},
-       /* fujitsu-laptop.c */
-       {"FUJ02bf"},
-       {"FUJ02B1"},
-       {"FUJ02E3"},
        /* system */
        {"PNP0c02"},            /* General ID for reserving resources */
        {"PNP0c01"},            /* memory controller */
@@@ -77,7 -77,7 +77,7 @@@ config ARM_EXYNOS5440_CPUFRE
  
  config ARM_EXYNOS_CPU_FREQ_BOOST_SW
        bool "EXYNOS Frequency Overclocking - Software"
 -      depends on ARM_EXYNOS_CPUFREQ
 +      depends on ARM_EXYNOS_CPUFREQ && THERMAL
        select CPU_FREQ_BOOST_SW
        select EXYNOS_THERMAL
        help
@@@ -92,7 -92,7 +92,7 @@@
  
  config ARM_HIGHBANK_CPUFREQ
        tristate "Calxeda Highbank-based"
-       depends on ARCH_HIGHBANK && GENERIC_CPUFREQ_CPU0 && REGULATOR
+       depends on ARCH_HIGHBANK && CPUFREQ_DT && REGULATOR
        default m
        help
          This adds the CPUFreq driver for Calxeda Highbank SoC
@@@ -119,7 -119,7 +119,7 @@@ config ARM_INTEGRATO
          If in doubt, say Y.
  
  config ARM_KIRKWOOD_CPUFREQ
 -      def_bool ARCH_KIRKWOOD || MACH_KIRKWOOD
 +      def_bool MACH_KIRKWOOD
        help
          This adds the CPUFreq driver for Marvell Kirkwood
          SoCs.
@@@ -7,6 -7,7 +7,7 @@@ config ARM_BIG_LITTLE_CPUIDL
        depends on MCPM
        select ARM_CPU_SUSPEND
        select CPU_IDLE_MULTIPLE_DRIVERS
+       select DT_IDLE_STATES
        help
          Select this option to enable CPU idle driver for big.LITTLE based
          ARM systems. Driver manages CPUs coordination through MCPM and
@@@ -28,7 -29,7 +29,7 @@@ config ARM_HIGHBANK_CPUIDL
  
  config ARM_KIRKWOOD_CPUIDLE
        bool "CPU Idle Driver for Marvell Kirkwood SoCs"
 -      depends on ARCH_KIRKWOOD || MACH_KIRKWOOD
 +      depends on MACH_KIRKWOOD
        help
          This adds the CPU Idle driver for Marvell Kirkwood SoCs.
  
diff --combined drivers/spi/spi.c
@@@ -35,6 -35,7 +35,7 @@@
  #include <linux/spi/spi.h>
  #include <linux/of_gpio.h>
  #include <linux/pm_runtime.h>
+ #include <linux/pm_domain.h>
  #include <linux/export.h>
  #include <linux/sched/rt.h>
  #include <linux/delay.h>
@@@ -264,10 -265,12 +265,12 @@@ static int spi_drv_probe(struct device 
        if (ret)
                return ret;
  
-       acpi_dev_pm_attach(dev, true);
-       ret = sdrv->probe(to_spi_device(dev));
-       if (ret)
-               acpi_dev_pm_detach(dev, true);
+       ret = dev_pm_domain_attach(dev, true);
+       if (ret != -EPROBE_DEFER) {
+               ret = sdrv->probe(to_spi_device(dev));
+               if (ret)
+                       dev_pm_domain_detach(dev, true);
+       }
  
        return ret;
  }
@@@ -278,7 -281,7 +281,7 @@@ static int spi_drv_remove(struct devic
        int ret;
  
        ret = sdrv->remove(to_spi_device(dev));
-       acpi_dev_pm_detach(dev, true);
+       dev_pm_domain_detach(dev, true);
  
        return ret;
  }
@@@ -552,9 -555,6 +555,9 @@@ int spi_register_board_info(struct spi_
        struct boardinfo *bi;
        int i;
  
 +      if (!n)
 +              return -EINVAL;
 +
        bi = kzalloc(n * sizeof(*bi), GFP_KERNEL);
        if (!bi)
                return -ENOMEM;
@@@ -792,35 -792,27 +795,35 @@@ static int spi_transfer_one_message(str
        list_for_each_entry(xfer, &msg->transfers, transfer_list) {
                trace_spi_transfer_start(msg, xfer);
  
 -              reinit_completion(&master->xfer_completion);
 +              if (xfer->tx_buf || xfer->rx_buf) {
 +                      reinit_completion(&master->xfer_completion);
  
 -              ret = master->transfer_one(master, msg->spi, xfer);
 -              if (ret < 0) {
 -                      dev_err(&msg->spi->dev,
 -                              "SPI transfer failed: %d\n", ret);
 -                      goto out;
 -              }
 +                      ret = master->transfer_one(master, msg->spi, xfer);
 +                      if (ret < 0) {
 +                              dev_err(&msg->spi->dev,
 +                                      "SPI transfer failed: %d\n", ret);
 +                              goto out;
 +                      }
  
 -              if (ret > 0) {
 -                      ret = 0;
 -                      ms = xfer->len * 8 * 1000 / xfer->speed_hz;
 -                      ms += ms + 100; /* some tolerance */
 +                      if (ret > 0) {
 +                              ret = 0;
 +                              ms = xfer->len * 8 * 1000 / xfer->speed_hz;
 +                              ms += ms + 100; /* some tolerance */
  
 -                      ms = wait_for_completion_timeout(&master->xfer_completion,
 -                                                       msecs_to_jiffies(ms));
 -              }
 +                              ms = wait_for_completion_timeout(&master->xfer_completion,
 +                                                               msecs_to_jiffies(ms));
 +                      }
  
 -              if (ms == 0) {
 -                      dev_err(&msg->spi->dev, "SPI transfer timed out\n");
 -                      msg->status = -ETIMEDOUT;
 +                      if (ms == 0) {
 +                              dev_err(&msg->spi->dev,
 +                                      "SPI transfer timed out\n");
 +                              msg->status = -ETIMEDOUT;
 +                      }
 +              } else {
 +                      if (xfer->len)
 +                              dev_err(&msg->spi->dev,
 +                                      "Bufferless transfer has length %u\n",
 +                                      xfer->len);
                }
  
                trace_spi_transfer_stop(msg, xfer);
diff --combined include/linux/irqdesc.h
@@@ -12,8 -12,6 +12,8 @@@ struct irq_affinity_notify
  struct proc_dir_entry;
  struct module;
  struct irq_desc;
 +struct irq_domain;
 +struct pt_regs;
  
  /**
   * struct irq_desc - interrupt descriptor
   * @threads_oneshot:  bitfield to handle shared oneshot threads
   * @threads_active:   number of irqaction threads currently running
   * @wait_for_threads: wait queue for sync_irq to wait for threaded handlers
+  * @nr_actions:               number of installed actions on this descriptor
+  * @no_suspend_depth: number of irqactions on a irq descriptor with
+  *                    IRQF_NO_SUSPEND set
+  * @force_resume_depth:       number of irqactions on a irq descriptor with
+  *                    IRQF_FORCE_RESUME set
   * @dir:              /proc/irq/ procfs entry
   * @name:             flow handler name for /proc/interrupts output
   */
@@@ -70,6 -73,11 +75,11 @@@ struct irq_desc 
        unsigned long           threads_oneshot;
        atomic_t                threads_active;
        wait_queue_head_t       wait_for_threads;
+ #ifdef CONFIG_PM_SLEEP
+       unsigned int            nr_actions;
+       unsigned int            no_suspend_depth;
+       unsigned int            force_resume_depth;
+ #endif
  #ifdef CONFIG_PROC_FS
        struct proc_dir_entry   *dir;
  #endif
@@@ -120,23 -128,6 +130,23 @@@ static inline void generic_handle_irq_d
  
  int generic_handle_irq(unsigned int irq);
  
 +#ifdef CONFIG_HANDLE_DOMAIN_IRQ
 +/*
 + * Convert a HW interrupt number to a logical one using a IRQ domain,
 + * and handle the result interrupt number. Return -EINVAL if
 + * conversion failed. Providing a NULL domain indicates that the
 + * conversion has already been done.
 + */
 +int __handle_domain_irq(struct irq_domain *domain, unsigned int hwirq,
 +                      bool lookup, struct pt_regs *regs);
 +
 +static inline int handle_domain_irq(struct irq_domain *domain,
 +                                  unsigned int hwirq, struct pt_regs *regs)
 +{
 +      return __handle_domain_irq(domain, hwirq, true, regs);
 +}
 +#endif
 +
  /* Test to see if a driver has successfully requested an irq */
  static inline int irq_has_action(unsigned int irq)
  {