OSDN Git Service

Merge tag 'sound-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Apr 2018 17:42:07 +0000 (10:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Apr 2018 17:42:07 +0000 (10:42 -0700)
Pull sound updates from Takashi Iwai:
 "This became a large update. The changes are scattered widely, and the
  majority of them are attributed to ASoC componentization. The gitk
  output made me dizzy, but it's slightly better than London tube.

  OK, below are some highlights:

   - Continued hardening works in ALSA PCM core; most of the existing
     syzkaller reports should have been covered.

   - USB-audio got the initial USB Audio Class 3 support, as well as
     UAC2 jack detection support and more DSD-device support.

   - ASoC componentization: finally each individual driver was converted
     to components framework, which is more future-proof for further
     works. Most of conversations were systematic.

   - Lots of fixes for Intel Baytrail / Cherrytrail devices with Realtek
     codecs, typically tablets and small PCs.

   - Fixes / cleanups for Samsung Odroid systems

   - Cleanups in Freescale SSI driver

   - New ASoC drivers:
      * AKM AK4458 and AK5558 codecs
      * A few AMD based machine drivers
      * Intel Kabylake machine drivers
      * Maxim MAX9759 codec
      * Motorola CPCAP codec
      * Socionext Uniphier SoCs
      * TI PCM1789 and TDA7419 codecs

   - Retirement of Blackfin drivers along with architecture removal"

* tag 'sound-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (497 commits)
  ALSA: pcm: Fix UAF at PCM release via PCM timer access
  ALSA: usb-audio: silence a static checker warning
  ASoC: tscs42xx: Remove owner assignment from i2c_driver
  ASoC: mediatek: remove "simple-mfd" in the example
  ASoC: cpcap: replace codec to component
  ASoC: Intel: bytcr_rt5651: don't use codec anymore
  ASoC: amd: don't use codec anymore
  ALSA: usb-audio: fix memory leak on cval
  ALSA: pcm: Fix mutex unbalance in OSS emulation ioctls
  ASoC: topology: Fix kcontrol name string handling
  ALSA: aloop: Mark paused device as inactive
  ALSA: usb-audio: update clock valid control
  ALSA: usb-audio: UAC2 jack detection
  ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams
  ALSA: pcm: Avoid potential races between OSS ioctls and read/write
  ALSA: usb-audio: Integrate native DSD support for ITF-USB based DACs.
  ALSA: usb-audio: FIX native DSD support for TEAC UD-501 DAC
  ALSA: usb-audio: Add native DSD support for Luxman DA-06
  ALSA: usb-audio: fix uac control query argument
  ASoC: nau8824: recover system clock when device changes
  ...

1  2 
MAINTAINERS
drivers/gpu/drm/vc4/vc4_hdmi.c
include/sound/hdaudio.h
sound/pci/hda/hda_intel.c

diff --combined MAINTAINERS
@@@ -766,8 -766,6 +766,8 @@@ F: drivers/gpu/drm/amd/amdgpu/amdgpu_am
  F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
  F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
  F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
 +F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
 +F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
  F:    drivers/gpu/drm/amd/amdkfd/
  F:    drivers/gpu/drm/amd/include/cik_structs.h
  F:    drivers/gpu/drm/amd/include/kgd_kfd_interface.h
@@@ -843,13 -841,6 +843,6 @@@ F:        sound/soc/codecs/ad7
  F:    sound/soc/codecs/ssm*
  F:    sound/soc/codecs/sigmadsp.*
  
- ANALOG DEVICES INC ASOC DRIVERS
- L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
- L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
- W:    http://blackfin.uclinux.org/
- S:    Supported
- F:    sound/soc/blackfin/*
  ANALOG DEVICES INC DMA DRIVERS
  M:    Lars-Peter Clausen <lars@metafoo.de>
  W:    http://ez.analog.com/community/linux-device-drivers
@@@ -868,17 -859,7 +861,17 @@@ F:       drivers/iio/*/ad
  F:    drivers/iio/adc/ltc2497*
  X:    drivers/iio/*/adjd*
  F:    drivers/staging/iio/*/ad*
 -F:    drivers/staging/iio/trigger/iio-trig-bfin-timer.c
 +
 +ANDES ARCHITECTURE
 +M:    Greentime Hu <green.hu@gmail.com>
 +M:    Vincent Chen <deanbo422@gmail.com>
 +T:    git https://github.com/andestech/linux.git
 +S:    Supported
 +F:    arch/nds32/
 +F:    Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
 +F:    Documentation/devicetree/bindings/nds32/
 +K:    nds32
 +N:    nds32
  
  ANDROID CONFIG FRAGMENTS
  M:    Rob Herring <robh@kernel.org>
@@@ -1072,42 -1053,41 +1065,42 @@@ ARM POR
  M:    Russell King <linux@armlinux.org.uk>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.armlinux.org.uk/
 -S:    Maintained
 +S:    Odd Fixes
  T:    git git://git.armlinux.org.uk/~rmk/linux-arm.git
  F:    arch/arm/
 +X:    arch/arm/boot/dts/
  
  ARM PRIMECELL AACI PL041 DRIVER
  M:    Russell King <linux@armlinux.org.uk>
 -S:    Maintained
 +S:    Odd Fixes
  F:    sound/arm/aaci.*
  
  ARM PRIMECELL BUS SUPPORT
  M:    Russell King <linux@armlinux.org.uk>
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/amba/
  F:    include/linux/amba/bus.h
  
  ARM PRIMECELL CLCD PL110 DRIVER
  M:    Russell King <linux@armlinux.org.uk>
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/video/fbdev/amba-clcd.*
  
  ARM PRIMECELL KMI PL050 DRIVER
  M:    Russell King <linux@armlinux.org.uk>
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/input/serio/ambakmi.*
  F:    include/linux/amba/kmi.h
  
  ARM PRIMECELL MMCI PL180/1 DRIVER
  M:    Russell King <linux@armlinux.org.uk>
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/mmc/host/mmci.*
  F:    include/linux/amba/mmci.h
  
  ARM PRIMECELL UART PL010 AND PL011 DRIVERS
  M:    Russell King <linux@armlinux.org.uk>
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/tty/serial/amba-pl01*.c
  F:    include/linux/amba/serial.h
  
