OSDN Git Service

Merge tag 'tty-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 9 May 2017 01:49:23 +0000 (18:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 9 May 2017 01:49:23 +0000 (18:49 -0700)
Pull tty/serial updates from Greg KH:
 "Here is the "big" TTY/Serial patch updates for 4.12-rc1

  Not a lot of new things here, the normal number of serial driver
  updates and additions, tiny bugs fixed, and some core files split up
  to make future changes a bit easier for Nicolas's "tiny-tty" work.

  All of these have been in linux-next for a while"

* tag 'tty-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (62 commits)
  serial: small Makefile reordering
  tty: split job control support into a file of its own
  tty: move baudrate handling code to a file of its own
  console: move console_init() out of tty_io.c
  serial: 8250_early: Add earlycon support for Palmchip UART
  tty: pl011: use "qdf2400_e44" as the earlycon name for QDF2400 E44
  vt: make mouse selection of non-ASCII consistent
  vt: set mouse selection word-chars to gpm's default
  imx-serial: Reduce RX DMA startup latency when opening for reading
  serial: omap: suspend device on probe errors
  serial: omap: fix runtime-pm handling on unbind
  tty: serial: omap: add UPF_BOOT_AUTOCONF flag for DT init
  serial: samsung: Remove useless spinlock
  serial: samsung: Add missing checks for dma_map_single failure
  serial: samsung: Use right device for DMA-mapping calls
  serial: imx: setup DCEDTE early and ensure DCD and RI irqs to be off
  tty: fix comment typo s/repsonsible/responsible/
  tty: amba-pl011: Fix spurious TX interrupts
  serial: xuartps: Enable clocks in the pm disable case also
  serial: core: Re-use struct uart_port {name} field
  ...

1  2 
MAINTAINERS
drivers/tty/serdev/core.c
drivers/tty/serial/st-asc.c
include/linux/serdev.h
init/main.c
kernel/printk/printk.c

