Merge tag 'sunxi-drm-for-4.12' of https://git.kernel.org/pub/scm/linux/kernel/git...
authorDave Airlie <airlied@redhat.com>
Thu, 20 Apr 2017 03:19:34 +0000 (13:19 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 20 Apr 2017 03:19:34 +0000 (13:19 +1000)
Allwinner DRM changes for 4.12

Not any functional changes, but a lot of preliminary rework in order to
support multiple display pipelines.

* tag 'sunxi-drm-for-4.12' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: (26 commits)
  MAINTAINERS: Add sun4i-drm git repo
  drm/sun4i: Pass pointer for underlying backend into layer init
  drm/sun4i: Pass pointers for associated backend and tcon into crtc init
  drm/sun4i: tv: Get tcon and backend pointers from associated crtc
  drm/sun4i: Use embedded tcon pointer to get the tcon's output port node
  drm/sun4i: Fix tcon channel 0 comment about backporch = backporch + hsync
  drm/sun4i: Fix TCON clock and regmap initialization sequence
  drm/sun4i: Grab reserved memory region
  drm/sun4i: Add backend and tcon pointers to sun4i_crtc
  drm/sun4i: Add backend pointer to sun4i_layer
  drm/sun4i: rgb: Pass tcon pointer when initializing RGB encoder
  drm/sun4i: tv: Switch to drm_of_find_possible_crtcs
  drm/sun4i: Drop hardcoded .possible_crtcs values from layers
  drm/sun4i: Drop primary layer pointer from sun4i_drv
  drm/sun4i: Initialize crtc from tcon bind function
  drm/sun4i: Move layers from sun4i_drv to sun4i_crtc
  drm/sun4i: Add end of list element for sun4i_layers_init's returned list
  drm/sun4i: Set drm_crtc.port to the underlying TCON's output port node
  drm/sun4i: Make sunxi_rgb2yuv_coef constant
  drm/sun4i: Make sun4i_crtc_init return ERR_PTR style error codes
  ...

1  2 
MAINTAINERS
drivers/gpu/drm/sun4i/sun4i_drv.c
drivers/gpu/drm/sun4i/sun4i_rgb.c
drivers/gpu/drm/sun4i/sun4i_tcon.c

diff --combined MAINTAINERS
index 93ed0319b3d6f636e6dc5c46e3dc9bf5f42f4034,35bfd4a39c48a1861d13a6c0b49a5be84b2cb8a7..afba0760fdaf1e27dd3af3d625e2e99790cdccfb
@@@ -265,12 -265,6 +265,12 @@@ L:       linux-iio@vger.kernel.or
  S:    Maintained
  F:    drivers/iio/counter/104-quad-8.c
  
 +ACCES PCI-IDIO-16 GPIO DRIVER
 +M:    William Breathitt Gray <vilhelm.gray@gmail.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-pci-idio-16.c
 +
  ACENIC DRIVER
  M:    Jes Sorensen <jes@trained-monkey.org>
  L:    linux-acenic@sunsite.dk
@@@ -649,7 -643,7 +649,7 @@@ S: Maintaine
  F:    drivers/gpio/gpio-altera.c
  
  ALTERA SYSTEM RESOURCE DRIVER FOR ARRIA10 DEVKIT
 -M:    Thor Thayer <tthayer@opensource.altera.com>
 +M:    Thor Thayer <thor.thayer@linux.intel.com>
  S:    Maintained
  F:    drivers/gpio/gpio-altera-a10sr.c
  F:    drivers/mfd/altera-a10sr.c
@@@ -883,8 -877,8 +883,8 @@@ S: Odd fixe
  F:    drivers/hwmon/applesmc.c
  
  APPLETALK NETWORK LAYER
 -M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
 -S:    Maintained
 +L:    netdev@vger.kernel.org
 +S:    Odd fixes
  F:    drivers/net/appletalk/
  F:    net/appletalk/
  
@@@ -1234,9 -1228,13 +1234,9 @@@ S:     Maintaine
  N:    efm32
  
  ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6)
 -M:    Daniel Ribeiro <drwyrm@gmail.com>
 -M:    Stefan Schmidt <stefan@openezx.org>
 -M:    Harald Welte <laforge@openezx.org>
 -L:    openezx-devel@lists.openezx.org (moderated for non-subscribers)
 -W:    http://www.openezx.org/
 +M:    Robert Jarzmik <robert.jarzmik@free.fr>
 +L:    linux-arm-kernel@lists.infradead.org (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
@@@ -1525,10 -1523,8 +1525,10 @@@ L:    linux-arm-kernel@lists.infradead.or
  L:    linux-mediatek@lists.infradead.org (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
  
@@@ -1633,7 -1629,6 +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
@@@ -1793,7 -1788,7 +1793,7 @@@ S:      Maintaine
  F:    drivers/clk/socfpga/
  
  ARM/SOCFPGA EDAC SUPPORT
 -M:    Thor Thayer <tthayer@opensource.altera.com>
 +M:    Thor Thayer <thor.thayer@linux.intel.com>
  S:    Maintained
  F:    drivers/edac/altera_edac.
  
@@@ -1988,18 -1983,12 +1988,18 @@@ F:   arch/arm/mach-pxa/include/mach/z2.
  
  ARM/ZTE ARCHITECTURE
  M:    Jun Nie <jun.nie@linaro.org>
 +M:    Baoyou Xie <baoyou.xie@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (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 <michal.simek@xilinx.com>
@@@ -2358,14 -2347,6 +2358,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/sound/axentia,*
  F:    sound/soc/atmel/tse850-pcm5142.c
  
 +AXENTIA ARM DEVICES
 +M:    Peter Rosin <peda@axentia.se>
 +L:    linux-arm-kernel@lists.infradead.org (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 <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
@@@ -2399,15 -2380,12 +2399,15 @@@ S:   Maintaine
  F:    drivers/net/wireless/broadcom/b43legacy/
  
  BACKLIGHT CLASS/SUBSYSTEM
 -M:    Jingoo Han <jingoohan1@gmail.com>
  M:    Lee Jones <lee.jones@linaro.org>
 +M:    Daniel Thompson <daniel.thompson@linaro.org>
 +M:    Jingoo Han <jingoohan1@gmail.com>
  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 <mareklindner@neomailbox.ch>
@@@ -2445,14 -2423,6 +2445,14 @@@ W:    https://linuxtv.or
  S:    Supported
  F:    drivers/media/platform/sti/bdisp
  
 +DELTA ST MEDIA DRIVER
 +M:    Hugues Fruchet <hugues.fruchet@st.com>
 +L:    linux-media@vger.kernel.org
 +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 <luisbg@osg.samsung.com>
  M:    Salah Triki <salah.triki@gmail.com>
@@@ -2629,12 -2599,6 +2629,12 @@@ L:    netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bnx2x/
  
 +BROADCOM BNXT_EN 50 GIGABIT ETHERNET DRIVER
 +M:    Michael Chan <michael.chan@broadcom.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/broadcom/bnxt/
 +
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Ray Jui <rjui@broadcom.com>
@@@ -2654,7 -2618,7 +2654,7 @@@ M:      Lee Jones <lee@kernel.org
  M:    Eric Anholt <eric@anholt.net>
  L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (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
@@@ -2728,13 -2692,6 +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 <mmayer@broadcom.com>
 +M:    bcm-kernel-feedback-list@broadcom.com
 +L:    linux-pm@vger.kernel.org
 +S:    Maintained
 +F:    drivers/cpufreq/bmips-cpufreq.c
 +
  BROADCOM TG3 GIGABIT ETHERNET DRIVER
  M:    Siva Reddy Kallam <siva.kallam@broadcom.com>
  M:    Prashant Sreedharan <prashant@broadcom.com>
@@@ -2845,17 -2802,6 +2845,17 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    arch/arm64/boot/dts/broadcom/vulcan*
  
 +BROADCOM NETXTREME-E ROCE DRIVER
 +M:    Selvin Xavier <selvin.xavier@broadcom.com>
 +M:    Devesh Sharma <devesh.sharma@broadcom.com>
 +M:    Somnath Kotur <somnath.kotur@broadcom.com>
 +M:    Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
 +L:    linux-rdma@vger.kernel.org
 +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 <anil.gurumurthy@qlogic.com>
  M:    Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
@@@ -3026,13 -2972,6 +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 <jnair@caviumnetworks.com>
 +L:    linux-arm-kernel@lists.infradead.org (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 <jglauber@cavium.com>
  M:    David Daney <david.daney@cavium.com>
@@@ -3051,13 -2990,6 +3051,13 @@@ W:     http://www.cavium.co
  S:     Supported
  F:     drivers/net/ethernet/cavium/liquidio/
  
 +CAVIUM OCTEON-TX CRYPTO DRIVER
 +M:    George Cherian <george.cherian@cavium.com>
 +L:    linux-crypto@vger.kernel.org
 +W:    http://www.cavium.com
 +S:    Supported
 +F:    drivers/crypto/cavium/cpt/
 +
  CC2520 IEEE-802.15.4 RADIO DRIVER
  M:    Varka Bhadram <varkabhadram@gmail.com>
  L:    linux-wpan@vger.kernel.org
@@@ -3216,6 -3148,7 +3216,6 @@@ F:      drivers/platform/chrome
  
  CISCO VIC ETHERNET NIC DRIVER
  M:    Christian Benvenuti <benve@cisco.com>
 -M:    Sujith Sankar <ssujith@cisco.com>
  M:    Govindarajulu Varadarajan <_govind@gmx.com>
  M:    Neel Patel <neepatel@cisco.com>
  S:    Supported
@@@ -3451,7 -3384,6 +3451,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 <viresh.kumar@linaro.org>
@@@ -3973,13 -3905,10 +3973,13 @@@ S:   Maintaine
  F:    drivers/i2c/busses/i2c-diolan-u2c.c
  
  DIRECT ACCESS (DAX)
 -M:    Matthew Wilcox <willy@linux.intel.com>
 +M:    Matthew Wilcox <mawilcox@microsoft.com>
 +M:    Ross Zwisler <ross.zwisler@linux.intel.com>
  L:    linux-fsdevel@vger.kernel.org
  S:    Supported
  F:    fs/dax.c
 +F:    include/linux/dax.h
 +F:    include/trace/events/fs_dax.h
  
  DIRECTORY NOTIFICATION (DNOTIFY)
  M:    Eric Paris <eparis@parisplace.org>
@@@ -4117,13 -4046,14 +4117,13 @@@ F:   drivers/block/drbd
  F:    lib/lru_cache.c
  F:    Documentation/blockdev/drbd/
  
 -DRIVER CORE, KOBJECTS, DEBUGFS, KERNFS AND SYSFS
 +DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
  S:    Supported
  F:    Documentation/kobject.txt
  F:    drivers/base/
  F:    fs/debugfs/
 -F:    fs/kernfs/
  F:    fs/sysfs/
  F:    include/linux/debugfs.h
  F:    include/linux/kobj*
@@@ -4144,7 -4074,6 +4144,7 @@@ F:      Documentation/devicetree/bindings/vi
  F:    Documentation/gpu/
  F:    include/drm/
  F:    include/uapi/drm/
 +F:    include/linux/vga*
  
  DRM DRIVERS AND MISC GPU PATCHES
  M:    Daniel Vetter <daniel.vetter@intel.com>
@@@ -4158,7 -4087,6 +4158,7 @@@ F:      drivers/gpu/vga
  F:    drivers/gpu/drm/*
  F:    include/drm/drm*
  F:    include/uapi/drm/drm*
 +F:    include/linux/vga*
  
  DRM DRIVER FOR AST SERVER GRAPHICS CHIPS
  M:    Dave Airlie <airlied@redhat.com>
@@@ -4247,6 -4175,7 +4247,7 @@@ L:      dri-devel@lists.freedesktop.or
  S:    Supported
  F:    drivers/gpu/drm/sun4i/
  F:    Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux.git
  
  DRM DRIVERS FOR AMLOGIC SOCS
  M:    Neil Armstrong <narmstrong@baylibre.com>
@@@ -4256,8 -4185,7 +4257,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
 +F:    Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.txt
 +F:    Documentation/gpu/meson.rst
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DRM DRIVERS FOR EXYNOS
@@@ -4383,7 -4311,6 +4384,7 @@@ S:      Supporte
  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/renesas,du.txt
  
  DRM DRIVER FOR QXL VIRTUAL GPU
@@@ -4784,12 -4711,6 +4785,12 @@@ L:    linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/mpc85xx_edac.[ch]
  
 +EDAC-PND2
 +M:    Tony Luck <tony.luck@intel.com>
 +L:    linux-edac@vger.kernel.org
 +S:    Maintained
 +F:    drivers/edac/pnd2_edac.[ch]
 +
  EDAC-PASEMI
  M:    Egor Martovetsky <egor@pasemi.com>
  L:    linux-edac@vger.kernel.org
@@@ -4937,7 -4858,6 +4938,7 @@@ F:      include/linux/netfilter_bridge
  F:    net/bridge/
  
  ETHERNET PHY LIBRARY
 +M:    Andrew Lunn <andrew@lunn.ch>
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
@@@ -5049,6 -4969,7 +5050,6 @@@ F:      lib/fault-inject.
  
  FBTFT Framebuffer drivers
  M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 -M:    Noralf Trønnes <noralf@tronnes.org>
  S:    Maintained
  F:    drivers/staging/fbtft/
  
@@@ -5367,7 -5288,7 +5368,7 @@@ M:      Jaegeuk Kim <jaegeuk@kernel.org
  L:    linux-fsdevel@vger.kernel.org
  S:    Supported
  F:    fs/crypto/
 -F:    include/linux/fscrypto.h
 +F:    include/linux/fscrypt*.h
  
  F2FS FILE SYSTEM
  M:    Jaegeuk Kim <jaegeuk@kernel.org>
@@@ -5725,14 -5646,6 +5726,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 <pablo@netfilter.org>
 +M:    Harald Welte <laforge@gnumonks.org>
 +L:    osmocom-net-gprs@lists.osmocom.org
 +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 <dave@stgolabs.net>
  L:    linux-efi@vger.kernel.org
@@@ -5832,6 -5745,16 +5833,6 @@@ L:     linux-parisc@vger.kernel.or
  S:    Maintained
  F:    sound/parisc/harmony.*
  
 -HD29L2 MEDIA DRIVER
 -M:    Antti Palosaari <crope@iki.fi>
 -L:    linux-media@vger.kernel.org
 -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 <jimmy.vance@hpe.com>
  S:    Supported
@@@ -6026,8 -5949,9 +6027,8 @@@ F:      include/linux/hsi
  F:    include/uapi/linux/hsi/
  
  HSO 3G MODEM DRIVER
 -M:    Jan Dumon <j.dumon@option.com>
 -W:    http://www.pharscape.org
 -S:    Maintained
 +L:    linux-usb@vger.kernel.org
 +S:    Orphan
  F:    drivers/net/usb/hso.c
  
  HSR NETWORK PROTOCOL
@@@ -6064,7 -5988,6 +6065,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
@@@ -6284,11 -6207,6 +6285,11 @@@ S:    Maintaine
  F:    drivers/mfd/lpc_ich.c
  F:    drivers/gpio/gpio-ich.c
  
 +IDT VersaClock 5 CLOCK DRIVER
 +M:    Marek Vasut <marek.vasut@gmail.com>
 +S:    Maintained
 +F:    drivers/clk/clk-versaclock5.c
 +
  IDE SUBSYSTEM
  M:    "David S. Miller" <davem@davemloft.net>
  L:    linux-ide@vger.kernel.org
@@@ -6340,13 -6258,6 +6341,13 @@@ F:    include/net/cfg802154.
  F:    include/net/ieee802154_netdev.h
  F:    Documentation/networking/ieee802154.txt
  
 +IFE PROTOCOL
 +M:    Yotam Gigi <yotamg@mellanox.com>
 +M:    Jamal Hadi Salim <jhs@mojatatu.com>
 +F:    net/ife
 +F:    include/net/ife.h
 +F:    include/uapi/linux/ife.h
 +
  IGORPLUG-USB IR RECEIVER
  M:    Sean Young <sean@mess.org>
  L:    linux-media@vger.kernel.org
@@@ -6830,8 -6741,9 +6831,8 @@@ S:      Odd Fixe
  F:    drivers/tty/ipwireless/
  
  IPX NETWORK LAYER
 -M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  L:    netdev@vger.kernel.org
 -S:    Maintained
 +S:    Odd fixes
  F:    include/net/ipx.h
  F:    include/uapi/linux/ipx.h
  F:    net/ipx/
@@@ -7099,9 -7011,9 +7100,9 @@@ S:      Maintaine
  F:    fs/autofs4/
  
  KERNEL BUILD + files below scripts/ (unless maintained elsewhere)
 +M:    Masahiro Yamada <yamada.masahiro@socionext.com>
  M:    Michal Marek <mmarek@suse.com>
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild.git for-next
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild.git rc-fixes
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
  L:    linux-kbuild@vger.kernel.org
  S:    Maintained
  F:    Documentation/kbuild/
@@@ -7218,14 -7130,6 +7219,14 @@@ F:    arch/mips/include/uapi/asm/kvm
  F:    arch/mips/include/asm/kvm*
  F:    arch/mips/kvm/
  
 +KERNFS
 +M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +M:    Tejun Heo <tj@kernel.org>
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
 +S:    Supported
 +F:    include/linux/kernfs.h
 +F:    fs/kernfs/
 +
  KEXEC
  M:    Eric Biederman <ebiederm@xmission.com>
  W:    http://kernel.org/pub/linux/utils/kernel/kexec/
@@@ -7307,7 -7211,6 +7308,7 @@@ M:      Masami Hiramatsu <mhiramat@kernel.or
  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
@@@ -7504,24 -7407,18 +7505,24 @@@ L:   linuxppc-dev@lists.ozlabs.or
  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
@@@ -7618,8 -7515,8 +7619,8 @@@ S:      Maintaine
  F:    drivers/misc/lkdtm*
  
  LLC (802.2)
 -M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
 -S:    Maintained
 +L:    netdev@vger.kernel.org
 +S:    Odd fixes
  F:    include/linux/llc.h
  F:    include/uapi/linux/llc.h
  F:    include/net/llc*
@@@ -7652,7 -7549,6 +7653,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 <linux@roeck-us.net>
@@@ -7797,6 -7693,13 +7798,6 @@@ F:     include/net/mac80211.
  F:    net/mac80211/
  F:    drivers/net/wireless/mac80211_hwsim.[ch]
  
 -MACVLAN DRIVER
 -M:    Patrick McHardy <kaber@trash.net>
 -L:    netdev@vger.kernel.org
 -S:    Maintained
 -F:    drivers/net/macvlan.c
 -F:    include/linux/if_macvlan.h
 -
  MAILBOX API
  M:    Jassi Brar <jassisinghbrar@gmail.com>
  L:    linux-kernel@vger.kernel.org
@@@ -7811,12 -7714,6 +7812,12 @@@ W:    http://www.kernel.org/doc/man-page
  L:    linux-man@vger.kernel.org
  S:    Maintained
  
 +MARDUK (CREATOR CI40) DEVICE TREE SUPPORT
 +M:    Rahul Bedarkar <rahul.bedarkar@imgtec.com>
 +L:    linux-mips@linux-mips.org
 +S:    Maintained
 +F:    arch/mips/boot/dts/img/pistachio_marduk.dts
 +
  MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER
  M:    Andrew Lunn <andrew@lunn.ch>
  M:    Vivien Didelot <vivien.didelot@savoirfairelinux.com>
@@@ -7869,8 -7766,6 +7870,8 @@@ F:      drivers/net/ethernet/marvell/mvneta.
  MARVELL MWIFIEX WIRELESS DRIVER
  M:    Amitkumar Karwar <akarwar@marvell.com>
  M:    Nishant Sarmukadam <nishants@marvell.com>
 +M:    Ganapathi Bhat <gbhat@marvell.com>
 +M:    Xinming Hu <huxm@marvell.com>
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
  F:    drivers/net/wireless/marvell/mwifiex/
@@@ -8135,14 -8030,6 +8136,14 @@@ L:    linux-wireless@vger.kernel.or
  S:    Maintained
  F:    drivers/net/wireless/mediatek/mt7601u/
  
 +MEGACHIPS STDPXXXX-GE-B850V3-FW LVDS/DP++ BRIDGES
 +M:    Peter Senna Tschudin <peter.senna@collabora.com>
 +M:    Martin Donnelly <martin.donnelly@ge.com>
 +M:    Martyn Welch <martyn.welch@collabora.co.uk>
 +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 <kashyap.desai@broadcom.com>
  M:    Sumit Saxena <sumit.saxena@broadcom.com>
@@@ -8328,13 -8215,6 +8329,13 @@@ 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 <richard.leitner@skidata.com>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    drivers/usb/misc/usb251xb.c
 +F:    Documentation/devicetree/bindings/usb/usb251xb.txt
 +
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <yu.c.chen@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -8457,7 -8337,6 +8458,7 @@@ F:      drivers/media/dvb-frontends/mn88473
  MODULE SUPPORT
  M:    Jessica Yu <jeyu@redhat.com>
  M:    Rusty Russell <rusty@rustcorp.com.au>
 +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
@@@ -8566,7 -8445,6 +8567,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 <ulf.hansson@linaro.org>
@@@ -8702,8 -8580,9 +8703,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 <pablo@netfilter.org>
 -M:    Patrick McHardy <kaber@trash.net>
  M:    Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
  L:    netfilter-devel@vger.kernel.org
  L:    coreteam@netfilter.org
@@@ -8748,10 -8627,10 +8749,10 @@@ S:   Maintaine
  F:    drivers/net/ethernet/netronome/
  
  NETWORK BLOCK DEVICE (NBD)
 -M:    Markus Pargmann <mpa@pengutronix.de>
 +M:    Josef Bacik <jbacik@fb.com>
  S:    Maintained
 +L:    linux-block@vger.kernel.org
  L:    nbd-general@lists.sourceforge.net
 -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
@@@ -8947,22 -8826,6 +8948,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 <pavel@ucw.cz>
 +M:    Sakari Ailus <sakari.ailus@iki.fi>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/i2c/et8ek8
 +F:    drivers/media/i2c/ad5820.c
 +
 +NOKIA N900 CAMERA SUPPORT (ET8EK8 SENSOR, AD5820 FOCUS)
 +M:    Pavel Machek <pavel@ucw.cz>
 +M:    Sakari Ailus <sakari.ailus@iki.fi>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/i2c/et8ek8
 +F:    drivers/media/i2c/ad5820.c
 +
  NOKIA N900 POWER SUPPLY DRIVERS
  R:    Pali RohĂ¡r <pali.rohar@gmail.com>
  F:    include/linux/power/bq2415x_charger.h
@@@ -9086,20 -8949,7 +9087,20 @@@ M:    Josh Poimboeuf <jpoimboe@redhat.com
  S:    Supported
  F:    tools/objtool/
  
 -OMAP SUPPORT
 +OMAP1 SUPPORT
 +M:    Aaro Koskinen <aaro.koskinen@iki.fi>
 +M:    Tony Lindgren <tony@atomide.com>
 +L:    linux-omap@vger.kernel.org
 +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 <tony@atomide.com>
  L:    linux-omap@vger.kernel.org
  W:    http://www.muru.com/linux/omap/
@@@ -9107,8 -8957,8 +9108,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
@@@ -9351,7 -9201,6 +9352,7 @@@ OPENRISC ARCHITECTUR
  M:    Jonas Bonn <jonas@southpole.se>
  M:    Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
  M:    Stafford Horne <shorne@gmail.com>
 +T:    git git://github.com/openrisc/linux.git
  L:    openrisc@lists.librecores.org
  W:    http://openrisc.io
  S:    Maintained
@@@ -9534,14 -9383,6 +9535,14 @@@ F:    drivers/video/fbdev/sti
  F:    drivers/video/console/sti*
  F:    drivers/video/logo/logo_parisc*
  
 +PARMAN
 +M:    Jiri Pirko <jiri@mellanox.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    lib/parman.c
 +F:    lib/test_parman.c
 +F:    include/linux/parman.h
 +
  PC87360 HARDWARE MONITORING DRIVER
  M:    Jim Cromie <jim.cromie@gmail.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -9628,7 -9469,7 +9629,7 @@@ L:      linux-pci@vger.kernel.or
  L:    linux-arm-kernel@lists.infradead.org
  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 <tinamdar@apm.com>
@@@ -9646,7 -9487,7 +9647,7 @@@ L:      linuxppc-dev@lists.ozlabs.or
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
 -F:    drivers/pci/host/*layerscape*
 +F:    drivers/pci/dwc/*layerscape*
  
  PCI DRIVER FOR IMX6
  M:    Richard Zhu <hongxing.zhu@nxp.com>
@@@ -9655,14 -9496,14 +9656,14 @@@ L:   linux-pci@vger.kernel.or
  L:    linux-arm-kernel@lists.infradead.org (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 <m-karicheri2@ti.com>
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    drivers/pci/host/*keystone*
 +F:    drivers/pci/dwc/*keystone*
  
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
@@@ -9694,7 -9535,7 +9695,7 @@@ L:      linux-omap@vger.kernel.or
  L:    linux-pci@vger.kernel.org
  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 <horms@verge.net.au>
@@@ -9709,7 -9550,7 +9710,7 @@@ L:      linux-pci@vger.kernel.or
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org (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 <jingoohan1@gmail.com>
@@@ -9717,7 -9558,7 +9718,7 @@@ M:      Joao Pinto <Joao.Pinto@synopsys.com
  L:    linux-pci@vger.kernel.org
  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 <will.deacon@arm.com>
@@@ -9738,7 -9579,7 +9739,7 @@@ PCIE DRIVER FOR ST SPEAR13X
  M:    Pratyush Anand <pratyush.anand@gmail.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
 -F:    drivers/pci/host/*spear*
 +F:    drivers/pci/dwc/*spear*
  
  PCI MSI DRIVER FOR ALTERA MSI IP
  M:    Ley Foon Tan <lftan@altera.com>
@@@ -9763,7 -9604,7 +9764,7 @@@ L:      linux-arm-kernel@axis.co
  L:    linux-pci@vger.kernel.org
  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 <wangzhou1@hisilicon.com>
@@@ -9771,7 -9612,7 +9772,7 @@@ M:      Gabriele Paoloni <gabriele.paoloni@h
  L:    linux-pci@vger.kernel.org
  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 <shawn.lin@rock-chips.com>
@@@ -9787,7 -9628,7 +9788,7 @@@ M:     Stanimir Varbanov <svarbanov@mm-
  L:     linux-pci@vger.kernel.org
  L:     linux-arm-msm@vger.kernel.org
  S:     Maintained
 -F:     drivers/pci/host/*qcom*
 +F:     drivers/pci/dwc/*qcom*
  
  PCIE DRIVER FOR CAVIUM THUNDERX
  M:    David Daney <david.daney@cavium.com>
@@@ -9961,7 -9802,7 +9962,7 @@@ L:      linux-mips@linux-mips.or
  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
@@@ -10105,14 -9946,6 +10106,14 @@@ S:  Supporte
  F:    Documentation/preempt-locking.txt
  F:    include/linux/preempt.h
  
 +PRINTK
 +M:    Petr Mladek <pmladek@suse.com>
 +M:    Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
 +R:    Steven Rostedt <rostedt@goodmis.org>
 +S:    Maintained
 +F:    kernel/printk/
 +F:    include/linux/printk.h
 +
  PRISM54 WIRELESS DRIVER
  M:    "Luis R. Rodriguez" <mcgrof@gmail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -10148,27 -9981,17 +10149,27 @@@ L: linuxppc-dev@lists.ozlabs.or
  S:    Maintained
  F:    drivers/block/ps3vram.c
  
 +PSAMPLE PACKET SAMPLING SUPPORT:
 +M:    Yotam Gigi <yotamg@mellanox.com>
 +S:    Maintained
 +F:    net/psample
 +F:    include/net/psample.h
 +F:    include/uapi/linux/psample.h
 +
  PSTORE FILESYSTEM
 +M:    Kees Cook <keescook@chromium.org>
  M:    Anton Vorontsov <anton@enomsg.org>
  M:    Colin Cross <ccross@android.com>
 -M:    Kees Cook <keescook@chromium.org>
  M:    Tony Luck <tony.luck@intel.com>
  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 <richardcochran@gmail.com>
@@@ -10359,12 -10182,6 +10360,12 @@@ L: linux-scsi@vger.kernel.or
  S:    Supported
  F:    drivers/scsi/qedi/
  
 +QLOGIC QL41xxx FCOE DRIVER
 +M:    QLogic-Storage-Upstream@cavium.com
 +L:    linux-scsi@vger.kernel.org
 +S:    Supported
 +F:    drivers/scsi/qedf/
 +
  QNX4 FILESYSTEM
  M:    Anders Larsen <al@alarsen.net>
  W:    http://www.alarsen.net/linux/qnx4fs/
@@@ -10374,8 -10191,7 +10375,8 @@@ F:   include/uapi/linux/qnx4_fs.
  F:    include/uapi/linux/qnxtypes.h
  
  QORIQ DPAA2 FSL-MC BUS DRIVER
 -M:    Stuart Yoder <stuart.yoder@nxp.com>
 +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/
@@@ -10638,7 -10454,6 +10639,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 <geert+renesas@glider.be>
@@@ -10653,12 -10468,6 +10654,12 @@@ L: linux-renesas-soc@vger.kernel.or
  F:    drivers/net/ethernet/renesas/
  F:    include/linux/sh_eth.h
  
 +RENESAS R-CAR GYROADC DRIVER
 +M:    Marek Vasut <marek.vasut@gmail.com>
 +L:    linux-iio@vger.kernel.org
 +S:    Supported
 +F:    drivers/iio/adc/rcar_gyro_adc.c
 +
  RENESAS USB2 PHY DRIVER
  M:    Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  L:    linux-renesas-soc@vger.kernel.org
@@@ -10798,7 -10607,7 +10799,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:    linux-wireless@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8xxxu-devel
  S:    Maintained
@@@ -10840,7 -10649,6 +10841,7 @@@ F:   drivers/s390/block/dasd
  F:    block/partitions/ibm.c
  
  S390 NETWORK DRIVERS
 +M:    Julian Wiedmann <jwi@linux.vnet.ibm.com>
  M:    Ursula Braun <ubraun@linux.vnet.ibm.com>
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -10871,7 -10679,6 +10872,7 @@@ S:   Supporte
  F:    drivers/s390/scsi/zfcp_*
  
  S390 IUCV NETWORK LAYER
 +M:    Julian Wiedmann <jwi@linux.vnet.ibm.com>
  M:    Ursula Braun <ubraun@linux.vnet.ibm.com>
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -11053,14 -10860,6 +11054,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/serial/
  F:    drivers/tty/serial/
  
 +SERIAL DEVICE BUS
 +M:    Rob Herring <robh@kernel.org>
 +L:    linux-serial@vger.kernel.org
 +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 <sean@mess.org>
  L:    linux-media@vger.kernel.org
@@@ -11074,13 -10873,6 +11075,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 <ubraun@linux.vnet.ibm.com>
 +L:    linux-s390@vger.kernel.org
 +W:    http://www.ibm.com/developerworks/linux/linux390/
 +S:    Supported
 +F:    net/smc/
 +
  SYNOPSYS DESIGNWARE DMAC DRIVER
  M:    Viresh Kumar <vireshk@kernel.org>
  M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
@@@ -11089,6 -10881,13 +11090,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 <lars.persson@axis.com>
 -L: netdev@vger.kernel.org
 -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 <jarkko.nikula@linux.intel.com>
  R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
@@@ -11102,6 -10901,7 +11103,6 @@@ SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVE
  M:    Jaehoon Chung <jh80.chung@samsung.com>
  L:    linux-mmc@vger.kernel.org
  S:    Maintained
 -F:    include/linux/mmc/dw_mmc.h
  F:    drivers/mmc/host/dw_mmc*
  
  SYSTEM TRACE MODULE CLASS
@@@ -11304,17 -11104,6 +11305,17 @@@ L: linux-mmc@vger.kernel.or
  S:    Maintained
  F:    drivers/mmc/host/sdhci-spear.c
  
 +SECURE ENCRYPTING DEVICE (SED) OPAL DRIVER
 +M:    Scott Bauer <scott.bauer@intel.com>
 +M:    Jonathan Derrick <jonathan.derrick@intel.com>
 +M:    Rafael Antognolli <rafael.antognolli@intel.com>
 +L:    linux-block@vger.kernel.org
 +S:    Supported
 +F:    block/sed*
 +F:    block/opal_proto.h
 +F:    include/linux/sed*
 +F:    include/uapi/linux/sed*
 +
  SECURITY SUBSYSTEM
  M:    James Morris <james.l.morris@oracle.com>
  M:    "Serge E. Hallyn" <serge@hallyn.com>
@@@ -11495,14 -11284,6 +11496,14 @@@ F: drivers/media/usb/siano
  F:    drivers/media/usb/siano/
  F:    drivers/media/mmc/siano/
  
 +SILEAD TOUCHSCREEN DRIVER
 +M:    Hans de Goede <hdegoede@redhat.com>
 +L:    linux-input@vger.kernel.org
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    drivers/input/touchscreen/silead.c
 +F:    drivers/platform/x86/silead_dmi.c
 +
  SIMPLEFB FB DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    linux-fbdev@vger.kernel.org
@@@ -11549,13 -11330,6 +11550,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 <Jason@zx2c4.com>
 +S:    Maintained
 +F:    lib/siphash.c
 +F:    lib/test_siphash.c
 +F:    include/linux/siphash.h
 +
  TI DAVINCI MACHINE SUPPORT
  M:    Sekhar Nori <nsekhar@ti.com>
  M:    Kevin Hilman <khilman@kernel.org>
@@@ -12127,7 -11901,6 +12128,7 @@@ F:   include/linux/swiotlb.
  
  SWITCHDEV
  M:    Jiri Pirko <jiri@resnulli.us>
 +M:    Ivan Vecera <ivecera@redhat.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    net/switchdev/
@@@ -13221,7 -12994,7 +13222,7 @@@ USERSPACE I/O (UIO
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  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
  
@@@ -13277,14 -13050,6 +13278,14 @@@ L: kvm@vger.kernel.or
  S:    Maintained
  F:    drivers/vfio/platform/
  
 +VGA_SWITCHEROO
 +R:    Lukas Wunner <lukas@wunner.de>
 +S:    Maintained
 +F:    Documentation/gpu/vga-switcheroo.rst
 +F:    drivers/gpu/vga/vga_switcheroo.c
 +F:    include/linux/vga_switcheroo.h
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +
  VIDEOBUF2 FRAMEWORK
  M:    Pawel Osciak <pawel@osciak.com>
  M:    Marek Szyprowski <m.szyprowski@samsung.com>
@@@ -13331,7 -13096,7 +13332,7 @@@ F:   drivers/virtio
  F:    tools/virtio/
  F:    drivers/net/virtio_net.c
  F:    drivers/block/virtio_blk.c
 -F:    include/linux/virtio_*.h
 +F:    include/linux/virtio*.h
  F:    include/uapi/linux/virtio_*.h
  F:    drivers/crypto/virtio/
  
@@@ -13419,6 -13184,14 +13420,6 @@@ W:  https://linuxtv.or
  S:    Maintained
  F:    drivers/media/platform/vivid/*
  
 -VLAN (802.1Q)
 -M:    Patrick McHardy <kaber@trash.net>
 -L:    netdev@vger.kernel.org
 -S:    Maintained
 -F:    drivers/net/macvlan.c
 -F:    include/linux/if_*vlan.h
 -F:    net/8021q/
 -
  VLYNQ BUS
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    openwrt-devel@lists.openwrt.org (subscribers-only)
@@@ -13614,8 -13387,10 +13615,8 @@@ S:  Maintaine
  F:    drivers/input/misc/wistron_btns.c
  
  WL3501 WIRELESS PCMCIA CARD DRIVER
 -M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  L:    linux-wireless@vger.kernel.org
 -W:    http://oops.ghostprotocols.net:81/blog
 -S:    Maintained
 +S:    Odd fixes
  F:    drivers/net/wireless/wl3501*
  
  WOLFSON MICROELECTRONICS DRIVERS
@@@ -13878,24 -13653,6 +13879,24 @@@ L: zd1211-devs@lists.sourceforge.net (s
  S:    Maintained
  F:    drivers/net/wireless/zydas/zd1211rw/
  
 +ZD1301_DEMOD MEDIA DRIVER
 +M:    Antti Palosaari <crope@iki.fi>
 +L:    linux-media@vger.kernel.org
 +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 <crope@iki.fi>
 +L:    linux-media@vger.kernel.org
 +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 <ddstreet@ieee.org>
  L:    linux-mm@kvack.org
index 329ea56106a5c1e546d4dbd9b0f654884f0b3b6d,767bbadcc85d5ec5bdb790081abdc2bbd7381b07..8ddd72cd58736e3f6e0935087cccdab802e6dd96
@@@ -12,6 -12,7 +12,7 @@@
  
  #include <linux/component.h>
  #include <linux/of_graph.h>
+ #include <linux/of_reserved_mem.h>
  
  #include <drm/drmP.h>
  #include <drm/drm_crtc_helper.h>
  #include <drm/drm_fb_helper.h>
  #include <drm/drm_of.h>
  
- #include "sun4i_crtc.h"
  #include "sun4i_drv.h"
  #include "sun4i_framebuffer.h"
- #include "sun4i_layer.h"
+ #include "sun4i_tcon.h"
  
 -static const struct file_operations sun4i_drv_fops = {
 -      .owner          = THIS_MODULE,
 -      .open           = drm_open,
 -      .release        = drm_release,
 -      .unlocked_ioctl = drm_ioctl,
 -      .compat_ioctl   = drm_compat_ioctl,
 -      .poll           = drm_poll,
 -      .read           = drm_read,
 -      .llseek         = no_llseek,
 -      .mmap           = drm_gem_cma_mmap,
 -};
 +DEFINE_DRM_GEM_CMA_FOPS(sun4i_drv_fops);
  
  static struct drm_driver sun4i_drv_driver = {
        .driver_features        = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_ATOMIC,
@@@ -92,30 -102,25 +92,25 @@@ static int sun4i_drv_bind(struct devic
        }
        drm->dev_private = drv;
  
-       drm_vblank_init(drm, 1);
+       ret = of_reserved_mem_device_init(dev);
+       if (ret && ret != -ENODEV) {
+               dev_err(drm->dev, "Couldn't claim our memory region\n");
+               goto free_drm;
+       }
+       /* drm_vblank_init calls kcalloc, which can fail */
+       ret = drm_vblank_init(drm, 1);
+       if (ret)
+               goto free_mem_region;
        drm_mode_config_init(drm);
  
        ret = component_bind_all(drm->dev, drm);
        if (ret) {
                dev_err(drm->dev, "Couldn't bind all pipelines components\n");
-               goto free_drm;
-       }
-       /* Create our layers */
-       drv->layers = sun4i_layers_init(drm);
-       if (IS_ERR(drv->layers)) {
-               dev_err(drm->dev, "Couldn't create the planes\n");
-               ret = PTR_ERR(drv->layers);
-               goto free_drm;
+               goto cleanup_mode_config;
        }
  
-       /* Create our CRTC */
-       drv->crtc = sun4i_crtc_init(drm);
-       if (!drv->crtc) {
-               dev_err(drm->dev, "Couldn't create the CRTC\n");
-               ret = -EINVAL;
-               goto free_drm;
-       }
        drm->irq_enabled = true;
  
        /* Remove early framebuffers (ie. simplefb) */
        if (IS_ERR(drv->fbdev)) {
                dev_err(drm->dev, "Couldn't create our framebuffer\n");
                ret = PTR_ERR(drv->fbdev);
-               goto free_drm;
+               goto cleanup_mode_config;
        }
  
        /* Enable connectors polling */
  
        ret = drm_dev_register(drm, 0);
        if (ret)
-               goto free_drm;
+               goto finish_poll;
  
        return 0;
  
+ finish_poll:
+       drm_kms_helper_poll_fini(drm);
+       sun4i_framebuffer_free(drm);
+ cleanup_mode_config:
+       drm_mode_config_cleanup(drm);
+       drm_vblank_cleanup(drm);
+ free_mem_region:
+       of_reserved_mem_device_release(dev);
  free_drm:
        drm_dev_unref(drm);
        return ret;
@@@ -150,7 -163,9 +153,9 @@@ static void sun4i_drv_unbind(struct dev
        drm_dev_unregister(drm);
        drm_kms_helper_poll_fini(drm);
        sun4i_framebuffer_free(drm);
+       drm_mode_config_cleanup(drm);
        drm_vblank_cleanup(drm);
+       of_reserved_mem_device_release(dev);
        drm_dev_unref(drm);
  }
  
index 46280dd70c9e05800aed87a6de4e512066da46e9,1147451eb993339ad5e7df6f985821b5319e9b0b..67f0b91a99de057933583d8aa786f23c73cb1af8
  #include <drm/drmP.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_crtc_helper.h>
 +#include <drm/drm_of.h>
  #include <drm/drm_panel.h>
  
- #include "sun4i_drv.h"
+ #include "sun4i_crtc.h"
  #include "sun4i_tcon.h"
  #include "sun4i_rgb.h"
  
@@@ -26,7 -25,7 +26,7 @@@ struct sun4i_rgb 
        struct drm_connector    connector;
        struct drm_encoder      encoder;
  
-       struct sun4i_drv        *drv;
+       struct sun4i_tcon       *tcon;
  };
  
  static inline struct sun4i_rgb *
@@@ -47,8 -46,7 +47,7 @@@ static int sun4i_rgb_get_modes(struct d
  {
        struct sun4i_rgb *rgb =
                drm_connector_to_sun4i_rgb(connector);
-       struct sun4i_drv *drv = rgb->drv;
-       struct sun4i_tcon *tcon = drv->tcon;
+       struct sun4i_tcon *tcon = rgb->tcon;
  
        return drm_panel_get_modes(tcon->panel);
  }
@@@ -57,8 -55,7 +56,7 @@@ static int sun4i_rgb_mode_valid(struct 
                                struct drm_display_mode *mode)
  {
        struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
-       struct sun4i_drv *drv = rgb->drv;
-       struct sun4i_tcon *tcon = drv->tcon;
+       struct sun4i_tcon *tcon = rgb->tcon;
        u32 hsync = mode->hsync_end - mode->hsync_start;
        u32 vsync = mode->vsync_end - mode->vsync_start;
        unsigned long rate = mode->clock * 1000;
@@@ -115,8 -112,7 +113,7 @@@ static voi
  sun4i_rgb_connector_destroy(struct drm_connector *connector)
  {
        struct sun4i_rgb *rgb = drm_connector_to_sun4i_rgb(connector);
-       struct sun4i_drv *drv = rgb->drv;
-       struct sun4i_tcon *tcon = drv->tcon;
+       struct sun4i_tcon *tcon = rgb->tcon;
  
        drm_panel_detach(tcon->panel);
        drm_connector_cleanup(connector);
@@@ -141,8 -137,7 +138,7 @@@ static int sun4i_rgb_atomic_check(struc
  static void sun4i_rgb_encoder_enable(struct drm_encoder *encoder)
  {
        struct sun4i_rgb *rgb = drm_encoder_to_sun4i_rgb(encoder);
-       struct sun4i_drv *drv = rgb->drv;
-       struct sun4i_tcon *tcon = drv->tcon;
+       struct sun4i_tcon *tcon = rgb->tcon;
  
        DRM_DEBUG_DRIVER("Enabling RGB output\n");
  
  static void sun4i_rgb_encoder_disable(struct drm_encoder *encoder)
  {
        struct sun4i_rgb *rgb = drm_encoder_to_sun4i_rgb(encoder);
-       struct sun4i_drv *drv = rgb->drv;
-       struct sun4i_tcon *tcon = drv->tcon;
+       struct sun4i_tcon *tcon = rgb->tcon;
  
        DRM_DEBUG_DRIVER("Disabling RGB output\n");
  
@@@ -177,8 -171,7 +172,7 @@@ static void sun4i_rgb_encoder_mode_set(
                                       struct drm_display_mode *adjusted_mode)
  {
        struct sun4i_rgb *rgb = drm_encoder_to_sun4i_rgb(encoder);
-       struct sun4i_drv *drv = rgb->drv;
-       struct sun4i_tcon *tcon = drv->tcon;
+       struct sun4i_tcon *tcon = rgb->tcon;
  
        sun4i_tcon0_mode_set(tcon, mode);
  
@@@ -204,10 -197,8 +198,8 @@@ static struct drm_encoder_funcs sun4i_r
        .destroy        = sun4i_rgb_enc_destroy,
  };
  
- int sun4i_rgb_init(struct drm_device *drm)
+ int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon)
  {
-       struct sun4i_drv *drv = drm->dev_private;
-       struct sun4i_tcon *tcon = drv->tcon;
        struct drm_encoder *encoder;
        struct drm_bridge *bridge;
        struct sun4i_rgb *rgb;
        rgb = devm_kzalloc(drm->dev, sizeof(*rgb), GFP_KERNEL);
        if (!rgb)
                return -ENOMEM;
-       rgb->drv = drv;
+       rgb->tcon = tcon;
        encoder = &rgb->encoder;
  
 -      tcon->panel = sun4i_tcon_find_panel(tcon->dev->of_node);
 -      bridge = sun4i_tcon_find_bridge(tcon->dev->of_node);
 -      if (IS_ERR(tcon->panel) && IS_ERR(bridge)) {
 +      ret = drm_of_find_panel_or_bridge(tcon->dev->of_node, 1, 0,
 +                                        &tcon->panel, &bridge);
 +      if (ret) {
                dev_info(drm->dev, "No panel or bridge found... RGB output disabled\n");
                return 0;
        }
        }
  
        /* The RGB encoder can only work with the TCON channel 0 */
-       rgb->encoder.possible_crtcs = BIT(0);
+       rgb->encoder.possible_crtcs = BIT(drm_crtc_index(&tcon->crtc->crtc));
  
 -      if (!IS_ERR(tcon->panel)) {
 +      if (tcon->panel) {
                drm_connector_helper_add(&rgb->connector,
                                         &sun4i_rgb_con_helper_funcs);
                ret = drm_connector_init(drm, &rgb->connector,
                }
        }
  
 -      if (!IS_ERR(bridge)) {
 +      if (bridge) {
                ret = drm_bridge_attach(encoder, bridge, NULL);
                if (ret) {
                        dev_err(drm->dev, "Couldn't attach our bridge\n");
index 2e4e365cecf9f506823fae7fe3bcb4c94863b3ea,3ced0b1cef6e6a86a68ce22803033e8ccd4d1211..9a83a85529ac46ab0b351e7111cded6ef7313259
  #include <drm/drm_crtc.h>
  #include <drm/drm_crtc_helper.h>
  #include <drm/drm_modes.h>
 -#include <drm/drm_panel.h>
 +#include <drm/drm_of.h>
  
  #include <linux/component.h>
  #include <linux/ioport.h>
  #include <linux/of_address.h>
  #include <linux/of_device.h>
 -#include <linux/of_graph.h>
  #include <linux/of_irq.h>
  #include <linux/regmap.h>
  #include <linux/reset.h>
@@@ -142,7 -143,7 +142,7 @@@ void sun4i_tcon0_mode_set(struct sun4i_
  
        /*
         * This is called a backporch in the register documentation,
-        * but it really is the front porch + hsync
+        * but it really is the back porch + hsync
         */
        bp = mode->crtc_htotal - mode->crtc_hsync_start;
        DRM_DEBUG_DRIVER("Setting horizontal total %d, backporch %d\n",
  
        /*
         * This is called a backporch in the register documentation,
-        * but it really is the front porch + hsync
+        * but it really is the back porch + hsync
         */
        bp = mode->crtc_vtotal - mode->crtc_vsync_start;
        DRM_DEBUG_DRIVER("Setting vertical total %d, backporch %d\n",
@@@ -289,8 -290,7 +289,7 @@@ static irqreturn_t sun4i_tcon_handler(i
  {
        struct sun4i_tcon *tcon = private;
        struct drm_device *drm = tcon->drm;
-       struct sun4i_drv *drv = drm->dev_private;
-       struct sun4i_crtc *scrtc = drv->crtc;
+       struct sun4i_crtc *scrtc = tcon->crtc;
        unsigned int status;
  
        regmap_read(tcon->regs, SUN4I_TCON_GINT0_REG, &status);
@@@ -335,12 -335,11 +334,11 @@@ static int sun4i_tcon_init_clocks(struc
                }
        }
  
-       return sun4i_dclk_create(dev, tcon);
+       return 0;
  }
  
  static void sun4i_tcon_free_clocks(struct sun4i_tcon *tcon)
  {
-       sun4i_dclk_free(tcon);
        clk_disable_unprepare(tcon->clk);
  }
  
@@@ -404,6 -403,74 +402,6 @@@ static int sun4i_tcon_init_regmap(struc
        return 0;
  }
  
 -struct drm_panel *sun4i_tcon_find_panel(struct device_node *node)
 -{
 -      struct device_node *port, *remote, *child;
 -      struct device_node *end_node = NULL;
 -
 -      /* Inputs are listed first, then outputs */
 -      port = of_graph_get_port_by_id(node, 1);
 -
 -      /*
 -       * Our first output is the RGB interface where the panel will
 -       * be connected.
 -       */
 -      for_each_child_of_node(port, child) {
 -              u32 reg;
 -
 -              of_property_read_u32(child, "reg", &reg);
 -              if (reg == 0)
 -                      end_node = child;
 -      }
 -
 -      if (!end_node) {
 -              DRM_DEBUG_DRIVER("Missing panel endpoint\n");
 -              return ERR_PTR(-ENODEV);
 -      }
 -
 -      remote = of_graph_get_remote_port_parent(end_node);
 -      if (!remote) {
 -              DRM_DEBUG_DRIVER("Unable to parse remote node\n");
 -              return ERR_PTR(-EINVAL);
 -      }
 -
 -      return of_drm_find_panel(remote) ?: ERR_PTR(-EPROBE_DEFER);
 -}
 -
 -struct drm_bridge *sun4i_tcon_find_bridge(struct device_node *node)
 -{
 -      struct device_node *port, *remote, *child;
 -      struct device_node *end_node = NULL;
 -
 -      /* Inputs are listed first, then outputs */
 -      port = of_graph_get_port_by_id(node, 1);
 -
 -      /*
 -       * Our first output is the RGB interface where the panel will
 -       * be connected.
 -       */
 -      for_each_child_of_node(port, child) {
 -              u32 reg;
 -
 -              of_property_read_u32(child, "reg", &reg);
 -              if (reg == 0)
 -                      end_node = child;
 -      }
 -
 -      if (!end_node) {
 -              DRM_DEBUG_DRIVER("Missing bridge endpoint\n");
 -              return ERR_PTR(-ENODEV);
 -      }
 -
 -      remote = of_graph_get_remote_port_parent(end_node);
 -      if (!remote) {
 -              DRM_DEBUG_DRIVER("Enable to parse remote node\n");
 -              return ERR_PTR(-EINVAL);
 -      }
 -
 -      return of_drm_find_bridge(remote) ?: ERR_PTR(-EPROBE_DEFER);
 -}
 -
  static int sun4i_tcon_bind(struct device *dev, struct device *master,
                           void *data)
  {
                return ret;
        }
  
+       ret = sun4i_tcon_init_clocks(dev, tcon);
+       if (ret) {
+               dev_err(dev, "Couldn't init our TCON clocks\n");
+               goto err_assert_reset;
+       }
        ret = sun4i_tcon_init_regmap(dev, tcon);
        if (ret) {
                dev_err(dev, "Couldn't init our TCON regmap\n");
-               goto err_assert_reset;
+               goto err_free_clocks;
        }
  
-       ret = sun4i_tcon_init_clocks(dev, tcon);
+       ret = sun4i_dclk_create(dev, tcon);
        if (ret) {
-               dev_err(dev, "Couldn't init our TCON clocks\n");
-               goto err_assert_reset;
+               dev_err(dev, "Couldn't create our TCON dot clock\n");
+               goto err_free_clocks;
        }
  
        ret = sun4i_tcon_init_irq(dev, tcon);
        if (ret) {
                dev_err(dev, "Couldn't init our TCON interrupts\n");
+               goto err_free_dotclock;
+       }
+       tcon->crtc = sun4i_crtc_init(drm, drv->backend, tcon);
+       if (IS_ERR(tcon->crtc)) {
+               dev_err(dev, "Couldn't create our CRTC\n");
+               ret = PTR_ERR(tcon->crtc);
                goto err_free_clocks;
        }
  
-       ret = sun4i_rgb_init(drm);
+       ret = sun4i_rgb_init(drm, tcon);
        if (ret < 0)
                goto err_free_clocks;
  
        return 0;
  
+ err_free_dotclock:
+       sun4i_dclk_free(tcon);
  err_free_clocks:
        sun4i_tcon_free_clocks(tcon);
  err_assert_reset:
@@@ -473,6 -555,7 +486,7 @@@ static void sun4i_tcon_unbind(struct de
  {
        struct sun4i_tcon *tcon = dev_get_drvdata(dev);
  
+       sun4i_dclk_free(tcon);
        sun4i_tcon_free_clocks(tcon);
  }
  
@@@ -486,11 -569,22 +500,11 @@@ static int sun4i_tcon_probe(struct plat
        struct device_node *node = pdev->dev.of_node;
        struct drm_bridge *bridge;
        struct drm_panel *panel;
 +      int ret;
  
 -      /*
 -       * Neither the bridge or the panel is ready.
 -       * Defer the probe.
 -       */
 -      panel = sun4i_tcon_find_panel(node);
 -      bridge = sun4i_tcon_find_bridge(node);
 -
 -      /*
 -       * If we don't have a panel endpoint, just go on
 -       */
 -      if ((PTR_ERR(panel) == -EPROBE_DEFER) &&
 -          (PTR_ERR(bridge) == -EPROBE_DEFER)) {
 -              DRM_DEBUG_DRIVER("Still waiting for our panel/bridge. Deferring...\n");
 -              return -EPROBE_DEFER;
 -      }
 +      ret = drm_of_find_panel_or_bridge(node, 1, 0, &panel, &bridge);
 +      if (ret == -EPROBE_DEFER)
 +              return ret;
  
        return component_add(&pdev->dev, &sun4i_tcon_ops);
  }