Merge tag 'usb-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 29 Dec 2018 04:30:00 +0000 (20:30 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 29 Dec 2018 04:30:00 +0000 (20:30 -0800)
Pull USB/PHY updates from Greg KH:
 "Here is the big set of USB and PHY driver patches for 4.21-rc1.

  All of the usual bits are in here:

  - loads of USB gadget driver updates and additions

  - new device ids

  - phy driver updates

  - xhci reworks and new features

  - typec updates

  Full details are in the shortlog.

  All of these have been in linux-next for a long time with no reported
  issues"

* tag 'usb-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (142 commits)
  USB: serial: option: add Fibocom NL678 series
  cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
  usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable()
  usb: typec: tcpm: Extend the matching rules on PPS APDO selection
  usb: typec: Improve Alt Mode documentation
  usb: musb: dsps: fix runtime pm for peripheral mode
  usb: musb: dsps: fix otg state machine
  USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays
  usb: renesas_usbhs: add support for RZ/G2E
  usb: ehci-omap: Fix deferred probe for phy handling
  usb: roles: Add a description for the class to Kconfig
  usb: renesas_usbhs: mark PM functions as __maybe_unused
  usb: core: Remove unnecessary memset()
  usb: host: isp1362-hcd: convert to DEFINE_SHOW_ATTRIBUTE
  phy: qcom-qmp: Expose provided clocks to DT
  dt-bindings: phy-qcom-qmp: Move #clock-cells to child
  phy: qcom-qmp: Utilize fully-specified DT registers
  dt-bindings: phy-qcom-qmp: Fix register underspecification
  phy: ti: fix semicolon.cocci warnings
  phy: dphy: Add configuration helpers
  ...

1  2 
MAINTAINERS
drivers/net/ethernet/mscc/ocelot.c
drivers/net/ethernet/ti/cpsw.c
drivers/platform/x86/intel_cht_int33fe.c