diff --combined MAINTAINERS
@@@ -813,7 -813,6 +813,7 @@@ W: http://wiki.analog.com
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
  F:    drivers/iio/*/ad*
 +F:    drivers/iio/adc/ltc2497*
  X:    drivers/iio/*/adjd*
  F:    drivers/staging/iio/*/ad*
  F:    drivers/staging/iio/trigger/iio-trig-bfin-timer.c
@@@ -897,19 -896,12 +897,19 @@@ F:      arch/arm64/boot/dts/apm
  APPLIED MICRO (APM) X-GENE SOC ETHERNET DRIVER
  M:    Iyappan Subramanian <isubramanian@apm.com>
  M:    Keyur Chudgar <kchudgar@apm.com>
 +M:    Quan Nguyen <qnguyen@apm.com>
  S:    Supported
  F:    drivers/net/ethernet/apm/xgene/
  F:    drivers/net/phy/mdio-xgene.c
  F:    Documentation/devicetree/bindings/net/apm-xgene-enet.txt
  F:    Documentation/devicetree/bindings/net/apm-xgene-mdio.txt
  
 +APPLIED MICRO (APM) X-GENE SOC ETHERNET (V2) DRIVER
 +M:    Iyappan Subramanian <isubramanian@apm.com>
 +M:    Keyur Chudgar <kchudgar@apm.com>
 +S:    Supported
 +F:    drivers/net/ethernet/apm/xgene-v2/
 +
  APPLIED MICRO (APM) X-GENE SOC PMU
  M:    Tai Nguyen <ttnguyen@apm.com>
  S:    Supported
@@@ -984,7 -976,6 +984,7 @@@ F: arch/arm*/include/asm/perf_event.
  F:    drivers/perf/*
  F:    include/linux/perf/arm_pmu.h
  F:    Documentation/devicetree/bindings/arm/pmu.txt
 +F:    Documentation/devicetree/bindings/perf/
  
  ARM PORT
  M:    Russell King <linux@armlinux.org.uk>
@@@ -1097,8 -1088,6 +1097,8 @@@ L:      linux-arm-kernel@axis.co
  F:    arch/arm/mach-artpec
  F:    arch/arm/boot/dts/artpec6*
  F:    drivers/clk/axis
 +F:    drivers/pinctrl/pinctrl-artpec*
 +F:    Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
  
  ARM/ASPEED MACHINE SUPPORT
  M:    Joel Stanley <joel@jms.id.au>
@@@ -2235,7 -2224,7 +2235,7 @@@ ATMEL ISI DRIVE
  M:    Ludovic Desroches <ludovic.desroches@microchip.com>
  L:    linux-media@vger.kernel.org
  S:    Supported
 -F:    drivers/media/platform/soc_camera/atmel-isi.c
 +F:    drivers/media/platform/atmel/atmel-isi.c
  F:    include/media/atmel-isi.h
  
  ATMEL LCDFB DRIVER
@@@ -2338,6 -2327,21 +2338,6 @@@ S:     Maintaine
  F:    drivers/auxdisplay/
  F:    include/linux/cfag12864b.h
  
 -AVR32 ARCHITECTURE
 -M:    Haavard Skinnemoen <hskinnemoen@gmail.com>
 -M:    Hans-Christian Egtvedt <egtvedt@samfundet.no>
 -W:    http://www.atmel.com/products/AVR32/
 -W:    http://mirror.egtvedt.no/avr32linux.org/
 -W:    http://avrfreaks.net/
 -S:    Maintained
 -F:    arch/avr32/
 -
 -AVR32/AT32AP MACHINE SUPPORT
 -M:    Haavard Skinnemoen <hskinnemoen@gmail.com>
 -M:    Hans-Christian Egtvedt <egtvedt@samfundet.no>
 -S:    Maintained
 -F:    arch/avr32/mach-at32ap/
 -
  AX.25 NETWORK LAYER
  M:    Ralf Baechle <ralf@linux-mips.org>
  L:    linux-hams@vger.kernel.org
@@@ -2540,14 -2544,6 +2540,14 @@@ F:    block
  F:    kernel/trace/blktrace.c
  F:    lib/sbitmap.c
  
 +BFQ I/O SCHEDULER
 +M:    Paolo Valente <paolo.valente@linaro.org>
 +M:    Jens Axboe <axboe@kernel.dk>
 +L:    linux-block@vger.kernel.org
 +S:    Maintained
 +F:    block/bfq-*
 +F:    Documentation/block/bfq-iosched.txt
 +
  BLOCK2MTD DRIVER
  M:    Joern Engel <joern@lazybastard.org>
  L:    linux-mtd@lists.infradead.org
@@@ -2589,26 -2585,12 +2589,26 @@@ F:   include/uapi/linux/if_bonding.
  
  BPF (Safe dynamic programs and tools)
  M:    Alexei Starovoitov <ast@kernel.org>
 +M:    Daniel Borkmann <daniel@iogearbox.net>
  L:    netdev@vger.kernel.org
  L:    linux-kernel@vger.kernel.org
  S:    Supported
 +F:    arch/x86/net/bpf_jit*
 +F:    Documentation/networking/filter.txt
 +F:    include/linux/bpf*
 +F:    include/linux/filter.h
 +F:    include/uapi/linux/bpf*
 +F:    include/uapi/linux/filter.h
  F:    kernel/bpf/
 -F:    tools/testing/selftests/bpf/
 +F:    kernel/trace/bpf_trace.c
  F:    lib/test_bpf.c
 +F:    net/bpf/
 +F:    net/core/filter.c
 +F:    net/sched/act_bpf.c
 +F:    net/sched/cls_bpf.c
 +F:    samples/bpf/
 +F:    tools/net/bpf*
 +F:    tools/testing/selftests/bpf/
  
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <michael.chan@broadcom.com>
@@@ -2955,15 -2937,6 +2955,15 @@@ W:    http://www.linux-c6x.org/wiki/index.
  S:    Maintained
  F:    arch/c6x/
  
 +CA8210 IEEE-802.15.4 RADIO DRIVER
 +M:    Harry Morris <h.morris@cascoda.com>
 +M:    linuxdev@cascoda.com
 +L:    linux-wpan@vger.kernel.org
 +W:    https://github.com/Cascoda/ca8210-linux.git
 +S:    Maintained
 +F:    drivers/net/ieee802154/ca8210.c
 +F:    Documentation/devicetree/bindings/net/ieee802154/ca8210.txt
 +
  CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
  M:    David Howells <dhowells@redhat.com>
  L:    linux-cachefs@redhat.com (moderated for non-subscribers)
@@@ -3051,6 -3024,7 +3051,6 @@@ CAPELLA MICROSYSTEMS LIGHT SENSOR DRIVE
  M:    Kevin Tsai <ktsai@capellamicro.com>
  S:    Maintained
  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>
@@@ -3067,14 -3041,6 +3067,14 @@@ S:    Supporte
  F:    drivers/i2c/busses/i2c-octeon*
  F:    drivers/i2c/busses/i2c-thunderx*
  
 +CAVIUM MMC DRIVER
 +M:    Jan Glauber <jglauber@cavium.com>
 +M:    David Daney <david.daney@cavium.com>
 +M:    Steven J. Hill <Steven.Hill@cavium.com>
 +W:    http://www.cavium.com
 +S:    Supported
 +F:    drivers/mmc/host/cavium*
 +
  CAVIUM LIQUIDIO NETWORK DRIVER
  M:     Derek Chickles <derek.chickles@caviumnetworks.com>
  M:     Satanand Burla <satananda.burla@caviumnetworks.com>
@@@ -3100,7 -3066,7 +3100,7 @@@ F:      drivers/net/ieee802154/cc2520.
  F:    include/linux/spi/cc2520.h
  F:    Documentation/devicetree/bindings/net/ieee802154/cc2520.txt
  
 -CEC DRIVER
 +CEC FRAMEWORK
  M:    Hans Verkuil <hans.verkuil@cisco.com>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
@@@ -3109,9 -3075,10 +3109,9 @@@ S:     Supporte
  F:    Documentation/media/kapi/cec-core.rst
  F:    Documentation/media/uapi/cec
  F:    drivers/media/cec/
 -F:    drivers/media/cec-edid.c
  F:    drivers/media/rc/keymaps/rc-cec.c
  F:    include/media/cec.h
 -F:    include/media/cec-edid.h
 +F:    include/media/cec-notifier.h
  F:    include/uapi/linux/cec.h
  F:    include/uapi/linux/cec-funcs.h
  
@@@ -3482,7 -3449,6 +3482,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  T:    git git://git.linaro.org/people/vireshk/linux.git (For ARM Updates)
  B:    https://bugzilla.kernel.org
  F:    Documentation/cpu-freq/
 +F:    Documentation/devicetree/bindings/cpufreq/
  F:    drivers/cpufreq/
  F:    include/linux/cpufreq.h
  F:    tools/testing/selftests/cpufreq/
@@@ -3886,12 -3852,6 +3886,12 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/usb/dwc3/
  
 +DEVANTECH SRF ULTRASONIC RANGER IIO DRIVER
 +M:    Andreas Klinger <ak@it-klinger.de>
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/iio/proximity/srf*.c
 +
  DEVICE COREDUMP (DEV_COREDUMP)
  M:    Johannes Berg <johannes@sipsolutions.net>
  L:    linux-kernel@vger.kernel.org
@@@ -4137,18 -4097,6 +4137,18 @@@ S:    Maintaine
  F:    drivers/char/dtlk.c
  F:    include/linux/dtlk.h
  
 +DPAA2 DATAPATH I/O (DPIO) DRIVER
 +M:    Roy Pledge <Roy.Pledge@nxp.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/fsl-mc/bus/dpio
 +
 +DPAA2 ETHERNET DRIVER
 +M:    Ioana Radulescu <ruxandra.radulescu@nxp.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/fsl-dpaa2/ethernet
 +
  DPT_I2O SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@adaptec.com>
  L:    linux-scsi@vger.kernel.org
@@@ -4196,7 -4144,6 +4196,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>
@@@ -4210,7 -4157,6 +4210,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>
@@@ -4226,7 -4172,7 +4226,7 @@@ F:      drivers/gpu/drm/bridge
  DRM DRIVER FOR BOCHS VIRTUAL GPU
  M:    Gerd Hoffmann <kraxel@redhat.com>
  L:    virtualization@lists.linux-foundation.org
 -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/
  
@@@ -4234,7 -4180,7 +4234,7 @@@ DRM DRIVER FOR QEMU'S CIRRUS DEVIC
  M:    Dave Airlie <airlied@redhat.com>
  M:    Gerd Hoffmann <kraxel@redhat.com>
  L:    virtualization@lists.linux-foundation.org
 -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/
@@@ -4291,7 -4237,6 +4291,7 @@@ L:      dri-devel@lists.freedesktop.or
  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  <maxime.ripard@free-electrons.com>
@@@ -4299,7 -4244,6 +4299,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>
@@@ -4309,9 -4253,6 +4309,9 @@@ W:      http://linux-meson.com
  S:    Supported
  F:    drivers/gpu/drm/meson/
  F:    Documentation/devicetree/bindings/display/amlogic,meson-vpu.txt
 +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
  M:    Inki Dae <inki.dae@samsung.com>
@@@ -4436,14 -4377,13 +4436,14 @@@ 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
  M:    Dave Airlie <airlied@redhat.com>
  M:    Gerd Hoffmann <kraxel@redhat.com>
  L:    virtualization@lists.linux-foundation.org
 -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
@@@ -4454,7 -4394,6 +4454,7 @@@ L:      dri-devel@lists.freedesktop.or
  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
@@@ -4470,7 -4409,7 +4470,7 @@@ DRM DRIVERS FOR ST
  M:    Benjamin Gaignard <benjamin.gaignard@linaro.org>
  M:    Vincent Abriou <vincent.abriou@st.com>
  L:    dri-devel@lists.freedesktop.org
 -T:    git http://git.linaro.org/people/benjamin.gaignard/kernel.git
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/gpu/drm/sti
  F:    Documentation/devicetree/bindings/display/st,stih4xx.txt
@@@ -4513,7 -4452,6 +4513,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 <tomi.valkeinen@ti.com>
@@@ -4536,7 -4474,6 +4536,7 @@@ L:      dri-devel@lists.freedesktop.or
  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 <klimov.linux@gmail.com>
@@@ -4756,7 -4693,6 +4756,7 @@@ L:      linux-edac@vger.kernel.or
  L:    linux-mips@linux-mips.org
  S:    Supported
  F:    drivers/edac/octeon_edac*
 +F:    drivers/edac/thunderx_edac*
  
  EDAC-E752X
  M:    Mark Gross <mark.gross@intel.com>
@@@ -5179,6 -5115,7 +5179,6 @@@ F:      include/uapi/linux/firewire*.
  F:    tools/firewire/
  
  FIRMWARE LOADER (request_firmware)
 -M:    Ming Lei <ming.lei@canonical.com>
  M:    Luis R. Rodriguez <mcgrof@kernel.org>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
@@@ -5208,15 -5145,13 +5208,15 @@@ F:   include/linux/ipmi-fru.
  K:    fmc_d.*register
  
  FPGA MANAGER FRAMEWORK
 -M:    Alan Tull <atull@opensource.altera.com>
 +M:    Alan Tull <atull@kernel.org>
  R:    Moritz Fischer <moritz.fischer@ettus.com>
  L:    linux-fpga@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/atull/linux-fpga.git
 +F:    Documentation/fpga/
 +F:    Documentation/devicetree/bindings/fpga/
  F:    drivers/fpga/
 -F:    include/linux/fpga/fpga-mgr.h
 +F:    include/linux/fpga/
  W:    http://www.rocketboards.org
  
  FPU EMULATOR
@@@ -5328,7 -5263,6 +5328,7 @@@ M:      Scott Wood <oss@buserror.net
  L:    linuxppc-dev@lists.ozlabs.org
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
 +F:    Documentation/devicetree/bindings/powerpc/fsl/
  F:    drivers/soc/fsl/
  F:    include/linux/fsl/
  
@@@ -5417,12 -5351,10 +5417,12 @@@ F:   Documentation/filesystems/caching
  F:    fs/fscache/
  F:    include/linux/fscache*.h
  
 -FS-CRYPTO: FILE SYSTEM LEVEL ENCRYPTION SUPPORT
 +FSCRYPT: FILE SYSTEM LEVEL ENCRYPTION SUPPORT
  M:    Theodore Y. Ts'o <tytso@mit.edu>
  M:    Jaegeuk Kim <jaegeuk@kernel.org>
 -L:    linux-fsdevel@vger.kernel.org
 +L:    linux-fscrypt@vger.kernel.org
 +Q:    https://patchwork.kernel.org/project/linux-fscrypt/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt.git
  S:    Supported
  F:    fs/crypto/
  F:    include/linux/fscrypt*.h
@@@ -5474,23 -5406,6 +5474,23 @@@ F:    fs/fuse
  F:    include/uapi/linux/fuse.h
  F:    Documentation/filesystems/fuse.txt
  
 +FUTEX SUBSYSTEM
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +M:    Ingo Molnar <mingo@redhat.com>
 +R:    Peter Zijlstra <peterz@infradead.org>
 +R:    Darren Hart <dvhart@infradead.org>
 +L:    linux-kernel@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
 +S:    Maintained
 +F:    kernel/futex.c
 +F:    kernel/futex_compat.c
 +F:    include/asm-generic/futex.h
 +F:    include/linux/futex.h
 +F:    include/uapi/linux/futex.h
 +F:    tools/testing/selftests/futex/
 +F:    tools/perf/bench/futex*
 +F:    Documentation/*futex*
 +
  FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit)
  M:    Rik Faith <faith@cs.unc.edu>
  L:    linux-scsi@vger.kernel.org
@@@ -5933,13 -5848,6 +5933,13 @@@ F:    drivers/block/cciss
  F:    include/linux/cciss_ioctl.h
  F:    include/uapi/linux/cciss_ioctl.h
  
 +OPA-VNIC DRIVER
 +M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
 +M:    Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
 +L:    linux-rdma@vger.kernel.org
 +S:    Supported
 +F:    drivers/infiniband/ulp/opa_vnic
 +
  HFI1 DRIVER
  M:    Mike Marciniszyn <mike.marciniszyn@intel.com>
  M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
@@@ -6102,7 -6010,7 +6102,7 @@@ M:      Sebastian Reichel <sre@kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi.git
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-hsi
 -F:    Documentation/device-drivers/serial-interfaces.rst
 +F:    Documentation/driver-api/hsi.rst
  F:    drivers/hsi/
  F:    include/linux/hsi/
  F:    include/uapi/linux/hsi/
@@@ -6308,7 -6216,7 +6308,7 @@@ F:      drivers/crypto/nx/nx_csbcpb.
  F:    drivers/crypto/nx/nx_debugfs.h
  
  IBM Power 842 compression accelerator
 -M:    Dan Streetman <ddstreet@ieee.org>
 +M:    Haren Myneni <haren@us.ibm.com>
  S:    Supported
  F:    drivers/crypto/nx/Makefile
  F:    drivers/crypto/nx/Kconfig
@@@ -6548,7 -6456,6 +6548,7 @@@ W:      http://www.openfabrics.org
  Q:    http://patchwork.kernel.org/project/linux-rdma/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git
  S:    Supported
 +F:    Documentation/devicetree/bindings/infiniband/
  F:    Documentation/infiniband/
  F:    drivers/infiniband/
  F:    include/uapi/linux/if_infiniband.h
@@@ -6581,7 -6488,7 +6581,7 @@@ INPUT MULTITOUCH (MT) PROTOCO
  M:    Henrik Rydberg <rydberg@bitmath.org>
  L:    linux-input@vger.kernel.org
  S:    Odd fixes
 -F:    Documentation/input/multi-touch-protocol.txt
 +F:    Documentation/input/multi-touch-protocol.rst
  F:    drivers/input/input-mt.c
  K:    \b(ABS|SYN)_MT_
  
@@@ -6862,8 -6769,6 +6862,8 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    Documentation/devicetree/bindings/iommu/
  F:    drivers/iommu/
 +F:    include/linux/iommu.h
 +F:    include/linux/iova.h
  
  IP MASQUERADING
  M:    Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
@@@ -7270,7 -7175,6 +7270,7 @@@ S:      Supporte
  F:    Documentation/s390/kvm.txt
  F:    arch/s390/include/asm/kvm*
  F:    arch/s390/kvm/
 +F:    arch/s390/mm/gmap.c
  
  KERNEL VIRTUAL MACHINE (KVM) FOR ARM
  M:    Christoffer Dall <christoffer.dall@linaro.org>
@@@ -7591,7 -7495,7 +7591,7 @@@ Q:      http://patchwork.ozlabs.org/project/
  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/powerpc/
  F:    Documentation/devicetree/bindings/rtc/rtc-opal.txt
  F:    Documentation/devicetree/bindings/i2c/i2c-opal.txt
  F:    Documentation/powerpc/
@@@ -7807,14 -7711,6 +7807,14 @@@ S:    Maintaine
  F:    Documentation/hwmon/ltc4261
  F:    drivers/hwmon/ltc4261.c
  
 +LTC4306 I2C MULTIPLEXER DRIVER
 +M:    Michael Hennerich <michael.hennerich@analog.com>
 +W:    http://ez.analog.com/community/linux-device-drivers
 +L:    linux-i2c@vger.kernel.org
 +S:    Supported
 +F:    drivers/i2c/muxes/i2c-mux-ltc4306.c
 +F:    Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt
 +
  LTP (Linux Test Project)
  M:    Mike Frysinger <vapier@gentoo.org>
  M:    Cyril Hrubis <chrubis@suse.cz>
@@@ -7961,7 -7857,7 +7961,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/marvell/mvneta.*
  
  MARVELL MWIFIEX WIRELESS DRIVER
 -M:    Amitkumar Karwar <akarwar@marvell.com>
 +M:    Amitkumar Karwar <amitkarwar@gmail.com>
  M:    Nishant Sarmukadam <nishants@marvell.com>
  M:    Ganapathi Bhat <gbhat@marvell.com>
  M:    Xinming Hu <huxm@marvell.com>
@@@ -7980,13 -7876,6 +7980,13 @@@ M:    Nicolas Pitre <nico@fluxnic.net
  S:    Odd Fixes
  F:    drivers/mmc/host/mvsdio.*
  
 +MARVELL XENON MMC/SD/SDIO HOST CONTROLLER DRIVER
 +M:    Hu Ziji <huziji@marvell.com>
 +L:    linux-mmc@vger.kernel.org
 +S:    Supported
 +F:    drivers/mmc/host/sdhci-xenon*
 +F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt
 +
  MATROX FRAMEBUFFER DRIVER
  L:    linux-fbdev@vger.kernel.org
  S:    Orphan
@@@ -8192,7 -8081,6 +8192,7 @@@ W:      https://linuxtv.or
  Q:    http://patchwork.kernel.org/project/linux-media/list/
  T:    git git://linuxtv.org/media_tree.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/media/
  F:    Documentation/media/
  F:    drivers/media/
  F:    drivers/staging/media/
@@@ -8213,13 -8101,6 +8213,13 @@@ L:    netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/mediatek/
  
 +MEDIATEK JPEG DRIVER
 +M:    Rick Chang <rick.chang@mediatek.com>
 +M:    Bin Liu <bin.liu@mediatek.com>
 +S:    Supported
 +F:    drivers/media/platform/mtk-jpeg/
 +F:    Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
 +
  MEDIATEK MEDIA DRIVER
  M:    Tiffany Lin <tiffany.lin@mediatek.com>
  M:    Andrew-CT Chen <andrew-ct.chen@mediatek.com>
@@@ -8244,14 -8125,6 +8244,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>
@@@ -8418,7 -8291,7 +8418,7 @@@ MICROCHIP / ATMEL AT91 / AT32 SERIAL DR
  M:    Richard Genoud <richard.genoud@gmail.com>
  S:    Maintained
  F:    drivers/tty/serial/atmel_serial.c
- F:    include/linux/atmel_serial.h
+ F:    drivers/tty/serial/atmel_serial.h
  
  MICROCHIP / ATMEL DMA DRIVER
  M:    Ludovic Desroches <ludovic.desroches@microchip.com>
@@@ -8814,16 -8687,14 +8814,16 @@@ F:   drivers/net/ethernet/neterion
  NETFILTER
  M:    Pablo Neira Ayuso <pablo@netfilter.org>
  M:    Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
 +M:    Florian Westphal <fw@strlen.de>
  L:    netfilter-devel@vger.kernel.org
  L:    coreteam@netfilter.org
  W:    http://www.netfilter.org/
  W:    http://www.iptables.org/
 +W:    http://www.nftables.org/
  Q:    http://patchwork.ozlabs.org/project/netfilter-devel/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git
 -S:    Supported
 +S:    Maintained
  F:    include/linux/netfilter*
  F:    include/linux/netfilter/
  F:    include/net/netfilter/
@@@ -8890,7 -8761,6 +8890,7 @@@ W:      http://www.linuxfoundation.org/en/Ne
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
 +B:    mailto:netdev@vger.kernel.org
  S:    Maintained
  F:    net/
  F:    include/net/
@@@ -8931,12 -8801,12 +8931,12 @@@ F:   net/core/flow.
  F:    net/xfrm/
  F:    net/key/
  F:    net/ipv4/xfrm*
 -F:    net/ipv4/esp4.c
 +F:    net/ipv4/esp4*
  F:    net/ipv4/ah4.c
  F:    net/ipv4/ipcomp.c
  F:    net/ipv4/ip_vti.c
  F:    net/ipv6/xfrm*
 -F:    net/ipv6/esp6.c
 +F:    net/ipv6/esp6*
  F:    net/ipv6/ah6.c
  F:    net/ipv6/ipcomp6.c
  F:    net/ipv6/ip6_vti.c
@@@ -8990,6 -8860,8 +8990,6 @@@ S:      Supporte
  F:    drivers/net/ethernet/qlogic/netxen/
  
  NFC SUBSYSTEM
 -M:    Lauro Ramos Venancio <lauro.venancio@openbossa.org>
 -M:    Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
  M:    Samuel Ortiz <sameo@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
  L:    linux-nfc@lists.01.org (subscribers-only)
@@@ -9163,6 -9035,7 +9163,6 @@@ F:      drivers/nvme/target/fcloop.
  
  NVMEM FRAMEWORK
  M:    Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 -M:    Maxime Ripard <maxime.ripard@free-electrons.com>
  S:    Maintained
  F:    drivers/nvmem/
  F:    Documentation/devicetree/bindings/nvmem/
@@@ -9394,20 -9267,12 +9394,20 @@@ M:   Harald Welte <laforge@gnumonks.org
  S:    Maintained
  F:    drivers/char/pcmcia/cm4040_cs.*
  
 +OMNIVISION OV5647 SENSOR DRIVER
 +M:    Ramiro Oliveira <roliveir@synopsys.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov5647.c
 +
  OMNIVISION OV7670 SENSOR DRIVER
  M:    Jonathan Corbet <corbet@lwn.net>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  S:    Maintained
  F:    drivers/media/i2c/ov7670.c
 +F:    Documentation/devicetree/bindings/media/i2c/ov7670.txt
  
  ONENAND FLASH DRIVER
  M:    Kyungmin Park <kyungmin.park@samsung.com>
@@@ -10051,8 -9916,6 +10051,8 @@@ M:    Krzysztof Kozlowski <krzk@kernel.org
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
 +Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung.git
  S:    Maintained
  F:    drivers/pinctrl/samsung/
  F:    include/dt-bindings/pinctrl/samsung.h
@@@ -10120,6 -9983,7 +10120,6 @@@ F:    drivers/scsi/pmcraid.
  PMC SIERRA PM8001 DRIVER
  M:    Jack Wang <jinpu.wang@profitbricks.com>
  M:    lindar_liu@usish.com
 -L:    pmchba@pmcs.com
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/pm8001/
@@@ -10218,7 -10082,7 +10218,7 @@@ W:   http://sourceforge.net/projects/acce
  PREEMPTIBLE KERNEL
  M:    Robert Love <rml@tech9.net>
  L:    kpreempt-tech@lists.sourceforge.net
 -W:    ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
 +W:    https://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
  S:    Supported
  F:    Documentation/preempt-locking.txt
  F:    include/linux/preempt.h
@@@ -10355,8 -10219,6 +10355,8 @@@ F:   include/linux/pwm.
  F:    drivers/pwm/
  F:    drivers/video/backlight/pwm_bl.c
  F:    include/linux/pwm_backlight.h
 +F:    drivers/gpio/gpio-mvebu.c
 +F:    Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
  
  PXA2xx/PXA3xx SUPPORT
  M:    Daniel Mack <daniel@zonque.org>
@@@ -10594,13 -10456,6 +10594,13 @@@ L: linux-fbdev@vger.kernel.or
  S:    Maintained
  F:    drivers/video/fbdev/aty/aty128fb.c
  
 +RAINSHADOW-CEC DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/usb/rainshadow-cec/*
 +
  RALINK MIPS ARCHITECTURE
  M:    John Crispin <john@phrozen.org>
  L:    linux-mips@linux-mips.org
@@@ -11014,16 -10869,6 +11014,16 @@@ W: http://www.ibm.com/developerworks/li
  S:    Supported
  F:    drivers/iommu/s390-iommu.c
  
 +S390 VFIO-CCW DRIVER
 +M:    Cornelia Huck <cornelia.huck@de.ibm.com>
 +M:    Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
 +L:    linux-s390@vger.kernel.org
 +L:    kvm@vger.kernel.org
 +S:    Supported
 +F:    drivers/s390/cio/vfio_ccw*
 +F:    Documentation/s390/vfio-ccw.txt
 +F:    include/uapi/linux/vfio_ccw.h
 +
  S3C24XX SD/MMC Driver
  M:    Ben Dooks <ben-linux@fluff.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -11071,14 -10916,6 +11071,14 @@@ L: alsa-devel@alsa-project.org (moderat
  S:    Supported
  F:    sound/soc/samsung/
  
 +SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
 +L:    linux-crypto@vger.kernel.org
 +L:    linux-samsung-soc@vger.kernel.org
 +S:    Maintained
 +F:    drivers/crypto/exynos-rng.c
 +F:    Documentation/devicetree/bindings/rng/samsung,exynos-rng4.txt
 +
  SAMSUNG FRAMEBUFFER DRIVER
  M:    Jingoo Han <jingoohan1@gmail.com>
  L:    linux-fbdev@vger.kernel.org
@@@ -11103,14 -10940,6 +11103,14 @@@ F: Documentation/devicetree/bindings/re
  F:    Documentation/devicetree/bindings/regulator/samsung,s5m*.txt
  F:    Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
  
 +SAMSUNG S5P Security SubSystem (SSS) DRIVER
 +M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Vladimir Zapolskiy <vz@mleia.com>
 +L:    linux-crypto@vger.kernel.org
 +L:    linux-samsung-soc@vger.kernel.org
 +S:    Maintained
 +F:    drivers/crypto/s5p-sss.c
 +
  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
  M:    Kyungmin Park <kyungmin.park@samsung.com>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
@@@ -11242,12 -11071,6 +11242,12 @@@ F: include/linux/dma/dw.
  F:    include/linux/platform_data/dma-dw.h
  F:    drivers/dma/dw/
  
 +SYNOPSYS DESIGNWARE ENTERPRISE ETHERNET DRIVER
 +M:    Jie Deng <jiedeng@synopsys.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/synopsys/
 +
  SYNOPSYS DESIGNWARE I2C DRIVER
  M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
  R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
@@@ -11286,7 -11109,6 +11286,7 @@@ F:   drivers/power/supply/bq27xxx_battery
  TIMEKEEPING, CLOCKSOURCE CORE, NTP, ALARMTIMER
  M:    John Stultz <john.stultz@linaro.org>
  M:    Thomas Gleixner <tglx@linutronix.de>
 +R:    Stephen Boyd <sboyd@codeaurora.org>
  L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
  S:    Supported
@@@ -11546,11 -11368,11 +11546,11 @@@ S:        Supporte
  F:    drivers/net/ethernet/emulex/benet/
  
  EMULEX ONECONNECT ROCE DRIVER
 -M:    Selvin Xavier <selvin.xavier@avagotech.com>
 -M:    Devesh Sharma <devesh.sharma@avagotech.com>
 +M:    Selvin Xavier <selvin.xavier@broadcom.com>
 +M:    Devesh Sharma <devesh.sharma@broadcom.com>
  L:    linux-rdma@vger.kernel.org
 -W:    http://www.emulex.com
 -S:    Supported
 +W:    http://www.broadcom.com
 +S:    Odd Fixes
  F:    drivers/infiniband/hw/ocrdma/
  F:    include/uapi/rdma/ocrdma-abi.h
  
@@@ -12352,19 -12174,12 +12352,19 @@@ F:        Documentation/accounting/taskstats
  F:    include/linux/taskstats*
  F:    kernel/taskstats.c
  
 -TC CLASSIFIER
 +TC subsystem
  M:    Jamal Hadi Salim <jhs@mojatatu.com>
 +M:    Cong Wang <xiyou.wangcong@gmail.com>
 +M:    Jiri Pirko <jiri@resnulli.us>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    include/net/pkt_cls.h
 +F:    include/net/pkt_sched.h
 +F:    include/net/tc_act/
  F:    include/uapi/linux/pkt_cls.h
 +F:    include/uapi/linux/pkt_sched.h
 +F:    include/uapi/linux/tc_act/
 +F:    include/uapi/linux/tc_ematch/
  F:    net/sched/
  
  TCP LOW PRIORITY MODULE
@@@ -12649,6 -12464,7 +12649,6 @@@ F:   drivers/clk/ti
  F:    include/linux/clk/ti.h
  
  TI ETHERNET SWITCH DRIVER (CPSW)
 -M:    Mugunthan V N <mugunthanvnm@ti.com>
  R:    Grygorii Strashko <grygorii.strashko@ti.com>
  L:    linux-omap@vger.kernel.org
  L:    netdev@vger.kernel.org
@@@ -13294,15 -13110,6 +13294,15 @@@ F: drivers/usb
  F:    include/linux/usb.h
  F:    include/linux/usb/
  
 +USB TYPEC SUBSYSTEM
 +M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-class-typec
 +F:    Documentation/usb/typec.rst
 +F:    drivers/usb/typec/
 +F:    include/linux/usb/typec.h
 +
  USB UHCI DRIVER
  M:    Alan Stern <stern@rowland.harvard.edu>
  L:    linux-usb@vger.kernel.org
@@@ -13452,14 -13259,6 +13452,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>
@@@ -13477,11 -13276,8 +13477,11 @@@ L: netdev@vger.kernel.or
  S:    Maintained
  F:    include/linux/virtio_vsock.h
  F:    include/uapi/linux/virtio_vsock.h
 +F:    include/uapi/linux/vsockmon.h
 +F:    net/vmw_vsock/af_vsock_tap.c
  F:    net/vmw_vsock/virtio_transport_common.c
  F:    net/vmw_vsock/virtio_transport.c
 +F:    drivers/net/vsockmon.c
  F:    drivers/vhost/vsock.c
  F:    drivers/vhost/vsock.h
  
@@@ -13527,7 -13323,7 +13527,7 @@@ M:   David Airlie <airlied@linux.ie
  M:    Gerd Hoffmann <kraxel@redhat.com>
  L:    dri-devel@lists.freedesktop.org
  L:    virtualization@lists.linux-foundation.org
 -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
@@@ -13597,14 -13393,6 +13597,14 @@@ W: https://linuxtv.or
  S:    Maintained
  F:    drivers/media/platform/vivid/*
  
 +VIMC VIRTUAL MEDIA CONTROLLER DRIVER
 +M:    Helen Koike <helen.koike@collabora.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    https://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/platform/vimc/*
 +
  VLYNQ BUS
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    openwrt-devel@lists.openwrt.org (subscribers-only)
@@@ -13813,7 -13601,6 +13813,7 @@@ F:   Documentation/hwmon/wm83?
  F:    Documentation/devicetree/bindings/extcon/extcon-arizona.txt
  F:    Documentation/devicetree/bindings/regulator/arizona-regulator.txt
  F:    Documentation/devicetree/bindings/mfd/arizona.txt
 +F:    Documentation/devicetree/bindings/mfd/wm831x.txt
  F:    arch/arm/mach-s3c64xx/mach-crag6410*
  F:    drivers/clk/clk-wm83*.c
  F:    drivers/extcon/extcon-arizona.c
@@@ -13830,14 -13617,12 +13830,14 @@@ F:        drivers/mfd/cs47l24
  F:    drivers/power/supply/wm83*.c
  F:    drivers/rtc/rtc-wm83*.c
  F:    drivers/regulator/wm8*.c
 +F:    drivers/regulator/arizona*
  F:    drivers/video/backlight/wm83*_bl.c
  F:    drivers/watchdog/wm83*_wdt.c
  F:    include/linux/mfd/arizona/
  F:    include/linux/mfd/wm831x/
  F:    include/linux/mfd/wm8350/
  F:    include/linux/mfd/wm8400*
 +F:    include/linux/regulator/arizona*
  F:    include/linux/wm97xx.h
  F:    include/sound/wm????.h
  F:    sound/soc/codecs/arizona.?
@@@ -14037,7 -13822,7 +14037,7 @@@ YEALINK PHONE DRIVE
  M:    Henk Vergonet <Henk.Vergonet@gmail.com>
  L:    usbb2k-api-dev@nongnu.org
  S:    Maintained
 -F:    Documentation/input/yealink.txt
 +F:    Documentation/input/yealink.rst
  F:    drivers/input/misc/yealink.*
  
  Z8530 DRIVER FOR AX.25
@@@ -116,17 -116,41 +116,41 @@@ void serdev_device_close(struct serdev_
  }
  EXPORT_SYMBOL_GPL(serdev_device_close);
  
- int serdev_device_write_buf(struct serdev_device *serdev,
-                           const unsigned char *buf, size_t count)
+ void serdev_device_write_wakeup(struct serdev_device *serdev)
+ {
+       complete(&serdev->write_comp);
+ }
+ EXPORT_SYMBOL_GPL(serdev_device_write_wakeup);
+ int serdev_device_write(struct serdev_device *serdev,
+                       const unsigned char *buf, size_t count,
+                       unsigned long timeout)
  {
        struct serdev_controller *ctrl = serdev->ctrl;
+       int ret;
  
-       if (!ctrl || !ctrl->ops->write_buf)
+       if (!ctrl || !ctrl->ops->write_buf ||
+           (timeout && !serdev->ops->write_wakeup))
                return -EINVAL;
  
-       return ctrl->ops->write_buf(ctrl, buf, count);
+       mutex_lock(&serdev->write_lock);
+       do {
+               reinit_completion(&serdev->write_comp);
+               ret = ctrl->ops->write_buf(ctrl, buf, count);
+               if (ret < 0)
+                       break;
+               buf += ret;
+               count -= ret;
+       } while (count &&
+                (timeout = wait_for_completion_timeout(&serdev->write_comp,
+                                                       timeout)));
+       mutex_unlock(&serdev->write_lock);
+       return ret < 0 ? ret : (count ? -ETIMEDOUT : 0);
  }
- EXPORT_SYMBOL_GPL(serdev_device_write_buf);
+ EXPORT_SYMBOL_GPL(serdev_device_write);
  
  void serdev_device_write_flush(struct serdev_device *serdev)
  {
@@@ -173,39 -197,6 +197,39 @@@ void serdev_device_set_flow_control(str
  }
  EXPORT_SYMBOL_GPL(serdev_device_set_flow_control);
  
 +void serdev_device_wait_until_sent(struct serdev_device *serdev, long timeout)
 +{
 +      struct serdev_controller *ctrl = serdev->ctrl;
 +
 +      if (!ctrl || !ctrl->ops->wait_until_sent)
 +              return;
 +
 +      ctrl->ops->wait_until_sent(ctrl, timeout);
 +}
 +EXPORT_SYMBOL_GPL(serdev_device_wait_until_sent);
 +
 +int serdev_device_get_tiocm(struct serdev_device *serdev)
 +{
 +      struct serdev_controller *ctrl = serdev->ctrl;
 +
 +      if (!ctrl || !ctrl->ops->get_tiocm)
 +              return -ENOTSUPP;
 +
 +      return ctrl->ops->get_tiocm(ctrl);
 +}
 +EXPORT_SYMBOL_GPL(serdev_device_get_tiocm);
 +
 +int serdev_device_set_tiocm(struct serdev_device *serdev, int set, int clear)
 +{
 +      struct serdev_controller *ctrl = serdev->ctrl;
 +
 +      if (!ctrl || !ctrl->ops->set_tiocm)
 +              return -ENOTSUPP;
 +
 +      return ctrl->ops->set_tiocm(ctrl, set, clear);
 +}
 +EXPORT_SYMBOL_GPL(serdev_device_set_tiocm);
 +
  static int serdev_drv_probe(struct device *dev)
  {
        const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
@@@ -224,7 -215,10 +248,7 @@@ static int serdev_drv_remove(struct dev
  static ssize_t modalias_show(struct device *dev,
                             struct device_attribute *attr, char *buf)
  {
 -      ssize_t len = of_device_get_modalias(dev, buf, PAGE_SIZE - 2);
 -      buf[len] = '\n';
 -      buf[len+1] = 0;
 -      return len+1;
 +      return of_device_modalias(dev, buf, PAGE_SIZE);
  }
  
  static struct device_attribute serdev_device_attrs[] = {
@@@ -262,6 -256,8 +286,8 @@@ struct serdev_device *serdev_device_all
        serdev->dev.parent = &ctrl->dev;
        serdev->dev.bus = &serdev_bus_type;
        serdev->dev.type = &serdev_device_type;
+       init_completion(&serdev->write_comp);
+       mutex_init(&serdev->write_lock);
        return serdev;
  }
  EXPORT_SYMBOL_GPL(serdev_device_alloc);
@@@ -887,13 -887,12 +887,12 @@@ static void asc_console_write(struct co
        int locked = 1;
        u32 intenable;
  
-       local_irq_save(flags);
        if (port->sysrq)
                locked = 0; /* asc_interrupt has already claimed the lock */
        else if (oops_in_progress)