@@@ -1165,7 -1145,7 +1158,7 @@@ S:      Maintaine
  F:    drivers/clk/sunxi/
  
  ARM/Allwinner sunXi SoC support
 -M:    Maxime Ripard <maxime.ripard@free-electrons.com>
 +M:    Maxime Ripard <maxime.ripard@bootlin.com>
  M:    Chen-Yu Tsai <wens@csie.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -2642,6 -2622,51 +2635,6 @@@ F:     Documentation/filesystems/bfs.tx
  F:    fs/bfs/
  F:    include/uapi/linux/bfs_fs.h
  
 -BLACKFIN ARCHITECTURE
 -L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
 -T:    git git://git.code.sf.net/p/adi-linux/code
 -W:    http://blackfin.uclinux.org
 -S:    Orphan
 -F:    arch/blackfin/
 -
 -BLACKFIN EMAC DRIVER
 -L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
 -W:    http://blackfin.uclinux.org
 -S:    Orphan
 -F:    drivers/net/ethernet/adi/
 -
 -BLACKFIN MEDIA DRIVER
 -L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
 -W:    http://blackfin.uclinux.org/
 -S:    Orphan
 -F:    drivers/media/platform/blackfin/
 -F:    drivers/media/i2c/adv7183*
 -F:    drivers/media/i2c/vs6624*
 -
 -BLACKFIN RTC DRIVER
 -L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
 -W:    http://blackfin.uclinux.org
 -S:    Orphan
 -F:    drivers/rtc/rtc-bfin.c
 -
 -BLACKFIN SDH DRIVER
 -L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
 -W:    http://blackfin.uclinux.org
 -S:    Orphan
 -F:    drivers/mmc/host/bfin_sdh.c
 -
 -BLACKFIN SERIAL DRIVER
 -L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
 -W:    http://blackfin.uclinux.org
 -S:    Orphan
 -F:    drivers/tty/serial/bfin_uart.c
 -
 -BLACKFIN WATCHDOG DRIVER
 -L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
 -W:    http://blackfin.uclinux.org
 -S:    Orphan
 -F:    drivers/watchdog/bfin_wdt.c
 -
  BLINKM RGB LED DRIVER
  M:    Jan-Simon Moeller <jansimon.moeller@gmx.de>
  S:    Maintained
@@@ -3252,11 -3277,12 +3245,11 @@@ F:   drivers/net/ieee802154/cc2520.
  F:    include/linux/spi/cc2520.h
  F:    Documentation/devicetree/bindings/net/ieee802154/cc2520.txt
  
 -CCREE ARM TRUSTZONE CRYPTOCELL 700 REE DRIVER
 +CCREE ARM TRUSTZONE CRYPTOCELL REE DRIVER
  M:    Gilad Ben-Yossef <gilad@benyossef.com>
  L:    linux-crypto@vger.kernel.org
 -L:    driverdev-devel@linuxdriverproject.org
  S:    Supported
 -F:    drivers/staging/ccree/
 +F:    drivers/crypto/ccree/
  W:    https://developer.arm.com/products/system-ip/trustzone-cryptocell/cryptocell-700-family
  
  CEC FRAMEWORK
@@@ -3274,7 -3300,6 +3267,7 @@@ F:      include/media/cec-notifier.
  F:    include/uapi/linux/cec.h
  F:    include/uapi/linux/cec-funcs.h
  F:    Documentation/devicetree/bindings/media/cec.txt
 +F:    Documentation/ABI/testing/debugfs-cec-error-inj
  
  CEC GPIO DRIVER
  M:    Hans Verkuil <hans.verkuil@cisco.com>
@@@ -3717,6 -3742,16 +3710,6 @@@ S:     Maintaine
  F:    Documentation/filesystems/cramfs.txt
  F:    fs/cramfs/
  
 -CRIS PORT
 -M:    Mikael Starvik <starvik@axis.com>
 -M:    Jesper Nilsson <jesper.nilsson@axis.com>
 -L:    linux-cris-kernel@axis.com
 -W:    http://developer.axis.com
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris.git
 -S:    Maintained
 -F:    arch/cris/
 -F:    drivers/tty/serial/crisv10.*
 -
  CRYPTO API
  M:    Herbert Xu <herbert@gondor.apana.org.au>
  M:    "David S. Miller" <davem@davemloft.net>
@@@ -4079,7 -4114,7 +4072,7 @@@ S:      Supporte
  F:    drivers/mtd/nand/denali*
  
  DESIGNWARE USB2 DRD IP DRIVER
 -M:    John Youn <johnyoun@synopsys.com>
 +M:    Minas Harutyunyan <hminas@synopsys.com>
  L:    linux-usb@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git
  S:    Maintained
@@@ -4370,12 -4405,6 +4363,12 @@@ L:    linux-kernel@vger.kernel.or
  S:    Maintained
  F:    drivers/staging/fsl-dpaa2/ethernet
  
 +DPAA2 ETHERNET SWITCH DRIVER
 +M:    Razvan Stefanescu <razvan.stefanescu@nxp.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/fsl-dpaa2/ethsw
 +
  DPT_I2O SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@adaptec.com>
  L:    linux-scsi@vger.kernel.org
@@@ -4422,13 -4451,6 +4415,13 @@@ T:    git git://anongit.freedesktop.org/dr
  S:    Supported
  F:    drivers/gpu/drm/pl111/
  
 +DRM DRIVER FOR ARM VERSATILE TFT PANELS
 +M:    Linus Walleij <linus.walleij@linaro.org>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +S:    Maintained
 +F:    drivers/gpu/drm/panel/panel-arm-versatile.c
 +F:    Documentation/devicetree/bindings/display/panel/arm,versatile-tft-panel.txt
 +
  DRM DRIVER FOR AST SERVER GRAPHICS CHIPS
  M:    Dave Airlie <airlied@redhat.com>
  S:    Odd Fixes
