]> Git Repo - linux.git/commitdiff
Merge tag 'doc-4.11-images' of git://git.lwn.net/linux into drm-misc-next
authorDaniel Vetter <[email protected]>
Tue, 14 Mar 2017 14:07:33 +0000 (15:07 +0100)
committerDaniel Vetter <[email protected]>
Tue, 14 Mar 2017 14:07:33 +0000 (15:07 +0100)
Pointer for Markus's image conversion work.

We need this so we can merge all the pretty drm graphs for 4.12.

Signed-off-by: Daniel Vetter <[email protected]>
24 files changed:
1  2 
Documentation/devicetree/bindings/vendor-prefixes.txt
MAINTAINERS
drivers/dma-buf/dma-fence.c
drivers/gpu/drm/drm_gem_cma_helper.c
drivers/gpu/drm/drm_mode_object.c
drivers/gpu/drm/drm_probe_helper.c
drivers/gpu/drm/gma500/framebuffer.c
drivers/gpu/drm/gma500/psb_drv.h
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/msm/msm_drv.h
drivers/gpu/drm/omapdrm/omap_drv.h
drivers/gpu/drm/omapdrm/omap_gem.c
drivers/gpu/drm/rockchip/cdn-dp-core.c
drivers/gpu/drm/tinydrm/mipi-dbi.c
drivers/gpu/drm/ttm/ttm_bo.c
drivers/gpu/drm/vc4/vc4_gem.c
drivers/gpu/drm/vgem/vgem_drv.c
drivers/of/platform.c
include/drm/drm_edid.h
include/drm/drm_framebuffer.h
include/drm/drm_mm.h

index e6bccc241bdd19c1f65d3bd437c2a99da9e395cf,ec0bfb9bbebd42c828a3b4978db070924275f609..4686f4bdaca060f9bed13c287ec53c99f70a1e9c
@@@ -40,6 -40,7 +40,7 @@@ atmel Atmel Corporatio
  auo   AU Optronics Corporation
  auvidea Auvidea GmbH
  avago Avago Technologies
+ avia  avia semiconductor
  avic  Shanghai AVIC Optoelectronics Co., Ltd.
  axentia       Axentia Technologies AB
  axis  Axis Communications AB
@@@ -75,6 -76,7 +76,7 @@@ dallas        Maxim Integrated Products (forme
  davicom       DAVICOM Semiconductor, Inc.
  delta Delta Electronics, Inc.
  denx  Denx Software Engineering
+ devantech     Devantech, Ltd.
  digi  Digi International Inc.
  digilent      Diglent, Inc.
  dlg   Dialog Semiconductor
@@@ -102,11 -104,13 +104,13 @@@ everest Everest Semiconductor Co. Ltd
  everspin      Everspin Technologies, Inc.
  excito        Excito
  ezchip        EZchip Semiconductor
+ faraday       Faraday Technology Corporation
  fcs   Fairchild Semiconductor
  firefly       Firefly
  focaltech     FocalTech Systems Co.,Ltd
  friendlyarm   Guangzhou FriendlyARM Computer Tech Co., Ltd
  fsl   Freescale Semiconductor
+ fujitsu       Fujitsu Ltd.
  ge    General Electric Company
  geekbuying    GeekBuying
  gef   GE Fanuc Intelligent Platforms Embedded Systems, Inc.
@@@ -118,6 -122,7 +122,7 @@@ gmt        Global Mixed-mode Technology, Inc
  goodix        Shenzhen Huiding Technology Co., Ltd.
  google        Google, Inc.
  grinn Grinn
+ grmn  Garmin Limited
  gumstix       Gumstix, Inc.
  gw    Gateworks Corporation
  hannstar      HannStar Display Corporation
@@@ -159,18 -164,20 +164,21 @@@ kosagi  Sutajio Ko-Usagi PTE Ltd
  kyo   Kyocera Corporation
  lacie LaCie
  lantiq        Lantiq Semiconductor
+ lego  LEGO Systems A/S
  lenovo        Lenovo Group Ltd.
  lg    LG Corporation
+ licheepi      Lichee Pi
  linux Linux-specific binding
  lltc  Linear Technology Corporation
  lsi   LSI Corp. (LSI Logic)
+ lwn   Liebherr-Werk Nenzing GmbH
  macnica       Macnica Americas
  marvell       Marvell Technology Group Ltd.
  maxim Maxim Integrated Products
  mcube mCube
  meas  Measurement Specialties
  mediatek      MediaTek Inc.
 +megachips     MegaChips
  melexis       Melexis N.V.
  melfas        MELFAS Inc.
  memsic        MEMSIC Inc.
@@@ -230,6 -237,7 +238,7 @@@ pine64     Pine6
  pixcir  PIXCIR MICROELECTRONICS Co., Ltd
  plathome      Plat'Home Co., Ltd.
  plda  PLDA
+ poslab        Poslab Technology Co., Ltd.
  powervr       PowerVR (deprecated, use img)
  pulsedlight   PulsedLight, Inc
  qca   Qualcomm Atheros, Inc.
@@@ -324,6 -332,7 +333,7 @@@ virtio     Virtual I/O Device Specification
  vivante       Vivante Corporation
  voipac        Voipac Technologies s.r.o.
  wd    Western Digital Corp.
+ wetek WeTek Electronics, limited.
  wexler        Wexler
  winbond Winbond Electronics corp.
  wlf   Wolfson Microelectronics
@@@ -332,7 -341,9 +342,9 @@@ x-powers   X-Power
  xes   Extreme Engineering Solutions (X-ES)
  xillybus      Xillybus Ltd.
  xlnx  Xilinx
+ xunlong       Shenzhen Xunlong Software CO.,Limited
  zarlink       Zarlink Semiconductor
+ zeitec        ZEITEC Semiconductor Co., LTD.
  zii   Zodiac Inflight Innovations
  zte   ZTE Corp.
  zyxel ZyXEL Communications Corp.
diff --combined MAINTAINERS
index 9b31822ed374008725920265153e745e9b07b910,c265a5fe48481f548629079cb529137e0a377f31..e88154f2226c16d73256b2403fc254e8a5e01c41
@@@ -265,6 -265,12 +265,12 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/iio/counter/104-quad-8.c
  
+ ACCES PCI-IDIO-16 GPIO DRIVER
+ M:    William Breathitt Gray <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/gpio/gpio-pci-idio-16.c
  ACENIC DRIVER
  M:    Jes Sorensen <[email protected]>
  L:    [email protected]
@@@ -643,7 -649,7 +649,7 @@@ S: Maintaine
  F:    drivers/gpio/gpio-altera.c
  
  ALTERA SYSTEM RESOURCE DRIVER FOR ARRIA10 DEVKIT
- M:    Thor Thayer <t[email protected].com>
+ M:    Thor Thayer <t[email protected].com>
  S:    Maintained
  F:    drivers/gpio/gpio-altera-a10sr.c
  F:    drivers/mfd/altera-a10sr.c
@@@ -877,8 -883,8 +883,8 @@@ S: Odd fixe
  F:    drivers/hwmon/applesmc.c
  
  APPLETALK NETWORK LAYER
- M:    Arnaldo Carvalho de Melo <[email protected]>
- S:    Maintained
+ L:    [email protected]
+ S:    Odd fixes
  F:    drivers/net/appletalk/
  F:    net/appletalk/
  
@@@ -1228,13 -1234,9 +1234,9 @@@ S:     Maintaine
  N:    efm32
  
  ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6)
- M:    Daniel Ribeiro <[email protected]>
- M:    Stefan Schmidt <[email protected]>
- M:    Harald Welte <[email protected]>
- L:    [email protected] (moderated for non-subscribers)
- W:    http://www.openezx.org/
+ M:    Robert Jarzmik <[email protected]>
+ L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
- T:    topgit git://git.openezx.org/openezx.git
  F:    arch/arm/mach-pxa/ezx.c
  
  ARM/FARADAY FA526 PORT
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/mt6*
+ F:    arch/arm/boot/dts/mt7*
  F:    arch/arm/boot/dts/mt8*
  F:    arch/arm/mach-mediatek/
+ F:    arch/arm64/boot/dts/mediatek/
  N:    mtk
  K:    mediatek
  
@@@ -1629,6 -1633,7 +1633,7 @@@ F:      arch/arm64/boot/dts/qcom/
  F:    drivers/i2c/busses/i2c-qup.c
  F:    drivers/clk/qcom/
  F:    drivers/pinctrl/qcom/
+ F:    drivers/dma/qcom/
  F:    drivers/soc/qcom/
  F:    drivers/spi/spi-qup.c
  F:    drivers/tty/serial/msm_serial.h
@@@ -1788,7 -1793,7 +1793,7 @@@ S:      Maintaine
  F:    drivers/clk/socfpga/
  
  ARM/SOCFPGA EDAC SUPPORT
- M:    Thor Thayer <t[email protected].com>
+ M:    Thor Thayer <t[email protected].com>
  S:    Maintained
  F:    drivers/edac/altera_edac.
  
@@@ -1983,12 -1988,18 +1988,18 @@@ F:   arch/arm/mach-pxa/include/mach/z2.
  
  ARM/ZTE ARCHITECTURE
  M:    Jun Nie <[email protected]>
+ M:    Baoyou Xie <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-zx/
  F:    drivers/clk/zte/
+ F:    drivers/reset/reset-zx2967.c
+ F:    drivers/soc/zte/
  F:    Documentation/devicetree/bindings/arm/zte.txt
  F:    Documentation/devicetree/bindings/clock/zx296702-clk.txt
+ F:    Documentation/devicetree/bindings/reset/zte,zx2967-reset.txt
+ F:    Documentation/devicetree/bindings/soc/zte/
+ F:    include/dt-bindings/soc/zx*.h
  
  ARM/ZYNQ ARCHITECTURE
  M:    Michal Simek <[email protected]>
@@@ -2347,6 -2358,14 +2358,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/sound/axentia,*
  F:    sound/soc/atmel/tse850-pcm5142.c
  
+ AXENTIA ARM DEVICES
+ M:    Peter Rosin <[email protected]>
+ L:    [email protected] (moderated for non-subscribers)
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/arm/axentia.txt
+ F:    arch/arm/boot/dts/at91-linea.dtsi
+ F:    arch/arm/boot/dts/at91-tse850-3.dts
  AZ6007 DVB DRIVER
  M:    Mauro Carvalho Chehab <[email protected]>
  M:    Mauro Carvalho Chehab <[email protected]>
@@@ -2380,12 -2399,15 +2399,15 @@@ S:   Maintaine
  F:    drivers/net/wireless/broadcom/b43legacy/
  
  BACKLIGHT CLASS/SUBSYSTEM
- M:    Jingoo Han <[email protected]>
  M:    Lee Jones <[email protected]>
+ M:    Daniel Thompson <[email protected]>
+ M:    Jingoo Han <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight.git
  S:    Maintained
  F:    drivers/video/backlight/
  F:    include/linux/backlight.h
+ F:    include/linux/pwm_backlight.h
+ F:    Documentation/devicetree/bindings/leds/backlight
  
  BATMAN ADVANCED
  M:    Marek Lindner <[email protected]>
@@@ -2423,6 -2445,14 +2445,14 @@@ W:    https://linuxtv.or
  S:    Supported
  F:    drivers/media/platform/sti/bdisp
  
+ DELTA ST MEDIA DRIVER
+ M:    Hugues Fruchet <[email protected]>
+ L:    [email protected]
+ T:    git git://linuxtv.org/media_tree.git
+ W:    https://linuxtv.org
+ S:    Supported
+ F:    drivers/media/platform/sti/delta
  BEFS FILE SYSTEM
  M:    Luis de Bethencourt <[email protected]>
  M:    Salah Triki <[email protected]>
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bnx2x/
  
+ BROADCOM BNXT_EN 50 GIGABIT ETHERNET DRIVER
+ M:    Michael Chan <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ F:    drivers/net/ethernet/broadcom/bnxt/
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Florian Fainelli <[email protected]>
  M:    Ray Jui <[email protected]>
@@@ -2618,7 -2654,7 +2654,7 @@@ M:      Lee Jones <[email protected]
  M:    Eric Anholt <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi.git