-               locked = spin_trylock(&port->lock);
+               locked = spin_trylock_irqsave(&port->lock, flags);
        else
-               spin_lock(&port->lock);
+               spin_lock_irqsave(&port->lock, flags);
  
        /*
         * Disable interrupts so we don't get the IRQ line bouncing
        asc_out(port, ASC_INTEN, intenable);
  
        if (locked)
-               spin_unlock(&port->lock);
-       local_irq_restore(flags);
+               spin_unlock_irqrestore(&port->lock, flags);
  }
  
  static int asc_console_setup(struct console *co, char *options)
  {
        struct asc_port *ascport;
-       int baud = 9600;
+       int baud = 115200;
        int bits = 8;
        int parity = 'n';
        int flow = 'n';
@@@ -986,7 -984,7 +984,7 @@@ static struct platform_driver asc_seria
  static int __init asc_init(void)
  {
        int ret;
 -      static char banner[] __initdata =
 +      static const char banner[] __initconst =
                KERN_INFO "STMicroelectronics ASC driver initialized\n";
  
        printk(banner);
diff --combined include/linux/serdev.h
@@@ -15,8 -15,6 +15,8 @@@
  
  #include <linux/types.h>
  #include <linux/device.h>
 +#include <linux/termios.h>
 +#include <linux/delay.h>
  
  struct serdev_controller;
  struct serdev_device;
@@@ -41,12 -39,16 +41,16 @@@ struct serdev_device_ops 
   * @nr:               Device number on serdev bus.
   * @ctrl:     serdev controller managing this device.
   * @ops:      Device operations.
+  * @write_comp        Completion used by serdev_device_write() internally
+  * @write_lock        Lock to serialize access when writing data
   */
  struct serdev_device {
        struct device dev;
        int nr;
        struct serdev_controller *ctrl;
        const struct serdev_device_ops *ops;
+       struct completion write_comp;
+       struct mutex write_lock;
  };
  
  static inline struct serdev_device *to_serdev_device(struct device *d)