@@@ -4583,8 -4605,8 +4576,8 @@@ F:      include/uapi/drm
  F:    include/linux/vga*
  
  DRM DRIVERS AND MISC GPU PATCHES
 -M:    Daniel Vetter <daniel.vetter@intel.com>
  M:    Gustavo Padovan <gustavo@padovan.org>
 +M:    Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  M:    Sean Paul <seanpaul@chromium.org>
  W:    https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
  S:    Maintained
@@@ -4597,7 -4619,7 +4590,7 @@@ F:      include/uapi/drm/drm
  F:    include/linux/vga*
  
  DRM DRIVERS FOR ALLWINNER A10
 -M:    Maxime Ripard  <maxime.ripard@free-electrons.com>
 +M:    Maxime Ripard  <maxime.ripard@bootlin.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
  F:    drivers/gpu/drm/sun4i/
@@@ -4710,7 -4732,6 +4703,7 @@@ F:      drivers/gpu/drm/rcar-du
  F:    drivers/gpu/drm/shmobile/
  F:    include/linux/platform_data/shmob_drm.h
  F:    Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
 +F:    Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
  F:    Documentation/devicetree/bindings/display/renesas,du.txt
  
  DRM DRIVERS FOR ROCKCHIP
@@@ -5524,7 -5545,7 +5517,7 @@@ M:      Luis R. Rodriguez <mcgrof@kernel.org
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/firmware_class/
 -F:    drivers/base/firmware*.c
 +F:    drivers/base/firmware_loader/
  F:    include/linux/firmware.h
  
  FLASH ADAPTER DRIVER (IBM Flash Adapter 900GB Full Height PCI Flash Card)
@@@ -5609,7 -5630,7 +5602,7 @@@ S:      Maintaine
  F:    drivers/dma/fsldma.*
  
  FREESCALE eTSEC ETHERNET DRIVER (GIANFAR)
 -M:    Claudiu Manoil <claudiu.manoil@freescale.com>
 +M:    Claudiu Manoil <claudiu.manoil@nxp.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/freescale/gianfar*
@@@ -5771,6 -5792,10 +5764,6 @@@ F:     fs/crypto
  F:    include/linux/fscrypt*.h
  F:    Documentation/filesystems/fscrypt.rst
  
 -FUJITSU FR-V (FRV) PORT
 -S:    Orphan
 -F:    arch/frv/
 -
  FUJITSU LAPTOP EXTRAS
  M:    Jonathan Woithe <jwoithe@just42.net>
  L:    platform-driver-x86@vger.kernel.org
@@@ -5984,7 -6009,7 +5977,7 @@@ S:      Maintaine
  F:    drivers/media/rc/gpio-ir-tx.c
  
  GPIO MOCKUP DRIVER
 -M:    Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
 +M:    Bamvor Jian Zhang <bamv2005@gmail.com>
  R:    Bartosz Golaszewski <brgl@bgdev.pl>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
@@@ -5997,7 -6022,6 +5990,7 @@@ L:      linux-gpio@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/
 +F:    Documentation/driver-api/gpio/
  F:    Documentation/gpio/
  F:    Documentation/ABI/testing/gpio-cdev
  F:    Documentation/ABI/obsolete/sysfs-gpio
@@@ -6213,11 -6237,6 +6206,11 @@@ F:    Documentation/hw_random.tx
  F:    drivers/char/hw_random/
  F:    include/linux/hw_random.h
  
 +HARDWARE TRACING FACILITIES
 +M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
 +S:    Maintained
 +F:    drivers/hwtracing/
 +
  HARDWARE SPINLOCK CORE
  M:    Ohad Ben-Cohen <ohad@wizery.com>
  M:    Bjorn Andersson <bjorn.andersson@linaro.org>
@@@ -6877,13 -6896,6 +6870,13 @@@ M:    James Hogan <jhogan@kernel.org
  S:    Maintained
  F:    drivers/media/rc/img-ir/
  
 +IMON SOUNDGRAPH USB IR RECEIVER
 +M:    Sean Young <sean@mess.org>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/rc/imon_raw.c
 +F:    drivers/media/rc/imon.c
 +
  IMS TWINTURBO FRAMEBUFFER DRIVER
  L:    linux-fbdev@vger.kernel.org
  S:    Orphan
@@@ -6973,7 -6985,7 +6966,7 @@@ F:      drivers/input/input-mt.
  K:    \b(ABS|SYN)_MT_
  
  INSIDE SECURE CRYPTO DRIVER
 -M:    Antoine Tenart <antoine.tenart@free-electrons.com>
 +M:    Antoine Tenart <antoine.tenart@bootlin.com>
  F:    drivers/crypto/inside-secure/
  S:    Maintained
  L:    linux-crypto@vger.kernel.org
@@@ -7044,7 -7056,6 +7037,7 @@@ F:      Documentation/networking/ixgbe.tx
  F:    Documentation/networking/ixgbevf.txt
  F:    Documentation/networking/i40e.txt
  F:    Documentation/networking/i40evf.txt
 +F:    Documentation/networking/ice.txt
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
  F:    include/linux/avf/virtchnl.h
@@@ -7211,14 -7222,6 +7204,14 @@@ L:    linux-rdma@vger.kernel.or
  S:    Supported
  F:    drivers/infiniband/hw/i40iw/
  
 +INTEL SHA MULTIBUFFER DRIVER
 +M:    Megha Dey <megha.dey@linux.intel.com>
 +R:    Tim Chen <tim.c.chen@linux.intel.com>
 +L:    linux-crypto@vger.kernel.org
 +S:    Supported
 +F:    arch/x86/crypto/sha*-mb
 +F:    crypto/mcryptd.c
 +
  INTEL TELEMETRY DRIVER
  M:    Souvik Kumar Chakravarty <souvik.k.chakravarty@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -7513,13 -7516,6 +7506,13 @@@ Q:    http://patchwork.linuxtv.org/project
  S:    Maintained
  F:    drivers/media/dvb-frontends/ix2505v*
  
 +JAILHOUSE HYPERVISOR INTERFACE
 +M:    Jan Kiszka <jan.kiszka@siemens.com>
 +L:    jailhouse-dev@googlegroups.com
 +S:    Maintained
 +F:    arch/x86/kernel/jailhouse.c
 +F:    arch/x86/include/asm/jailhouse_para.h
 +
  JC42.4 TEMPERATURE SENSOR DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