+ T:    git git://github.com/anholt/linux
  S:    Maintained
  N:    bcm2835
  F:    drivers/staging/vc04_services
@@@ -2692,6 -2728,13 +2728,13 @@@ F:    drivers/irqchip/irq-brcmstb
  F:    include/linux/bcm963xx_nvram.h
  F:    include/linux/bcm963xx_tag.h
  
+ BROADCOM BMIPS CPUFREQ DRIVER
+ M:    Markus Mayer <[email protected]>
+ M:    [email protected]
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/cpufreq/bmips-cpufreq.c
  BROADCOM TG3 GIGABIT ETHERNET DRIVER
  M:    Siva Reddy Kallam <[email protected]>
  M:    Prashant Sreedharan <[email protected]>
  S:    Maintained
  F:    arch/arm64/boot/dts/broadcom/vulcan*
  
+ BROADCOM NETXTREME-E ROCE DRIVER
+ M:    Selvin Xavier <[email protected]>
+ M:    Devesh Sharma <[email protected]>
+ M:    Somnath Kotur <[email protected]>
+ M:    Sriharsha Basavapatna <[email protected]>
+ L:    [email protected]
+ W:    http://www.broadcom.com
+ S:    Supported
+ F:    drivers/infiniband/hw/bnxt_re/
+ F:    include/uapi/rdma/bnxt_re-abi.h
  BROCADE BFA FC SCSI DRIVER
  M:    Anil Gurumurthy <[email protected]>
  M:    Sudarsana Kalluru <[email protected]>
@@@ -2972,6 -3026,13 +3026,13 @@@ S:    Maintaine
  F:    drivers/iio/light/cm*
  F:    Documentation/devicetree/bindings/i2c/trivial-admin-guide/devices.rst
  