@@@ -83,9 -85,6 +87,9 @@@ struct serdev_controller_ops 
        void (*close)(struct serdev_controller *);
        void (*set_flow_control)(struct serdev_controller *, bool);
        unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int);
 +      void (*wait_until_sent)(struct serdev_controller *, long);
 +      int (*get_tiocm)(struct serdev_controller *);
 +      int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int);
  };
  
  /**
@@@ -170,7 -169,7 +174,7 @@@ static inline void serdev_controller_wr
        if (!serdev || !serdev->ops->write_wakeup)
                return;
  
-       serdev->ops->write_wakeup(ctrl->serdev);
+       serdev->ops->write_wakeup(serdev);
  }
  
  static inline int serdev_controller_receive_buf(struct serdev_controller *ctrl,
        if (!serdev || !serdev->ops->receive_buf)
                return -EINVAL;
  
-       return serdev->ops->receive_buf(ctrl->serdev, data, count);
+       return serdev->ops->receive_buf(serdev, data, count);
  }
  
  #if IS_ENABLED(CONFIG_SERIAL_DEV_BUS)
@@@ -191,10 -190,8 +195,11 @@@ int serdev_device_open(struct serdev_de
  void serdev_device_close(struct serdev_device *);
  unsigned int serdev_device_set_baudrate(struct serdev_device *, unsigned int);
  void serdev_device_set_flow_control(struct serdev_device *, bool);
- int serdev_device_write_buf(struct serdev_device *, const unsigned char *, size_t);
 +void serdev_device_wait_until_sent(struct serdev_device *, long);
 +int serdev_device_get_tiocm(struct serdev_device *);
 +int serdev_device_set_tiocm(struct serdev_device *, int, int);
+ void serdev_device_write_wakeup(struct serdev_device *);
+ int serdev_device_write(struct serdev_device *, const unsigned char *, size_t, unsigned long);
  void serdev_device_write_flush(struct serdev_device *);
  int serdev_device_write_room(struct serdev_device *);
  
@@@ -231,16 -228,8 +236,17 @@@ static inline unsigned int serdev_devic
        return 0;
  }
  static inline void serdev_device_set_flow_control(struct serdev_device *sdev, bool enable) {}
- static inline int serdev_device_write_buf(struct serdev_device *sdev, const unsigned char *buf, size_t count)
 +static inline void serdev_device_wait_until_sent(struct serdev_device *sdev, long timeout) {}
 +static inline int serdev_device_get_tiocm(struct serdev_device *serdev)
 +{
 +      return -ENOTSUPP;
 +}
 +static inline int serdev_device_set_tiocm(struct serdev_device *serdev, int set, int clear)
 +{
 +      return -ENOTSUPP;
 +}
+ static inline int serdev_device_write(struct serdev_device *sdev, const unsigned char *buf,
+                                     size_t count, unsigned long timeout)
  {
        return -ENODEV;
  }
@@@ -255,36 -244,6 +261,36 @@@ static inline int serdev_device_write_r
  
  #endif /* CONFIG_SERIAL_DEV_BUS */
  
 +static inline bool serdev_device_get_cts(struct serdev_device *serdev)
 +{
 +      int status = serdev_device_get_tiocm(serdev);
 +      return !!(status & TIOCM_CTS);
 +}
 +
 +static inline int serdev_device_wait_for_cts(struct serdev_device *serdev, bool state, int timeout_ms)
 +{
 +      unsigned long timeout;
 +      bool signal;
 +
 +      timeout = jiffies + msecs_to_jiffies(timeout_ms);
 +      while (time_is_after_jiffies(timeout)) {
 +              signal = serdev_device_get_cts(serdev);
 +              if (signal == state)
 +                      return 0;
 +              usleep_range(1000, 2000);
 +      }
 +
 +      return -ETIMEDOUT;
 +}
 +
 +static inline int serdev_device_set_rts(struct serdev_device *serdev, bool enable)
 +{
 +      if (enable)
 +              return serdev_device_set_tiocm(serdev, TIOCM_RTS, 0);
 +      else
 +              return serdev_device_set_tiocm(serdev, 0, TIOCM_RTS);
 +}
 +
  /*
   * serdev hooks into TTY core
   */