@@@ -8146,25 -8142,7 +8139,25 @@@ F:    drivers/*/*/*pasemi
  LINUX KERNEL DUMP TEST MODULE (LKDTM)
  M:    Kees Cook <keescook@chromium.org>
  S:    Maintained
 -F:    drivers/misc/lkdtm*
 +F:    drivers/misc/lkdtm/*
 +
 +LINUX KERNEL MEMORY CONSISTENCY MODEL (LKMM)
 +M:    Alan Stern <stern@rowland.harvard.edu>
 +M:    Andrea Parri <parri.andrea@gmail.com>
 +M:    Will Deacon <will.deacon@arm.com>
 +M:    Peter Zijlstra <peterz@infradead.org>
 +M:    Boqun Feng <boqun.feng@gmail.com>
 +M:    Nicholas Piggin <npiggin@gmail.com>
 +M:    David Howells <dhowells@redhat.com>
 +M:    Jade Alglave <j.alglave@ucl.ac.uk>
 +M:    Luc Maranget <luc.maranget@inria.fr>
 +M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +R:    Akira Yokosawa <akiyks@gmail.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 +F:    tools/memory-model/
 +F:    Documentation/memory-barriers.txt
  
  LINUX SECURITY MODULE (LSM) FRAMEWORK
  M:    Chris Wright <chrisw@sous-sol.org>
@@@ -8327,6 -8305,11 +8320,6 @@@ W:     http://linux-test-project.github.io
  T:    git git://github.com/linux-test-project/ltp.git
  S:    Maintained
  
 -M32R ARCHITECTURE
 -W:    http://www.linux-m32r.org/
 -S:    Orphan
 -F:    arch/m32r/
 -
  M68K ARCHITECTURE
  M:    Geert Uytterhoeven <geert@linux-m68k.org>
  L:    linux-m68k@lists.linux-m68k.org
@@@ -8444,7 -8427,7 +8437,7 @@@ S:      Orpha
  F:    drivers/net/wireless/marvell/libertas/
  
  MARVELL MACCHIATOBIN SUPPORT
 -M:    Russell King <rmk@armlinux.org.uk>
 +M:    Russell King <linux@armlinux.org.uk>
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
  F:    arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
@@@ -8457,7 -8440,7 +8450,7 @@@ F:      drivers/net/ethernet/marvell/mv643xx
  F:    include/linux/mv643xx.h
  
  MARVELL MV88X3310 PHY DRIVER
 -M:    Russell King <rmk@armlinux.org.uk>
 +M:    Russell King <linux@armlinux.org.uk>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/phy/marvell10g.c
@@@ -8599,23 -8582,13 +8592,23 @@@ W:   https://linuxtv.or
  S:    Maintained
  F:    drivers/media/radio/radio-maxiradio*
  
 -MCP4531 MICROCHIP DIGITAL POTENTIOMETER DRIVER
 +MCP4018 AND MCP4531 MICROCHIP DIGITAL POTENTIOMETER DRIVERS
  M:    Peter Rosin <peda@axentia.se>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-iio-potentiometer-mcp4531
 +F:    drivers/iio/potentiometer/mcp4018.c
  F:    drivers/iio/potentiometer/mcp4531.c
  
 +MCR20A IEEE-802.15.4 RADIO DRIVER
 +M:    Xue Liu <liuxuenetmail@gmail.com>
 +L:    linux-wpan@vger.kernel.org
 +W:    https://github.com/xueliu/mcr20a-linux
 +S:    Maintained
 +F:    drivers/net/ieee802154/mcr20a.c
 +F:    drivers/net/ieee802154/mcr20a.h
 +F:    Documentation/devicetree/bindings/net/ieee802154/mcr20a.txt
 +
  MEASUREMENT COMPUTING CIO-DAC IIO DRIVER
  M:    William Breathitt Gray <vilhelm.gray@gmail.com>
  L:    linux-iio@vger.kernel.org
@@@ -8632,14 -8605,6 +8625,14 @@@ T:    git git://linuxtv.org/media_tree.gi
  S:    Supported
  F:    drivers/media/dvb-frontends/ascot2e*
  
 +MEDIA DRIVERS FOR CXD2099AR CI CONTROLLERS
 +M:    Jasmin Jessich <jasmin@anw.at>
 +L:    linux-media@vger.kernel.org
 +W:    https://linuxtv.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/dvb-frontends/cxd2099*
 +
  MEDIA DRIVERS FOR CXD2841ER
  M:    Sergey Kozlov <serjk@netup.ru>
  M:    Abylay Ospan <aospan@netup.ru>
@@@ -8650,15 -8615,6 +8643,15 @@@ T:    git git://linuxtv.org/media_tree.gi
  S:    Supported
  F:    drivers/media/dvb-frontends/cxd2841er*
  
 +MEDIA DRIVERS FOR CXD2880
 +M:    Yasunari Takiguchi <Yasunari.Takiguchi@sony.com>
 +L:    linux-media@vger.kernel.org
 +W:    http://linuxtv.org/
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Supported
 +F:    drivers/media/dvb-frontends/cxd2880/*
 +F:    drivers/media/spi/cxd2880*
 +
  MEDIA DRIVERS FOR DIGITAL DEVICES PCIE DEVICES
  M:    Daniel Scheller <d.scheller.oss@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -8726,16 -8682,6 +8719,16 @@@ T:    git git://linuxtv.org/media_tree.gi
  S:    Supported
  F:    drivers/media/pci/netup_unidvb/*
  
 +MEDIA DRIVERS FOR RENESAS - CEU
 +M:    Jacopo Mondi <jacopo@jmondi.org>
 +L:    linux-media@vger.kernel.org
 +L:    linux-renesas-soc@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Supported
 +F:    Documentation/devicetree/bindings/media/renesas,ceu.txt
 +F:    drivers/media/platform/renesas-ceu.c
 +F:    include/media/drv-intf/renesas-ceu.h
 +
  MEDIA DRIVERS FOR RENESAS - DRIF
  M:    Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
  L:    linux-media@vger.kernel.org
@@@ -8928,13 -8874,6 +8921,13 @@@ W:    http://www.melexis.co
  S:    Supported
  F:    drivers/iio/temperature/mlx90614.c
  
 +MELEXIS MLX90632 DRIVER
 +M:    Crt Mori <cmo@melexis.com>
 +L:    linux-iio@vger.kernel.org
 +W:    http://www.melexis.com
 +S:    Supported
 +F:    drivers/iio/temperature/mlx90632.c
 +
  MELFAS MIP4 TOUCHSCREEN DRIVER
  M:    Sangwon Jee <jeesw@melfas.com>
  W:    http://www.melfas.com
@@@ -9060,7 -8999,6 +9053,7 @@@ M:      Vadim Pasternak <vadimp@mellanox.com
  L:    linux-leds@vger.kernel.org
  S:    Supported
  F:    drivers/leds/leds-mlxcpld.c
 +F:    drivers/leds/leds-mlxreg.c
  F:    Documentation/leds/leds-mlxcpld.txt
  
  MELLANOX PLATFORM DRIVER
@@@ -9139,6 -9077,20 +9132,6 @@@ F:     drivers/media/platform/meson/ao-cec.
  F:    Documentation/devicetree/bindings/media/meson-ao-cec.txt
  T:    git git://linuxtv.org/media_tree.git
  
 -METAG ARCHITECTURE
 -M:    James Hogan <jhogan@kernel.org>
 -L:    linux-metag@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag.git
 -S:    Odd Fixes
 -F:    arch/metag/
 -F:    Documentation/metag/
 -F:    Documentation/devicetree/bindings/metag/
 -F:    Documentation/devicetree/bindings/interrupt-controller/img,*
 -F:    drivers/clocksource/metag_generic.c
 -F:    drivers/irqchip/irq-metag.c
 -F:    drivers/irqchip/irq-metag-ext.c
 -F:    drivers/tty/metag_da.c
 -
  MICROBLAZE ARCHITECTURE
  M:    Michal Simek <monstr@monstr.eu>
  W:    http://www.monstr.eu/fdt/
@@@ -9193,13 -9145,6 +9186,13 @@@ F:    drivers/net/dsa/microchip/
  F:    include/linux/platform_data/microchip-ksz.h
  F:    Documentation/devicetree/bindings/net/dsa/ksz.txt
  
 +MICROCHIP LAN743X ETHERNET DRIVER
 +M:    Bryan Whitehead <bryan.whitehead@microchip.com>
 +M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/ethernet/microchip/lan743x_*
 +
  MICROCHIP USB251XB DRIVER
  M:    Richard Leitner <richard.leitner@skidata.com>
  L:    linux-usb@vger.kernel.org
@@@ -9427,14 -9372,6 +9420,14 @@@ S:    Maintaine
  F:    drivers/media/i2c/mt9t001.c
  F:    include/media/i2c/mt9t001.h
  
 +MT9T112 APTINA CAMERA SENSOR
 +M:    Jacopo Mondi <jacopo@jmondi.org>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Odd Fixes
 +F:    drivers/media/i2c/mt9t112.c
 +F:    include/media/i2c/mt9t112.h
 +
  MT9V032 APTINA CAMERA SENSOR
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
@@@ -10240,13 -10177,6 +10233,13 @@@ T: git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/i2c/ov13858.c
  
 +OMNIVISION OV2685 SENSOR DRIVER
 +M:    Shunqian Zheng <zhengsq@rock-chips.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov2685.c
 +
  OMNIVISION OV5640 SENSOR DRIVER
  M:    Steve Longerbeam <slongerbeam@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -10261,13 -10191,6 +10254,13 @@@ T: git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/i2c/ov5647.c
  
 +OMNIVISION OV5695 SENSOR DRIVER
 +M:    Shunqian Zheng <zhengsq@rock-chips.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov5695.c
 +
  OMNIVISION OV7670 SENSOR DRIVER
  M:    Jonathan Corbet <corbet@lwn.net>
  L:    linux-media@vger.kernel.org
@@@ -10276,14 -10199,6 +10269,14 @@@ S: Maintaine
  F:    drivers/media/i2c/ov7670.c
  F:    Documentation/devicetree/bindings/media/i2c/ov7670.txt
  
 +OMNIVISION OV772x SENSOR DRIVER
 +M:    Jacopo Mondi <jacopo@jmondi.org>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Odd fixes
 +F:    drivers/media/i2c/ov772x.c
 +F:    include/media/i2c/ov772x.h
 +
  OMNIVISION OV7740 SENSOR DRIVER
  M:    Wenyou Yang <wenyou.yang@microchip.com>
  L:    linux-media@vger.kernel.org
@@@ -10292,16 -10207,6 +10285,16 @@@ S: Maintaine
  F:    drivers/media/i2c/ov7740.c
  F:    Documentation/devicetree/bindings/media/i2c/ov7740.txt
  
 +OMNIVISION OV9650 SENSOR DRIVER
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
 +R:    Akinobu Mita <akinobu.mita@gmail.com>
 +R:    Sylwester Nawrocki <s.nawrocki@samsung.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov9650.c
 +F:    Documentation/devicetree/bindings/media/i2c/ov9650.txt
 +
  ONENAND FLASH DRIVER
  M:    Kyungmin Park <kyungmin.park@samsung.com>
  L:    linux-mtd@lists.infradead.org
@@@ -10503,6 -10408,14 +10496,6 @@@ L:  platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/panasonic-laptop.c
  
 -PANASONIC MN10300/AM33/AM34 PORT
 -M:    David Howells <dhowells@redhat.com>
 -L:    linux-am33-list@redhat.com (moderated for non-subscribers)
 -W:    ftp://ftp.redhat.com/pub/redhat/gnupro/AM33/
 -S:    Maintained
 -F:    Documentation/mn10300/
 -F:    arch/mn10300/
 -
  PARALLEL LCD/KEYPAD PANEL DRIVER
  M:    Willy Tarreau <willy@haproxy.com>
  M:    Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
@@@ -11105,7 -11018,7 +11098,7 @@@ F:   include/linux/pktcdvd.
  F:    include/uapi/linux/pktcdvd.h
  
  PKUNITY SOC DRIVERS
 -M:    Guan Xuetao <gxt@mprc.pku.edu.cn>
 +M:    Guan Xuetao <gxt@pku.edu.cn>
  W:    http://mprc.pku.edu.cn/~guanxuetao/linux
  S:    Maintained
  T:    git git://github.com/gxt/linux.git
@@@ -11549,9 -11462,8 +11542,9 @@@ M:   Stuart Yoder <stuyoder@gmail.com
  M:    Laurentiu Tudor <laurentiu.tudor@nxp.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/fsl-mc/
 +F:    drivers/bus/fsl-mc/
  F:    Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
 +F:    Documentation/networking/dpaa2/overview.rst
  
  QT1010 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -12302,7 -12214,7 +12295,7 @@@ F:   Documentation/devicetree/bindings/cl
  SAMSUNG SPI DRIVERS
  M:    Kukjin Kim <kgene@kernel.org>
  M:    Krzysztof Kozlowski <krzk@kernel.org>
 -M:    Andi Shyti <andi.shyti@samsung.com>
 +M:    Andi Shyti <andi@etezian.org>
  L:    linux-spi@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  S:    Maintained
@@@ -12356,6 -12268,13 +12349,6 @@@ F:  include/linux/sched.
  F:    include/uapi/linux/sched.h
  F:    include/linux/wait.h
  
 -SCORE ARCHITECTURE
 -M:    Chen Liqin <liqin.linux@gmail.com>
 -M:    Lennox Wu <lennox.wu@gmail.com>
 -W:    http://www.sunplus.com
 -S:    Supported
 -F:    arch/score/
 -
  SCR24X CHIP CARD INTERFACE DRIVER
  M:    Lubomir Rintel <lkundrak@v3.sk>
  S:    Supported
@@@ -12883,9 -12802,10 +12876,9 @@@ S:  Maintaine
  F:    drivers/net/ethernet/smsc/smsc9420.*
  
  SOC-CAMERA V4L2 SUBSYSTEM
 -M:    Guennadi Liakhovetski <g.liakhovetski@gmx.de>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
 -S:    Maintained
 +S:    Orphan
  F:    include/media/soc*
  F:    drivers/media/i2c/soc_camera/
  F:    drivers/media/platform/soc_camera/
@@@ -12948,19 -12868,6 +12941,19 @@@ S: Maintaine
  F:    drivers/net/ethernet/socionext/netsec.c
  F:    Documentation/devicetree/bindings/net/socionext-netsec.txt
  
 +SOLIDRUN CLEARFOG SUPPORT
 +M:    Russell King <linux@armlinux.org.uk>
 +S:    Maintained
 +F:    arch/arm/boot/dts/armada-388-clearfog*
 +F:    arch/arm/boot/dts/armada-38x-solidrun-*
 +
 +SOLIDRUN CUBOX-I/HUMMINGBOARD SUPPORT
 +M:    Russell King <linux@armlinux.org.uk>
 +S:    Maintained
 +F:    arch/arm/boot/dts/imx6*-cubox-i*
 +F:    arch/arm/boot/dts/imx6*-hummingboard*
 +F:    arch/arm/boot/dts/imx6*-sr-*
 +
  SONIC NETWORK DRIVER
  M:    Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  L:    netdev@vger.kernel.org
@@@ -13614,14 -13521,6 +13607,14 @@@ T: git git://linuxtv.org/mkrufky/tuners
  S:    Maintained
  F:    drivers/media/tuners/tda18271*
  
 +TDA1997x MEDIA DRIVER
 +M:    Tim Harvey <tharvey@gateworks.com>
 +L:    linux-media@vger.kernel.org
 +W:    https://linuxtv.org
 +Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 +S:    Maintained
 +F:    drivers/media/i2c/tda1997x.*
 +
  TDA827x MEDIA DRIVER
  M:    Michael Krufky <mkrufky@linuxtv.org>
  L:    linux-media@vger.kernel.org
@@@ -13703,12 -13602,6 +13696,12 @@@ L: linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/rc/ttusbir.c
  
 +TECHWELL TW9910 VIDEO DECODER
 +L:    linux-media@vger.kernel.org
 +S:    Orphan
 +F:    drivers/media/i2c/tw9910.c
 +F:    include/media/i2c/tw9910.h
 +
  TEE SUBSYSTEM
  M:    Jens Wiklander <jens.wiklander@linaro.org>
  S:    Maintained
@@@ -13744,8 -13637,7 +13737,8 @@@ S:   Supporte
  F:    drivers/i2c/busses/i2c-tegra.c
  
  TEGRA IOMMU DRIVERS
 -M:    Hiroshi Doyu <hdoyu@nvidia.com>
 +M:    Thierry Reding <thierry.reding@gmail.com>
 +L:    linux-tegra@vger.kernel.org
  S:    Supported
  F:    drivers/iommu/tegra*
  
@@@ -14033,6 -13925,19 +14026,6 @@@ S:  Orpha
  F:    drivers/net/wireless/ti/
  F:    include/linux/wl12xx.h
  
 -TILE ARCHITECTURE
 -W:    http://www.mellanox.com/repository/solutions/tile-scm/
 -S:    Orphan
 -F:    arch/tile/
 -F:    drivers/char/tile-srom.c
 -F:    drivers/edac/tile_edac.c
 -F:    drivers/net/ethernet/tile/
 -F:    drivers/rtc/rtc-tile.c
 -F:    drivers/tty/hvc/hvc_tile.c
 -F:    drivers/tty/serial/tilegx.c
 -F:    drivers/usb/host/*-tilegx.c
 -F:    include/linux/usb/tilegx.h
 -
  TIMEKEEPING, CLOCKSOURCE CORE, NTP, ALARMTIMER
  M:    John Stultz <john.stultz@linaro.org>
  M:    Thomas Gleixner <tglx@linutronix.de>
@@@ -14358,7 -14263,7 +14351,7 @@@ F:   include/linux/uwb.
  F:    include/linux/uwb/
  
  UNICORE32 ARCHITECTURE:
 -M:    Guan Xuetao <gxt@mprc.pku.edu.cn>
 +M:    Guan Xuetao <gxt@pku.edu.cn>
  W:    http://mprc.pku.edu.cn/~guanxuetao/linux
  S:    Maintained
  T:    git git://github.com/gxt/linux.git
@@@ -14497,12 -14402,6 +14490,12 @@@ S: Maintaine
  F:    Documentation/hid/hiddev.txt
  F:    drivers/hid/usbhid/
  
 +USB INTEL XHCI ROLE MUX DRIVER
 +M:    Hans de Goede <hdegoede@redhat.com>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    drivers/usb/roles/intel-xhci-usb-role-switch.c
 +
  USB ISP116X DRIVER
  M:    Olav Kongas <ok@artecdesign.ee>
  L:    linux-usb@vger.kernel.org
@@@ -14633,12 -14532,6 +14626,12 @@@ F: drivers/usb
  F:    include/linux/usb.h
  F:    include/linux/usb/
  
 +USB TYPEC PI3USB30532 MUX DRIVER
 +M:    Hans de Goede <hdegoede@redhat.com>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    drivers/usb/typec/mux/pi3usb30532.c
 +
  USB TYPEC SUBSYSTEM
  M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
  L:    linux-usb@vger.kernel.org
@@@ -15023,7 -14916,7 +15016,7 @@@ F:   drivers/input/mouse/vmmouse.
  F:    drivers/input/mouse/vmmouse.h
  
  VMWARE VMXNET3 ETHERNET DRIVER
 -M:    Shrikrishna Khare <skhare@vmware.com>
 +M:    Ronak Doshi <doshir@vmware.com>
  M:    "VMware, Inc." <pv-drivers@vmware.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
@@@ -681,7 -681,7 +681,7 @@@ static void vc4_hdmi_encoder_enable(str
                           drift & ~VC4_HDMI_FIFO_CTL_RECENTER);
                HDMI_WRITE(VC4_HDMI_FIFO_CTL,
                           drift | VC4_HDMI_FIFO_CTL_RECENTER);
 -              udelay(1000);
 +              usleep_range(1000, 1100);
                HDMI_WRITE(VC4_HDMI_FIFO_CTL,
                           drift & ~VC4_HDMI_FIFO_CTL_RECENTER);
                HDMI_WRITE(VC4_HDMI_FIFO_CTL,
@@@ -995,15 -995,17 +995,17 @@@ static const struct snd_soc_dapm_route 
        { "TX", NULL, "Playback" },
  };
  
- static const struct snd_soc_codec_driver vc4_hdmi_audio_codec_drv = {
-       .component_driver = {
-               .controls = vc4_hdmi_audio_controls,
-               .num_controls = ARRAY_SIZE(vc4_hdmi_audio_controls),
-               .dapm_widgets = vc4_hdmi_audio_widgets,
-               .num_dapm_widgets = ARRAY_SIZE(vc4_hdmi_audio_widgets),
-               .dapm_routes = vc4_hdmi_audio_routes,
-               .num_dapm_routes = ARRAY_SIZE(vc4_hdmi_audio_routes),
-       },
+ static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = {
+       .controls               = vc4_hdmi_audio_controls,
+       .num_controls           = ARRAY_SIZE(vc4_hdmi_audio_controls),
+       .dapm_widgets           = vc4_hdmi_audio_widgets,
+       .num_dapm_widgets       = ARRAY_SIZE(vc4_hdmi_audio_widgets),
+       .dapm_routes            = vc4_hdmi_audio_routes,
+       .num_dapm_routes        = ARRAY_SIZE(vc4_hdmi_audio_routes),
+       .idle_bias_on           = 1,
+       .use_pmdown_time        = 1,
+       .endianness             = 1,
+       .non_legacy_dai_naming  = 1,
  };
  
  static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = {
@@@ -1101,11 -1103,11 +1103,11 @@@ static int vc4_hdmi_audio_init(struct v
                return ret;
        }
  
-       /* register codec and codec dai */
-       ret = snd_soc_register_codec(dev, &vc4_hdmi_audio_codec_drv,
+       /* register component and codec dai */
+       ret = devm_snd_soc_register_component(dev, &vc4_hdmi_audio_component_drv,
                                     &vc4_hdmi_audio_codec_dai_drv, 1);
        if (ret) {
-               dev_err(dev, "Could not register codec: %d\n", ret);
+               dev_err(dev, "Could not register component: %d\n", ret);
                return ret;
        }
  
         */
        snd_soc_card_set_drvdata(card, hdmi);
        ret = devm_snd_soc_register_card(dev, card);
-       if (ret) {
+       if (ret)
                dev_err(dev, "Could not register sound card: %d\n", ret);
-               goto unregister_codec;
-       }
-       return 0;
- unregister_codec:
-       snd_soc_unregister_codec(dev);
  
        return ret;
- }
- static void vc4_hdmi_audio_cleanup(struct vc4_hdmi *hdmi)
- {
-       struct device *dev = &hdmi->pdev->dev;
  
-       /*
-        * If drvdata is not set this means the audio card was not
-        * registered, just skip codec unregistration in this case.
-        */
-       if (dev_get_drvdata(dev))
-               snd_soc_unregister_codec(dev);
  }
  
  #ifdef CONFIG_DRM_VC4_HDMI_CEC