+ CAVIUM THUNDERX2 ARM64 SOC
+ M:    Jayachandran C <[email protected]>
+ L:    [email protected] (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm64/boot/dts/cavium/thunder-99xx*
+ F:    Documentation/devicetree/bindings/arm/cavium-thunder2.txt
  CAVIUM I2C DRIVER
  M:    Jan Glauber <[email protected]>
  M:    David Daney <[email protected]>
@@@ -2990,6 -3051,13 +3051,13 @@@ W:     http://www.cavium.co
  S:     Supported
  F:     drivers/net/ethernet/cavium/liquidio/
  
+ CAVIUM OCTEON-TX CRYPTO DRIVER
+ M:    George Cherian <[email protected]>
+ L:    [email protected]
+ W:    http://www.cavium.com
+ S:    Supported
+ F:    drivers/crypto/cavium/cpt/
  CC2520 IEEE-802.15.4 RADIO DRIVER
  M:    Varka Bhadram <[email protected]>
  L:    [email protected]
@@@ -3384,6 -3452,7 +3452,7 @@@ B:      https://bugzilla.kernel.or
  F:    Documentation/cpu-freq/
  F:    drivers/cpufreq/
  F:    include/linux/cpufreq.h
+ F:    tools/testing/selftests/cpufreq/
  
  CPU FREQUENCY DRIVERS - ARM BIG LITTLE
  M:    Viresh Kumar <[email protected]>
@@@ -3905,10 -3974,13 +3974,13 @@@ S:   Maintaine
  F:    drivers/i2c/busses/i2c-diolan-u2c.c
  
  DIRECT ACCESS (DAX)
- M:    Matthew Wilcox <[email protected]>
+ M:    Matthew Wilcox <[email protected]>
+ M:    Ross Zwisler <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    fs/dax.c
+ F:    include/linux/dax.h
+ F:    include/trace/events/fs_dax.h
  
  DIRECTORY NOTIFICATION (DNOTIFY)
  M:    Eric Paris <[email protected]>
@@@ -4102,7 -4174,7 +4174,7 @@@ F:      drivers/gpu/drm/bridge
  DRM DRIVER FOR BOCHS VIRTUAL GPU
  M:    Gerd Hoffmann <[email protected]>
  L:    [email protected]
 -T:    git git://git.kraxel.org/linux drm-qemu
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/gpu/drm/bochs/
  
@@@ -4110,7 -4182,7 +4182,7 @@@ DRM DRIVER FOR QEMU'S CIRRUS DEVIC
  M:    Dave Airlie <[email protected]>
  M:    Gerd Hoffmann <[email protected]>
  L:    [email protected]
 -T:    git git://git.kraxel.org/linux drm-qemu
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Obsolete
  W:    https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
  F:    drivers/gpu/drm/cirrus/
@@@ -4167,7 -4239,6 +4239,7 @@@ L:      [email protected]
  S:    Supported
  F:    drivers/gpu/drm/atmel-hlcdc/
  F:    Documentation/devicetree/bindings/drm/atmel/
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DRM DRIVERS FOR ALLWINNER A10
  M:    Maxime Ripard  <[email protected]>
@@@ -4184,8 -4255,6 +4256,8 @@@ W:      http://linux-meson.com
  S:    Supported
  F:    drivers/gpu/drm/meson/
  F:    Documentation/devicetree/bindings/display/amlogic,meson-vpu.txt
 +T:    git git://anongit.freedesktop.org/drm/drm-meson
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <[email protected]>
@@@ -4316,7 -4385,7 +4388,7 @@@ DRM DRIVER FOR QXL VIRTUAL GP
  M:    Dave Airlie <[email protected]>
  M:    Gerd Hoffmann <[email protected]>
  L:    [email protected]
 -T:    git git://git.kraxel.org/linux drm-qemu
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/gpu/drm/qxl/
  F:    include/uapi/drm/qxl_drm.h
@@@ -4327,7 -4396,6 +4399,7 @@@ L:      [email protected]
  S:    Maintained
  F:    drivers/gpu/drm/rockchip/
  F:    Documentation/devicetree/bindings/display/rockchip/
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DRM DRIVER FOR SAVAGE VIDEO CARDS
  S:    Orphan / Obsolete
@@@ -4386,7 -4454,6 +4458,7 @@@ S:      Supporte
  F:    drivers/gpu/drm/vc4/
  F:    include/uapi/drm/vc4_drm.h
  F:    Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DRM DRIVERS FOR TI OMAP
  M:    Tomi Valkeinen <[email protected]>
@@@ -4409,7 -4476,6 +4481,7 @@@ L:      [email protected]
  S:    Maintained
  F:    drivers/gpu/drm/zte/
  F:    Documentation/devicetree/bindings/display/zte,vou.txt
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DSBR100 USB FM RADIO DRIVER
  M:    Alexey Klimov <[email protected]>
@@@ -4968,7 -5034,6 +5040,6 @@@ F:      lib/fault-inject.
  
  FBTFT Framebuffer drivers
  M:    Thomas Petazzoni <[email protected]>
- M:    Noralf Trønnes <[email protected]>
  S:    Maintained
  F:    drivers/staging/fbtft/
  
@@@ -5287,7 -5352,7 +5358,7 @@@ M:      Jaegeuk Kim <[email protected]
  L:    [email protected]
  S:    Supported
  F:    fs/crypto/
- F:    include/linux/fscrypto.h
+ F:    include/linux/fscrypt*.h
  
  F2FS FILE SYSTEM
  M:    Jaegeuk Kim <[email protected]>
@@@ -5645,6 -5710,14 +5716,14 @@@ T:    git git://linuxtv.org/media_tree.gi
  S:    Odd Fixes
  F:    drivers/media/usb/gspca/
  
+ GTP (GPRS Tunneling Protocol)
+ M:    Pablo Neira Ayuso <[email protected]>
+ M:    Harald Welte <[email protected]>
+ L:    [email protected]
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/gtp.git
+ S:    Maintained
+ F:    drivers/net/gtp.c
  GUID PARTITION TABLE (GPT)
  M:    Davidlohr Bueso <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    sound/parisc/harmony.*
  
- HD29L2 MEDIA DRIVER
- M:    Antti Palosaari <[email protected]>
- L:    [email protected]
- W:    https://linuxtv.org
- W:    http://palosaari.fi/linux/
- Q:    http://patchwork.linuxtv.org/project/linux-media/list/
- T:    git git://linuxtv.org/anttip/media_tree.git
- S:    Maintained
- F:    drivers/media/dvb-frontends/hd29l2*
  HEWLETT PACKARD ENTERPRISE ILO NMI WATCHDOG DRIVER
  M:    Jimmy Vance <[email protected]>
  S:    Supported
@@@ -5948,9 -6011,8 +6017,8 @@@ F:      include/linux/hsi
  F:    include/uapi/linux/hsi/
  
  HSO 3G MODEM DRIVER
- M:    Jan Dumon <[email protected]>
- W:    http://www.pharscape.org
- S:    Maintained
+ L:    [email protected]
+ S:    Orphan
  F:    drivers/net/usb/hso.c
  
  HSR NETWORK PROTOCOL
@@@ -5987,6 -6049,7 +6055,7 @@@ S:      Maintaine
  F:    arch/x86/include/asm/mshyperv.h
  F:    arch/x86/include/uapi/asm/hyperv.h
  F:    arch/x86/kernel/cpu/mshyperv.c
+ F:    arch/x86/hyperv
  F:    drivers/hid/hid-hyperv.c
  F:    drivers/hv/
  F:    drivers/input/serio/hyperv-keyboard.c
@@@ -6206,6 -6269,11 +6275,11 @@@ S:    Maintaine
  F:    drivers/mfd/lpc_ich.c
  F:    drivers/gpio/gpio-ich.c
  
+ IDT VersaClock 5 CLOCK DRIVER
+ M:    Marek Vasut <[email protected]>
+ S:    Maintained
+ F:    drivers/clk/clk-versaclock5.c
  IDE SUBSYSTEM
  M:    "David S. Miller" <[email protected]>
  L:    [email protected]
@@@ -6257,6 -6325,13 +6331,13 @@@ F:    include/net/cfg802154.
  F:    include/net/ieee802154_netdev.h
  F:    Documentation/networking/ieee802154.txt
  
+ IFE PROTOCOL
+ M:    Yotam Gigi <[email protected]>
+ M:    Jamal Hadi Salim <[email protected]>
+ F:    net/ife
+ F:    include/net/ife.h
+ F:    include/uapi/linux/ife.h
  IGORPLUG-USB IR RECEIVER
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -6740,9 -6815,8 +6821,8 @@@ S:      Odd Fixe
  F:    drivers/tty/ipwireless/
  
  IPX NETWORK LAYER
- M:    Arnaldo Carvalho de Melo <[email protected]>
  L:    [email protected]
- S:    Maintained
+ S:    Odd fixes
  F:    include/net/ipx.h
  F:    include/uapi/linux/ipx.h
  F:    net/ipx/
@@@ -7210,6 -7284,7 +7290,7 @@@ M:      Masami Hiramatsu <[email protected]
  S:    Maintained
  F:    Documentation/kprobes.txt
  F:    include/linux/kprobes.h
+ F:    include/asm-generic/kprobes.h
  F:    kernel/kprobes.c
  
  KS0108 LCD CONTROLLER DRIVER
  Q:    http://patchwork.ozlabs.org/project/linuxppc-dev/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git
  S:    Supported
+ F:    Documentation/ABI/stable/sysfs-firmware-opal-*
+ F:    Documentation/devicetree/bindings/powerpc/opal/
+ F:    Documentation/devicetree/bindings/rtc/rtc-opal.txt
+ F:    Documentation/devicetree/bindings/i2c/i2c-opal.txt
  F:    Documentation/powerpc/
  F:    arch/powerpc/
  F:    drivers/char/tpm/tpm_ibmvtpm*
  F:    drivers/crypto/nx/
  F:    drivers/crypto/vmx/
+ F:    drivers/i2c/busses/i2c-opal.c
  F:    drivers/net/ethernet/ibm/ibmveth.*
  F:    drivers/net/ethernet/ibm/ibmvnic.*
  F:    drivers/pci/hotplug/pnv_php.c
  F:    drivers/pci/hotplug/rpa*
+ F:    drivers/rtc/rtc-opal.c
  F:    drivers/scsi/ibmvscsi/
+ F:    drivers/tty/hvc/hvc_opal.c
  F:    tools/testing/selftests/powerpc
- N:    opal
  N:    /pmac
  N:    powermac
  N:    powernv
@@@ -7514,8 -7595,8 +7601,8 @@@ S:      Maintaine
  F:    drivers/misc/lkdtm*
  
  LLC (802.2)
- M:    Arnaldo Carvalho de Melo <[email protected]>
- S:    Maintained
+ L:    [email protected]
+ S:    Odd fixes
  F:    include/linux/llc.h
  F:    include/uapi/linux/llc.h
  F:    include/net/llc*
@@@ -7548,6 -7629,7 +7635,7 @@@ S:      Maintaine
  F:    Documentation/hwmon/lm90
  F:    Documentation/devicetree/bindings/hwmon/lm90.txt
  F:    drivers/hwmon/lm90.c
+ F:    include/dt-bindings/thermal/lm90.h
  
  LM95234 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
@@@ -7713,6 -7795,12 +7801,12 @@@ W:    http://www.kernel.org/doc/man-page
  L:    [email protected]
  S:    Maintained
  
+ MARDUK (CREATOR CI40) DEVICE TREE SUPPORT
+ M:    Rahul Bedarkar <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    arch/mips/boot/dts/img/pistachio_marduk.dts
  MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER
  M:    Andrew Lunn <[email protected]>
  M:    Vivien Didelot <[email protected]>
  S:    Maintained
  F:    drivers/net/wireless/mediatek/mt7601u/
  
 +MEGACHIPS STDPXXXX-GE-B850V3-FW LVDS/DP++ BRIDGES
 +M:    Peter Senna Tschudin <[email protected]>
 +M:    Martin Donnelly <[email protected]>
 +M:    Martyn Welch <[email protected]>
 +S:    Maintained
 +F:    drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
 +F:    Documentation/devicetree/bindings/video/bridge/megachips-stdpxxxx-ge-b850v3-fw.txt
 +
  MEGARAID SCSI/SAS DRIVERS
  M:    Kashyap Desai <[email protected]>
  M:    Sumit Saxena <[email protected]>
@@@ -8222,6 -8302,14 +8316,14 @@@ F:    drivers/media/platform/atmel/atmel-i
  F:    drivers/media/platform/atmel/atmel-isc-regs.h
  F:    devicetree/bindings/media/atmel-isc.txt
  
+ MICROCHIP USB251XB DRIVER
+ M:    Richard Leitner <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/usb/misc/usb251xb.c
+ F:    include/linux/platform_data/usb251xb.h
+ F:    Documentation/devicetree/bindings/usb/usb251xb.txt
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <[email protected]>
  L:    [email protected]
@@@ -8344,6 -8432,7 +8446,7 @@@ F:      drivers/media/dvb-frontends/mn88473
  MODULE SUPPORT
  M:    Jessica Yu <[email protected]>
  M:    Rusty Russell <[email protected]>
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux.git modules-next
  S:    Maintained
  F:    include/linux/module.h
  F:    kernel/module.c
@@@ -8452,6 -8541,7 +8555,7 @@@ S:      Supporte
  F:    Documentation/devicetree/bindings/mfd/
  F:    drivers/mfd/
  F:    include/linux/mfd/
+ F:    include/dt-bindings/mfd/
  
  MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
  M:    Ulf Hansson <[email protected]>
@@@ -8587,9 -8677,8 +8691,8 @@@ F:      Documentation/networking/s2io.tx
  F:    Documentation/networking/vxge.txt
  F:    drivers/net/ethernet/neterion/
  
- NETFILTER ({IP,IP6,ARP,EB,NF}TABLES)
+ NETFILTER
  M:    Pablo Neira Ayuso <[email protected]>
- M:    Patrick McHardy <[email protected]>
  M:    Jozsef Kadlecsik <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -8634,10 -8723,10 +8737,10 @@@ S:   Maintaine
  F:    drivers/net/ethernet/netronome/
  
  NETWORK BLOCK DEVICE (NBD)
- M:    Markus Pargmann <[email protected]>
+ M:    Josef Bacik <[email protected]>
  S:    Maintained
+ L:    [email protected]
  L:    [email protected]
- T:    git git://git.pengutronix.de/git/mpa/linux-nbd.git
  F:    Documentation/blockdev/nbd.txt
  F:    drivers/block/nbd.c
  F:    include/uapi/linux/nbd.h
@@@ -8833,6 -8922,22 +8936,22 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    arch/nios2/
  
+ NOKIA N900 CAMERA SUPPORT (ET8EK8 SENSOR, AD5820 FOCUS)
+ M:    Pavel Machek <[email protected]>
+ M:    Sakari Ailus <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/media/i2c/et8ek8
+ F:    drivers/media/i2c/ad5820.c
+ NOKIA N900 CAMERA SUPPORT (ET8EK8 SENSOR, AD5820 FOCUS)
+ M:    Pavel Machek <[email protected]>
+ M:    Sakari Ailus <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/media/i2c/et8ek8
+ F:    drivers/media/i2c/ad5820.c
  NOKIA N900 POWER SUPPLY DRIVERS
  R:    Pali Rohár <[email protected]>
  F:    include/linux/power/bq2415x_charger.h
@@@ -8956,7 -9061,20 +9075,20 @@@ M:    Josh Poimboeuf <[email protected]
  S:    Supported
  F:    tools/objtool/
  
- OMAP SUPPORT
+ OMAP1 SUPPORT
+ M:    Aaro Koskinen <[email protected]>
+ M:    Tony Lindgren <[email protected]>
+ L:    [email protected]
+ Q:    http://patchwork.kernel.org/project/linux-omap/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
+ S:    Maintained
+ F:    arch/arm/mach-omap1/
+ F:    arch/arm/plat-omap/
+ F:    arch/arm/configs/omap1_defconfig
+ F:    drivers/i2c/busses/i2c-omap.c
+ F:    include/linux/i2c-omap.h
+ OMAP2+ SUPPORT
  M:    Tony Lindgren <[email protected]>
  L:    [email protected]
  W:    http://www.muru.com/linux/omap/
@@@ -8964,8 -9082,8 +9096,8 @@@ W:      http://linux.omap.com
  Q:    http://patchwork.kernel.org/project/linux-omap/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
  S:    Maintained
- F:    arch/arm/*omap*/
- F:    arch/arm/configs/omap1_defconfig
+ F:    arch/arm/mach-omap2/
+ F:    arch/arm/plat-omap/
  F:    arch/arm/configs/omap2plus_defconfig
  F:    drivers/i2c/busses/i2c-omap.c
  F:    drivers/irqchip/irq-omap-intc.c
@@@ -9208,6 -9326,7 +9340,7 @@@ OPENRISC ARCHITECTUR
  M:    Jonas Bonn <[email protected]>
  M:    Stefan Kristiansson <[email protected]>
  M:    Stafford Horne <[email protected]>
+ T:    git git://github.com/openrisc/linux.git
  L:    [email protected]
  W:    http://openrisc.io
  S:    Maintained
@@@ -9390,6 -9509,14 +9523,14 @@@ F:    drivers/video/fbdev/sti
  F:    drivers/video/console/sti*
  F:    drivers/video/logo/logo_parisc*
  
+ PARMAN
+ M:    Jiri Pirko <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ F:    lib/parman.c
+ F:    lib/test_parman.c
+ F:    include/linux/parman.h
  PC87360 HARDWARE MONITORING DRIVER
  M:    Jim Cromie <[email protected]>
  L:    [email protected]
@@@ -9476,7 -9603,7 +9617,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/pci-armada8k.txt
- F:    drivers/pci/host/pcie-armada8k.c
+ F:    drivers/pci/dwc/pcie-armada8k.c
  
  PCI DRIVER FOR APPLIEDMICRO XGENE
  M:    Tanmay Inamdar <[email protected]>
@@@ -9494,7 -9621,7 +9635,7 @@@ L:      [email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
- F:    drivers/pci/host/*layerscape*
+ F:    drivers/pci/dwc/*layerscape*
  
  PCI DRIVER FOR IMX6
  M:    Richard Zhu <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
- F:    drivers/pci/host/*imx6*
+ F:    drivers/pci/dwc/*imx6*
  
  PCI DRIVER FOR TI KEYSTONE
  M:    Murali Karicheri <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
- F:    drivers/pci/host/*keystone*
+ F:    drivers/pci/dwc/*keystone*
  
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <[email protected]>
@@@ -9542,7 -9669,7 +9683,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/ti-pci.txt
- F:    drivers/pci/host/pci-dra7xx.c
+ F:    drivers/pci/dwc/pci-dra7xx.c
  
  PCI DRIVER FOR RENESAS R-CAR
  M:    Simon Horman <[email protected]>
@@@ -9557,7 -9684,7 +9698,7 @@@ L:      [email protected]
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
- F:    drivers/pci/host/pci-exynos.c
+ F:    drivers/pci/dwc/pci-exynos.c
  
  PCI DRIVER FOR SYNOPSIS DESIGNWARE
  M:    Jingoo Han <[email protected]>
@@@ -9565,7 -9692,7 +9706,7 @@@ M:      Joao Pinto <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/designware-pcie.txt
- F:    drivers/pci/host/*designware*
+ F:    drivers/pci/dwc/*designware*
  
  PCI DRIVER FOR GENERIC OF HOSTS
  M:    Will Deacon <[email protected]>
@@@ -9586,7 -9713,7 +9727,7 @@@ PCIE DRIVER FOR ST SPEAR13X
  M:    Pratyush Anand <[email protected]>
  L:    [email protected]
  S:    Maintained
- F:    drivers/pci/host/*spear*
+ F:    drivers/pci/dwc/*spear*
  
  PCI MSI DRIVER FOR ALTERA MSI IP
  M:    Ley Foon Tan <[email protected]>
@@@ -9611,7 -9738,7 +9752,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/axis,artpec*
- F:    drivers/pci/host/*artpec*
+ F:    drivers/pci/dwc/*artpec*
  
  PCIE DRIVER FOR HISILICON
  M:    Zhou Wang <[email protected]>
@@@ -9619,7 -9746,7 +9760,7 @@@ M:      Gabriele Paoloni <gabriele.paoloni@h
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/hisilicon-pcie.txt
- F:    drivers/pci/host/pcie-hisi.c
+ F:    drivers/pci/dwc/pcie-hisi.c
  
  PCIE DRIVER FOR ROCKCHIP
  M:    Shawn Lin <[email protected]>
@@@ -9635,7 -9762,7 +9776,7 @@@ M:     Stanimir Varbanov <svarbanov@mm-
  L:     [email protected]
  L:     [email protected]
  S:     Maintained
- F:     drivers/pci/host/*qcom*
+ F:     drivers/pci/dwc/*qcom*
  
  PCIE DRIVER FOR CAVIUM THUNDERX
  M:    David Daney <[email protected]>
@@@ -9809,7 -9936,7 +9950,7 @@@ L:      [email protected]
  S:      Maintained
  F:      arch/mips/pistachio/
  F:      arch/mips/include/asm/mach-pistachio/
- F:      arch/mips/boot/dts/pistachio/
+ F:      arch/mips/boot/dts/img/pistachio*
  F:      arch/mips/configs/pistachio*_defconfig
  
  PKTCDVD DRIVER
@@@ -9953,6 -10080,14 +10094,14 @@@ S:  Supporte
  F:    Documentation/preempt-locking.txt
  F:    include/linux/preempt.h
  
+ PRINTK
+ M:    Petr Mladek <[email protected]>
+ M:    Sergey Senozhatsky <[email protected]>
+ R:    Steven Rostedt <[email protected]>
+ S:    Maintained
+ F:    kernel/printk/
+ F:    include/linux/printk.h
  PRISM54 WIRELESS DRIVER
  M:    "Luis R. Rodriguez" <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/block/ps3vram.c
  
+ PSAMPLE PACKET SAMPLING SUPPORT:
+ M:    Yotam Gigi <[email protected]>
+ S:    Maintained
+ F:    net/psample
+ F:    include/net/psample.h
+ F:    include/uapi/linux/psample.h
  PSTORE FILESYSTEM
+ M:    Kees Cook <[email protected]>
  M:    Anton Vorontsov <[email protected]>
  M:    Colin Cross <[email protected]>
- M:    Kees Cook <[email protected]>
  M:    Tony Luck <[email protected]>
  S:    Maintained
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore
  F:    fs/pstore/
  F:    include/linux/pstore*
  F:    drivers/firmware/efi/efi-pstore.c
  F:    drivers/acpi/apei/erst.c
+ F:    Documentation/admin-guide/ramoops.rst
+ F:    Documentation/devicetree/bindings/reserved-memory/ramoops.txt
+ K:    \b(pstore|ramoops)
  
  PTP HARDWARE CLOCK SUPPORT
  M:    Richard Cochran <[email protected]>
  S:    Supported
  F:    drivers/scsi/qedi/
  
+ QLOGIC QL41xxx FCOE DRIVER
+ M:    [email protected]
+ L:    [email protected]
+ S:    Supported
+ F:    drivers/scsi/qedf/
  QNX4 FILESYSTEM
  M:    Anders Larsen <[email protected]>
  W:    http://www.alarsen.net/linux/qnx4fs/
@@@ -10198,7 -10349,8 +10363,8 @@@ F:   include/uapi/linux/qnx4_fs.
  F:    include/uapi/linux/qnxtypes.h
  
  QORIQ DPAA2 FSL-MC BUS DRIVER
- M:    Stuart Yoder <[email protected]>
+ M:    Stuart Yoder <[email protected]>
+ M:    Laurentiu Tudor <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/staging/fsl-mc/
@@@ -10461,6 -10613,7 +10627,7 @@@ S:   Maintaine
  F:    drivers/rpmsg/
  F:    Documentation/rpmsg.txt
  F:    include/linux/rpmsg.h
+ F:    include/linux/rpmsg/
  
  RENESAS CLOCK DRIVERS
  M:    Geert Uytterhoeven <[email protected]>
  F:    drivers/net/ethernet/renesas/
  F:    include/linux/sh_eth.h
  
+ RENESAS R-CAR GYROADC DRIVER
+ M:    Marek Vasut <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ F:    drivers/iio/adc/rcar_gyro_adc.c
  RENESAS USB2 PHY DRIVER
  M:    Yoshihiro Shimoda <[email protected]>
  L:    [email protected]
@@@ -10614,7 -10773,7 +10787,7 @@@ F:   drivers/net/wireless/realtek/rtlwifi
  F:    drivers/net/wireless/realtek/rtlwifi/rtl8192ce/
  
  RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
- M:    Jes Sorensen <Jes.Sorensen@redhat.com>
+ M:    Jes Sorensen <Jes.Sorensen@gmail.com>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8xxxu-devel
  S:    Maintained
@@@ -10867,6 -11026,14 +11040,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/serial/
  F:    drivers/tty/serial/
  
+ SERIAL DEVICE BUS
+ M:    Rob Herring <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/serial/slave-device.txt
+ F:    drivers/tty/serdev/
+ F:    include/linux/serdev.h
  SERIAL IR RECEIVER
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -10880,6 -11047,13 +11061,13 @@@ S: Maintaine
  F:    drivers/staging/media/st-cec/
  F:    Documentation/devicetree/bindings/media/stih-cec.txt
  
+ SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
+ M:    Ursula Braun <[email protected]>
+ L:    [email protected]
+ W:    http://www.ibm.com/developerworks/linux/linux390/
+ S:    Supported
+ F:    net/smc/
  SYNOPSYS DESIGNWARE DMAC DRIVER
  M:    Viresh Kumar <[email protected]>
  M:    Andy Shevchenko <[email protected]>
@@@ -10888,13 -11062,6 +11076,6 @@@ F:  include/linux/dma/dw.
  F:    include/linux/platform_data/dma-dw.h
  F:    drivers/dma/dw/
  
- SYNOPSYS DESIGNWARE ETHERNET QOS 4.10a driver
- M: Lars Persson <[email protected]>
- S: Supported
- F: Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
- F: drivers/net/ethernet/synopsys/dwc_eth_qos.c
  SYNOPSYS DESIGNWARE I2C DRIVER
  M:    Jarkko Nikula <[email protected]>
  R:    Andy Shevchenko <[email protected]>
@@@ -10908,7 -11075,6 +11089,6 @@@ SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVE
  M:    Jaehoon Chung <[email protected]>
  L:    [email protected]
  S:    Maintained
- F:    include/linux/mmc/dw_mmc.h
  F:    drivers/mmc/host/dw_mmc*
  
  SYSTEM TRACE MODULE CLASS
  S:    Maintained
  F:    drivers/mmc/host/sdhci-spear.c
  
+ SECURE ENCRYPTING DEVICE (SED) OPAL DRIVER
+ M:    Scott Bauer <[email protected]>
+ M:    Jonathan Derrick <[email protected]>
+ M:    Rafael Antognolli <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ F:    block/sed*
+ F:    block/opal_proto.h
+ F:    include/linux/sed*
+ F:    include/uapi/linux/sed*
  SECURITY SUBSYSTEM
  M:    James Morris <[email protected]>
  M:    "Serge E. Hallyn" <[email protected]>
@@@ -11291,6 -11468,14 +11482,14 @@@ F: drivers/media/usb/siano
  F:    drivers/media/usb/siano/
  F:    drivers/media/mmc/siano/
  
+ SILEAD TOUCHSCREEN DRIVER
+ M:    Hans de Goede <[email protected]>
+ L:    [email protected]
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/input/touchscreen/silead.c
+ F:    drivers/platform/x86/silead_dmi.c
  SIMPLEFB FB DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
@@@ -11337,6 -11522,13 +11536,13 @@@ F: arch/arm/mach-s3c24xx/mach-bast.
  F:    arch/arm/mach-s3c24xx/bast-ide.c
  F:    arch/arm/mach-s3c24xx/bast-irq.c
  
+ SIPHASH PRF ROUTINES
+ M:    Jason A. Donenfeld <[email protected]>
+ S:    Maintained
+ F:    lib/siphash.c
+ F:    lib/test_siphash.c
+ F:    include/linux/siphash.h
  TI DAVINCI MACHINE SUPPORT
  M:    Sekhar Nori <[email protected]>
  M:    Kevin Hilman <[email protected]>
@@@ -11908,6 -12100,7 +12114,7 @@@ F:   include/linux/swiotlb.
  
  SWITCHDEV
  M:    Jiri Pirko <[email protected]>
+ M:    Ivan Vecera <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    net/switchdev/
@@@ -13001,7 -13194,7 +13208,7 @@@ USERSPACE I/O (UIO
  M:    Greg Kroah-Hartman <[email protected]>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
- F:    Documentation/DocBook/uio-howto.tmpl
+ F:    Documentation/driver-api/uio-howto.rst
  F:    drivers/uio/
  F:    include/linux/uio*.h
  
@@@ -13121,7 -13314,7 +13328,7 @@@ M:   David Airlie <[email protected]
  M:    Gerd Hoffmann <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -T:    git git://git.kraxel.org/linux drm-qemu
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/gpu/drm/virtio/
  F:    include/uapi/linux/virtio_gpu.h
@@@ -13394,10 -13587,8 +13601,8 @@@ S:  Maintaine
  F:    drivers/input/misc/wistron_btns.c
  
  WL3501 WIRELESS PCMCIA CARD DRIVER
- M:    Arnaldo Carvalho de Melo <[email protected]>
  L:    [email protected]
- W:    http://oops.ghostprotocols.net:81/blog
- S:    Maintained
+ S:    Odd fixes
  F:    drivers/net/wireless/wl3501*
  
  WOLFSON MICROELECTRONICS DRIVERS
  S:    Maintained
  F:    drivers/net/wireless/zydas/zd1211rw/
  
+ ZD1301_DEMOD MEDIA DRIVER
+ M:    Antti Palosaari <[email protected]>
+ L:    [email protected]
+ W:    https://linuxtv.org/
+ W:    http://palosaari.fi/linux/
+ Q:    https://patchwork.linuxtv.org/project/linux-media/list/
+ S:    Maintained
+ F:    drivers/media/dvb-frontends/zd1301_demod*
+ ZD1301 MEDIA DRIVER
+ M:    Antti Palosaari <[email protected]>
+ L:    [email protected]
+ W:    https://linuxtv.org/
+ W:    http://palosaari.fi/linux/
+ Q:    https://patchwork.linuxtv.org/project/linux-media/list/
+ S:    Maintained
+ F:    drivers/media/usb/dvb-usb-v2/zd1301*
  ZPOOL COMPRESSED PAGE STORAGE API
  M:    Dan Streetman <[email protected]>
  L:    [email protected]
index 809b397e915f155e921ee353fb4e98cf5ee2590a,d195d617076d6cd86f1cea471a6d2d8a5835a636..0918d3f003d65d633a6e06a2c8d41a47fc42f9b5
@@@ -22,6 -22,7 +22,7 @@@
  #include <linux/export.h>
  #include <linux/atomic.h>
  #include <linux/dma-fence.h>
+ #include <linux/sched/signal.h>
  
  #define CREATE_TRACE_POINTS
  #include <trace/events/dma_fence.h>
@@@ -239,8 -240,6 +240,8 @@@ EXPORT_SYMBOL(dma_fence_enable_sw_signa
   * after it signals with dma_fence_signal. The callback itself can be called
   * from irq context.
   *
 + * Returns 0 in case of success, -ENOENT if the fence is already signaled
 + * and -EINVAL in case of error.
   */
  int dma_fence_add_callback(struct dma_fence *fence, struct dma_fence_cb *cb,
                           dma_fence_func_t func)
index f478a597cd792b25e1ed2d09c13860433701d32a,f7ba32bfe39b3e3435f9778b91bd5b6533d26036..bc28e75752546c9390917cbe26e9ce7938183daf
@@@ -121,7 -121,7 +121,7 @@@ struct drm_gem_cma_object *drm_gem_cma_
        return cma_obj;
  
  error:
 -      drm_gem_object_unreference_unlocked(&cma_obj->base);
 +      drm_gem_object_put_unlocked(&cma_obj->base);
        return ERR_PTR(ret);
  }
  EXPORT_SYMBOL_GPL(drm_gem_cma_create);
@@@ -163,7 -163,7 +163,7 @@@ drm_gem_cma_create_with_handle(struct d
         */
        ret = drm_gem_handle_create(file_priv, gem_obj, handle);
        /* drop reference from allocate - handle holds it now. */
 -      drm_gem_object_unreference_unlocked(gem_obj);
 +      drm_gem_object_put_unlocked(gem_obj);
        if (ret)
                return ERR_PTR(ret);
  
@@@ -293,7 -293,7 +293,7 @@@ int drm_gem_cma_dumb_map_offset(struct 
  
        *offset = drm_vma_node_offset_addr(&gem_obj->vma_node);
  
 -      drm_gem_object_unreference_unlocked(gem_obj);
 +      drm_gem_object_put_unlocked(gem_obj);
  
        return 0;
  }
@@@ -338,9 -338,6 +338,9 @@@ static int drm_gem_cma_mmap_obj(struct 
   * as their ->mmap() handler in the DRM device file's file_operations
   * structure.
   *
 + * Instead of directly referencing this function, drivers should use the
 + * DEFINE_DRM_GEM_CMA_FOPS().macro.
 + *
   * Returns:
   * 0 on success or a negative error code on failure.
   */
@@@ -419,13 -416,13 +419,13 @@@ unsigned long drm_gem_cma_get_unmapped_
                return -EINVAL;
  
        if (!drm_vma_node_is_allowed(node, priv)) {
 -              drm_gem_object_unreference_unlocked(obj);
 +              drm_gem_object_put_unlocked(obj);
                return -EACCES;
        }
  
        cma_obj = to_drm_gem_cma_obj(obj);
  
 -      drm_gem_object_unreference_unlocked(obj);
 +      drm_gem_object_put_unlocked(obj);
  
        return cma_obj->vaddr ? (unsigned long)cma_obj->vaddr : -EINVAL;
  }
@@@ -450,7 -447,7 +450,7 @@@ void drm_gem_cma_describe(struct drm_ge
        off = drm_vma_node_start(&obj->vma_node);
  
        seq_printf(m, "%2d (%2d) %08llx %pad %p %zu",
-                       obj->name, obj->refcount.refcount.counter,
+                       obj->name, kref_read(&obj->refcount),
                        off, &cma_obj->paddr, cma_obj->vaddr, obj->size);
  
        seq_printf(m, "\n");
index 2eb0792dfaf3508a0eabe7008bfabf3f2f4fc2b6,220a6c1f4ab95c26396a944481fc8f897d844f8d..da9a9adbcc9857ec37f9fa75e48bbc7a6ed1d283
   * Internal function to assign a slot in the object idr and optionally
   * register the object into the idr.
   */
 -int drm_mode_object_get_reg(struct drm_device *dev,
 -                          struct drm_mode_object *obj,
 -                          uint32_t obj_type,
 -                          bool register_obj,
 -                          void (*obj_free_cb)(struct kref *kref))
 +int __drm_mode_object_add(struct drm_device *dev, struct drm_mode_object *obj,
 +                        uint32_t obj_type, bool register_obj,
 +                        void (*obj_free_cb)(struct kref *kref))
  {
        int ret;
  
  }
  
  /**
 - * drm_mode_object_get - allocate a new modeset identifier
 + * drm_mode_object_add - allocate a new modeset identifier
   * @dev: DRM device
   * @obj: object pointer, used to generate unique ID
   * @obj_type: object type
   *
   * Create a unique identifier based on @ptr in @dev's identifier space.  Used
 - * for tracking modes, CRTCs and connectors. Note that despite the _get postfix
 - * modeset identifiers are _not_ reference counted. Hence don't use this for
 - * reference counted modeset objects like framebuffers.
 + * for tracking modes, CRTCs and connectors.
   *
   * Returns:
   * Zero on success, error code on failure.
   */
 -int drm_mode_object_get(struct drm_device *dev,
 +int drm_mode_object_add(struct drm_device *dev,
                        struct drm_mode_object *obj, uint32_t obj_type)
  {
 -      return drm_mode_object_get_reg(dev, obj, obj_type, true, NULL);
 +      return __drm_mode_object_add(dev, obj, obj_type, true, NULL);
  }
  
  void drm_mode_object_register(struct drm_device *dev,
@@@ -133,7 -137,7 +133,7 @@@ struct drm_mode_object *__drm_mode_obje
   *
   * This function is used to look up a modeset object. It will acquire a
   * reference for reference counted objects. This reference must be dropped again
 - * by callind drm_mode_object_unreference().
 + * by callind drm_mode_object_put().
   */
  struct drm_mode_object *drm_mode_object_find(struct drm_device *dev,
                uint32_t id, uint32_t type)
  EXPORT_SYMBOL(drm_mode_object_find);
  
  /**
 - * drm_mode_object_unreference - decr the object refcnt
 - * @obj: mode_object
 + * drm_mode_object_put - release a mode object reference
 + * @obj: DRM mode object
   *
   * This function decrements the object's refcount if it is a refcounted modeset
   * object. It is a no-op on any other object. This is used to drop references
 - * acquired with drm_mode_object_reference().
 + * acquired with drm_mode_object_get().
   */
 -void drm_mode_object_unreference(struct drm_mode_object *obj)
 +void drm_mode_object_put(struct drm_mode_object *obj)
  {
        if (obj->free_cb) {
-               DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, atomic_read(&obj->refcount.refcount));
+               DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, kref_read(&obj->refcount));
                kref_put(&obj->refcount, obj->free_cb);
        }
  }
 -EXPORT_SYMBOL(drm_mode_object_unreference);
 +EXPORT_SYMBOL(drm_mode_object_put);
  
  /**
 - * drm_mode_object_reference - incr the object refcnt
 - * @obj: mode_object
 + * drm_mode_object_get - acquire a mode object reference
 + * @obj: DRM mode object
   *
   * This function increments the object's refcount if it is a refcounted modeset
   * object. It is a no-op on any other object. References should be dropped again
 - * by calling drm_mode_object_unreference().
 + * by calling drm_mode_object_put().
   */
 -void drm_mode_object_reference(struct drm_mode_object *obj)
 +void drm_mode_object_get(struct drm_mode_object *obj)
  {
        if (obj->free_cb) {
-               DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, atomic_read(&obj->refcount.refcount));
+               DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, kref_read(&obj->refcount));
                kref_get(&obj->refcount);
        }
  }
 -EXPORT_SYMBOL(drm_mode_object_reference);
 +EXPORT_SYMBOL(drm_mode_object_get);
  
  /**
   * drm_object_attach_property - attach a property to a modeset object
@@@ -363,7 -367,7 +363,7 @@@ int drm_mode_obj_get_properties_ioctl(s
                        &arg->count_props);
  
  out_unref:
 -      drm_mode_object_unreference(obj);
 +      drm_mode_object_put(obj);
  out:
        drm_modeset_unlock_all(dev);
        return ret;
@@@ -428,7 -432,7 +428,7 @@@ int drm_mode_obj_set_property_ioctl(str
        drm_property_change_valid_put(property, ref);
  
  out_unref:
 -      drm_mode_object_unreference(arg_obj);
 +      drm_mode_object_put(arg_obj);
  out:
        drm_modeset_unlock_all(dev);
        return ret;
index 03d376f91c2357408e2c56f61d5790f7cf32898d,dc4419ada12c3b1aa907280f5dc09dc35fdd8848..85005d57bde62f6276045880352dc923c72dd2ac
@@@ -140,13 -140,13 +140,13 @@@ void drm_kms_helper_poll_enable(struct 
        if (!dev->mode_config.poll_enabled || !drm_kms_helper_poll)
                return;
  
 -      drm_connector_list_iter_get(dev, &conn_iter);
 +      drm_connector_list_iter_begin(dev, &conn_iter);
        drm_for_each_connector_iter(connector, &conn_iter) {
                if (connector->polled & (DRM_CONNECTOR_POLL_CONNECT |
                                         DRM_CONNECTOR_POLL_DISCONNECT))
                        poll = true;
        }
 -      drm_connector_list_iter_put(&conn_iter);
 +      drm_connector_list_iter_end(&conn_iter);
  
        if (dev->mode_config.delayed_event) {
                /*
@@@ -220,8 -220,8 +220,8 @@@ drm_connector_detect(struct drm_connect
   *    - drm_mode_validate_basic() performs basic sanity checks
   *    - drm_mode_validate_size() filters out modes larger than @maxX and @maxY
   *      (if specified)
-  *    - drm_mode_validate_flag() checks the modes againt basic connector
-  *      capabilites (interlace_allowed,doublescan_allowed,stereo_allowed)
+  *    - drm_mode_validate_flag() checks the modes against basic connector
+  *      capabilities (interlace_allowed,doublescan_allowed,stereo_allowed)
   *    - the optional &drm_connector_helper_funcs.mode_valid helper can perform
   *      driver and/or hardware specific checks
   *
@@@ -311,13 -311,7 +311,13 @@@ int drm_helper_probe_single_connector_m
                count = drm_add_edid_modes(connector, edid);
                drm_edid_to_eld(connector, edid);
        } else {
 -              count = drm_load_edid_firmware(connector);
 +              struct edid *edid = drm_load_edid_firmware(connector);
 +              if (!IS_ERR_OR_NULL(edid)) {
 +                      drm_mode_connector_update_edid_property(connector, edid);
 +                      count = drm_add_edid_modes(connector, edid);
 +                      drm_edid_to_eld(connector, edid);
 +                      kfree(edid);
 +              }
                if (count == 0)
                        count = (*connector_funcs->get_modes)(connector);
        }
@@@ -420,7 -414,7 +420,7 @@@ static void output_poll_execute(struct 
                goto out;
        }
  
 -      drm_connector_list_iter_get(dev, &conn_iter);
 +      drm_connector_list_iter_begin(dev, &conn_iter);
        drm_for_each_connector_iter(connector, &conn_iter) {
                /* Ignore forced connectors. */
                if (connector->force)
                        changed = true;
                }
        }
 -      drm_connector_list_iter_put(&conn_iter);
 +      drm_connector_list_iter_end(&conn_iter);
  
        mutex_unlock(&dev->mode_config.mutex);
  