@@@ -306,4 -265,11 +312,11 @@@ static inline struct device *serdev_tty
  static inline void serdev_tty_port_unregister(struct tty_port *port) {}
  #endif /* CONFIG_SERIAL_DEV_CTRL_TTYPORT */
  
+ static inline int serdev_device_write_buf(struct serdev_device *serdev,
+                                         const unsigned char *data,
+                                         size_t count)
+ {
+       return serdev_device_write(serdev, data, count, 0);
+ }
  #endif /*_LINUX_SERDEV_H */
diff --combined init/main.c
@@@ -27,7 -27,7 +27,7 @@@
  #include <linux/initrd.h>
  #include <linux/bootmem.h>
  #include <linux/acpi.h>
- #include <linux/tty.h>
+ #include <linux/console.h>
  #include <linux/nmi.h>
  #include <linux/percpu.h>
  #include <linux/kmod.h>
@@@ -495,7 -495,7 +495,7 @@@ asmlinkage __visible void __init start_
        debug_objects_early_init();
  
        /*
 -       * Set up the the initial canary ASAP:
 +       * Set up the initial canary ASAP:
         */
        boot_init_stack_canary();
  
        local_irq_disable();
        early_boot_irqs_disabled = true;
  
 -/*
 - * Interrupts are still disabled. Do necessary setups, then
 - * enable them
 - */
 +      /*
 +       * Interrupts are still disabled. Do necessary setups, then
 +       * enable them.
 +       */
        boot_cpu_init();
        page_address_init();
        pr_notice("%s", linux_banner);
        trap_init();
        mm_init();
  
 +      ftrace_init();
 +
 +      /* trace_printk can be enabled here */
 +      early_trace_init();
 +
        /*
         * Set up the scheduler prior starting any interrupts (such as the
         * timer interrupt). Full topology setup happens at smp_init()
  
        rcu_init();
  
 -      /* trace_printk() and trace points may be used after this */
 +      /* Trace events are available after this */
        trace_init();
  
        context_tracking_init();
                efi_free_boot_services();
        }
  
 -      ftrace_init();
 -
        /* Do the rest non-__init'ed, we're now alive */
        rest_init();
  }