@@@ -1480,7 -1464,6 +1464,6 @@@ static void vc4_hdmi_unbind(struct devi
        struct vc4_dev *vc4 = drm->dev_private;
        struct vc4_hdmi *hdmi = vc4->hdmi;
  
-       vc4_hdmi_audio_cleanup(hdmi);
        cec_unregister_adapter(hdmi->cec_adap);
        vc4_hdmi_connector_destroy(hdmi->connector);
        vc4_hdmi_encoder_destroy(hdmi->encoder);
diff --combined include/sound/hdaudio.h
@@@ -146,6 -146,8 +146,8 @@@ int snd_hdac_codec_write(struct hdac_de
                        int flags, unsigned int verb, unsigned int parm);
  bool snd_hdac_check_power_state(struct hdac_device *hdac,
                hda_nid_t nid, unsigned int target_state);
+ unsigned int snd_hdac_sync_power_state(struct hdac_device *hdac,
+                     hda_nid_t nid, unsigned int target_state);
  /**
   * snd_hdac_read_parm - read a codec parameter
   * @codec: the codec object
@@@ -227,6 -229,9 +229,6 @@@ struct hdac_io_ops 
  #define HDA_UNSOL_QUEUE_SIZE  64
  #define HDA_MAX_CODECS                8       /* limit by controller side */
  
 -/* HD Audio class code */
 -#define PCI_CLASS_MULTIMEDIA_HD_AUDIO 0x0403
 -
  /*
   * CORB/RIRB
   *
@@@ -1232,7 -1232,6 +1232,7 @@@ static void azx_vs_set_state(struct pci
        struct snd_card *card = pci_get_drvdata(pci);
        struct azx *chip = card->private_data;
        struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
 +      struct hda_codec *codec;
        bool disabled;
  
        wait_for_completion(&hda->probe_wait);
                dev_info(chip->card->dev, "%s via vga_switcheroo\n",
                         disabled ? "Disabling" : "Enabling");
                if (disabled) {
 -                      pm_runtime_put_sync_suspend(card->dev);
 -                      azx_suspend(card->dev);
 +                      list_for_each_codec(codec, &chip->bus) {
 +                              pm_runtime_suspend(hda_codec_dev(codec));
 +                              pm_runtime_disable(hda_codec_dev(codec));
 +                      }
 +                      pm_runtime_suspend(card->dev);
 +                      pm_runtime_disable(card->dev);
                        /* when we get suspended by vga_switcheroo we end up in D3cold,
                         * however we have no ACPI handle, so pci/acpi can't put us there,
                         * put ourselves there */
                                         "Cannot lock devices!\n");
                } else {
                        snd_hda_unlock_devices(&chip->bus);
 -                      pm_runtime_get_noresume(card->dev);
                        chip->disabled = false;
 -                      azx_resume(card->dev);
 +                      pm_runtime_enable(card->dev);
 +                      list_for_each_codec(codec, &chip->bus) {
 +                              pm_runtime_enable(hda_codec_dev(codec));
 +                              pm_runtime_resume(hda_codec_dev(codec));
 +                      }
                }
        }
  }