@@@ -580,7 -574,7 +580,7 @@@ bool drm_helper_hpd_irq_event(struct dr
                return false;
  
        mutex_lock(&dev->mode_config.mutex);
 -      drm_connector_list_iter_get(dev, &conn_iter);
 +      drm_connector_list_iter_begin(dev, &conn_iter);
        drm_for_each_connector_iter(connector, &conn_iter) {
                /* Only handle HPD capable connectors. */
                if (!(connector->polled & DRM_CONNECTOR_POLL_HPD))
                if (old_status != connector->status)
                        changed = true;
        }
 -      drm_connector_list_iter_put(&conn_iter);
 +      drm_connector_list_iter_end(&conn_iter);
        mutex_unlock(&dev->mode_config.mutex);
  
        if (changed)
index 9b556b2c7e247baa4b6e702886e3c58a7742b9de,ffe6b4ffa1a8a75dabb1a6fcb0017d0ccb6c0f99..7da70b6c83f0163b30b64b4cde74662ff2db132c
@@@ -111,8 -111,9 +111,9 @@@ static int psbfb_pan(struct fb_var_scre
          return 0;
  }
  
- static int psbfb_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ static int psbfb_vm_fault(struct vm_fault *vmf)
  {
+       struct vm_area_struct *vma = vmf->vma;
        struct psb_framebuffer *psbfb = vma->vm_private_data;
        struct drm_device *dev = psbfb->base.dev;
        struct drm_psb_private *dev_priv = dev->dev_private;
@@@ -392,7 -393,7 +393,7 @@@ static int psbfb_create(struct psb_fbde
        info = drm_fb_helper_alloc_fbi(&fbdev->psb_fb_helper);
        if (IS_ERR(info)) {
                ret = PTR_ERR(info);
 -              goto err_free_range;
 +              goto out;
        }
        info->par = fbdev;
  
  
        ret = psb_framebuffer_init(dev, psbfb, &mode_cmd, backing);
        if (ret)
 -              goto err_release;
 +              goto out;
  
        fb = &psbfb->base;
        psbfb->fbdev = info;
                                        psbfb->base.width, psbfb->base.height);
  
        return 0;
 -err_release:
 -      drm_fb_helper_release_fbi(&fbdev->psb_fb_helper);
 -err_free_range:
 +out:
        psb_gtt_free_range(dev, backing);
        return ret;
  }
@@@ -534,6 -537,7 +535,6 @@@ static int psb_fbdev_destroy(struct drm
        struct psb_framebuffer *psbfb = &fbdev->pfb;
  
        drm_fb_helper_unregister_fbi(&fbdev->psb_fb_helper);
 -      drm_fb_helper_release_fbi(&fbdev->psb_fb_helper);
  
        drm_fb_helper_fini(&fbdev->psb_fb_helper);
        drm_framebuffer_unregister_private(&psbfb->base);
index f7bf04138dbf9f8bff85bb26e19f8326b4cce308,83e22fd4cfc0111da5a3b5de8a9d3ce05ba7c7f7..83667087d6e5ddc55291bbefe092543604a0e802
@@@ -752,7 -752,7 +752,7 @@@ extern int psb_gem_dumb_create(struct d
                        struct drm_mode_create_dumb *args);
  extern int psb_gem_dumb_map_gtt(struct drm_file *file, struct drm_device *dev,
                        uint32_t handle, uint64_t *offset);
- extern int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
+ extern int psb_gem_fault(struct vm_fault *vmf);
  
  /* psb_device.c */
  extern const struct psb_ops psb_chip_ops;
@@@ -905,8 -905,9 +905,8 @@@ static inline void REGISTER_WRITE8(stru
  #define PSB_RSGX32(_offs)                                             \
  ({                                                                    \
        if (inl(dev_priv->apm_base + PSB_APM_STS) & 0x3) {              \
 -              printk(KERN_ERR                                         \
 -                      "access sgx when it's off!! (READ) %s, %d\n",   \
 -             __FILE__, __LINE__);                                     \
 +              pr_err("access sgx when it's off!! (READ) %s, %d\n",    \
 +                     __FILE__, __LINE__);                             \
                melay(1000);                                            \
        }                                                               \
        ioread32(dev_priv->sgx_reg + (_offs));                          \
index 8cdafef8eac9d9578008bbeb33e935aca3e65dd8,e703556eba999a95fd1a728538f6412db28068ae..655d146e1126560a865d52dd29514e4037c036e6
@@@ -1139,7 -1139,7 +1139,7 @@@ static void i915_driver_register(struc
        if (IS_GEN5(dev_priv))
                intel_gpu_ips_init(dev_priv);
  
-       i915_audio_component_init(dev_priv);
+       intel_audio_init(dev_priv);
  
        /*
         * Some ports require correctly set-up hpd registers for detection to
   */
  static void i915_driver_unregister(struct drm_i915_private *dev_priv)
  {
-       i915_audio_component_cleanup(dev_priv);
+       intel_audio_deinit(dev_priv);
  
        intel_gpu_ips_teardown();
        acpi_video_unregister();
  
        i915_teardown_sysfs(dev_priv);
        i915_guc_log_unregister(dev_priv);
 -      i915_debugfs_unregister(dev_priv);
        drm_dev_unregister(&dev_priv->drm);
  
        i915_gem_shrinker_cleanup(dev_priv);
index 75b0497649b9bbf565db8d09304c28dd9c9bcb43,0a4b42d313912c3c5b56a449cfac33e63afeb16e..8df73751c367a1c9177bb68abc117e41086de36b
@@@ -2459,6 -2459,12 +2459,12 @@@ struct drm_i915_private 
        /* Used to save the pipe-to-encoder mapping for audio */
        struct intel_encoder *av_enc_map[I915_MAX_PIPES];
  
+       /* necessary resource sharing with HDMI LPE audio driver. */
+       struct {
+               struct platform_device *platdev;
+               int     irq;
+       } lpe_audio;
        /*
         * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
         * will be rejected. Instead look for a better place.
@@@ -3346,7 -3352,7 +3352,7 @@@ int __must_check i915_gem_wait_for_idle
                                        unsigned int flags);
  int __must_check i915_gem_suspend(struct drm_i915_private *dev_priv);
  void i915_gem_resume(struct drm_i915_private *dev_priv);
- int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
+ int i915_gem_fault(struct vm_fault *vmf);
  int i915_gem_object_wait(struct drm_i915_gem_object *obj,
                         unsigned int flags,
                         long timeout,
@@@ -3522,10 -3528,12 +3528,10 @@@ u32 i915_gem_fence_alignment(struct drm
  /* i915_debugfs.c */
  #ifdef CONFIG_DEBUG_FS
  int i915_debugfs_register(struct drm_i915_private *dev_priv);
 -void i915_debugfs_unregister(struct drm_i915_private *dev_priv);
  int i915_debugfs_connector_add(struct drm_connector *connector);
  void intel_display_crc_init(struct drm_i915_private *dev_priv);
  #else
  static inline int i915_debugfs_register(struct drm_i915_private *dev_priv) {return 0;}
 -static inline void i915_debugfs_unregister(struct drm_i915_private *dev_priv) {}
  static inline int i915_debugfs_connector_add(struct drm_connector *connector)
  { return 0; }
  static inline void intel_display_crc_init(struct drm_i915_private *dev_priv) {}
@@@ -3595,6 -3603,14 +3601,14 @@@ extern int i915_restore_state(struct dr
  void i915_setup_sysfs(struct drm_i915_private *dev_priv);
  void i915_teardown_sysfs(struct drm_i915_private *dev_priv);
  
+ /* intel_lpe_audio.c */
+ int  intel_lpe_audio_init(struct drm_i915_private *dev_priv);
+ void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv);
+ void intel_lpe_audio_irq_handler(struct drm_i915_private *dev_priv);
+ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv,
+                           void *eld, int port, int pipe, int tmds_clk_speed,
+                           bool dp_output, int link_rate);
  /* intel_i2c.c */
  extern int intel_setup_gmbus(struct drm_i915_private *dev_priv);
  extern void intel_teardown_gmbus(struct drm_i915_private *dev_priv);
index 53bb7de6020d632cad87770871976dc888dd27dc,e6ffef2f707a01934a3a6f777b1dc7548ef370c8..a62feb68689535d09a35ffda36ed9603a55b0ed4
@@@ -1926,6 -1926,10 +1926,10 @@@ static irqreturn_t valleyview_irq_handl
                 * signalled in iir */
                valleyview_pipestat_irq_ack(dev_priv, iir, pipe_stats);
  
+               if (iir & (I915_LPE_PIPE_A_INTERRUPT |
+                          I915_LPE_PIPE_B_INTERRUPT))
+                       intel_lpe_audio_irq_handler(dev_priv);
                /*
                 * VLV_IIR is single buffered, and reflects the level
                 * from PIPESTAT/PORT_HOTPLUG_STAT, hence clear it last.
@@@ -2006,6 -2010,11 +2010,11 @@@ static irqreturn_t cherryview_irq_handl
                 * signalled in iir */
                valleyview_pipestat_irq_ack(dev_priv, iir, pipe_stats);
  
+               if (iir & (I915_LPE_PIPE_A_INTERRUPT |
+                          I915_LPE_PIPE_B_INTERRUPT |
+                          I915_LPE_PIPE_C_INTERRUPT))
+                       intel_lpe_audio_irq_handler(dev_priv);
                /*
                 * VLV_IIR is single buffered, and reflects the level
                 * from PIPESTAT/PORT_HOTPLUG_STAT, hence clear it last.
@@@ -2948,6 -2957,7 +2957,7 @@@ static void vlv_display_irq_postinstall
        u32 pipestat_mask;
        u32 enable_mask;
        enum pipe pipe;
+       u32 val;
  
        pipestat_mask = PLANE_FLIP_DONE_INT_STATUS_VLV |
                        PIPE_CRC_DONE_INTERRUPT_STATUS;
  
        WARN_ON(dev_priv->irq_mask != ~0);
  
+       val = (I915_LPE_PIPE_A_INTERRUPT |
+               I915_LPE_PIPE_B_INTERRUPT |
+               I915_LPE_PIPE_C_INTERRUPT);
+       enable_mask |= val;
        dev_priv->irq_mask = ~enable_mask;
  
        GEN5_IRQ_INIT(VLV_, dev_priv->irq_mask, enable_mask);
@@@ -4233,6 -4249,7 +4249,6 @@@ void intel_irq_init(struct drm_i915_pri
        if (IS_GEN2(dev_priv)) {
                /* Gen2 doesn't have a hardware frame counter */
                dev->max_vblank_count = 0;
 -              dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
        } else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
                dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
                dev->driver->get_vblank_counter = g4x_get_vblank_counter;
index 3b797909f631d3185b619acce88f5f9d6dce7fe8,344f238b283f3bfafcaac0ac27f28f141f4bf9ee..064582963ff61345e61f50f7ed40932fc083e514
@@@ -28,6 -28,7 +28,7 @@@
  #include <linux/async.h>
  #include <linux/i2c.h>
  #include <linux/hdmi.h>
+ #include <linux/sched/clock.h>
  #include <drm/i915_drm.h>
  #include "i915_drv.h"
  #include <drm/drm_crtc.h>
@@@ -1227,6 -1228,8 +1228,8 @@@ void intel_audio_codec_enable(struct in
  void intel_audio_codec_disable(struct intel_encoder *encoder);
  void i915_audio_component_init(struct drm_i915_private *dev_priv);
  void i915_audio_component_cleanup(struct drm_i915_private *dev_priv);
+ void intel_audio_init(struct drm_i915_private *dev_priv);
+ void intel_audio_deinit(struct drm_i915_private *dev_priv);
  
  /* intel_display.c */
  enum transcoder intel_crtc_pch_transcoder(struct intel_crtc *crtc);
@@@ -1888,6 -1891,7 +1891,6 @@@ void lspcon_wait_pcon_mode(struct intel
  
  /* intel_pipe_crc.c */
  int intel_pipe_crc_create(struct drm_minor *minor);
 -void intel_pipe_crc_cleanup(struct drm_minor *minor);
  #ifdef CONFIG_DEBUG_FS
  int intel_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name,
                              size_t *values_cnt);
index 94736a93898b3da708918f0d5dc2ba8e993eafcb,c3b14876edaa0b2d11e08a9edf7873c7752a674e..b51fb0d70f431586bd5a23b90072dfad5284b7d5
@@@ -206,7 -206,7 +206,7 @@@ void msm_gem_shrinker_cleanup(struct dr
  int msm_gem_mmap_obj(struct drm_gem_object *obj,
                        struct vm_area_struct *vma);
  int msm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
- int msm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
+ int msm_gem_fault(struct vm_fault *vmf);
  uint64_t msm_gem_mmap_offset(struct drm_gem_object *obj);
  int msm_gem_get_iova_locked(struct drm_gem_object *obj, int id,
                uint64_t *iova);
@@@ -304,10 -304,10 +304,10 @@@ void msm_gem_describe_objects(struct li
  void msm_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m);
  int msm_debugfs_late_init(struct drm_device *dev);
  int msm_rd_debugfs_init(struct drm_minor *minor);
 -void msm_rd_debugfs_cleanup(struct drm_minor *minor);
 +void msm_rd_debugfs_cleanup(struct msm_drm_private *priv);
  void msm_rd_dump_submit(struct msm_gem_submit *submit);
  int msm_perf_debugfs_init(struct drm_minor *minor);
 -void msm_perf_debugfs_cleanup(struct drm_minor *minor);
 +void msm_perf_debugfs_cleanup(struct msm_drm_private *priv);
  #else
  static inline int msm_debugfs_late_init(struct drm_device *dev) { return 0; }
  static inline void msm_rd_dump_submit(struct msm_gem_submit *submit) {}
index dd71234dbe1bb8bd27a7cc306925ce580c6f8598,65977982f15f88114f86ee4b7fc2b4bfe5faeb53..9098ea138269714b2415cc02188f6802ee9d21f3
@@@ -112,8 -112,8 +112,8 @@@ void omap_gem_describe_objects(struct l
  int omap_gem_resume(struct device *dev);
  #endif
  
 -int omap_irq_enable_vblank(struct drm_device *dev, unsigned int pipe);
 -void omap_irq_disable_vblank(struct drm_device *dev, unsigned int pipe);
 +int omap_irq_enable_vblank(struct drm_crtc *crtc);
 +void omap_irq_disable_vblank(struct drm_crtc *crtc);
  void omap_drm_irq_uninstall(struct drm_device *dev);
  int omap_drm_irq_install(struct drm_device *dev);
  
@@@ -188,7 -188,7 +188,7 @@@ int omap_gem_dumb_create(struct drm_fil
  int omap_gem_mmap(struct file *filp, struct vm_area_struct *vma);
  int omap_gem_mmap_obj(struct drm_gem_object *obj,
                struct vm_area_struct *vma);
- int omap_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
+ int omap_gem_fault(struct vm_fault *vmf);
  int omap_gem_op_start(struct drm_gem_object *obj, enum omap_gem_op op);
  int omap_gem_op_finish(struct drm_gem_object *obj, enum omap_gem_op op);
  int omap_gem_op_sync(struct drm_gem_object *obj, enum omap_gem_op op);
index 8d80aef94898bb043ff7bfb36dbbd1e3e5add311,5d5a9f517c30e0a6a0f17fb0d93fe19eae95bd28..68a75b829b71b4a183636cde81efe612968c762c
@@@ -518,7 -518,6 +518,6 @@@ static int fault_2d(struct drm_gem_obje
  
  /**
   * omap_gem_fault             -       pagefault handler for GEM objects
-  * @vma: the VMA of the GEM object
   * @vmf: fault detail
   *
   * Invoked when a fault occurs on an mmap of a GEM managed area. GEM
   * vma->vm_private_data points to the GEM object that is backing this
   * mapping.
   */
- int omap_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ int omap_gem_fault(struct vm_fault *vmf)
  {
+       struct vm_area_struct *vma = vmf->vma;
        struct drm_gem_object *obj = vma->vm_private_data;
        struct omap_gem_object *omap_obj = to_omap_bo(obj);
        struct drm_device *dev = obj->dev;
@@@ -1033,7 -1033,7 +1033,7 @@@ void omap_gem_describe(struct drm_gem_o
        off = drm_vma_node_start(&obj->vma_node);
  
        seq_printf(m, "%08x: %2d (%2d) %08llx %pad (%2d) %p %4d",
-                       omap_obj->flags, obj->name, obj->refcount.refcount.counter,
+                       omap_obj->flags, obj->name, kref_read(&obj->refcount),
                        off, &omap_obj->paddr, omap_obj->paddr_cnt,
                        omap_obj->vaddr, omap_obj->roll);
  
@@@ -1107,8 -1107,9 +1107,8 @@@ static inline bool is_waiting(struct om
  
  /* macro for sync debug.. */
  #define SYNCDBG 0
 -#define SYNC(fmt, ...) do { if (SYNCDBG) \
 -              printk(KERN_ERR "%s:%d: "fmt"\n", \
 -                              __func__, __LINE__, ##__VA_ARGS__); \
 +#define SYNC(fmt, ...) do { if (SYNCDBG)                              \
 +              pr_err("%s:%d: " fmt "\n", __func__, __LINE__, ##__VA_ARGS__); \
        } while (0)
  
  
index 869976b591f8f43729f687342b0ac2e42aeb7894,fd79a70b855208a7d9e3970b83bae3d8b62a8053..9edb8dc1ea14404a515a3ecc87a379feb02886b2
@@@ -94,7 -94,7 +94,7 @@@ static int cdn_dp_grf_write(struct cdn_
  static int cdn_dp_clk_enable(struct cdn_dp_device *dp)
  {
        int ret;
 -      u32 rate;
 +      unsigned long rate;
  
        ret = clk_prepare_enable(dp->pclk);
        if (ret < 0) {
        ret = pm_runtime_get_sync(dp->dev);
        if (ret < 0) {
                DRM_DEV_ERROR(dp->dev, "cannot get pm runtime %d\n", ret);
-               goto err_pclk;
+               goto err_pm_runtime_get;
        }
  
        reset_control_assert(dp->core_rst);
  
        rate = clk_get_rate(dp->core_clk);
        if (!rate) {
 -              DRM_DEV_ERROR(dp->dev, "get clk rate failed: %d\n", rate);
 +              DRM_DEV_ERROR(dp->dev, "get clk rate failed\n");
 +              ret = -EINVAL;
                goto err_set_rate;
        }
  
        return 0;
  
  err_set_rate:
+       pm_runtime_put(dp->dev);
+ err_pm_runtime_get:
        clk_disable_unprepare(dp->core_clk);
  err_core_clk:
        clk_disable_unprepare(dp->pclk);
index 856416cec3eb9c7be484eaedeadb7519e8768f00,29c0939f52478011930957b7f0654d3f5a88ef1b..f4eb412f360400ecd699b1a7aa5704c35c4cdb45
@@@ -64,7 -64,7 +64,7 @@@
        else if (len <= 32) \
                DRM_DEBUG_DRIVER("cmd=%02x, par=%*ph\n", cmd, (int)len, data);\
        else \
-               DRM_DEBUG_DRIVER("cmd=%02x, len=%zu\n", cmd, (int)len); \
+               DRM_DEBUG_DRIVER("cmd=%02x, len=%zu\n", cmd, len); \
  })
  
  static const u8 mipi_dbi_dcs_read_commands[] = {
@@@ -590,7 -590,7 +590,7 @@@ static int mipi_dbi_spi1e_transfer(stru
                ret = spi_sync(spi, &m);
                if (ret)
                        return ret;
 -      };
 +      }
  
        return 0;
  }
@@@ -654,7 -654,7 +654,7 @@@ static int mipi_dbi_spi1_transfer(struc
                ret = spi_sync(spi, &m);
                if (ret)
                        return ret;
 -      };
 +      }
  
        return 0;
  }
index bd8678a6f3f20ee2b3ca93cfedef0b31a05308e9,17478f38dea35b933ce95bb8e2d52874aed277e3..dca2e809a9706ba540943d4aa747022e7368051c
@@@ -140,8 -140,8 +140,8 @@@ static void ttm_bo_release_list(struct 
        struct ttm_bo_device *bdev = bo->bdev;
        size_t acc_size = bo->acc_size;
  
-       BUG_ON(atomic_read(&bo->list_kref.refcount));
-       BUG_ON(atomic_read(&bo->kref.refcount));
+       BUG_ON(kref_read(&bo->list_kref));
+       BUG_ON(kref_read(&bo->kref));
        BUG_ON(atomic_read(&bo->cpu_writers));
        BUG_ON(bo->mem.mm_node != NULL);
        BUG_ON(!list_empty(&bo->lru));
@@@ -184,58 -184,41 +184,41 @@@ void ttm_bo_add_to_lru(struct ttm_buffe
  }
  EXPORT_SYMBOL(ttm_bo_add_to_lru);
  
int ttm_bo_del_from_lru(struct ttm_buffer_object *bo)
static void ttm_bo_ref_bug(struct kref *list_kref)
  {
-       int put_count = 0;
+       BUG();
+ }
  
+ void ttm_bo_del_from_lru(struct ttm_buffer_object *bo)
+ {
        if (!list_empty(&bo->swap)) {
                list_del_init(&bo->swap);
-               ++put_count;
+               kref_put(&bo->list_kref, ttm_bo_ref_bug);
        }
        if (!list_empty(&bo->lru)) {
                list_del_init(&bo->lru);
-               ++put_count;
+               kref_put(&bo->list_kref, ttm_bo_ref_bug);
        }
  
        /*
         * TODO: Add a driver hook to delete from
         * driver-specific LRU's here.
         */
-       return put_count;
- }
- static void ttm_bo_ref_bug(struct kref *list_kref)
- {
-       BUG();
- }
- void ttm_bo_list_ref_sub(struct ttm_buffer_object *bo, int count,
-                        bool never_free)
- {
-       kref_sub(&bo->list_kref, count,
-                (never_free) ? ttm_bo_ref_bug : ttm_bo_release_list);
  }
  
  void ttm_bo_del_sub_from_lru(struct ttm_buffer_object *bo)
  {
-       int put_count;
        spin_lock(&bo->glob->lru_lock);
-       put_count = ttm_bo_del_from_lru(bo);
+       ttm_bo_del_from_lru(bo);
        spin_unlock(&bo->glob->lru_lock);
-       ttm_bo_list_ref_sub(bo, put_count, true);
  }
  EXPORT_SYMBOL(ttm_bo_del_sub_from_lru);
  
  void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo)
  {
-       int put_count = 0;
        lockdep_assert_held(&bo->resv->lock.base);
  
-       put_count = ttm_bo_del_from_lru(bo);
-       ttm_bo_list_ref_sub(bo, put_count, true);
+       ttm_bo_del_from_lru(bo);
        ttm_bo_add_to_lru(bo);
  }
  EXPORT_SYMBOL(ttm_bo_move_to_lru_tail);
@@@ -435,7 -418,6 +418,6 @@@ static void ttm_bo_cleanup_refs_or_queu
  {
        struct ttm_bo_device *bdev = bo->bdev;
        struct ttm_bo_global *glob = bo->glob;
-       int put_count;
        int ret;
  
        spin_lock(&glob->lru_lock);
  
        if (!ret) {
                if (!ttm_bo_wait(bo, false, true)) {
-                       put_count = ttm_bo_del_from_lru(bo);
+                       ttm_bo_del_from_lru(bo);
                        spin_unlock(&glob->lru_lock);
                        ttm_bo_cleanup_memtype_use(bo);
  
-                       ttm_bo_list_ref_sub(bo, put_count, true);
                        return;
                } else
                        ttm_bo_flush_all_fences(bo);
@@@ -492,7 -471,6 +471,6 @@@ static int ttm_bo_cleanup_refs_and_unlo
                                          bool no_wait_gpu)
  {
        struct ttm_bo_global *glob = bo->glob;
-       int put_count;
        int ret;
  
        ret = ttm_bo_wait(bo, false, true);
                return ret;
        }
  
-       put_count = ttm_bo_del_from_lru(bo);
+       ttm_bo_del_from_lru(bo);
        list_del_init(&bo->ddestroy);
-       ++put_count;
+       kref_put(&bo->list_kref, ttm_bo_ref_bug);
  
        spin_unlock(&glob->lru_lock);
        ttm_bo_cleanup_memtype_use(bo);
  
-       ttm_bo_list_ref_sub(bo, put_count, true);
        return 0;
  }
  
@@@ -728,7 -704,7 +704,7 @@@ static int ttm_mem_evict_first(struct t
        struct ttm_bo_global *glob = bdev->glob;
        struct ttm_mem_type_manager *man = &bdev->man[mem_type];
        struct ttm_buffer_object *bo;
-       int ret = -EBUSY, put_count;
+       int ret = -EBUSY;
        unsigned i;
  
        spin_lock(&glob->lru_lock);
                return ret;
        }
  
-       put_count = ttm_bo_del_from_lru(bo);
+       ttm_bo_del_from_lru(bo);
        spin_unlock(&glob->lru_lock);
  
        BUG_ON(ret != 0);
  
-       ttm_bo_list_ref_sub(bo, put_count, true);
        ret = ttm_bo_evict(bo, interruptible, no_wait_gpu);
        ttm_bo_unreserve(bo);
  
@@@ -1008,7 -982,7 +982,7 @@@ int ttm_bo_mem_space(struct ttm_buffer_
        }
  
        if (!type_found) {
 -              printk(KERN_ERR TTM_PFX "No compatible memory type found.\n");
 +              pr_err(TTM_PFX "No compatible memory type found\n");
                return -EINVAL;
        }
  
@@@ -1667,7 -1641,6 +1641,6 @@@ static int ttm_bo_swapout(struct ttm_me
            container_of(shrink, struct ttm_bo_global, shrink);
        struct ttm_buffer_object *bo;
        int ret = -EBUSY;
-       int put_count;
        unsigned i;
  
        spin_lock(&glob->lru_lock);
                return ret;
        }
  
-       put_count = ttm_bo_del_from_lru(bo);
+       ttm_bo_del_from_lru(bo);
        spin_unlock(&glob->lru_lock);
  
-       ttm_bo_list_ref_sub(bo, put_count, true);
        /**
         * Move to system cached
         */
index d962000184ee022a74fa4159a26e255921198b04,1eef98c3331dfc270d5c9934648c17dfa4dc0433..e9c381c42139573ff0d62c1d14318a05386842e6
@@@ -26,6 -26,7 +26,7 @@@
  #include <linux/pm_runtime.h>
  #include <linux/device.h>
  #include <linux/io.h>
+ #include <linux/sched/signal.h>
  
  #include "uapi/drm/vc4_drm.h"
  #include "vc4_drv.h"
@@@ -511,18 -512,9 +512,18 @@@ vc4_queue_submit(struct drm_device *dev
  }
  
  /**
 - * Looks up a bunch of GEM handles for BOs and stores the array for
 - * use in the command validator that actually writes relocated
 - * addresses pointing to them.
 + * vc4_cl_lookup_bos() - Sets up exec->bo[] with the GEM objects
 + * referenced by the job.
 + * @dev: DRM device
 + * @file_priv: DRM file for this fd
 + * @exec: V3D job being set up
 + *
 + * The command validator needs to reference BOs by their index within
 + * the submitted job's BO list.  This does the validation of the job's
 + * BO list and reference counting for the lifetime of the job.
 + *
 + * Note that this function doesn't need to unreference the BOs on
 + * failure, because that will happen at vc4_complete_exec() time.
   */
  static int
  vc4_cl_lookup_bos(struct drm_device *dev,
@@@ -855,16 -847,9 +856,16 @@@ vc4_wait_bo_ioctl(struct drm_device *de
  }
  
  /**
 - * Submits a command list to the VC4.
 + * vc4_submit_cl_ioctl() - Submits a job (frame) to the VC4.
 + * @dev: DRM device
 + * @data: ioctl argument
 + * @file_priv: DRM file for this fd
   *
 - * This is what is called batchbuffer emitting on other hardware.
 + * This is the main entrypoint for userspace to submit a 3D frame to
 + * the GPU.  Userspace provides the binner command list (if
 + * applicable), and the kernel sets up the render command list to draw
 + * to the framebuffer described in the ioctl, using the command lists
 + * that the 3D engine's binner will produce.
   */
  int
  vc4_submit_cl_ioctl(struct drm_device *dev, void *data,
index 461712e2f0d12f472f97d63869c36da954714a99,a1f42d125e6e84dee6e7f90e2e4b272b10335bc8..9fee38a942c43666fc41f6ce1de9f5a98c78ab5c
@@@ -50,8 -50,9 +50,9 @@@ static void vgem_gem_free_object(struc
        kfree(vgem_obj);
  }
  
- static int vgem_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ static int vgem_gem_fault(struct vm_fault *vmf)
  {
+       struct vm_area_struct *vma = vmf->vma;
        struct drm_vgem_gem_object *obj = vma->vm_private_data;
        /* We don't use vmf->pgoff since that has the fake offset */
        unsigned long vaddr = vmf->address;
@@@ -103,7 -104,7 +104,7 @@@ static int vgem_open(struct drm_device 
        return 0;
  }
  
 -static void vgem_preclose(struct drm_device *dev, struct drm_file *file)
 +static void vgem_postclose(struct drm_device *dev, struct drm_file *file)
  {
        struct vgem_file *vfile = file->driver_priv;
  
@@@ -287,7 -288,7 +288,7 @@@ static int vgem_prime_mmap(struct drm_g
        if (!obj->filp)
                return -ENODEV;
  
-       ret = obj->filp->f_op->mmap(obj->filp, vma);
+       ret = call_mmap(obj->filp, vma);
        if (ret)
                return ret;
  
  static struct drm_driver vgem_driver = {
        .driver_features                = DRIVER_GEM | DRIVER_PRIME,
        .open                           = vgem_open,
 -      .preclose                       = vgem_preclose,
 +      .postclose                      = vgem_postclose,
        .gem_free_object_unlocked       = vgem_gem_free_object,
        .gem_vm_ops                     = &vgem_gem_vm_ops,
        .ioctls                         = vgem_ioctls,
diff --combined drivers/of/platform.c
index f5bbb500ab80b4b9fa0c2123187e23b92c10adb2,5dfcc967dd052454674364b201c30d77e19485c6..45b413e5a4447fea8c5e2355f438ba6ba8de9ca7
@@@ -76,7 -76,7 +76,7 @@@ EXPORT_SYMBOL(of_find_device_by_node)
   * derive a unique name. If it cannot, then it will prepend names from
   * parent nodes until a unique name can be derived.
   */
- void of_device_make_bus_id(struct device *dev)
static void of_device_make_bus_id(struct device *dev)
  {
        struct device_node *node = dev->of_node;
        const __be32 *reg;
@@@ -571,77 -571,6 +571,77 @@@ void of_platform_depopulate(struct devi
  }
  EXPORT_SYMBOL_GPL(of_platform_depopulate);
  
 +static void devm_of_platform_populate_release(struct device *dev, void *res)
 +{
 +      of_platform_depopulate(*(struct device **)res);
 +}
 +
 +/**
 + * devm_of_platform_populate() - Populate platform_devices from device tree data
 + * @dev: device that requested to populate from device tree data
 + *
 + * Similar to of_platform_populate(), but will automatically call
 + * of_platform_depopulate() when the device is unbound from the bus.
 + *
 + * Returns 0 on success, < 0 on failure.
 + */
 +int devm_of_platform_populate(struct device *dev)
 +{
 +      struct device **ptr;
 +      int ret;
 +
 +      if (!dev)
 +              return -EINVAL;
 +
 +      ptr = devres_alloc(devm_of_platform_populate_release,
 +                         sizeof(*ptr), GFP_KERNEL);
 +      if (!ptr)
 +              return -ENOMEM;
 +
 +      ret = of_platform_populate(dev->of_node, NULL, NULL, dev);
 +      if (ret) {
 +              devres_free(ptr);
 +      } else {
 +              *ptr = dev;
 +              devres_add(dev, ptr);
 +      }
 +
 +      return ret;
 +}
 +EXPORT_SYMBOL_GPL(devm_of_platform_populate);
 +
 +static int devm_of_platform_match(struct device *dev, void *res, void *data)
 +{
 +      struct device **ptr = res;
 +
 +      if (!ptr) {
 +              WARN_ON(!ptr);
 +              return 0;
 +      }
 +
 +      return *ptr == data;
 +}
 +
 +/**
 + * devm_of_platform_depopulate() - Remove devices populated from device tree
 + * @dev: device that requested to depopulate from device tree data
 + *
 + * Complementary to devm_of_platform_populate(), this function removes children
 + * of the given device (and, recurrently, their children) that have been
 + * created from their respective device tree nodes (and only those,
 + * leaving others - eg. manually created - unharmed).
 + */
 +void devm_of_platform_depopulate(struct device *dev)
 +{
 +      int ret;
 +
 +      ret = devres_release(dev, devm_of_platform_populate_release,
 +                           devm_of_platform_match, dev);
 +
 +      WARN_ON(ret);
 +}
 +EXPORT_SYMBOL_GPL(devm_of_platform_depopulate);
 +
  #ifdef CONFIG_OF_DYNAMIC
  static int of_platform_notify(struct notifier_block *nb,
                                unsigned long action, void *arg)
diff --combined include/drm/drm_edid.h
index a55eea4afb61af0af7d31850898440309d8af92b,577d5063e63d7bb4fdc283832e07d961836a0060..3ead84d93792df1747dff7e4a2a4984470f75759
@@@ -249,6 -249,7 +249,7 @@@ struct detailed_timing 
  # define DRM_ELD_AUD_SYNCH_DELAY_MAX  0xfa    /* 500 ms */
  
  #define DRM_ELD_SPEAKER                       7
+ # define DRM_ELD_SPEAKER_MASK         0x7f
  # define DRM_ELD_SPEAKER_RLRC         (1 << 6)
  # define DRM_ELD_SPEAKER_FLRC         (1 << 5)
  # define DRM_ELD_SPEAKER_RC           (1 << 4)
@@@ -331,12 -332,11 +332,12 @@@ int drm_av_sync_delay(struct drm_connec
                      const struct drm_display_mode *mode);
  
  #ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE
 -int drm_load_edid_firmware(struct drm_connector *connector);
 +struct edid *drm_load_edid_firmware(struct drm_connector *connector);
  #else
 -static inline int drm_load_edid_firmware(struct drm_connector *connector)
 +static inline struct edid *
 +drm_load_edid_firmware(struct drm_connector *connector)
  {
 -      return 0;
 +      return ERR_PTR(-ENOENT);
  }
  #endif
  
@@@ -418,6 -418,18 +419,18 @@@ static inline int drm_eld_size(const ui
        return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
  }
  
+ /**
+  * drm_eld_get_spk_alloc - Get speaker allocation
+  * @eld: pointer to an ELD memory structure
+  *
+  * The returned value is the speakers mask. User has to use %DRM_ELD_SPEAKER
+  * field definitions to identify speakers.
+  */
+ static inline u8 drm_eld_get_spk_alloc(const uint8_t *eld)
+ {
+       return eld[DRM_ELD_SPEAKER] & DRM_ELD_SPEAKER_MASK;
+ }
  /**
   * drm_eld_get_conn_type - Get device type hdmi/dp connected
   * @eld: pointer to an ELD memory structure
index 45410ba0d4f75a373b035005292faea86db5cc5b,dd1e3e99dcffd078322b76106c957b7da8e5d78a..5244f059d23a06f6ad58fb6388451acf76cb8081
@@@ -101,8 -101,8 +101,8 @@@ struct drm_framebuffer_funcs 
   * cleanup (like releasing the reference(s) on the backing GEM bo(s))
   * should be deferred.  In cases like this, the driver would like to
   * hold a ref to the fb even though it has already been removed from
 - * userspace perspective. See drm_framebuffer_reference() and
 - * drm_framebuffer_unreference().
 + * userspace perspective. See drm_framebuffer_get() and
 + * drm_framebuffer_put().
   *
   * The refcount is stored inside the mode object @base.
   */
@@@ -204,50 -204,25 +204,50 @@@ void drm_framebuffer_cleanup(struct drm
  void drm_framebuffer_unregister_private(struct drm_framebuffer *fb);
  
  /**
 - * drm_framebuffer_reference - incr the fb refcnt
 - * @fb: framebuffer
 + * drm_framebuffer_get - acquire a framebuffer reference
 + * @fb: DRM framebuffer
 + *
 + * This function increments the framebuffer's reference count.
 + */
 +static inline void drm_framebuffer_get(struct drm_framebuffer *fb)
 +{
 +      drm_mode_object_get(&fb->base);
 +}
 +
 +/**
 + * drm_framebuffer_put - release a framebuffer reference
 + * @fb: DRM framebuffer
 + *
 + * This function decrements the framebuffer's reference count and frees the
 + * framebuffer if the reference count drops to zero.
 + */
 +static inline void drm_framebuffer_put(struct drm_framebuffer *fb)
 +{
 +      drm_mode_object_put(&fb->base);
 +}
 +
 +/**
 + * drm_framebuffer_reference - acquire a framebuffer reference
 + * @fb: DRM framebuffer
   *
 - * This functions increments the fb's refcount.
 + * This is a compatibility alias for drm_framebuffer_get() and should not be
 + * used by new code.
   */
  static inline void drm_framebuffer_reference(struct drm_framebuffer *fb)
  {
 -      drm_mode_object_reference(&fb->base);
 +      drm_framebuffer_get(fb);
  }
  
  /**
 - * drm_framebuffer_unreference - unref a framebuffer
 - * @fb: framebuffer to unref
 + * drm_framebuffer_unreference - release a framebuffer reference
 + * @fb: DRM framebuffer
   *
 - * This functions decrements the fb's refcount and frees it if it drops to zero.
 + * This is a compatibility alias for drm_framebuffer_put() and should not be
 + * used by new code.
   */
  static inline void drm_framebuffer_unreference(struct drm_framebuffer *fb)
  {
 -      drm_mode_object_unreference(&fb->base);
 +      drm_framebuffer_put(fb);
  }
  
  /**
   */
  static inline uint32_t drm_framebuffer_read_refcount(struct drm_framebuffer *fb)
  {
-       return atomic_read(&fb->base.refcount.refcount);
+       return kref_read(&fb->base.refcount);
  }
  
  /**
@@@ -273,9 -248,9 +273,9 @@@ static inline void drm_framebuffer_assi
                                          struct drm_framebuffer *fb)
  {
        if (fb)
 -              drm_framebuffer_reference(fb);
 +              drm_framebuffer_get(fb);
        if (*p)
 -              drm_framebuffer_unreference(*p);
 +              drm_framebuffer_put(*p);
        *p = fb;
  }
  
diff --combined include/drm/drm_mm.h
index f262da18011723b1f504321838d575a7274822be,2ef16bf258267ed33f442c78c6f622fde2716937..49b292e98fecf1da98e38c005eaf3137478626ef
@@@ -40,6 -40,7 +40,7 @@@
  #include <linux/bug.h>
  #include <linux/rbtree.h>
  #include <linux/kernel.h>
+ #include <linux/mm_types.h>
  #include <linux/list.h>
  #include <linux/spinlock.h>
  #ifdef CONFIG_DRM_DEBUG_MM
@@@ -459,13 -460,10 +460,13 @@@ __drm_mm_interval_first(const struct dr
   * but using the internal interval tree to accelerate the search for the
   * starting node, and so not safe against removal of elements. It assumes
   * that @end is within (or is the upper limit of) the drm_mm allocator.
 + * If [@start, @end] are beyond the range of the drm_mm, the iterator may walk
 + * over the special _unallocated_ &drm_mm.head_node, and may even continue
 + * indefinitely.
   */
  #define drm_mm_for_each_node_in_range(node__, mm__, start__, end__)   \
        for (node__ = __drm_mm_interval_first((mm__), (start__), (end__)-1); \
 -           node__ && node__->start < (end__);                         \
 +           node__->start < (end__);                                   \
             node__ = list_next_entry(node__, node_list))
  
  void drm_mm_scan_init_with_range(struct drm_mm_scan *scan,
This page took 0.180959 seconds and 4 git commands to generate.