@@@ -962,7 -959,6 +962,7 @@@ static int __ref kernel_init(void *unus
        kernel_init_freeable();
        /* need to finish all async __init code before freeing the memory */
        async_synchronize_full();
 +      ftrace_free_init_mem();
        free_initmem();
        mark_readonly();
        system_state = SYSTEM_RUNNING;
diff --combined kernel/printk/printk.c
@@@ -32,7 -32,7 +32,7 @@@
  #include <linux/bootmem.h>
  #include <linux/memblock.h>
  #include <linux/syscalls.h>
 -#include <linux/kexec.h>
 +#include <linux/crash_core.h>
  #include <linux/kdb.h>
  #include <linux/ratelimit.h>
  #include <linux/kmsg_dump.h>
@@@ -269,8 -269,8 +269,8 @@@ static struct console *exclusive_consol
  #define MAX_CMDLINECONSOLES 8
  
  static struct console_cmdline console_cmdline[MAX_CMDLINECONSOLES];
 +static int console_cmdline_cnt;
  
 -static int selected_console = -1;
  static int preferred_console = -1;
  int console_set_on_cmdline;
  EXPORT_SYMBOL(console_set_on_cmdline);
@@@ -1002,7 -1002,7 +1002,7 @@@ const struct file_operations kmsg_fops 
        .release = devkmsg_release,
  };
  
 -#ifdef CONFIG_KEXEC_CORE
 +#ifdef CONFIG_CRASH_CORE
  /*
   * This appends the listed symbols to /proc/vmcore
   *
   * symbols are specifically used so that utilities can access and extract the
   * dmesg log from a vmcore file after a crash.
   */
 -void log_buf_kexec_setup(void)
 +void log_buf_vmcoreinfo_setup(void)
  {
        VMCOREINFO_SYMBOL(log_buf);
        VMCOREINFO_SYMBOL(log_buf_len);
@@@ -1906,38 -1906,24 +1906,38 @@@ static int __add_preferred_console(cha
         *      See if this tty is not yet registered, and
         *      if we have a slot free.
         */
 -      for (i = 0, c = console_cmdline;
 -           i < MAX_CMDLINECONSOLES && c->name[0];
 -           i++, c++) {
 +      for (i = 0, c = console_cmdline; i < console_cmdline_cnt; i++, c++) {
                if (strcmp(c->name, name) == 0 && c->index == idx) {
 -                      if (!brl_options)
 -                              selected_console = i;
 +                      if (brl_options)
 +                              return 0;
 +
 +                      /*
 +                       * Maintain an invariant that will help to find if
 +                       * the matching console is preferred, see
 +                       * register_console():
 +                       *
 +                       * The last non-braille console is always
 +                       * the preferred one.
 +                       */
 +                      if (i != console_cmdline_cnt - 1)
 +                              swap(console_cmdline[i],
 +                                   console_cmdline[console_cmdline_cnt - 1]);
 +
 +                      preferred_console = console_cmdline_cnt - 1;
 +
                        return 0;
                }
        }
        if (i == MAX_CMDLINECONSOLES)
                return -E2BIG;
        if (!brl_options)
 -              selected_console = i;
 +              preferred_console = i;
        strlcpy(c->name, name, sizeof(c->name));
        c->options = options;
        braille_set_options(c, brl_options);
  
        c->index = idx;
 +      console_cmdline_cnt++;
        return 0;
  }
  /*
@@@ -2045,16 -2031,15 +2045,16 @@@ void resume_console(void
   * @cpu: unused
   *
   * If printk() is called from a CPU that is not online yet, the messages
 - * will be spooled but will not show up on the console.  This function is
 - * called when a new CPU comes online (or fails to come up), and ensures
 - * that any such output gets printed.
 + * will be printed on the console only if there are CON_ANYTIME consoles.
 + * This function is called when a new CPU comes online (or fails to come
 + * up) or goes offline.
   */
  static int console_cpu_notify(unsigned int cpu)
  {
        if (!cpuhp_tasks_frozen) {
 -              console_lock();
 -              console_unlock();
 +              /* If trylock fails, someone else is doing the printing */
 +              if (console_trylock())
 +                      console_unlock();
        }
        return 0;
  }
@@@ -2176,7 -2161,7 +2176,7 @@@ void console_unlock(void
        }
  
        /*
 -       * Console drivers are called under logbuf_lock, so
 +       * Console drivers are called with interrupts disabled, so
         * @console_may_schedule should be cleared before; however, we may
         * end up dumping a lot of lines, for example, if called from
         * console registration path, and should invoke cond_resched()
         * scheduling stall on a slow console leading to RCU stall and
         * softlockup warnings which exacerbate the issue with more
         * messages practically incapacitating the system.
 +       *
 +       * console_trylock() is not able to detect the preemptive
 +       * context reliably. Therefore the value must be stored before
 +       * and cleared after the the "again" goto label.
         */
        do_cond_resched = console_may_schedule;
 +again:
        console_may_schedule = 0;
  
 -again:
        /*
         * We released the console_sem lock, so we need to recheck if
         * cpu is online and (if not) is there at least one CON_ANYTIME
@@@ -2428,7 -2409,6 +2428,7 @@@ void register_console(struct console *n
        unsigned long flags;
        struct console *bcon = NULL;
        struct console_cmdline *c;
 +      static bool has_preferred;
  
        if (console_drivers)
                for_each_console(bcon)
        if (console_drivers && console_drivers->flags & CON_BOOT)
                bcon = console_drivers;
  
 -      if (preferred_console < 0 || bcon || !console_drivers)
 -              preferred_console = selected_console;
 +      if (!has_preferred || bcon || !console_drivers)
 +              has_preferred = preferred_console >= 0;
  
        /*
         *      See if we want to use this console driver. If we
         *      didn't select a console we take the first one
         *      that registers here.
         */
 -      if (preferred_console < 0) {
 +      if (!has_preferred) {
                if (newcon->index < 0)
                        newcon->index = 0;
                if (newcon->setup == NULL ||
                        newcon->flags |= CON_ENABLED;
                        if (newcon->device) {
                                newcon->flags |= CON_CONSDEV;
 -                              preferred_console = 0;
 +                              has_preferred = true;
                        }
                }
        }
  
        /*
 -       *      See if this console matches one we selected on
 -       *      the command line.
 +       * See if this console matches one we selected on the command line.
 +       *
 +       * There may be several entries in the console_cmdline array matching
 +       * with the same console, one with newcon->match(), another by
 +       * name/index:
 +       *
 +       *      pl011,mmio,0x87e024000000,115200 -- added from SPCR
 +       *      ttyAMA0 -- added from command line
 +       *
 +       * Traverse the console_cmdline array in reverse order to be
 +       * sure that if this console is preferred then it will be the first
 +       * matching entry.  We use the invariant that is maintained in
 +       * __add_preferred_console().
         */
 -      for (i = 0, c = console_cmdline;
 -           i < MAX_CMDLINECONSOLES && c->name[0];
 -           i++, c++) {
 +      for (i = console_cmdline_cnt - 1; i >= 0; i--) {
 +              c = console_cmdline + i;
 +
                if (!newcon->match ||
                    newcon->match(newcon, c->name, c->index, c->options) != 0) {
                        /* default matching */
                }
  
                newcon->flags |= CON_ENABLED;
 -              if (i == selected_console) {
 +              if (i == preferred_console) {
                        newcon->flags |= CON_CONSDEV;
 -                      preferred_console = selected_console;
 +                      has_preferred = true;
                }
                break;
        }
@@@ -2642,6 -2611,30 +2642,30 @@@ int unregister_console(struct console *
  EXPORT_SYMBOL(unregister_console);
  
  /*
+  * Initialize the console device. This is called *early*, so
+  * we can't necessarily depend on lots of kernel help here.
+  * Just do some early initializations, and do the complex setup
+  * later.
+  */
+ void __init console_init(void)
+ {
+       initcall_t *call;
+       /* Setup the default TTY line discipline. */
+       n_tty_init();
+       /*
+        * set up the console device so that later boot sequences can
+        * inform about problems etc..
+        */
+       call = __con_initcall_start;
+       while (call < __con_initcall_end) {
+               (*call)();
+               call++;
+       }
+ }
+ /*
   * Some boot consoles access data that is in the init section and which will
   * be discarded after the initcalls have been run. To make sure that no code
   * will access this data, unregister the boot consoles in a late initcall.