diff --combined MAINTAINERS
index 67e448eab2763ba9794f9355816a45af1fc1d9b2,75e8e5500e92bed7bced955cbe9650b239a4e40c..8ea5ae35d72095ab81fffa8774c3e97676c04f22
@@@ -140,7 -140,7 +140,7 @@@ Maintainers List (try to look for most 
  M:    Steffen Klassert <klassert@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Odd Fixes
 -F:    Documentation/networking/vortex.txt
 +F:    Documentation/networking/device_drivers/3com/vortex.txt
  F:    drivers/net/ethernet/3com/3c59x.c
  
  3CR990 NETWORK DRIVER
@@@ -740,7 -740,7 +740,7 @@@ R: Saeed Bishara <saeedb@amazon.com
  R:    Zorik Machulsky <zorik@amazon.com>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/ena.txt
 +F:    Documentation/networking/device_drivers/amazon/ena.txt
  F:    drivers/net/ethernet/amazon/
  
  AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
@@@ -1310,13 -1310,6 +1310,13 @@@ F:    drivers/pinctrl/meson
  F:    drivers/mmc/host/meson*
  N:    meson
  
 +ARM/Amlogic Meson SoC Sound Drivers
 +M:    Jerome Brunet <jbrunet@baylibre.com>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    sound/soc/meson/
 +F:    Documentation/devicetree/bindings/sound/amlogic*
 +
  ARM/Annapurna Labs ALPINE ARCHITECTURE
  M:    Tsahee Zidenberg <tsahee@annapurnalabs.com>
  M:    Antoine Tenart <antoine.tenart@bootlin.com>
@@@ -2074,6 -2067,7 +2074,6 @@@ M:      Andrzej Hajda <a.hajda@samsung.com
  L:    linux-arm-kernel@lists.infradead.org
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    arch/arm/plat-samsung/s5p-dev-mfc.c
  F:    drivers/media/platform/s5p-mfc/
  
  ARM/SHMOBILE ARM ARCHITECTURE
@@@ -2353,7 -2347,7 +2353,7 @@@ F:      drivers/pinctrl/zte
  F:    drivers/soc/zte/
  F:    drivers/thermal/zx2967_thermal.c
  F:    drivers/watchdog/zx2967_wdt.c
 -F:    Documentation/devicetree/bindings/arm/zte.txt
 +F:    Documentation/devicetree/bindings/arm/zte.yaml
  F:    Documentation/devicetree/bindings/clock/zx2967*.txt
  F:    Documentation/devicetree/bindings/dma/zxdma.txt
  F:    Documentation/devicetree/bindings/gpio/zx296702-gpio.txt
@@@ -2425,14 -2419,6 +2425,14 @@@ S:    Maintaine
  F:    Documentation/hwmon/asc7621
  F:    drivers/hwmon/asc7621.c
  
 +ASPEED VIDEO ENGINE DRIVER
 +M:    Eddie James <eajames@linux.ibm.com>
 +L:    linux-media@vger.kernel.org
 +L:    openbmc@lists.ozlabs.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/media/platform/aspeed-video.c
 +F:    Documentation/devicetree/bindings/media/aspeed-video.txt
 +
  ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
  M:    Corentin Chary <corentin.chary@gmail.com>
  L:    acpi4asus-user@lists.sourceforge.net
@@@ -2647,13 -2633,6 +2647,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/sound/axentia,*
  F:    sound/soc/atmel/tse850-pcm5142.c
  
 +AXXIA I2C CONTROLLER
 +M:    Krzysztof Adamski <krzysztof.adamski@nokia.com>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/i2c/i2c-axxia.txt
 +F:    drivers/i2c/busses/i2c-axxia.c
 +
  AZ6007 DVB DRIVER
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
@@@ -3484,7 -3463,6 +3484,7 @@@ F:      include/linux/spi/cc2520.
  F:    Documentation/devicetree/bindings/net/ieee802154/cc2520.txt
  
  CCREE ARM TRUSTZONE CRYPTOCELL REE DRIVER
 +M:    Yael Chemla <yael.chemla@foss.arm.com>
  M:    Gilad Ben-Yossef <gilad@benyossef.com>
  L:    linux-crypto@vger.kernel.org
  S:    Supported
@@@ -3688,8 -3666,6 +3688,8 @@@ F:      drivers/net/ethernet/cisco/enic
  
  CISCO VIC LOW LATENCY NIC DRIVER
  M:    Christian Benvenuti <benve@cisco.com>
 +M:    Nelson Escobar <neescoba@cisco.com>
 +M:    Parvi Kaustubhi <pkaustub@cisco.com>
  S:    Supported
  F:    drivers/infiniband/hw/usnic/
  
@@@ -3703,10 -3679,8 +3703,10 @@@ W:    https://github.com/CirrusLogic/linux
  S:    Supported
  F:    Documentation/devicetree/bindings/mfd/madera.txt
  F:    Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt
 +F:    include/linux/irqchip/irq-madera*
  F:    include/linux/mfd/madera/*
  F:    drivers/gpio/gpio-madera*
 +F:    drivers/irqchip/irq-madera*
  F:    drivers/mfd/madera*
  F:    drivers/mfd/cs47l*
  F:    drivers/pinctrl/cirrus/*
@@@ -4014,20 -3988,13 +4014,20 @@@ T:   git git://linuxtv.org/media_tree.gi
  W:    http://linuxtv.org
  S:    Odd Fixes
  F:    drivers/media/i2c/cs3308.c
 -F:    drivers/media/i2c/cs3308.h
  
  CS5535 Audio ALSA driver
  M:    Jaya Kumar <jayakumar.alsa@gmail.com>
  S:    Maintained
  F:    sound/pci/cs5535audio/
  
 +CSI DRIVERS FOR ALLWINNER V3s
 +M:    Yong Deng <yong.deng@magewell.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/platform/sunxi/sun6i-csi/
 +F:    Documentation/devicetree/bindings/media/sun6i-csi.txt
 +
  CW1200 WLAN driver
  M:    Solomon Peachy <pizza@shaftnet.org>
  S:    Maintained
@@@ -4052,7 -4019,7 +4052,7 @@@ T:      git git://linuxtv.org/media_tree.gi
  W:    https://linuxtv.org
  S:    Maintained
  F:    drivers/media/common/cx2341x*
 -F:    include/media/cx2341x*
 +F:    include/media/drv-intf/cx2341x.h
  
  CX24120 MEDIA DRIVER
  M:    Jemma Denson <jdenson@gmail.com>
@@@ -4083,7 -4050,7 +4083,7 @@@ S:      Maintaine
  F:    drivers/media/dvb-frontends/cxd2820r*
  
  CXGB3 ETHERNET DRIVER (CXGB3)
 -M:    Santosh Raspatur <santosh@chelsio.com>
 +M:    Arjun Vynipadath <arjun@chelsio.com>
  L:    netdev@vger.kernel.org
  W:    http://www.chelsio.com
  S:    Supported
@@@ -4112,7 -4079,7 +4112,7 @@@ S:      Supporte
  F:    drivers/crypto/chelsio
  
  CXGB4 ETHERNET DRIVER (CXGB4)
 -M:    Ganesh Goudar <ganeshgr@chelsio.com>
 +M:    Arjun Vynipadath <arjun@chelsio.com>
  L:    netdev@vger.kernel.org
  W:    http://www.chelsio.com
  S:    Supported
@@@ -4141,7 -4108,7 +4141,7 @@@ S:      Supporte
  F:    drivers/net/ethernet/chelsio/cxgb4vf/
  
  CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER
 -M:    Frederic Barrat <fbarrat@linux.vnet.ibm.com>
 +M:    Frederic Barrat <fbarrat@linux.ibm.com>
  M:    Andrew Donnellan <andrew.donnellan@au1.ibm.com>
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Supported
@@@ -4153,9 -4120,9 +4153,9 @@@ F:      Documentation/powerpc/cxl.tx
  F:    Documentation/ABI/testing/sysfs-class-cxl
  
  CXLFLASH (IBM Coherent Accelerator Processor Interface CAPI Flash) SCSI DRIVER
 -M:    Manoj N. Kumar <manoj@linux.vnet.ibm.com>
 -M:    Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
 -M:    Uma Krishnan <ukrishn@linux.vnet.ibm.com>
 +M:    Manoj N. Kumar <manoj@linux.ibm.com>
 +M:    Matthew R. Ochs <mrochs@linux.ibm.com>
 +M:    Uma Krishnan <ukrishn@linux.ibm.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/cxlflash/
@@@ -4227,7 -4194,7 +4227,7 @@@ F:      net/ax25/sysctl_net_ax25.
  DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
  L:    netdev@vger.kernel.org
  S:    Orphan
 -F:    Documentation/networking/dmfe.txt
 +F:    Documentation/networking/device_drivers/dec/dmfe.txt
  F:    drivers/net/ethernet/dec/tulip/dmfe.c
  
  DC390/AM53C974 SCSI driver
@@@ -4763,13 -4730,6 +4763,13 @@@ S:    Maintaine
  F:    drivers/gpu/drm/tinydrm/ili9225.c
  F:    Documentation/devicetree/bindings/display/ilitek,ili9225.txt
  
 +DRM DRIVER FOR HX8357D PANELS
 +M:    Eric Anholt <eric@anholt.net>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +S:    Maintained
 +F:    drivers/gpu/drm/tinydrm/hx8357d.c
 +F:    Documentation/devicetree/bindings/display/himax,hx8357d.txt
 +
  DRM DRIVER FOR INTEL I810 VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/i810/
@@@ -4811,12 -4771,6 +4811,12 @@@ S:    Supporte
  F:    drivers/gpu/drm/nouveau/
  F:    include/uapi/drm/nouveau_drm.h
  
 +DRM DRIVER FOR OLIMEX LCD-OLINUXINO PANELS
 +M:    Stefan Mavrodiev <stefan@olimex.com>
 +S:    Maintained
 +F:    drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
 +F:    Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt
 +
  DRM DRIVER FOR PERVASIVE DISPLAYS REPAPER PANELS
  M:    Noralf Trønnes <noralf@tronnes.org>
  S:    Maintained
@@@ -4882,8 -4836,10 +4882,8 @@@ T:     git git://anongit.freedesktop.org/dr
  
  DRM DRIVER FOR VMWARE VIRTUAL GPU
  M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
 -M:    Sinclair Yeh <syeh@vmware.com>
  M:    Thomas Hellstrom <thellstrom@vmware.com>
  L:    dri-devel@lists.freedesktop.org
 -T:    git git://people.freedesktop.org/~syeh/repos_linux
  T:    git git://people.freedesktop.org/~thomash/linux
  S:    Supported
  F:    drivers/gpu/drm/vmwgfx/
@@@ -4941,7 -4897,7 +4941,7 @@@ F:      Documentation/gpu/meson.rs
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DRM DRIVERS FOR ATMEL HLCDC
 -M:    Boris Brezillon <boris.brezillon@bootlin.com>
 +M:    Boris Brezillon <bbrezillon@kernel.org>
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
  F:    drivers/gpu/drm/atmel-hlcdc/
@@@ -5450,6 -5406,7 +5450,6 @@@ S:      Maintaine
  F:    drivers/edac/i82443bxgx_edac.c
  
  EDAC-I82975X
 -M:    Ranganathan Desikan <ravi@jetztechnologies.com>
  M:    "Arvind R." <arvino55@gmail.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
@@@ -5547,7 -5504,7 +5547,7 @@@ S:      Orpha
  F:    fs/efs/
  
  EHEA (IBM pSeries eHEA 10Gb ethernet adapter) DRIVER
 -M:    Douglas Miller <dougmill@linux.vnet.ibm.com>
 +M:    Douglas Miller <dougmill@linux.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/ibm/ehea/
@@@ -5661,7 -5618,6 +5661,7 @@@ F:      include/linux/of_net.
  F:    include/linux/phy.h
  F:    include/linux/phy_fixed.h
  F:    include/linux/platform_data/mdio-bcm-unimac.h
 +F:    include/linux/platform_data/mdio-gpio.h
  F:    include/trace/events/mdio.h
  F:    include/uapi/linux/mdio.h
  F:    include/uapi/linux/mii.h
@@@ -5686,7 -5642,7 +5686,7 @@@ F:      Documentation/filesystems/ext4/ext4.
  F:    fs/ext4/
  
  Extended Verification Module (EVM)
 -M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
 +M:    Mimi Zohar <zohar@linux.ibm.com>
  L:    linux-integrity@vger.kernel.org
  S:    Supported
  F:    security/integrity/evm/
@@@ -5896,7 -5852,7 +5896,7 @@@ F:      include/linux/firmware.
  
  FLASH ADAPTER DRIVER (IBM Flash Adapter 900GB Full Height PCI Flash Card)
  M:    Joshua Morris <josh.h.morris@us.ibm.com>
 -M:    Philip Kelleher <pjk1939@linux.vnet.ibm.com>
 +M:    Philip Kelleher <pjk1939@linux.ibm.com>
  S:    Maintained
  F:    drivers/block/rsxx/
  
@@@ -6163,7 -6119,7 +6163,7 @@@ F:      include/linux/fscrypt*.
  F:    Documentation/filesystems/fscrypt.rst
  
  FSI-ATTACHED I2C DRIVER
 -M:    Eddie James <eajames@linux.vnet.ibm.com>
 +M:    Eddie James <eajames@linux.ibm.com>
  L:    linux-i2c@vger.kernel.org
  L:    openbmc@lists.ozlabs.org (moderated for non-subscribers)
  S:    Maintained
@@@ -6310,6 -6266,7 +6310,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/phy/
  F:    include/linux/phy/
+ F:    Documentation/devicetree/bindings/phy/
  
  GENERIC PINCTRL I2C DEMULTIPLEXER DRIVER
  M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
@@@ -6339,7 -6296,8 +6340,7 @@@ S:      Supporte
  F:    drivers/uio/uio_pci_generic.c
  
  GENWQE (IBM Generic Workqueue Card)
 -M:    Frank Haverkamp <haver@linux.vnet.ibm.com>
 -M:    Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
 +M:    Frank Haverkamp <haver@linux.ibm.com>
  S:    Supported
  F:    drivers/misc/genwqe/
  
@@@ -6412,6 -6370,7 +6413,6 @@@ F:      drivers/media/rc/gpio-ir-tx.
  
  GPIO MOCKUP DRIVER
  M:    Bamvor Jian Zhang <bamv2005@gmail.com>
 -R:    Bartosz Golaszewski <brgl@bgdev.pl>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
  F:    drivers/gpio/gpio-mockup.c
@@@ -6948,11 -6907,9 +6949,11 @@@ Hyper-V CORE AND DRIVER
  M:    "K. Y. Srinivasan" <kys@microsoft.com>
  M:    Haiyang Zhang <haiyangz@microsoft.com>
  M:    Stephen Hemminger <sthemmin@microsoft.com>
 +M:    Sasha Levin <sashal@kernel.org>
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
  L:    devel@linuxdriverproject.org
 -S:    Maintained
 -F:    Documentation/networking/netvsc.txt
 +S:    Supported
 +F:    Documentation/networking/device_drivers/microsoft/netvsc.txt
  F:    arch/x86/include/asm/mshyperv.h
  F:    arch/x86/include/asm/trace/hyperv.h
  F:    arch/x86/include/asm/hyperv-tlfs.h
@@@ -7112,24 -7069,6 +7113,24 @@@ L:    linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/i2c-stub.c
  
 +I3C SUBSYSTEM
 +M:    Boris Brezillon <bbrezillon@kernel.org>
 +L:    linux-i3c@lists.infradead.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux.git
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-i3c
 +F:    Documentation/devicetree/bindings/i3c/
 +F:    Documentation/driver-api/i3c
 +F:    drivers/i3c/
 +F:    include/linux/i3c/
 +F:    include/dt-bindings/i3c/
 +
 +I3C DRIVER FOR SYNOPSYS DESIGNWARE
 +M:    Vitor Soares <vitor.soares@synopsys.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.txt
 +F:    drivers/i3c/master/dw*
 +
  IA64 (Itanium) PLATFORM
  M:    Tony Luck <tony.luck@intel.com>
  M:    Fenghua Yu <fenghua.yu@intel.com>
@@@ -7149,9 -7088,8 +7150,9 @@@ F:      crypto/842.
  F:    lib/842/
  
  IBM Power in-Nest Crypto Acceleration
 -M:    Leonidas S. Barbosa <leosilva@linux.vnet.ibm.com>
 -M:    Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
 +M:    Breno LeitĂ£o <leitao@debian.org>
 +M:    Nayna Jain <nayna@linux.ibm.com>
 +M:    Paulo Flabiano Smorigo <pfsmorigo@gmail.com>
  L:    linux-crypto@vger.kernel.org
  S:    Supported
  F:    drivers/crypto/nx/Makefile
@@@ -7168,8 -7106,8 +7169,8 @@@ S:      Supporte
  F:    drivers/scsi/ipr.*
  
  IBM Power SRIOV Virtual NIC Device Driver
 -M:    Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
 -M:    John Allen <jallen@linux.vnet.ibm.com>
 +M:    Thomas Falcon <tlfalcon@linux.ibm.com>
 +M:    John Allen <jallen@linux.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmvnic.*
@@@ -7184,40 -7122,41 +7185,40 @@@ F:   arch/powerpc/include/asm/vas.
  F:    arch/powerpc/include/uapi/asm/vas.h
  
  IBM Power Virtual Ethernet Device Driver
 -M:    Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
 +M:    Thomas Falcon <tlfalcon@linux.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmveth.*
  
  IBM Power Virtual FC Device Drivers
 -M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
 +M:    Tyrel Datwyler <tyreld@linux.ibm.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/ibmvscsi/ibmvfc*
  
  IBM Power Virtual Management Channel Driver
 -M:    Bryant G. Ly <bryantly@linux.vnet.ibm.com>
 -M:    Steven Royer <seroyer@linux.vnet.ibm.com>
 +M:    Steven Royer <seroyer@linux.ibm.com>
  S:    Supported
  F:    drivers/misc/ibmvmc.*
  
  IBM Power Virtual SCSI Device Drivers
 -M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
 +M:    Tyrel Datwyler <tyreld@linux.ibm.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/ibmvscsi/ibmvscsi*
  F:    include/scsi/viosrp.h
  
  IBM Power Virtual SCSI Device Target Driver
 -M:    Bryant G. Ly <bryantly@linux.vnet.ibm.com>
 -M:    Michael Cyr <mikecyr@linux.vnet.ibm.com>
 +M:    Michael Cyr <mikecyr@linux.ibm.com>
  L:    linux-scsi@vger.kernel.org
  L:    target-devel@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/ibmvscsi_tgt/
  
  IBM Power VMX Cryptographic instructions
 -M:    Leonidas S. Barbosa <leosilva@linux.vnet.ibm.com>
 -M:    Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
 +M:    Breno LeitĂ£o <leitao@debian.org>
 +M:    Nayna Jain <nayna@linux.ibm.com>
 +M:    Paulo Flabiano Smorigo <pfsmorigo@gmail.com>
  L:    linux-crypto@vger.kernel.org
  S:    Supported
  F:    drivers/crypto/vmx/Makefile
@@@ -7494,7 -7433,7 +7495,7 @@@ S:      Maintaine
  L:    linux-crypto@vger.kernel.org
  
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
 -M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
 +M:    Mimi Zohar <zohar@linux.ibm.com>
  M:    Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
  L:    linux-integrity@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
@@@ -7554,18 -7493,18 +7555,18 @@@ Q:   http://patchwork.ozlabs.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
  S:    Supported
 -F:    Documentation/networking/e100.rst
 -F:    Documentation/networking/e1000.rst
 -F:    Documentation/networking/e1000e.rst
 -F:    Documentation/networking/fm10k.rst
 -F:    Documentation/networking/igb.rst
 -F:    Documentation/networking/igbvf.rst
 -F:    Documentation/networking/ixgb.rst
 -F:    Documentation/networking/ixgbe.rst
 -F:    Documentation/networking/ixgbevf.rst
 -F:    Documentation/networking/i40e.rst
 -F:    Documentation/networking/iavf.rst
 -F:    Documentation/networking/ice.rst
 +F:    Documentation/networking/device_drivers/intel/e100.rst
 +F:    Documentation/networking/device_drivers/intel/e1000.rst
 +F:    Documentation/networking/device_drivers/intel/e1000e.rst
 +F:    Documentation/networking/device_drivers/intel/fm10k.rst
 +F:    Documentation/networking/device_drivers/intel/igb.rst
 +F:    Documentation/networking/device_drivers/intel/igbvf.rst
 +F:    Documentation/networking/device_drivers/intel/ixgb.rst
 +F:    Documentation/networking/device_drivers/intel/ixgbe.rst
 +F:    Documentation/networking/device_drivers/intel/ixgbevf.rst
 +F:    Documentation/networking/device_drivers/intel/i40e.rst
 +F:    Documentation/networking/device_drivers/intel/iavf.rst
 +F:    Documentation/networking/device_drivers/intel/ice.rst
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
  F:    include/linux/avf/virtchnl.h
@@@ -7655,14 -7594,6 +7656,14 @@@ S:    Maintaine
  F:    drivers/media/pci/intel/ipu3/
  F:    Documentation/media/uapi/v4l/pixfmt-srggb10-ipu3.rst
  
 +INTEL IPU3 CSI-2 IMGU DRIVER
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/media/ipu3/
 +F:    Documentation/media/uapi/v4l/pixfmt-meta-intel-ipu3.rst
 +F:    Documentation/media/v4l-drivers/ipu3.rst
 +
  INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
  M:    Krzysztof Halasa <khalasa@piap.pl>
  S:    Maintained
@@@ -7747,8 -7678,8 +7748,8 @@@ INTEL PRO/WIRELESS 2100, 2200BG, 2915AB
  M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
 -F:    Documentation/networking/README.ipw2100
 -F:    Documentation/networking/README.ipw2200
 +F:    Documentation/networking/device_drivers/intel/ipw2100.txt
 +F:    Documentation/networking/device_drivers/intel/ipw2200.txt
  F:    drivers/net/wireless/intel/ipw2x00/
  
  INTEL PSTATE DRIVER
@@@ -8008,6 -7939,13 +8009,6 @@@ F:     include/linux/isdn
  F:    include/uapi/linux/isdn.h
  F:    include/uapi/linux/isdn/
  
 -ISDN SUBSYSTEM (Eicon active card driver)
 -M:    Armin Schindler <mac@melware.de>
 -L:    isdn4linux@listserv.isdn4linux.de (subscribers-only)
 -W:    http://www.melware.de
 -S:    Maintained
 -F:    drivers/isdn/hardware/eicon/
 -
  IT87 HARDWARE MONITORING DRIVER
  M:    Jean Delvare <jdelvare@suse.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -8096,8 -8034,9 +8097,8 @@@ S:      Maintaine
  F:    drivers/media/platform/rcar_jpu.c
  
  JSM Neo PCI based serial card
 -M:    Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
  L:    linux-serial@vger.kernel.org
 -S:    Maintained
 +S:    Orphan
  F:    drivers/tty/serial/jsm/
  
  K10TEMP HARDWARE MONITORING DRIVER
@@@ -8303,7 -8242,6 +8304,7 @@@ W:      http://www.linux-kvm.or
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
  S:    Supported
  F:    arch/x86/kvm/
 +F:    arch/x86/kvm/*/
  F:    arch/x86/include/uapi/asm/kvm*
  F:    arch/x86/include/asm/kvm*
  F:    arch/x86/include/asm/pvclock-abi.h
@@@ -8328,7 -8266,7 +8329,7 @@@ F:      include/uapi/linux/kexec.
  F:    kernel/kexec*
  
  KEYS-ENCRYPTED
 -M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
 +M:    Mimi Zohar <zohar@linux.ibm.com>
  L:    linux-integrity@vger.kernel.org
  L:    keyrings@vger.kernel.org
  S:    Supported
@@@ -8337,9 -8275,9 +8338,9 @@@ F:      include/keys/encrypted-type.
  F:    security/keys/encrypted-keys/
  
  KEYS-TRUSTED
 -M:    James Bottomley <jejb@linux.vnet.ibm.com>
 +M:    James Bottomley <jejb@linux.ibm.com>
  M:      Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
 -M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
 +M:    Mimi Zohar <zohar@linuxibm.com>
  L:    linux-integrity@vger.kernel.org
  L:    keyrings@vger.kernel.org
  S:    Supported
@@@ -8392,7 -8330,7 +8393,7 @@@ F:      lib/test_kmod.
  F:    tools/testing/selftests/kmod/
  
  KPROBES
 -M:    Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
 +M:    Naveen N. Rao <naveen.n.rao@linux.ibm.com>
  M:    Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
  M:    "David S. Miller" <davem@davemloft.net>
  M:    Masami Hiramatsu <mhiramat@kernel.org>
@@@ -8748,7 -8686,7 +8749,7 @@@ M:      Nicholas Piggin <npiggin@gmail.com
  M:    David Howells <dhowells@redhat.com>
  M:    Jade Alglave <j.alglave@ucl.ac.uk>
  M:    Luc Maranget <luc.maranget@inria.fr>
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
  R:    Akira Yokosawa <akiyks@gmail.com>
  R:    Daniel Lustig <dlustig@nvidia.com>
  L:    linux-kernel@vger.kernel.org
@@@ -9023,7 -8961,7 +9024,7 @@@ F:      include/uapi/drm/armada_drm.
  F:    Documentation/devicetree/bindings/display/armada/
  
  MARVELL CRYPTO DRIVER
 -M:    Boris Brezillon <boris.brezillon@bootlin.com>
 +M:    Boris Brezillon <bbrezillon@kernel.org>
  M:    Arnaud Ebalard <arno@natisbad.org>
  F:    drivers/crypto/marvell/
  S:    Maintained
@@@ -9713,7 -9651,7 +9714,7 @@@ F:      drivers/platform/x86/mlx-platform.
  
  MEMBARRIER SUPPORT
  M:    Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    kernel/sched/membarrier.c
@@@ -9734,7 -9672,7 +9735,7 @@@ F:      mm
  MEMORY TECHNOLOGY DEVICES (MTD)
  M:    David Woodhouse <dwmw2@infradead.org>
  M:    Brian Norris <computersforpeace@gmail.com>
 -M:    Boris Brezillon <boris.brezillon@bootlin.com>
 +M:    Boris Brezillon <bbrezillon@kernel.org>
  M:    Marek Vasut <marek.vasut@gmail.com>
  M:    Richard Weinberger <richard@nod.at>
  L:    linux-mtd@lists.infradead.org
@@@ -9835,14 -9773,14 +9836,14 @@@ L:   linux-media@vger.kernel.or
  S:    Supported
  F:    drivers/media/platform/atmel/atmel-isc.c
  F:    drivers/media/platform/atmel/atmel-isc-regs.h
 -F:    devicetree/bindings/media/atmel-isc.txt
 +F:    Documentation/devicetree/bindings/media/atmel-isc.txt
  
  MICROCHIP ISI DRIVER
  M:    Eugen Hristev <eugen.hristev@microchip.com>
  L:    linux-media@vger.kernel.org
  S:    Supported
  F:    drivers/media/platform/atmel/atmel-isi.c
 -F:    include/media/atmel-isi.h
 +F:    drivers/media/platform/atmel/atmel-isi.h
  
  MICROCHIP AT91 USART MFD DRIVER
  M:    Radu Pirea <radu_nicolae.pirea@upb.ro>
@@@ -9888,13 -9826,6 +9889,13 @@@ M:    Ludovic Desroches <ludovic.desroches
  S:    Maintained
  F:    drivers/mmc/host/atmel-mci.c
  
 +MICROCHIP MCP16502 PMIC DRIVER
 +M:    Andrei Stefanescu <andrei.stefanescu@microchip.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/regulator/mcp16502-regulator.txt
 +F:    drivers/regulator/mcp16502.c
 +
  MICROCHIP MCP3911 ADC DRIVER
  M:    Marcus Folkesson <marcus.folkesson@gmail.com>
  M:    Kent Gustavsson <kent@minoris.se>
@@@ -9932,12 -9863,6 +9933,12 @@@ M:    Nicolas Ferre <nicolas.ferre@microch
  S:    Supported
  F:    drivers/power/reset/at91-sama5d2_shdwc.c
  
 +MICROCHIP SAMA5D2-COMPATIBLE PIOBU GPIO
 +M:    Andrei Stefanescu <andrei.stefanescu@microchip.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +L:    linux-gpio@vger.kernel.org
 +F:    drivers/gpio/gpio-sama5d2-piobu.c
 +
  MICROCHIP SPI DRIVER
  M:    Nicolas Ferre <nicolas.ferre@microchip.com>
  S:    Supported
@@@ -10000,7 -9925,6 +10001,7 @@@ F:    Documentation/scsi/smartpqi.tx
  
  MICROSEMI ETHERNET SWITCH DRIVER
  M:    Alexandre Belloni <alexandre.belloni@bootlin.com>
 +M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/mscc/
@@@ -10335,7 -10259,7 +10336,7 @@@ S:   Supporte
  F:    drivers/net/ethernet/myricom/myri10ge/
  
  NAND FLASH SUBSYSTEM
 -M:    Boris Brezillon <boris.brezillon@bootlin.com>
 +M:    Boris Brezillon <bbrezillon@kernel.org>
  M:    Miquel Raynal <miquel.raynal@bootlin.com>
  R:    Richard Weinberger <richard@nod.at>
  L:    linux-mtd@lists.infradead.org
@@@ -10412,8 -10336,8 +10413,8 @@@ NETERION 10GbE DRIVERS (s2io/vxge
  M:    Jon Mason <jdmason@kudzu.us>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/s2io.txt
 -F:    Documentation/networking/vxge.txt
 +F:    Documentation/networking/device_drivers/neterion/s2io.txt
 +F:    Documentation/networking/device_drivers/neterion/vxge.txt
  F:    drivers/net/ethernet/neterion/
  
  NETFILTER
@@@ -10855,14 -10779,6 +10856,14 @@@ L: linux-nfc@lists.01.org (moderated fo
  S:    Supported
  F:    drivers/nfc/nxp-nci
  
 +OBJAGG
 +M:    Jiri Pirko <jiri@mellanox.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    lib/objagg.c
 +F:    lib/test_objagg.c
 +F:    include/linux/objagg.h
 +
  OBJTOOL
  M:    Josh Poimboeuf <jpoimboe@redhat.com>
  M:    Peter Zijlstra <peterz@infradead.org>
@@@ -10870,7 -10786,7 +10871,7 @@@ S:   Supporte
  F:    tools/objtool/
  
  OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER
 -M:    Frederic Barrat <fbarrat@linux.vnet.ibm.com>
 +M:    Frederic Barrat <fbarrat@linux.ibm.com>
  M:    Andrew Donnellan <andrew.donnellan@au1.ibm.com>
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Supported
@@@ -10887,10 -10803,7 +10888,10 @@@ M: Jarkko Nikula <jarkko.nikula@bitmer.
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    linux-omap@vger.kernel.org
  S:    Maintained
 -F:    sound/soc/omap/
 +F:    sound/soc/ti/omap*
 +F:    sound/soc/ti/rx51.c
 +F:    sound/soc/ti/n810.c
 +F:    sound/soc/ti/sdma-pcm.*
  
  OMAP CLOCK FRAMEWORK SUPPORT
  M:    Paul Walmsley <paul@pwsan.com>
@@@ -12426,7 -12339,7 +12427,7 @@@ QLOGIC QLA3XXX NETWORK DRIVE
  M:    Dept-GELinuxNICDev@cavium.com
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/LICENSE.qla3xxx
 +F:    Documentation/networking/device_drivers/qlogic/LICENSE.qla3xxx
  F:    drivers/net/ethernet/qlogic/qla3xxx.*
  
  QLOGIC QLA4XXX iSCSI DRIVER
@@@ -12478,7 -12391,7 +12479,7 @@@ L:   linux-kernel@vger.kernel.or
  S:    Maintained
  F:    drivers/bus/fsl-mc/
  F:    Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
 -F:    Documentation/networking/dpaa2/overview.rst
 +F:    Documentation/networking/device_drivers/freescale/dpaa2/overview.rst
  
  QT1010 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -12506,7 -12419,7 +12507,7 @@@ S:   Supporte
  F:    drivers/net/wireless/ath/ath9k/
  
  QUALCOMM CAMERA SUBSYSTEM DRIVER
 -M:    Todor Tomov <todor.tomov@linaro.org>
 +M:    Todor Tomov <todor.too@gmail.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/qcom,camss.txt
@@@ -12684,7 -12597,7 +12685,7 @@@ S:   Orpha
  F:    drivers/net/wireless/ray*
  
  RCUTORTURE TEST FRAMEWORK
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
  M:    Josh Triplett <josh@joshtriplett.org>
  R:    Steven Rostedt <rostedt@goodmis.org>
  R:    Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
@@@ -12726,17 -12639,16 +12727,17 @@@ M:        Fenghua Yu <fenghua.yu@intel.com
  M:    Reinette Chatre <reinette.chatre@intel.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
 -F:    arch/x86/kernel/cpu/intel_rdt*
 -F:    arch/x86/include/asm/intel_rdt_sched.h
 -F:    Documentation/x86/intel_rdt*
 +F:    arch/x86/kernel/cpu/resctrl/
 +F:    arch/x86/include/asm/resctrl_sched.h
 +F:    Documentation/x86/resctrl*
  
  READ-COPY UPDATE (RCU)
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
  M:    Josh Triplett <josh@joshtriplett.org>
  R:    Steven Rostedt <rostedt@goodmis.org>
  R:    Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  R:    Lai Jiangshan <jiangshanlai@gmail.com>
 +R:    Joel Fernandes <joel@joelfernandes.org>
  L:    linux-kernel@vger.kernel.org
  W:    http://www.rdrop.com/users/paulmck/RCU/
  S:    Supported
@@@ -12872,7 -12784,7 +12873,7 @@@ F:   include/linux/reset-controller.
  RESTARTABLE SEQUENCES SUPPORT
  M:    Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  M:    Peter Zijlstra <peterz@infradead.org>
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
  M:    Boqun Feng <boqun.feng@gmail.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
@@@ -12940,13 -12852,6 +12941,13 @@@ S: Maintaine
  F:    drivers/media/platform/rockchip/rga/
  F:    Documentation/devicetree/bindings/media/rockchip-rga.txt
  
 +ROCKCHIP VPU CODEC DRIVER
 +M:    Ezequiel Garcia <ezequiel@collabora.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/media/platform/rockchip/vpu/
 +F:    Documentation/devicetree/bindings/media/rockchip-vpu.txt
 +
  ROCKER DRIVER
  M:    Jiri Pirko <jiri@resnulli.us>
  L:    netdev@vger.kernel.org
@@@ -13196,7 -13101,7 +13197,7 @@@ T:   git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/common/saa7146/
  F:    drivers/media/pci/saa7146/
 -F:    include/media/saa7146*
 +F:    include/media/drv-intf/saa7146*
  
  SAMSUNG AUDIO (ASoC) DRIVERS
  M:    Krzysztof Kozlowski <krzk@kernel.org>
@@@ -13404,7 -13309,7 +13405,7 @@@ F:   drivers/scsi/sg.
  F:    include/scsi/sg.h
  
  SCSI SUBSYSTEM
 -M:    "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
 +M:    "James E.J. Bottomley" <jejb@linux.ibm.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
  M:    "Martin K. Petersen" <martin.petersen@oracle.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
@@@ -13462,12 -13367,6 +13463,12 @@@ L: sdricohcs-devel@lists.sourceforge.ne
  S:    Maintained
  F:    drivers/mmc/host/sdricoh_cs.c
  
 +SECO BOARDS CEC DRIVER
 +M:    Ettore Chimenti <ek5.chimenti@gmail.com>
 +S:    Maintained
 +F:    drivers/media/platform/seco-cec/seco-cec.c
 +F:    drivers/media/platform/seco-cec/seco-cec.h
 +
  SECURE COMPUTING
  M:    Kees Cook <keescook@chromium.org>
  R:    Andy Lutomirski <luto@amacapital.net>
@@@ -13845,7 -13744,7 +13846,7 @@@ F:   mm/sl?b
  
  SLEEPABLE READ-COPY UPDATE (SRCU)
  M:    Lai Jiangshan <jiangshanlai@gmail.com>
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
  M:    Josh Triplett <josh@joshtriplett.org>
  R:    Steven Rostedt <rostedt@goodmis.org>
  R:    Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
@@@ -14041,14 -13940,6 +14042,14 @@@ S: Maintaine
  F:    drivers/ssb/
  F:    include/linux/ssb/
  
 +SONY IMX214 SENSOR DRIVER
 +M:    Ricardo Ribalda <ricardo.ribalda@gmail.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/imx214.c
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
 +
  SONY IMX258 SENSOR DRIVER
  M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    linux-media@vger.kernel.org
@@@ -14240,7 -14131,7 +14241,7 @@@ SPIDERNET NETWORK DRIVER for CEL
  M:    Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/spider_net.txt
 +F:    Documentation/networking/device_drivers/toshiba/spider_net.txt
  F:    drivers/net/ethernet/toshiba/spider_net*
  
  SPMI SUBSYSTEM
@@@ -14956,12 -14847,6 +14957,12 @@@ F: Documentation/devicetree/bindings/cl
  F:    drivers/clk/keystone/sci-clk.c
  F:    drivers/reset/reset-ti-sci.c
  
 +Texas Instruments ASoC drivers
 +M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    sound/soc/ti/
 +
  THANKO'S RAREMONO AM/FM/SW RADIO RECEIVER USB DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -15236,7 -15121,7 +15237,7 @@@ M:   Samuel Chessman <chessman@tux.org
  L:    tlan-devel@lists.sourceforge.net (subscribers-only)
  W:    http://sourceforge.net/projects/tlan/
  S:    Maintained
 -F:    Documentation/networking/tlan.txt
 +F:    Documentation/networking/device_drivers/ti/tlan.txt
  F:    drivers/net/ethernet/ti/tlan.*
  
  TM6000 VIDEO4LINUX DRIVER
@@@ -15290,7 -15175,7 +15291,7 @@@ F:   drivers/platform/x86/topstar-laptop.
  
  TORTURE-TEST MODULES
  M:    Davidlohr Bueso <dave@stgolabs.net>
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
  M:    Josh Triplett <josh@joshtriplett.org>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
@@@ -16549,12 -16434,6 +16550,12 @@@ F: include/linux/idr.
  F:    include/linux/xarray.h
  F:    tools/testing/radix-tree
  
 +XBOX DVD IR REMOTE
 +M:    Benjamin Valentin <benpicco@googlemail.com>
 +S:    Maintained
 +F:    drivers/media/rc/xbox_remote.c
 +F:    drivers/media/rc/keymaps/rc-xbox-dvd.c
 +
  XC2028/3028 TUNER DRIVER
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
@@@ -16601,7 -16480,6 +16602,7 @@@ L:   xen-devel@lists.xenproject.org (mode
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
  S:    Supported
  F:    arch/x86/xen/
 +F:    arch/x86/platform/pvh/
  F:    drivers/*/xen-*front.c
  F:    drivers/xen/
  F:    arch/x86/include/asm/xen/
index 0dca2fa51dc3fda39299a3672fb95bcfb0ba8959,3edb6082c670f0a940257b9b35183f9fc3dc16c2..215a45374d7b08d6a05d7efe6a62b14e24dae075
@@@ -15,7 -15,6 +15,7 @@@
  #include <linux/netdevice.h>
  #include <linux/phy.h>
  #include <linux/skbuff.h>
 +#include <linux/iopoll.h>
  #include <net/arp.h>
  #include <net/netevent.h>
  #include <net/rtnetlink.h>
@@@ -23,9 -22,6 +23,9 @@@
  
  #include "ocelot.h"
  
 +#define TABLE_UPDATE_SLEEP_US 10
 +#define TABLE_UPDATE_TIMEOUT_US 100000
 +
  /* MAC table entry types.
   * ENTRYTYPE_NORMAL is subject to aging.
   * ENTRYTYPE_LOCKED is not subject to aging.
@@@ -45,20 -41,23 +45,20 @@@ struct ocelot_mact_entry 
        enum macaccess_entry_type type;
  };
  
 -static inline int ocelot_mact_wait_for_completion(struct ocelot *ocelot)
 +static inline u32 ocelot_mact_read_macaccess(struct ocelot *ocelot)
  {
 -      unsigned int val, timeout = 10;
 -
 -      /* Wait for the issued mac table command to be completed, or timeout.
 -       * When the command read from  ANA_TABLES_MACACCESS is
 -       * MACACCESS_CMD_IDLE, the issued command completed successfully.
 -       */
 -      do {
 -              val = ocelot_read(ocelot, ANA_TABLES_MACACCESS);
 -              val &= ANA_TABLES_MACACCESS_MAC_TABLE_CMD_M;
 -      } while (val != MACACCESS_CMD_IDLE && timeout--);
 +      return ocelot_read(ocelot, ANA_TABLES_MACACCESS);
 +}
  
 -      if (!timeout)
 -              return -ETIMEDOUT;
 +static inline int ocelot_mact_wait_for_completion(struct ocelot *ocelot)
 +{
 +      u32 val;
  
 -      return 0;
 +      return readx_poll_timeout(ocelot_mact_read_macaccess,
 +              ocelot, val,
 +              (val & ANA_TABLES_MACACCESS_MAC_TABLE_CMD_M) ==
 +              MACACCESS_CMD_IDLE,
 +              TABLE_UPDATE_SLEEP_US, TABLE_UPDATE_TIMEOUT_US);
  }
  
  static void ocelot_mact_select(struct ocelot *ocelot,
@@@ -130,21 -129,23 +130,21 @@@ static void ocelot_mact_init(struct oce
        ocelot_write(ocelot, MACACCESS_CMD_INIT, ANA_TABLES_MACACCESS);
  }
  
 -static inline int ocelot_vlant_wait_for_completion(struct ocelot *ocelot)
 +static inline u32 ocelot_vlant_read_vlanaccess(struct ocelot *ocelot)
  {
 -      unsigned int val, timeout = 10;
 -
 -      /* Wait for the issued vlan table command to be completed, or timeout.
 -       * When the command read from ANA_TABLES_VLANACCESS is
 -       * VLANACCESS_CMD_IDLE, the issued command completed successfully.
 -       */
 -      do {
 -              val = ocelot_read(ocelot, ANA_TABLES_VLANACCESS);
 -              val &= ANA_TABLES_VLANACCESS_VLAN_TBL_CMD_M;
 -      } while (val != ANA_TABLES_VLANACCESS_CMD_IDLE && timeout--);
 +      return ocelot_read(ocelot, ANA_TABLES_VLANACCESS);
 +}
  
 -      if (!timeout)
 -              return -ETIMEDOUT;
 +static inline int ocelot_vlant_wait_for_completion(struct ocelot *ocelot)
 +{
 +      u32 val;
  
 -      return 0;
 +      return readx_poll_timeout(ocelot_vlant_read_vlanaccess,
 +              ocelot,
 +              val,
 +              (val & ANA_TABLES_VLANACCESS_VLAN_TBL_CMD_M) ==
 +              ANA_TABLES_VLANACCESS_CMD_IDLE,
 +              TABLE_UPDATE_SLEEP_US, TABLE_UPDATE_TIMEOUT_US);
  }
  
  static int ocelot_vlant_set_mask(struct ocelot *ocelot, u16 vid, u32 mask)
@@@ -471,7 -472,6 +471,6 @@@ static int ocelot_port_open(struct net_
  {
        struct ocelot_port *port = netdev_priv(dev);
        struct ocelot *ocelot = port->ocelot;
-       enum phy_mode phy_mode;
        int err;
  
        /* Enable receiving frames on the port, and activate auto-learning of
                         ANA_PORT_PORT_CFG, port->chip_port);
  
        if (port->serdes) {
-               if (port->phy_mode == PHY_INTERFACE_MODE_SGMII)
-                       phy_mode = PHY_MODE_SGMII;
-               else
-                       phy_mode = PHY_MODE_QSGMII;
-               err = phy_set_mode(port->serdes, phy_mode);
+               err = phy_set_mode_ext(port->serdes, PHY_MODE_ETHERNET,
+                                      port->phy_mode);
                if (err) {
                        netdev_err(dev, "Could not set mode of SerDes\n");
                        return err;
@@@ -746,7 -742,7 +741,7 @@@ static int ocelot_fdb_add(struct ndmsg 
        }
  
        return ocelot_mact_learn(ocelot, port->chip_port, addr, vid,
 -                               ENTRYTYPE_NORMAL);
 +                               ENTRYTYPE_LOCKED);
  }
  
  static int ocelot_fdb_del(struct ndmsg *ndm, struct nlattr *tb[],
@@@ -1292,8 -1288,7 +1287,8 @@@ static int ocelot_port_obj_del_mdb(stru
  
  static int ocelot_port_obj_add(struct net_device *dev,
                               const struct switchdev_obj *obj,
 -                             struct switchdev_trans *trans)
 +                             struct switchdev_trans *trans,
 +                             struct netlink_ext_ack *extack)
  {
        int ret = 0;
  
@@@ -1337,6 -1332,8 +1332,6 @@@ static int ocelot_port_obj_del(struct n
  static const struct switchdev_ops ocelot_port_switchdev_ops = {
        .switchdev_port_attr_get        = ocelot_port_attr_get,
        .switchdev_port_attr_set        = ocelot_port_attr_set,
 -      .switchdev_port_obj_add         = ocelot_port_obj_add,
 -      .switchdev_port_obj_del         = ocelot_port_obj_del,
  };
  
  static int ocelot_port_bridge_join(struct ocelot_port *ocelot_port,
@@@ -1593,34 -1590,6 +1588,34 @@@ struct notifier_block ocelot_netdevice_
  };
  EXPORT_SYMBOL(ocelot_netdevice_nb);
  
 +static int ocelot_switchdev_blocking_event(struct notifier_block *unused,
 +                                         unsigned long event, void *ptr)
 +{
 +      struct net_device *dev = switchdev_notifier_info_to_dev(ptr);
 +      int err;
 +
 +      switch (event) {
 +              /* Blocking events. */
 +      case SWITCHDEV_PORT_OBJ_ADD:
 +              err = switchdev_handle_port_obj_add(dev, ptr,
 +                                                  ocelot_netdevice_dev_check,
 +                                                  ocelot_port_obj_add);
 +              return notifier_from_errno(err);
 +      case SWITCHDEV_PORT_OBJ_DEL:
 +              err = switchdev_handle_port_obj_del(dev, ptr,
 +                                                  ocelot_netdevice_dev_check,
 +                                                  ocelot_port_obj_del);
 +              return notifier_from_errno(err);
 +      }
 +
 +      return NOTIFY_DONE;
 +}
 +
 +struct notifier_block ocelot_switchdev_blocking_nb __read_mostly = {
 +      .notifier_call = ocelot_switchdev_blocking_event,
 +};
 +EXPORT_SYMBOL(ocelot_switchdev_blocking_nb);
 +
  int ocelot_probe_port(struct ocelot *ocelot, u8 port,
                      void __iomem *regs,
                      struct phy_device *phy)
index 0e8f61a29479201ec157f1e1cdd97e76d0851cc4,94e5e5b791ecbdfc69b7d381160f29128f0ac6e2..a591583d120e1f598ab66f8d5e07daf15dc46321
@@@ -26,6 -26,7 +26,7 @@@
  #include <linux/netdevice.h>
  #include <linux/net_tstamp.h>
  #include <linux/phy.h>
+ #include <linux/phy/phy.h>
  #include <linux/workqueue.h>
  #include <linux/delay.h>
  #include <linux/pm_runtime.h>
@@@ -283,7 -284,7 +284,7 @@@ struct cpsw_ss_regs 
  
  #define CTRL_V2_TS_BITS \
        (TS_320 | TS_319 | TS_132 | TS_131 | TS_130 | TS_129 |\
 -       TS_TTL_NONZERO  | TS_ANNEX_D_EN | TS_LTYPE1_EN)
 +       TS_TTL_NONZERO  | TS_ANNEX_D_EN | TS_LTYPE1_EN | VLAN_LTYPE1_EN)
  
  #define CTRL_V2_ALL_TS_MASK (CTRL_V2_TS_BITS | TS_TX_EN | TS_RX_EN)
  #define CTRL_V2_TX_TS_BITS  (CTRL_V2_TS_BITS | TS_TX_EN)
  #define CTRL_V3_TS_BITS \
        (TS_107 | TS_320 | TS_319 | TS_132 | TS_131 | TS_130 | TS_129 |\
         TS_TTL_NONZERO | TS_ANNEX_F_EN | TS_ANNEX_D_EN |\
 -       TS_LTYPE1_EN)
 +       TS_LTYPE1_EN | VLAN_LTYPE1_EN)
  
  #define CTRL_V3_ALL_TS_MASK (CTRL_V3_TS_BITS | TS_TX_EN | TS_RX_EN)
  #define CTRL_V3_TX_TS_BITS  (CTRL_V3_TS_BITS | TS_TX_EN)
@@@ -387,6 -388,7 +388,7 @@@ struct cpsw_slave_data 
        int             phy_if;
        u8              mac_addr[ETH_ALEN];
        u16             dual_emac_res_vlan;     /* Reserved VLAN for DualEMAC */
+       struct phy      *ifphy;
  };
  
  struct cpsw_platform_data {
@@@ -466,8 -468,6 +468,8 @@@ struct cpsw_priv 
        bool                            mqprio_hw;
        int                             fifo_bw[CPSW_TC_NUM];
        int                             shp_cfg_speed;
 +      int                             tx_ts_enabled;
 +      int                             rx_ts_enabled;
        u32 emac_port;
        struct cpsw_common *cpsw;
  };
@@@ -567,14 -567,26 +569,14 @@@ static const struct cpsw_stats cpsw_gst
                                (func)(slave++, ##arg);                 \
        } while (0)
  
 +static int cpsw_ndo_vlan_rx_add_vid(struct net_device *ndev,
 +                                  __be16 proto, u16 vid);
 +
  static inline int cpsw_get_slave_port(u32 slave_num)
  {
        return slave_num + 1;
  }
  
 -static void cpsw_add_mcast(struct cpsw_priv *priv, const u8 *addr)
 -{
 -      struct cpsw_common *cpsw = priv->cpsw;
 -
 -      if (cpsw->data.dual_emac) {
 -              struct cpsw_slave *slave = cpsw->slaves + priv->emac_port;
 -
 -              cpsw_ale_add_mcast(cpsw->ale, addr, ALE_PORT_HOST,
 -                                 ALE_VLAN, slave->port_vlan, 0);
 -              return;
 -      }
 -
 -      cpsw_ale_add_mcast(cpsw->ale, addr, ALE_ALL_PORTS, 0, 0, 0);
 -}
 -
  static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
  {
        struct cpsw_common *cpsw = ndev_to_cpsw(ndev);
  
                        /* Clear all mcast from ALE */
                        cpsw_ale_flush_multicast(ale, ALE_ALL_PORTS, -1);
 -                      __dev_mc_unsync(ndev, NULL);
 +                      __hw_addr_ref_unsync_dev(&ndev->mc, ndev, NULL);
  
                        /* Flood All Unicast Packets to Host port */
                        cpsw_ale_control_set(ale, 0, ALE_P0_UNI_FLOOD, 1);
        }
  }
  
 -static int cpsw_add_mc_addr(struct net_device *ndev, const u8 *addr)
 +struct addr_sync_ctx {
 +      struct net_device *ndev;
 +      const u8 *addr;         /* address to be synched */
 +      int consumed;           /* number of address instances */
 +      int flush;              /* flush flag */
 +};
 +
 +/**
 + * cpsw_set_mc - adds multicast entry to the table if it's not added or deletes
 + * if it's not deleted
 + * @ndev: device to sync
 + * @addr: address to be added or deleted
 + * @vid: vlan id, if vid < 0 set/unset address for real device
 + * @add: add address if the flag is set or remove otherwise
 + */
 +static int cpsw_set_mc(struct net_device *ndev, const u8 *addr,
 +                     int vid, int add)
  {
        struct cpsw_priv *priv = netdev_priv(ndev);
 +      struct cpsw_common *cpsw = priv->cpsw;
 +      int mask, flags, ret;
 +
 +      if (vid < 0) {
 +              if (cpsw->data.dual_emac)
 +                      vid = cpsw->slaves[priv->emac_port].port_vlan;
 +              else
 +                      vid = 0;
 +      }
 +
 +      mask = cpsw->data.dual_emac ? ALE_PORT_HOST : ALE_ALL_PORTS;
 +      flags = vid ? ALE_VLAN : 0;
 +
 +      if (add)
 +              ret = cpsw_ale_add_mcast(cpsw->ale, addr, mask, flags, vid, 0);
 +      else
 +              ret = cpsw_ale_del_mcast(cpsw->ale, addr, 0, flags, vid);
 +
 +      return ret;
 +}
 +
 +static int cpsw_update_vlan_mc(struct net_device *vdev, int vid, void *ctx)
 +{
 +      struct addr_sync_ctx *sync_ctx = ctx;
 +      struct netdev_hw_addr *ha;
 +      int found = 0, ret = 0;
 +
 +      if (!vdev || !(vdev->flags & IFF_UP))
 +              return 0;
 +
 +      /* vlan address is relevant if its sync_cnt != 0 */
 +      netdev_for_each_mc_addr(ha, vdev) {
 +              if (ether_addr_equal(ha->addr, sync_ctx->addr)) {
 +                      found = ha->sync_cnt;
 +                      break;
 +              }
 +      }
 +
 +      if (found)
 +              sync_ctx->consumed++;
 +
 +      if (sync_ctx->flush) {
 +              if (!found)
 +                      cpsw_set_mc(sync_ctx->ndev, sync_ctx->addr, vid, 0);
 +              return 0;
 +      }
 +
 +      if (found)
 +              ret = cpsw_set_mc(sync_ctx->ndev, sync_ctx->addr, vid, 1);
 +
 +      return ret;
 +}
 +
 +static int cpsw_add_mc_addr(struct net_device *ndev, const u8 *addr, int num)
 +{
 +      struct addr_sync_ctx sync_ctx;
 +      int ret;
 +
 +      sync_ctx.consumed = 0;
 +      sync_ctx.addr = addr;
 +      sync_ctx.ndev = ndev;
 +      sync_ctx.flush = 0;
 +
 +      ret = vlan_for_each(ndev, cpsw_update_vlan_mc, &sync_ctx);
 +      if (sync_ctx.consumed < num && !ret)
 +              ret = cpsw_set_mc(ndev, addr, -1, 1);
 +
 +      return ret;
 +}
 +
 +static int cpsw_del_mc_addr(struct net_device *ndev, const u8 *addr, int num)
 +{
 +      struct addr_sync_ctx sync_ctx;
 +
 +      sync_ctx.consumed = 0;
 +      sync_ctx.addr = addr;
 +      sync_ctx.ndev = ndev;
 +      sync_ctx.flush = 1;
 +
 +      vlan_for_each(ndev, cpsw_update_vlan_mc, &sync_ctx);
 +      if (sync_ctx.consumed == num)
 +              cpsw_set_mc(ndev, addr, -1, 0);
  
 -      cpsw_add_mcast(priv, addr);
        return 0;
  }
  
 -static int cpsw_del_mc_addr(struct net_device *ndev, const u8 *addr)
 +static int cpsw_purge_vlan_mc(struct net_device *vdev, int vid, void *ctx)
  {
 -      struct cpsw_priv *priv = netdev_priv(ndev);
 -      struct cpsw_common *cpsw = priv->cpsw;
 -      int vid, flags;
 +      struct addr_sync_ctx *sync_ctx = ctx;
 +      struct netdev_hw_addr *ha;
 +      int found = 0;
  
 -      if (cpsw->data.dual_emac) {
 -              vid = cpsw->slaves[priv->emac_port].port_vlan;
 -              flags = ALE_VLAN;
 -      } else {
 -              vid = 0;
 -              flags = 0;
 +      if (!vdev || !(vdev->flags & IFF_UP))
 +              return 0;
 +
 +      /* vlan address is relevant if its sync_cnt != 0 */
 +      netdev_for_each_mc_addr(ha, vdev) {
 +              if (ether_addr_equal(ha->addr, sync_ctx->addr)) {
 +                      found = ha->sync_cnt;
 +                      break;
 +              }
        }
  
 -      cpsw_ale_del_mcast(cpsw->ale, addr, 0, flags, vid);
 +      if (!found)
 +              return 0;
 +
 +      sync_ctx->consumed++;
 +      cpsw_set_mc(sync_ctx->ndev, sync_ctx->addr, vid, 0);
 +      return 0;
 +}
 +
 +static int cpsw_purge_all_mc(struct net_device *ndev, const u8 *addr, int num)
 +{
 +      struct addr_sync_ctx sync_ctx;
 +
 +      sync_ctx.addr = addr;
 +      sync_ctx.ndev = ndev;
 +      sync_ctx.consumed = 0;
 +
 +      vlan_for_each(ndev, cpsw_purge_vlan_mc, &sync_ctx);
 +      if (sync_ctx.consumed < num)
 +              cpsw_set_mc(ndev, addr, -1, 0);
 +
        return 0;
  }
  
@@@ -813,9 -706,7 +815,9 @@@ static void cpsw_ndo_set_rx_mode(struc
        /* Restore allmulti on vlans if necessary */
        cpsw_ale_set_allmulti(cpsw->ale, ndev->flags & IFF_ALLMULTI);
  
 -      __dev_mc_sync(ndev, cpsw_add_mc_addr, cpsw_del_mc_addr);
 +      /* add/remove mcast address either for real netdev or for vlan */
 +      __hw_addr_ref_sync_dev(&ndev->mc, ndev, cpsw_add_mc_addr,
 +                             cpsw_del_mc_addr);
  }
  
  static void cpsw_intr_enable(struct cpsw_common *cpsw)
@@@ -907,7 -798,6 +909,7 @@@ static void cpsw_rx_handler(void *token
        struct net_device       *ndev = skb->dev;
        int                     ret = 0, port;
        struct cpsw_common      *cpsw = ndev_to_cpsw(ndev);
 +      struct cpsw_priv        *priv;
  
        if (cpsw->data.dual_emac) {
                port = CPDMA_RX_SOURCE_PORT(status);
                skb_put(skb, len);
                if (status & CPDMA_RX_VLAN_ENCAP)
                        cpsw_rx_vlan_encap(skb);
 -              cpts_rx_timestamp(cpsw->cpts, skb);
 +              priv = netdev_priv(ndev);
 +              if (priv->rx_ts_enabled)
 +                      cpts_rx_timestamp(cpsw->cpts, skb);
                skb->protocol = eth_type_trans(skb, ndev);
                netif_receive_skb(skb);
                ndev->stats.rx_bytes += len;
@@@ -1624,7 -1512,12 +1626,12 @@@ static void cpsw_slave_open(struct cpsw
        phy_start(slave->phy);
  
        /* Configure GMII_SEL register */
-       cpsw_phy_sel(cpsw->dev, slave->phy->interface, slave->slave_num);
+       if (!IS_ERR(slave->data->ifphy))
+               phy_set_mode_ext(slave->data->ifphy, PHY_MODE_ETHERNET,
+                                slave->data->phy_if);
+       else
+               cpsw_phy_sel(cpsw->dev, slave->phy->interface,
+                            slave->slave_num);
  }
  
  static inline void cpsw_add_default_vlan(struct cpsw_priv *priv)
@@@ -1959,23 -1852,9 +1966,23 @@@ static void cpsw_mqprio_resume(struct c
        slave_write(slave, tx_prio_map, tx_prio_rg);
  }
  
 +static int cpsw_restore_vlans(struct net_device *vdev, int vid, void *arg)
 +{
 +      struct cpsw_priv *priv = arg;
 +
 +      if (!vdev)
 +              return 0;
 +
 +      cpsw_ndo_vlan_rx_add_vid(priv->ndev, 0, vid);
 +      return 0;
 +}
 +
  /* restore resources after port reset */
  static void cpsw_restore(struct cpsw_priv *priv)
  {
 +      /* restore vlan configurations */
 +      vlan_for_each(priv->ndev, cpsw_restore_vlans, priv);
 +
        /* restore MQPRIO offload */
        for_each_slave(priv, cpsw_mqprio_resume, priv);
  
@@@ -2092,7 -1971,7 +2099,7 @@@ static int cpsw_ndo_stop(struct net_dev
        struct cpsw_common *cpsw = priv->cpsw;
  
        cpsw_info(priv, ifdown, "shutting down cpsw device\n");
 -      __dev_mc_unsync(priv->ndev, cpsw_del_mc_addr);
 +      __hw_addr_ref_unsync_dev(&ndev->mc, ndev, cpsw_purge_all_mc);
        netif_tx_stop_all_queues(priv->ndev);
        netif_carrier_off(priv->ndev);
  
@@@ -2131,7 -2010,7 +2138,7 @@@ static netdev_tx_t cpsw_ndo_start_xmit(
        }
  
        if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP &&
 -          cpts_is_tx_enabled(cpts) && cpts_can_timestamp(cpts, skb))
 +          priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb))
                skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
  
        q_idx = skb_get_queue_mapping(skb);
@@@ -2175,13 -2054,13 +2182,13 @@@ fail
  
  #if IS_ENABLED(CONFIG_TI_CPTS)
  
 -static void cpsw_hwtstamp_v1(struct cpsw_common *cpsw)
 +static void cpsw_hwtstamp_v1(struct cpsw_priv *priv)
  {
 +      struct cpsw_common *cpsw = priv->cpsw;
        struct cpsw_slave *slave = &cpsw->slaves[cpsw->data.active_slave];
        u32 ts_en, seq_id;
  
 -      if (!cpts_is_tx_enabled(cpsw->cpts) &&
 -          !cpts_is_rx_enabled(cpsw->cpts)) {
 +      if (!priv->tx_ts_enabled && !priv->rx_ts_enabled) {
                slave_write(slave, 0, CPSW1_TS_CTL);
                return;
        }
        seq_id = (30 << CPSW_V1_SEQ_ID_OFS_SHIFT) | ETH_P_1588;
        ts_en = EVENT_MSG_BITS << CPSW_V1_MSG_TYPE_OFS;
  
 -      if (cpts_is_tx_enabled(cpsw->cpts))
 +      if (priv->tx_ts_enabled)
                ts_en |= CPSW_V1_TS_TX_EN;
  
 -      if (cpts_is_rx_enabled(cpsw->cpts))
 +      if (priv->rx_ts_enabled)
                ts_en |= CPSW_V1_TS_RX_EN;
  
        slave_write(slave, ts_en, CPSW1_TS_CTL);
@@@ -2212,20 -2091,20 +2219,20 @@@ static void cpsw_hwtstamp_v2(struct cps
        case CPSW_VERSION_2:
                ctrl &= ~CTRL_V2_ALL_TS_MASK;
  
 -              if (cpts_is_tx_enabled(cpsw->cpts))
 +              if (priv->tx_ts_enabled)
                        ctrl |= CTRL_V2_TX_TS_BITS;
  
 -              if (cpts_is_rx_enabled(cpsw->cpts))
 +              if (priv->rx_ts_enabled)
                        ctrl |= CTRL_V2_RX_TS_BITS;
                break;
        case CPSW_VERSION_3:
        default:
                ctrl &= ~CTRL_V3_ALL_TS_MASK;
  
 -              if (cpts_is_tx_enabled(cpsw->cpts))
 +              if (priv->tx_ts_enabled)
                        ctrl |= CTRL_V3_TX_TS_BITS;
  
 -              if (cpts_is_rx_enabled(cpsw->cpts))
 +              if (priv->rx_ts_enabled)
                        ctrl |= CTRL_V3_RX_TS_BITS;
                break;
        }
        slave_write(slave, mtype, CPSW2_TS_SEQ_MTYPE);
        slave_write(slave, ctrl, CPSW2_CONTROL);
        writel_relaxed(ETH_P_1588, &cpsw->regs->ts_ltype);
 +      writel_relaxed(ETH_P_8021Q, &cpsw->regs->vlan_ltype);
  }
  
  static int cpsw_hwtstamp_set(struct net_device *dev, struct ifreq *ifr)
        struct cpsw_priv *priv = netdev_priv(dev);
        struct hwtstamp_config cfg;
        struct cpsw_common *cpsw = priv->cpsw;
 -      struct cpts *cpts = cpsw->cpts;
  
        if (cpsw->version != CPSW_VERSION_1 &&
            cpsw->version != CPSW_VERSION_2 &&
  
        switch (cfg.rx_filter) {
        case HWTSTAMP_FILTER_NONE:
 -              cpts_rx_enable(cpts, 0);
 +              priv->rx_ts_enabled = 0;
                break;
        case HWTSTAMP_FILTER_ALL:
        case HWTSTAMP_FILTER_NTP_ALL:
        case HWTSTAMP_FILTER_PTP_V1_L4_EVENT:
        case HWTSTAMP_FILTER_PTP_V1_L4_SYNC:
        case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ:
 -              cpts_rx_enable(cpts, HWTSTAMP_FILTER_PTP_V1_L4_EVENT);
 +              priv->rx_ts_enabled = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
                cfg.rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
                break;
        case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
        case HWTSTAMP_FILTER_PTP_V2_EVENT:
        case HWTSTAMP_FILTER_PTP_V2_SYNC:
        case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ:
 -              cpts_rx_enable(cpts, HWTSTAMP_FILTER_PTP_V2_EVENT);
 +              priv->rx_ts_enabled = HWTSTAMP_FILTER_PTP_V2_EVENT;
                cfg.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
                break;
        default:
                return -ERANGE;
        }
  
 -      cpts_tx_enable(cpts, cfg.tx_type == HWTSTAMP_TX_ON);
 +      priv->tx_ts_enabled = cfg.tx_type == HWTSTAMP_TX_ON;
  
        switch (cpsw->version) {
        case CPSW_VERSION_1:
 -              cpsw_hwtstamp_v1(cpsw);
 +              cpsw_hwtstamp_v1(priv);
                break;
        case CPSW_VERSION_2:
        case CPSW_VERSION_3:
  static int cpsw_hwtstamp_get(struct net_device *dev, struct ifreq *ifr)
  {
        struct cpsw_common *cpsw = ndev_to_cpsw(dev);
 -      struct cpts *cpts = cpsw->cpts;
 +      struct cpsw_priv *priv = netdev_priv(dev);
        struct hwtstamp_config cfg;
  
        if (cpsw->version != CPSW_VERSION_1 &&
                return -EOPNOTSUPP;
  
        cfg.flags = 0;
 -      cfg.tx_type = cpts_is_tx_enabled(cpts) ?
 -                    HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF;
 -      cfg.rx_filter = (cpts_is_rx_enabled(cpts) ?
 -                       cpts->rx_enable : HWTSTAMP_FILTER_NONE);
 +      cfg.tx_type = priv->tx_ts_enabled ? HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF;
 +      cfg.rx_filter = priv->rx_ts_enabled;
  
        return copy_to_user(ifr->ifr_data, &cfg, sizeof(cfg)) ? -EFAULT : 0;
  }
@@@ -2541,7 -2422,6 +2548,7 @@@ static int cpsw_ndo_vlan_rx_kill_vid(st
                                  HOST_PORT_NUM, ALE_VLAN, vid);
        ret |= cpsw_ale_del_mcast(cpsw->ale, priv->ndev->broadcast,
                                  0, ALE_VLAN, vid);
 +      ret |= cpsw_ale_flush_multicast(cpsw->ale, 0, vid);
  err:
        pm_runtime_put(cpsw->dev);
        return ret;
@@@ -3271,9 -3151,19 +3278,19 @@@ static int cpsw_probe_dt(struct cpsw_pl
                const __be32 *parp;
  
                /* This is no slave child node, continue */
 -              if (strcmp(slave_node->name, "slave"))
 +              if (!of_node_name_eq(slave_node, "slave"))
                        continue;
  
+               slave_data->ifphy = devm_of_phy_get(&pdev->dev, slave_node,
+                                                   NULL);
+               if (!IS_ENABLED(CONFIG_TI_CPSW_PHY_SEL) &&
+                   IS_ERR(slave_data->ifphy)) {
+                       ret = PTR_ERR(slave_data->ifphy);
+                       dev_err(&pdev->dev,
+                               "%d: Error retrieving port phy: %d\n", i, ret);
+                       return ret;
+               }
                slave_data->phy_node = of_parse_phandle(slave_node,
                                                        "phy-handle", 0);
                parp = of_get_property(slave_node, "phy_id", &lenp);
@@@ -3367,7 -3257,7 +3384,7 @@@ static void cpsw_remove_dt(struct platf
        for_each_available_child_of_node(node, slave_node) {
                struct cpsw_slave_data *slave_data = &data->slave_data[i];
  
 -              if (strcmp(slave_node->name, "slave"))
 +              if (!of_node_name_eq(slave_node, "slave"))
                        continue;
  
                if (of_phy_is_fixed_link(slave_node))
index 616b8853a91f8f8be7fa2d97f7fe9fc3b8106257,87cbf18d03056cc24acbf2516c824813227b2069..02bc74608cf3ee6f01181e0f457be00f3aeac5d9
@@@ -79,7 -79,7 +79,7 @@@ static const struct property_entry max1
  };
  
  static const struct property_entry fusb302_props[] = {
-       PROPERTY_ENTRY_STRING("fcs,extcon-name", "cht_wcove_pwrsrc"),
+       PROPERTY_ENTRY_STRING("linux,extcon-name", "cht_wcove_pwrsrc"),
        PROPERTY_ENTRY_U32("fcs,max-sink-microvolt", 12000000),
        PROPERTY_ENTRY_U32("fcs,max-sink-microamp",   3000000),
        PROPERTY_ENTRY_U32("fcs,max-sink-microwatt", 36000000),
@@@ -168,8 -168,8 +168,8 @@@ static int cht_int33fe_probe(struct pla
                board_info.dev_name = "max17047";
                board_info.properties = max17047_props;
                data->max17047 = i2c_acpi_new_device(dev, 1, &board_info);
 -              if (!data->max17047)
 -                      return -EPROBE_DEFER; /* Wait for i2c-adapter to load */
 +              if (IS_ERR(data->max17047))
 +                      return PTR_ERR(data->max17047);
        }
  
        data->connections[0].endpoint[0] = "port0";
        board_info.irq = fusb302_irq;
  
        data->fusb302 = i2c_acpi_new_device(dev, 2, &board_info);
 -      if (!data->fusb302)
 +      if (IS_ERR(data->fusb302)) {
 +              ret = PTR_ERR(data->fusb302);
                goto out_unregister_max17047;
 +      }
  
        memset(&board_info, 0, sizeof(board_info));
        board_info.dev_name = "pi3usb30532";
        strlcpy(board_info.type, "pi3usb30532", I2C_NAME_SIZE);
  
        data->pi3usb30532 = i2c_acpi_new_device(dev, 3, &board_info);
 -      if (!data->pi3usb30532)
 +      if (IS_ERR(data->pi3usb30532)) {
 +              ret = PTR_ERR(data->pi3usb30532);
                goto out_unregister_fusb302;
 +      }
  
        platform_set_drvdata(pdev, data);
  
@@@ -217,11 -213,12 +217,11 @@@ out_unregister_fusb302
        i2c_unregister_device(data->fusb302);
  
  out_unregister_max17047:
 -      if (data->max17047)
 -              i2c_unregister_device(data->max17047);
 +      i2c_unregister_device(data->max17047);
  
        device_connections_remove(data->connections);
  
 -      return -EPROBE_DEFER; /* Wait for the i2c-adapter to load */
 +      return ret;
  }
  
  static int cht_int33fe_remove(struct platform_device *pdev)
  
        i2c_unregister_device(data->pi3usb30532);
        i2c_unregister_device(data->fusb302);
 -      if (data->max17047)
 -              i2c_unregister_device(data->max17047);
 +      i2c_unregister_device(data->max17047);
  
        device_connections_remove(data->connections);