@@@ -1308,7 -1300,6 +1308,7 @@@ static void init_vga_switcheroo(struct 
                dev_info(chip->card->dev,
                         "Handle vga_switcheroo audio client\n");
                hda->use_vga_switcheroo = 1;
 +              chip->driver_caps |= AZX_DCAPS_PM_RUNTIME;
                pci_dev_put(p);
        }
  }
@@@ -1334,6 -1325,9 +1334,6 @@@ static int register_vga_switcheroo(stru
                return err;
        hda->vga_switcheroo_registered = 1;
  
 -      /* register as an optimus hdmi audio power domain */
 -      vga_switcheroo_init_domain_pm_optimus_hdmi_audio(chip->card->dev,
 -                                                       &hda->hdmi_pm_domain);
        return 0;
  }
  #else
@@@ -1362,8 -1356,10 +1362,8 @@@ static int azx_free(struct azx *chip
        if (use_vga_switcheroo(hda)) {
                if (chip->disabled && hda->probe_continued)
                        snd_hda_unlock_devices(&chip->bus);
 -              if (hda->vga_switcheroo_registered) {
 +              if (hda->vga_switcheroo_registered)
                        vga_switcheroo_unregister_client(chip->pci);
 -                      vga_switcheroo_fini_domain_pm_ops(chip->card->dev);
 -              }
        }
  
        if (bus->chip_init) {
@@@ -2228,7 -2224,6 +2228,7 @@@ static int azx_probe_continue(struct az
        struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
        struct hdac_bus *bus = azx_bus(chip);
        struct pci_dev *pci = chip->pci;
 +      struct hda_codec *codec;
        int dev = chip->dev_index;
        int val;
        int err;
                }
        }
  #endif /* CONFIG_PM */
 +      /*
 +       * The discrete GPU cannot power down unless the HDA controller runtime
 +       * suspends, so activate runtime PM on codecs even if power_save == 0.
 +       */
 +      if (use_vga_switcheroo(hda))
 +              list_for_each_codec(codec, &chip->bus)
 +                      codec->auto_runtime_pm = 1;
 +
        snd_hda_set_power_save(&chip->bus, val * 1000);
 -      if (azx_has_pm_runtime(chip) || hda->use_vga_switcheroo)
 +      if (azx_has_pm_runtime(chip))
                pm_runtime_put_autosuspend(&pci->dev);
  
  out_free:
@@@ -2447,6 -2434,9 +2447,9 @@@ static const struct pci_device_id azx_i
        /* Cannonlake */
        { PCI_DEVICE(0x8086, 0x9dc8),
          .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
+       /* Icelake */
+       { PCI_DEVICE(0x8086, 0x34c8),
+         .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
        /* Broxton-P(Apollolake) */
        { PCI_DEVICE(0x8086, 0x5a98),
          .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_BROXTON },