Merge tag 'usb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 3 Jul 2023 20:23:10 +0000 (13:23 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 3 Jul 2023 20:23:10 +0000 (13:23 -0700)
Pull USB / Thunderbolt driver updates from Greg KH:
 "Here is the big set of USB and Thunderbolt driver updates for 6.5-rc1.

  Included in here are:

   - Lots of USB4/Thunderbolt additions and updates for new hardware
     types and fixes as people are starting to get access to the
     hardware in the wild

   - new gadget controller driver, cdns2, added

   - new typec drivers added

   - xhci driver updates

   - typec driver updates

   - usbip driver fixes

   - usb-serial driver updates and fixes

   - lots of smaller USB driver updates

  All of these have been in linux-next for a while with no reported
  problems"

* tag 'usb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (265 commits)
  usb: host: xhci-plat: Set XHCI_STATE_REMOVING before resuming XHCI HC
  usb: host: xhci: Do not re-initialize the XHCI HC if being removed
  usb: typec: nb7vpq904m: fix CONFIG_DRM dependency
  usbip: usbip_host: Replace strlcpy with strscpy
  usb: dwc3: gadget: Propagate core init errors to UDC during pullup
  USB: serial: option: add LARA-R6 01B PIDs
  usb: ulpi: Make container_of() no-op in to_ulpi_dev()
  usb: gadget: legacy: fix error return code in gfs_bind
  usb: typec: fsa4480: add support for Audio Accessory Mode
  usb: typec: fsa4480: rework mux & switch setup to handle more states
  usb: typec: ucsi: call typec_set_mode on non-altmode partner change
  USB: gadget: f_hid: make hidg_class a static const structure
  USB: gadget: f_printer: make usb_gadget_class a static const structure
  USB: mon: make mon_bin_class a static const structure
  USB: gadget: udc: core: make udc_class a static const structure
  USB: roles: make role_class a static const structure
  dt-bindings: usb: dwc3: Add interrupt-names property support for wakeup interrupt
  dt-bindings: usb: Add StarFive JH7110 USB controller
  dt-bindings: usb: dwc3: Add IPQ9574 compatible
  usb: cdns2: Fix spelling mistake in a trace message "Wakupe" -> "Wakeup"
  ...

1  2 
MAINTAINERS
drivers/usb/dwc3/core.c
drivers/usb/dwc3/dwc3-qcom.c
drivers/usb/dwc3/gadget.c
drivers/usb/gadget/udc/core.c
drivers/usb/gadget/udc/pxa27x_udc.c
drivers/usb/gadget/udc/renesas_usb3.c
drivers/usb/host/ohci-pxa27x.c
drivers/usb/serial/option.c
drivers/usb/typec/ucsi/ucsi.c

diff --combined MAINTAINERS
@@@ -406,13 -406,6 +406,13 @@@ L:       linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    drivers/acpi/arm64
  
 +ACPI FOR RISC-V (ACPI/riscv)
 +M:    Sunil V L <sunilvl@ventanamicro.com>
 +L:    linux-acpi@vger.kernel.org
 +L:    linux-riscv@lists.infradead.org
 +S:    Maintained
 +F:    drivers/acpi/riscv/
 +
  ACPI PCC(Platform Communication Channel) MAILBOX DRIVER
  M:    Sudeep Holla <sudeep.holla@arm.com>
  L:    linux-acpi@vger.kernel.org
@@@ -456,8 -449,6 +456,8 @@@ F: include/linux/acpi_viot.
  ACPI WMI DRIVER
  L:    platform-driver-x86@vger.kernel.org
  S:    Orphan
 +F:    Documentation/driver-api/wmi.rst
 +F:    Documentation/wmi/
  F:    drivers/platform/x86/wmi.c
  F:    include/uapi/linux/wmi.h
  
@@@ -918,6 -909,13 +918,6 @@@ L:        netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/altera/
  
 -ALTERA TSE PCS
 -M:    Maxime Chevallier <maxime.chevallier@bootlin.com>
 -L:    netdev@vger.kernel.org
 -S:    Supported
 -F:    drivers/net/pcs/pcs-altera-tse.c
 -F:    include/linux/pcs-altera-tse.h
 -
  ALTERA UART/JTAG UART SERIAL DRIVERS
  M:    Tobias Klauser <tklauser@distanz.ch>
  L:    linux-serial@vger.kernel.org
@@@ -1636,7 -1634,6 +1636,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  C:    irc://irc.libera.chat/armlinux
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
 +F:    Documentation/process/maintainer-soc.rst
  F:    arch/arm/boot/dts/Makefile
  F:    arch/arm64/boot/dts/Makefile
  
@@@ -1668,9 -1665,9 +1668,9 @@@ F:      Documentation/devicetree/bindings/cl
  F:    Documentation/devicetree/bindings/i2c/arm,i2c-versatile.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt
  F:    Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
 -F:    arch/arm/boot/dts/arm-realview-*
 -F:    arch/arm/boot/dts/integrator*
 -F:    arch/arm/boot/dts/versatile*
 +F:    arch/arm/boot/dts/arm/arm-realview-*
 +F:    arch/arm/boot/dts/arm/integrator*
 +F:    arch/arm/boot/dts/arm/versatile*
  F:    arch/arm/mach-versatile/
  F:    drivers/bus/arm-integrator-lm.c
  F:    drivers/clk/versatile/
@@@ -1841,7 -1838,7 +1841,7 @@@ F:      Documentation/devicetree/bindings/ne
  F:    Documentation/devicetree/bindings/pinctrl/actions,*
  F:    Documentation/devicetree/bindings/power/actions,owl-sps.txt
  F:    Documentation/devicetree/bindings/timer/actions,owl-timer.txt
 -F:    arch/arm/boot/dts/owl-*
 +F:    arch/arm/boot/dts/actions/
  F:    arch/arm/mach-actions/
  F:    arch/arm64/boot/dts/actions/
  F:    drivers/clk/actions/
@@@ -1887,7 -1884,6 +1887,7 @@@ L:      linux-amlogic@lists.infradead.or
  S:    Maintained
  F:    Documentation/devicetree/bindings/clock/amlogic*
  F:    drivers/clk/meson/
 +F:    include/dt-bindings/clock/amlogic,a1*
  F:    include/dt-bindings/clock/gxbb*
  F:    include/dt-bindings/clock/meson*
  
@@@ -1915,12 -1911,10 +1915,12 @@@ L:   linux-arm-kernel@lists.infradead.or
  L:    linux-amlogic@lists.infradead.org
  S:    Maintained
  W:    http://linux-meson.com/
 -F:    arch/arm/boot/dts/meson*
 +F:    Documentation/devicetree/bindings/phy/amlogic*
 +F:    arch/arm/boot/dts/amlogic/
  F:    arch/arm/mach-meson/
  F:    arch/arm64/boot/dts/amlogic/
  F:    drivers/mmc/host/meson*
 +F:    drivers/phy/amlogic/
  F:    drivers/pinctrl/meson/
  F:    drivers/rtc/rtc-meson*
  F:    drivers/soc/amlogic/
@@@ -1931,7 -1925,7 +1931,7 @@@ M:      Tsahee Zidenberg <tsahee@annapurnala
  M:    Antoine Tenart <atenart@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/alpine*
 +F:    arch/arm/boot/dts/amazon/
  F:    arch/arm/mach-alpine/
  F:    arch/arm64/boot/dts/amazon/
  F:    drivers/*/*alpine*
@@@ -2002,7 -1996,7 +2002,7 @@@ M:      Lars Persson <lars.persson@axis.com
  L:    linux-arm-kernel@axis.com
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
 -F:    arch/arm/boot/dts/artpec6*
 +F:    arch/arm/boot/dts/axis/
  F:    arch/arm/mach-artpec
  F:    drivers/clk/axis
  F:    drivers/crypto/axis
@@@ -2030,7 -2024,7 +2030,7 @@@ S:      Supporte
  Q:    https://patchwork.ozlabs.org/project/linux-aspeed/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed.git
  F:    Documentation/devicetree/bindings/arm/aspeed/
 -F:    arch/arm/boot/dts/aspeed-*
 +F:    arch/arm/boot/dts/aspeed/
  F:    arch/arm/mach-aspeed/
  N:    aspeed
  
@@@ -2049,7 -2043,8 +2049,7 @@@ ARM/CALXEDA HIGHBANK ARCHITECTUR
  M:    Andre Przywara <andre.przywara@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/ecx-*.dts*
 -F:    arch/arm/boot/dts/highbank.dts
 +F:    arch/arm/boot/dts/calxeda/
  F:    arch/arm/mach-highbank/
  
  ARM/CAVIUM THUNDER NETWORK DRIVER
@@@ -2097,13 -2092,12 +2097,13 @@@ ARM/CONEXANT DIGICOLOR MACHINE SUPPOR
  M:    Baruch Siach <baruch@tkos.co.il>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/cx92755*
 +F:    arch/arm/boot/dts/cnxt/
  N:    digicolor
  
  ARM/CORESIGHT FRAMEWORK AND DRIVERS
  M:    Suzuki K Poulose <suzuki.poulose@arm.com>
  R:    Mike Leach <mike.leach@linaro.org>
 +R:    James Clark <james.clark@arm.com>
  R:    Leo Yan <leo.yan@linaro.org>
  L:    coresight@lists.linaro.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2137,7 -2131,7 +2137,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.yaml
  F:    Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
  F:    Documentation/devicetree/bindings/rtc/faraday,ftrtc010.yaml
 -F:    arch/arm/boot/dts/gemini*
 +F:    arch/arm/boot/dts/gemini/
  F:    arch/arm/mach-gemini/
  F:    drivers/crypto/gemini/
  F:    drivers/net/ethernet/cortina/
@@@ -2190,8 -2184,7 +2190,8 @@@ R:      NXP Linux Team <linux-imx@nxp.com
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
 -F:    arch/arm64/boot/dts/freescale/
 +F:    arch/arm/boot/dts/nxp/imx/
 +F:    arch/arm/boot/dts/nxp/mxs/
  X:    arch/arm64/boot/dts/freescale/fsl-*
  X:    arch/arm64/boot/dts/freescale/qoriq-*
  X:    drivers/media/i2c/
@@@ -2204,7 -2197,7 +2204,7 @@@ M:      Li Yang <leoyang.li@nxp.com
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
 -F:    arch/arm/boot/dts/ls1021a*
 +F:    arch/arm/boot/dts/nxp/ls/
  F:    arch/arm64/boot/dts/freescale/fsl-*
  F:    arch/arm64/boot/dts/freescale/qoriq-*
  
@@@ -2216,7 -2209,7 +2216,7 @@@ R:      Stefan Agner <stefan@agner.ch
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
 -F:    arch/arm/boot/dts/vf*
 +F:    arch/arm/boot/dts/nxp/vf/
  F:    arch/arm/mach-imx/*vf610*
  
  ARM/GUMSTIX MACHINE SUPPORT
@@@ -2230,7 -2223,9 +2230,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Supported
  W:    http://www.hisilicon.com
  T:    git https://github.com/hisilicon/linux-hisi.git
 -F:    arch/arm/boot/dts/hi3*
 -F:    arch/arm/boot/dts/hip*
 -F:    arch/arm/boot/dts/hisi*
 +F:    arch/arm/boot/dts/hisilicon/
  F:    arch/arm/mach-hisi/
  F:    arch/arm64/boot/dts/hisilicon/
  
@@@ -2252,7 -2247,8 +2252,7 @@@ F:      Documentation/devicetree/bindings/i2
  F:    Documentation/devicetree/bindings/spi/hpe,gxp-spifi.yaml
  F:    Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml
  F:    Documentation/hwmon/gxp-fan-ctrl.rst
 -F:    arch/arm/boot/dts/hpe-bmc*
 -F:    arch/arm/boot/dts/hpe-gxp*
 +F:    arch/arm/boot/dts/hpe/
  F:    arch/arm/mach-hpe/
  F:    drivers/clocksource/timer-gxp.c
  F:    drivers/hwmon/gxp-fan-ctrl.c
@@@ -2266,7 -2262,7 +2266,7 @@@ M:      Javier Martinez Canillas <javier@dow
  L:    linux-omap@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/omap3-igep*
 +F:    arch/arm/boot/dts/ti/omap/omap3-igep*
  
  ARM/INTEL IXP4XX ARM ARCHITECTURE
  M:    Linus Walleij <linusw@kernel.org>
@@@ -2279,7 -2275,7 +2279,7 @@@ F:      Documentation/devicetree/bindings/gp
  F:    Documentation/devicetree/bindings/interrupt-controller/intel,ixp4xx-interrupt.yaml
  F:    Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion*
  F:    Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml
 -F:    arch/arm/boot/dts/intel-ixp*
 +F:    arch/arm/boot/dts/intel/ixp/
  F:    arch/arm/mach-ixp4xx/
  F:    drivers/bus/intel-ixp4xx-eb.c
  F:    drivers/clocksource/timer-ixp4xx.c
@@@ -2311,7 -2307,7 +2311,7 @@@ M:      Vladimir Zapolskiy <vz@mleia.com
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/i2c/i2c-lpc2k.txt
 -F:    arch/arm/boot/dts/lpc43*
 +F:    arch/arm/boot/dts/nxp/lpc/lpc43*
  F:    drivers/i2c/busses/i2c-lpc2k.c
  F:    drivers/memory/pl172.c
  F:    drivers/mtd/spi-nor/controllers/nxp-spifi.c
@@@ -2324,7 -2320,7 +2324,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  T:    git git://github.com/vzapolskiy/linux-lpc32xx.git
  F:    Documentation/devicetree/bindings/i2c/i2c-pnx.txt
 -F:    arch/arm/boot/dts/lpc32*
 +F:    arch/arm/boot/dts/nxp/lpc/lpc32*
  F:    arch/arm/mach-lpc32xx/
  F:    drivers/i2c/busses/i2c-pnx.c
  F:    drivers/net/ethernet/nxp/lpc_eth.c
@@@ -2342,8 -2338,8 +2342,8 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/arm/marvell/marvell,dove.txt
  F:    Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt
  F:    Documentation/devicetree/bindings/soc/dove/
 -F:    arch/arm/boot/dts/dove*
 -F:    arch/arm/boot/dts/orion5x*
 +F:    arch/arm/boot/dts/marvell/dove*
 +F:    arch/arm/boot/dts/marvell/orion5x*
  F:    arch/arm/mach-dove/
  F:    arch/arm/mach-mv78xx0/
  F:    arch/arm/mach-orion5x/
@@@ -2358,13 -2354,12 +2358,13 @@@ L:   linux-arm-kernel@lists.infradead.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu.git
  F:    Documentation/devicetree/bindings/arm/marvell/
 -F:    arch/arm/boot/dts/armada*
 -F:    arch/arm/boot/dts/kirkwood*
 +F:    arch/arm/boot/dts/marvell/armada*
 +F:    arch/arm/boot/dts/marvell/kirkwood*
  F:    arch/arm/configs/mvebu_*_defconfig
  F:    arch/arm/mach-mvebu/
  F:    arch/arm64/boot/dts/marvell/armada*
  F:    arch/arm64/boot/dts/marvell/cn913*
 +F:    drivers/clk/mvebu/
  F:    drivers/cpufreq/armada-37xx-cpufreq.c
  F:    drivers/cpufreq/armada-8k-cpufreq.c
  F:    drivers/cpufreq/mvebu-cpufreq.c
@@@ -2394,7 -2389,10 +2394,7 @@@ L:     linux-mediatek@lists.infradead.org (
  S:    Maintained
  W:    https://mtk.wiki.kernel.org/
  C:    irc://irc.libera.chat/linux-mediatek
 -F:    arch/arm/boot/dts/mt2*
 -F:    arch/arm/boot/dts/mt6*
 -F:    arch/arm/boot/dts/mt7*
 -F:    arch/arm/boot/dts/mt8*
 +F:    arch/arm/boot/dts/mediatek/
  F:    arch/arm/mach-mediatek/
  F:    arch/arm64/boot/dts/mediatek/
  F:    drivers/soc/mediatek/
@@@ -2418,8 -2416,10 +2418,8 @@@ L:     linux-arm-kernel@lists.infradead.or
  S:    Supported
  W:    http://www.linux4sam.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux.git
 -F:    arch/arm/boot/dts/at91*.dts
 -F:    arch/arm/boot/dts/at91*.dtsi
 -F:    arch/arm/boot/dts/sama*.dts
 -F:    arch/arm/boot/dts/sama*.dtsi
 +F:    arch/arm/boot/dts/microchip/at91*
 +F:    arch/arm/boot/dts/microchip/sama*
  F:    arch/arm/include/debug/at91.S
  F:    arch/arm/mach-at91/
  F:    drivers/memory/atmel*
@@@ -2456,7 -2456,7 +2456,7 @@@ M:      Taichi Sugaya <sugaya.taichi@socione
  M:    Takao Orito <orito.takao@socionext.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/milbeaut*
 +F:    arch/arm/boot/dts/socionext/milbeaut*
  F:    arch/arm/mach-milbeaut/
  N:    milbeaut
  
@@@ -2470,7 -2470,7 +2470,7 @@@ T:      git git://github.com/linux-chenxing/
  F:    Documentation/devicetree/bindings/arm/mstar/*
  F:    Documentation/devicetree/bindings/clock/mstar,msc313-mpll.yaml
  F:    Documentation/devicetree/bindings/gpio/mstar,msc313-gpio.yaml
 -F:    arch/arm/boot/dts/mstar-*
 +F:    arch/arm/boot/dts/sigmastar/
  F:    arch/arm/mach-mstar/
  F:    drivers/clk/mstar/
  F:    drivers/clocksource/timer-msc313e.c
@@@ -2489,7 -2489,7 +2489,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/arm/ux500.yaml
  F:    Documentation/devicetree/bindings/arm/ux500/
  F:    Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
 -F:    arch/arm/boot/dts/ste-*
 +F:    arch/arm/boot/dts/st/ste-*
  F:    arch/arm/mach-nomadik/
  F:    arch/arm/mach-ux500/
  F:    drivers/clk/clk-nomadik.c
@@@ -2506,18 -2506,6 +2506,18 @@@ F:    drivers/rtc/rtc-ab8500.
  F:    drivers/rtc/rtc-pl031.c
  F:    drivers/soc/ux500/
  
 +ARM/NUVOTON MA35 ARCHITECTURE
 +M:    Jacky Huang <ychuang3@nuvoton.com>
 +M:    Shan-Chun Hung <schung@nuvoton.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Supported
 +F:    Documentation/devicetree/bindings/*/*/*ma35*
 +F:    Documentation/devicetree/bindings/*/*ma35*
 +F:    arch/arm64/boot/dts/nuvoton/*ma35*
 +F:    drivers/*/*/*ma35*
 +F:    drivers/*/*ma35*
 +K:    ma35d1
 +
  ARM/NUVOTON NPCM ARCHITECTURE
  M:    Avi Fishman <avifishman70@gmail.com>
  M:    Tomer Maimon <tmaimon77@gmail.com>
@@@ -2529,8 -2517,9 +2529,8 @@@ L:      openbmc@lists.ozlabs.org (moderated 
  S:    Supported
  F:    Documentation/devicetree/bindings/*/*/*npcm*
  F:    Documentation/devicetree/bindings/*/*npcm*
 -F:    Documentation/devicetree/bindings/arm/npcm/*
  F:    Documentation/devicetree/bindings/rtc/nuvoton,nct3018y.yaml
 -F:    arch/arm/boot/dts/nuvoton-npcm*
 +F:    arch/arm/boot/dts/nuvoton/nuvoton-npcm*
  F:    arch/arm/mach-npcm/
  F:    arch/arm64/boot/dts/nuvoton/
  F:    drivers/*/*/*npcm*
@@@ -2545,7 -2534,7 +2545,7 @@@ L:      openbmc@lists.ozlabs.org (moderated 
  S:    Maintained
  W:    https://github.com/neuschaefer/wpcm450/wiki
  F:    Documentation/devicetree/bindings/*/*wpcm*
 -F:    arch/arm/boot/dts/nuvoton-wpcm450*
 +F:    arch/arm/boot/dts/nuvoton/nuvoton-wpcm450*
  F:    arch/arm/configs/wpcm450_defconfig
  F:    arch/arm/mach-npcm/wpcm450.c
  F:    drivers/*/*/*wpcm*
@@@ -2586,19 -2575,20 +2586,19 @@@ F:   arch/arm64/boot/dts/qcom/sdm845-chez
  ARM/QUALCOMM SUPPORT
  M:    Andy Gross <agross@kernel.org>
  M:    Bjorn Andersson <andersson@kernel.org>
 -R:    Konrad Dybcio <konrad.dybcio@linaro.org>
 +M:    Konrad Dybcio <konrad.dybcio@linaro.org>
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
  F:    Documentation/devicetree/bindings/*/qcom*
  F:    Documentation/devicetree/bindings/soc/qcom/
 -F:    arch/arm/boot/dts/qcom-*.dts
 -F:    arch/arm/boot/dts/qcom-*.dtsi
 +F:    arch/arm/boot/dts/qcom/
  F:    arch/arm/configs/qcom_defconfig
  F:    arch/arm/mach-qcom/
  F:    arch/arm64/boot/dts/qcom/
 +F:    drivers/*/*/pm8???-*
  F:    drivers/*/*/qcom*
  F:    drivers/*/*/qcom/
 -F:    drivers/*/pm8???-*
  F:    drivers/*/qcom*
  F:    drivers/*/qcom/
  F:    drivers/bluetooth/btqcomsmd.c
@@@ -2635,7 -2625,7 +2635,7 @@@ F:      Documentation/devicetree/bindings/gp
  F:    Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.yaml
  F:    Documentation/devicetree/bindings/serial/rda,8810pl-uart.yaml
  F:    Documentation/devicetree/bindings/timer/rda,8810pl-timer.yaml
 -F:    arch/arm/boot/dts/rda8810pl-*
 +F:    arch/arm/boot/dts/unisoc/
  F:    drivers/clocksource/timer-rda.c
  F:    drivers/gpio/gpio-rda.c
  F:    drivers/irqchip/irq-rda-intc.c
@@@ -2647,7 -2637,7 +2647,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  L:    linux-realtek-soc@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/realtek.yaml
 -F:    arch/arm/boot/dts/rtd*
 +F:    arch/arm/boot/dts/realtek/
  F:    arch/arm/mach-realtek/
  F:    arch/arm64/boot/dts/realtek/
  
@@@ -2661,7 -2651,13 +2661,7 @@@ C:     irc://irc.libera.chat/renesas-so
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  F:    Documentation/devicetree/bindings/hwinfo/renesas,prr.yaml
  F:    Documentation/devicetree/bindings/soc/renesas/
 -F:    arch/arm/boot/dts/emev2*
 -F:    arch/arm/boot/dts/gr-peach*
 -F:    arch/arm/boot/dts/iwg20d-q7*
 -F:    arch/arm/boot/dts/r7s*
 -F:    arch/arm/boot/dts/r8a*
 -F:    arch/arm/boot/dts/r9a*
 -F:    arch/arm/boot/dts/sh*
 +F:    arch/arm/boot/dts/renesas/
  F:    arch/arm/configs/shmobile_defconfig
  F:    arch/arm/include/debug/renesas-scif.S
  F:    arch/arm/mach-shmobile/
@@@ -2694,7 -2690,8 +2694,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/i2c/i2c-rk3x.yaml
  F:    Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.yaml
  F:    Documentation/devicetree/bindings/spi/spi-rockchip.yaml
 -F:    arch/arm/boot/dts/rk3*
 -F:    arch/arm/boot/dts/rv11*
 +F:    arch/arm/boot/dts/rockchip/
  F:    arch/arm/mach-rockchip/
  F:    drivers/*/*/*rockchip*
  F:    drivers/*/*rockchip*
@@@ -2713,12 -2710,14 +2713,12 @@@ Q:   https://patchwork.kernel.org/project
  B:    mailto:linux-samsung-soc@vger.kernel.org
  C:    irc://irc.libera.chat/linux-exynos
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git
 -F:    Documentation/arm/samsung/
 +F:    Documentation/arch/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
  F:    Documentation/devicetree/bindings/hwinfo/samsung,*
  F:    Documentation/devicetree/bindings/power/pd-samsung.yaml
  F:    Documentation/devicetree/bindings/soc/samsung/
 -F:    arch/arm/boot/dts/exynos*
 -F:    arch/arm/boot/dts/s3c*
 -F:    arch/arm/boot/dts/s5p*
 +F:    arch/arm/boot/dts/samsung/
  F:    arch/arm/mach-exynos*/
  F:    arch/arm/mach-s3c/
  F:    arch/arm/mach-s5p*/
@@@ -2778,7 -2777,7 +2778,7 @@@ M:      Dinh Nguyen <dinguyen@kernel.org
  S:    Maintained
  W:    http://www.rocketboards.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git
 -F:    arch/arm/boot/dts/socfpga*
 +F:    arch/arm/boot/dts/intel/socfpga/
  F:    arch/arm/configs/socfpga_defconfig
  F:    arch/arm/mach-socfpga/
  F:    arch/arm64/boot/dts/altera/
@@@ -2811,7 -2810,7 +2811,7 @@@ S:      Maintaine
  W:    http://www.stlinux.com
  F:    Documentation/devicetree/bindings/i2c/st,sti-i2c.yaml
  F:    Documentation/devicetree/bindings/spi/st,ssc-spi.yaml
 -F:    arch/arm/boot/dts/sti*
 +F:    arch/arm/boot/dts/st/sti*
  F:    arch/arm/mach-sti/
  F:    drivers/ata/ahci_st.c
  F:    drivers/char/hw_random/st-rng.c
@@@ -2844,10 -2843,9 +2844,10 @@@ L:    linux-stm32@st-md-mailman.stormreply
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git stm32-next
 -F:    arch/arm/boot/dts/stm32*
 +F:    arch/arm/boot/dts/st/stm32*
  F:    arch/arm/mach-stm32/
  F:    drivers/clocksource/armv7m_systick.c
 +F:    arch/arm64/boot/dts/st/
  N:    stm32
  N:    stm
  
@@@ -2860,7 -2858,7 +2860,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/clock/sunplus,sp7021-clkc.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/sunplus,sp7021-intc.yaml
  F:    Documentation/devicetree/bindings/reset/sunplus,reset.yaml
 -F:    arch/arm/boot/dts/sunplus-sp7021*.dts*
 +F:    arch/arm/boot/dts/sunplus/
  F:    arch/arm/configs/sp7021_*defconfig
  F:    arch/arm/mach-sunplus/
  F:    drivers/clk/clk-sp7021.c
@@@ -2874,7 -2872,7 +2874,7 @@@ M:      Jisheng Zhang <jszhang@kernel.org
  M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/berlin*
 +F:    arch/arm/boot/dts/synaptics/
  F:    arch/arm/mach-berlin/
  F:    arch/arm64/boot/dts/synaptics/
  
@@@ -2916,7 -2914,7 +2916,7 @@@ M:      Santosh Shilimkar <ssantosh@kernel.o
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
 -F:    arch/arm/boot/dts/keystone-*
 +F:    arch/arm/boot/dts/ti/keystone/
  F:    arch/arm/mach-keystone/
  
  ARM/TEXAS INSTRUMENT KEYSTONE CLOCK FRAMEWORK
@@@ -2948,6 -2946,7 +2948,6 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/hwinfo/ti,k3-socinfo.yaml
  F:    arch/arm64/boot/dts/ti/Makefile
  F:    arch/arm64/boot/dts/ti/k3-*
 -F:    include/dt-bindings/pinctrl/k3.h
  
  ARM/TOSHIBA VISCONTI ARCHITECTURE
  M:    Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
@@@ -2980,7 -2979,7 +2980,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
  F:    Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
  F:    Documentation/devicetree/bindings/soc/socionext/socionext,uniphier*.yaml
 -F:    arch/arm/boot/dts/uniphier*
 +F:    arch/arm/boot/dts/socionext/uniphier*
  F:    arch/arm/include/asm/hardware/cache-uniphier.h
  F:    arch/arm/mach-uniphier/
  F:    arch/arm/mm/cache-uniphier.c
@@@ -3005,7 -3004,7 +3005,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    */*/*/vexpress*
  F:    */*/vexpress*
 -F:    arch/arm/boot/dts/vexpress*
 +F:    arch/arm/boot/dts/arm/vexpress*
  F:    arch/arm/mach-versatile/
  F:    arch/arm64/boot/dts/arm/
  F:    drivers/clk/versatile/clk-vexpress-osc.c
@@@ -3063,7 -3062,7 +3063,7 @@@ M:      Will Deacon <will@kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
 -F:    Documentation/arm64/
 +F:    Documentation/arch/arm64/
  F:    arch/arm64/
  F:    tools/testing/selftests/arm64/
  X:    arch/arm64/boot/dts/
@@@ -3385,16 -3384,6 +3385,16 @@@ F:    include/uapi/linux/audit.
  F:    kernel/audit*
  F:    lib/*audit.c
  
 +AUXILIARY BUS DRIVER
 +M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +R:    Dave Ertman <david.m.ertman@intel.com>
 +R:    Ira Weiny <ira.weiny@intel.com>
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
 +F:    Documentation/driver-api/auxiliary_bus.rst
 +F:    drivers/base/auxiliary.c
 +F:    include/linux/auxiliary_bus.h
 +
  AUXILIARY DISPLAY DRIVERS
  M:    Miguel Ojeda <ojeda@kernel.org>
  S:    Maintained
@@@ -3422,10 -3411,10 +3422,10 @@@ AXENTIA ARM DEVICE
  M:    Peter Rosin <peda@axentia.se>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/at91-linea.dtsi
 -F:    arch/arm/boot/dts/at91-natte.dtsi
 -F:    arch/arm/boot/dts/at91-nattis-2-natte-2.dts
 -F:    arch/arm/boot/dts/at91-tse850-3.dts
 +F:    arch/arm/boot/dts/microchip/at91-linea.dtsi
 +F:    arch/arm/boot/dts/microchip/at91-natte.dtsi
 +F:    arch/arm/boot/dts/microchip/at91-nattis-2-natte-2.dts
 +F:    arch/arm/boot/dts/microchip/at91-tse850-3.dts
  
  AXENTIA ASOC DRIVERS
  M:    Peter Rosin <peda@axentia.se>
@@@ -3624,7 -3613,6 +3624,7 @@@ S:      Supporte
  W:    http://www.bluez.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
 +F:    Documentation/devicetree/bindings/net/bluetooth/
  F:    drivers/bluetooth/
  
  BLUETOOTH SUBSYSTEM
@@@ -3912,7 -3900,7 +3912,7 @@@ S:      Supporte
  F:    drivers/net/ethernet/broadcom/b44.*
  
  BROADCOM B53/SF2 ETHERNET SWITCH DRIVER
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  L:    netdev@vger.kernel.org
  L:    openwrt-devel@lists.openwrt.org (subscribers-only)
  S:    Supported
@@@ -3923,7 -3911,7 +3923,7 @@@ F:      include/linux/dsa/brcm.
  F:    include/linux/platform_data/b53.h
  
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -3937,7 -3925,7 +3937,7 @@@ N:      bcm283
  N:    raspberrypi
  
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
@@@ -3976,26 -3964,25 +3976,26 @@@ F:   Documentation/devicetree/bindings/pi
  F:    drivers/pinctrl/bcm/pinctrl-bcm4908.c
  
  BROADCOM BCM5301X ARM ARCHITECTURE
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  M:    Hauke Mehrtens <hauke@hauke-m.de>
  M:    RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/bcm470*
 -F:    arch/arm/boot/dts/bcm5301*
 -F:    arch/arm/boot/dts/bcm953012*
 +F:    arch/arm/boot/dts/broadcom/bcm-ns.dtsi
 +F:    arch/arm/boot/dts/broadcom/bcm470*
 +F:    arch/arm/boot/dts/broadcom/bcm5301*
 +F:    arch/arm/boot/dts/broadcom/bcm953012*
  F:    arch/arm/mach-bcm/bcm_5301x.c
  
  BROADCOM BCM53573 ARM ARCHITECTURE
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  M:    RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    arch/arm/boot/dts/bcm47189*
 -F:    arch/arm/boot/dts/bcm53573*
 +F:    arch/arm/boot/dts/broadcom/bcm47189*
 +F:    arch/arm/boot/dts/broadcom/bcm53573*
  
  BROADCOM BCM63XX/BCM33XX UDC DRIVER
  M:    Kevin Cernekee <cernekee@gmail.com>
@@@ -4004,13 -3991,13 +4004,13 @@@ S:   Maintaine
  F:    drivers/usb/gadget/udc/bcm63xx_udc.*
  
  BROADCOM BCM7XXX ARM ARCHITECTURE
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git https://github.com/broadcom/stblinux.git
  F:    Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
 -F:    arch/arm/boot/dts/bcm7*.dts*
 +F:    arch/arm/boot/dts/broadcom/bcm7*.dts*
  F:    arch/arm/include/asm/hardware/cache-b15-rac.h
  F:    arch/arm/mach-bcm/*brcmstb*
  F:    arch/arm/mm/cache-b15-rac.c
@@@ -4024,7 -4011,7 +4024,7 @@@ BROADCOM BCMBCA ARM ARCHITECTUR
  M:    William Zhang <william.zhang@broadcom.com>
  M:    Anand Gore <anand.gore@broadcom.com>
  M:    Kursad Oney <kursad.oney@broadcom.com>
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  M:    RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -4049,7 -4036,7 +4049,7 @@@ N:      bcm[9]?685
  N:    bcm[9]?6878
  
  BROADCOM BDC DRIVER
 -M:    Justin Chen <justinpopo6@gmail.com>
 +M:    Justin Chen <justin.chen@broadcom.com>
  M:    Al Cooper <alcooperx@gmail.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-usb@vger.kernel.org
@@@ -4065,7 -4052,7 +4065,7 @@@ S:      Maintaine
  F:    drivers/cpufreq/bmips-cpufreq.c
  
  BROADCOM BMIPS MIPS ARCHITECTURE
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mips@vger.kernel.org
  S:    Maintained
@@@ -4133,14 -4120,14 +4133,14 @@@ F:   drivers/net/wireless/broadcom/brcm80
  
  BROADCOM BRCMSTB GPIO DRIVER
  M:    Doug Berger <opendmb@gmail.com>
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Supported
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
  F:    drivers/gpio/gpio-brcmstb.c
  
  BROADCOM BRCMSTB I2C DRIVER
 -M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +M:    Kamal Dasu <kamal.dasu@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-i2c@vger.kernel.org
  S:    Supported
@@@ -4156,7 -4143,7 +4156,7 @@@ F:      Documentation/devicetree/bindings/se
  F:    drivers/tty/serial/8250/8250_bcm7271.c
  
  BROADCOM BRCMSTB USB EHCI DRIVER
 -M:    Justin Chen <justinpopo6@gmail.com>
 +M:    Justin Chen <justin.chen@broadcom.com>
  M:    Al Cooper <alcooperx@gmail.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-usb@vger.kernel.org
@@@ -4173,7 -4160,7 +4173,7 @@@ F:      Documentation/devicetree/bindings/us
  F:    drivers/usb/misc/brcmstb-usb-pinmap.c
  
  BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER
 -M:    Justin Chen <justinpopo6@gmail.com>
 +M:    Justin Chen <justin.chen@broadcom.com>
  M:    Al Cooper <alcooperx@gmail.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-kernel@vger.kernel.org
@@@ -4192,7 -4179,7 +4192,7 @@@ F:      drivers/spi/spi-bcm63xx-hsspi.
  F:    drivers/spi/spi-bcmbca-hsspi.c
  
  BROADCOM ETHERNET PHY DRIVERS
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -4203,7 -4190,7 +4203,7 @@@ F:      include/linux/brcmphy.
  
  BROADCOM GENET ETHERNET DRIVER
  M:    Doug Berger <opendmb@gmail.com>
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -4287,7 -4274,7 +4287,7 @@@ F:      drivers/firmware/broadcom/
  
  BROADCOM PMB (POWER MANAGEMENT BUS) DRIVER
  M:    RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
@@@ -4303,7 -4290,7 +4303,7 @@@ F:      drivers/bcma
  F:    include/linux/bcma/
  
  BROADCOM SPI DRIVER
 -M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +M:    Kamal Dasu <kamal.dasu@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
@@@ -4337,7 -4324,7 +4337,7 @@@ F:      drivers/memory/brcmstb_dpfe.
  
  BROADCOM STB NAND FLASH DRIVER
  M:    Brian Norris <computersforpeace@gmail.com>
 -M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +M:    Kamal Dasu <kamal.dasu@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mtd@lists.infradead.org
  S:    Maintained
@@@ -4347,7 -4334,7 +4347,7 @@@ F:      include/linux/platform_data/brcmnand
  BROADCOM STB PCIE DRIVER
  M:    Jim Quinlan <jim2101024@gmail.com>
  M:    Nicolas Saenz Julienne <nsaenz@kernel.org>
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
@@@ -4355,7 -4342,7 +4355,7 @@@ F:      Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/pcie-brcmstb.c
  
  BROADCOM SYSTEMPORT ETHERNET DRIVER
 -M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    Florian Fainelli <florian.fainelli@broadcom.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -4500,13 -4487,6 +4500,13 @@@ S:    Supporte
  F:    Documentation/filesystems/caching/cachefiles.rst
  F:    fs/cachefiles/
  
 +CACHESTAT: PAGE CACHE STATS FOR A FILE
 +M:    Nhat Pham <nphamcs@gmail.com>
 +M:    Johannes Weiner <hannes@cmpxchg.org>
 +L:    linux-mm@kvack.org
 +S:    Maintained
 +F:    tools/testing/selftests/cachestat/test_cachestat.c
 +
  CADENCE MIPI-CSI2 BRIDGES
  M:    Maxime Ripard <mripard@kernel.org>
  L:    linux-media@vger.kernel.org
@@@ -4540,6 -4520,12 +4540,12 @@@ T:    git git://git.kernel.org/pub/scm/lin
  F:    drivers/usb/cdns3/
  X:    drivers/usb/cdns3/cdns3*
  
+ CADENCE USBHS DRIVER
+ M:    Pawel Laszczak <pawell@cadence.com>
+ L:    linux-usb@vger.kernel.org
+ S:    Maintained
+ F:    drivers/usb/gadget/udc/cdns2
  CADET FM/AM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -5214,13 -5200,6 +5220,13 @@@ S:    Maintaine
  F:    drivers/cxl/
  F:    include/uapi/linux/cxl_mem.h
  
 +COMPUTE EXPRESS LINK PMU (CPMU)
 +M:    Jonathan Cameron <jonathan.cameron@huawei.com>
 +L:    linux-cxl@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/admin-guide/perf/cxl.rst
 +F:    drivers/perf/cxl_pmu.c
 +
  CONEXANT ACCESSRUNNER USB DRIVER
  L:    accessrunner-general@lists.sourceforge.net
  S:    Orphan
@@@ -5371,18 -5350,6 +5377,18 @@@ F:    include/linux/sched/cpufreq.
  F:    kernel/sched/cpufreq*.c
  F:    tools/testing/selftests/cpufreq/
  
 +CPU HOTPLUG
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +M:    Peter Zijlstra <peterz@infradead.org>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git smp/core
 +F:    kernel/cpu.c
 +F:    kernel/smpboot.*
 +F:    include/linux/cpu.h
 +F:    include/linux/cpuhotplug.h
 +F:    include/linux/smpboot.h
 +
  CPU IDLE TIME MANAGEMENT FRAMEWORK
  M:    "Rafael J. Wysocki" <rafael@kernel.org>
  M:    Daniel Lezcano <daniel.lezcano@linaro.org>
@@@ -5751,7 -5718,10 +5757,7 @@@ DC395x SCSI drive
  M:    Oliver Neukum <oliver@neukum.org>
  M:    Ali Akcaagac <aliakc@web.de>
  M:    Jamie Lenehan <lenehan@twibble.org>
 -L:    dc395x@twibble.org
  S:    Maintained
 -W:    http://twibble.org/dist/dc395x/
 -W:    http://lists.twibble.org/mailman/listinfo/dc395x/
  F:    Documentation/scsi/dc395x.rst
  F:    drivers/scsi/dc395x.*
  
@@@ -5764,14 -5734,6 +5770,14 @@@ F:    include/linux/tfrc.
  F:    include/uapi/linux/dccp.h
  F:    net/dccp/
  
 +DEBUGOBJECTS:
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/debugobjects
 +F:    lib/debugobjects.c
 +F:    include/linux/debugobjects.h
 +
  DECSTATION PLATFORM SUPPORT
  M:    "Maciej W. Rozycki" <macro@orcam.me.uk>
  L:    linux-mips@vger.kernel.org
@@@ -5861,7 -5823,6 +5867,7 @@@ M:      Armin Wolf <W_Armin@gmx.de
  S:    Maintained
  F:    Documentation/ABI/testing/debugfs-dell-wmi-ddv
  F:    Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv
 +F:    Documentation/wmi/devices/dell-wmi-ddv.rst
  F:    drivers/platform/x86/dell/dell-wmi-ddv.c
  
  DELL WMI DESCRIPTOR DRIVER
@@@ -6043,15 -6004,15 +6049,15 @@@ DH ELECTRONICS IMX6 DHCOM/DHCOR BOARD S
  M:    Christoph Niedermaier <cniedermaier@dh-electronics.com>
  L:    kernel@dh-electronics.com
  S:    Maintained
 -F:    arch/arm/boot/dts/imx6*-dhcom-*
 -F:    arch/arm/boot/dts/imx6*-dhcor-*
 +F:    arch/arm/boot/dts/nxp/imx/imx6*-dhcom-*
 +F:    arch/arm/boot/dts/nxp/imx/imx6*-dhcor-*
  
  DH ELECTRONICS STM32MP1 DHCOM/DHCOR BOARD SUPPORT
  M:    Marek Vasut <marex@denx.de>
  L:    kernel@dh-electronics.com
  S:    Maintained
 -F:    arch/arm/boot/dts/stm32mp1*-dhcom-*
 -F:    arch/arm/boot/dts/stm32mp1*-dhcor-*
 +F:    arch/arm/boot/dts/st/stm32mp1*-dhcom-*
 +F:    arch/arm/boot/dts/st/stm32mp1*-dhcor-*
  
  DIALOG SEMICONDUCTOR DRIVERS
  M:    Support Opensource <support.opensource@diasemi.com>
@@@ -6264,12 -6225,6 +6270,12 @@@ X:    Documentation/power
  X:    Documentation/spi/
  X:    Documentation/userspace-api/media/
  
 +DOCUMENTATION PROCESS
 +M:    Jonathan Corbet <corbet@lwn.net>
 +S:    Maintained
 +F:    Documentation/process/
 +L:    workflows@vger.kernel.org
 +
  DOCUMENTATION REPORTING ISSUES
  M:    Thorsten Leemhuis <linux@leemhuis.info>
  L:    linux-doc@vger.kernel.org
@@@ -6626,7 -6581,6 +6632,7 @@@ M:      Rob Clark <robdclark@gmail.com
  M:    Abhinav Kumar <quic_abhinavk@quicinc.com>
  M:    Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  R:    Sean Paul <sean@poorly.run>
 +R:    Marijn Suijten <marijn.suijten@somainline.org>
  L:    linux-arm-msm@vger.kernel.org
  L:    dri-devel@lists.freedesktop.org
  L:    freedreno@lists.freedesktop.org
@@@ -6747,12 -6701,6 +6753,12 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/display/panel/samsung,s6d27a1.yaml
  F:    drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
  
 +DRM DRIVER FOR SAMSUNG S6D7AA0 PANELS
 +M:    Artur Weber <aweber.kernel@gmail.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/samsung,s6d7aa0.yaml
 +F:    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
 +
  DRM DRIVER FOR SITRONIX ST7586 PANELS
  M:    David Lechner <david@lechnology.com>
  S:    Maintained
@@@ -6825,7 -6773,6 +6831,7 @@@ F:      drivers/gpu/drm/udl
  DRM DRIVER FOR VIRTUAL KERNEL MODESETTING (VKMS)
  M:    Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
  M:    Melissa Wen <melissa.srw@gmail.com>
 +M:    Maíra Canal <mairacanal@riseup.net>
  R:    Haneen Mohammed <hamohammed.sa@gmail.com>
  R:    Daniel Vetter <daniel@ffwll.ch>
  L:    dri-devel@lists.freedesktop.org
@@@ -6928,7 -6875,6 +6934,7 @@@ S:      Maintaine
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/display/bridge/
  F:    drivers/gpu/drm/bridge/
 +F:    drivers/gpu/drm/drm_bridge.c
  F:    include/drm/drm_bridge.h
  
  DRM DRIVERS FOR EXYNOS
@@@ -7037,7 -6983,8 +7043,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
  F:    Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
  F:    Documentation/devicetree/bindings/display/renesas,du.yaml
 -F:    drivers/gpu/drm/rcar-du/
 -F:    drivers/gpu/drm/shmobile/
 +F:    drivers/gpu/drm/renesas/
  F:    include/linux/platform_data/shmob_drm.h
  
  DRM DRIVERS FOR ROCKCHIP
@@@ -7133,6 -7080,7 +7139,6 @@@ F:      Documentation/gpu/xen-front.rs
  F:    drivers/gpu/drm/xen/
  
  DRM DRIVERS FOR XILINX
 -M:    Hyun Kwon <hyun.kwon@xilinx.com>
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
@@@ -7532,14 -7480,6 +7538,14 @@@ L:    linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/mpc85xx_edac.[ch]
  
 +EDAC-NPCM
 +M:    Marvin Lin <kflin@nuvoton.com>
 +M:    Stanley Chu <yschu@nuvoton.com>
 +L:    linux-edac@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/memory-controllers/nuvoton,npcm-memory-controller.yaml
 +F:    drivers/edac/npcm_edac.c
 +
  EDAC-PASEMI
  M:    Egor Martovetsky <egor@pasemi.com>
  L:    linux-edac@vger.kernel.org
@@@ -8036,12 -7976,6 +8042,12 @@@ S:    Maintaine
  F:    drivers/hwmon/f75375s.c
  F:    include/linux/f75375s.h
  
 +FINTEK F81604 USB to 2xCANBUS DEVICE DRIVER
 +M:    Ji-Ze Hong (Peter Hong) <peter_hong@fintek.com.tw>
 +L:    linux-can@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/can/usb/f81604.c
 +
  FIREWIRE AUDIO DRIVERS and IEC 61883-1/6 PACKET STREAMING ENGINE
  M:    Clemens Ladisch <clemens@ladisch.de>
  M:    Takashi Sakamoto <o-takashi@sakamocchi.jp>
@@@ -8137,7 -8071,6 +8143,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    include/linux/fortify-string.h
  F:    lib/fortify_kunit.c
  F:    lib/memcpy_kunit.c
 +F:    lib/strcat_kunit.c
  F:    lib/strscpy_kunit.c
  F:    lib/test_fortify/*
  F:    scripts/test_fortify.sh
@@@ -8736,9 -8669,6 +8742,9 @@@ F:      drivers/input/touchscreen/resistive-
  GENERIC STRING LIBRARY
  R:    Andy Shevchenko <andy@kernel.org>
  S:    Maintained
 +F:    include/linux/string.h
 +F:    include/linux/string_choices.h
 +F:    include/linux/string_helpers.h
  F:    lib/string.c
  F:    lib/string_helpers.c
  F:    lib/test-string_helpers.c
@@@ -8867,7 -8797,6 +8873,7 @@@ F:      include/linux/gpio/regmap.
  GPIO SUBSYSTEM
  M:    Linus Walleij <linus.walleij@linaro.org>
  M:    Bartosz Golaszewski <brgl@bgdev.pl>
 +R:    Andy Shevchenko <andy@kernel.org>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
@@@ -9232,12 -9161,6 +9238,12 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/hid/hid-pxrc.c
  
 +HID NVIDIA SHIELD DRIVER
 +M:    Rahul Rameshbabu <rrameshbabu@nvidia.com>
 +L:    linux-input@vger.kernel.org
 +S:    Maintained
 +F:    drivers/hid/hid-nvidia-shield.c
 +
  HID PLAYSTATION DRIVER
  M:    Roderick Colenbrander <roderick.colenbrander@sony.com>
  L:    linux-input@vger.kernel.org
@@@ -9501,13 -9424,6 +9507,13 @@@ F:    lib/test_hmm
  F:    mm/hmm*
  F:    tools/testing/selftests/mm/*hmm*
  
 +HONEYWELL MPRLS0025PA PRESSURE SENSOR SERIES IIO DRIVER
 +M:    Andreas Klinger <ak@it-klinger.de>
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
 +F:    drivers/iio/pressure/mprls0025pa.c
 +
  HOST AP DRIVER
  M:    Jouni Malinen <j@w1.fi>
  L:    linux-wireless@vger.kernel.org
@@@ -9520,13 -9436,6 +9526,13 @@@ L:    platform-driver-x86@vger.kernel.or
  S:    Orphan
  F:    drivers/platform/x86/hp/tc1100-wmi.c
  
 +HP WMI HARDWARE MONITOR DRIVER
 +M:    James Seo <james@equiv.tech>
 +L:    linux-hwmon@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/hwmon/hp-wmi-sensors.rst
 +F:    drivers/hwmon/hp-wmi-sensors.c
 +
  HPET: High Precision Event Timers driver
  M:    Clemens Ladisch <clemens@ladisch.de>
  S:    Maintained
@@@ -9784,9 -9693,8 +9790,9 @@@ F:      include/uapi/linux/i2c-*.
  F:    include/uapi/linux/i2c.h
  
  I2C SUBSYSTEM HOST DRIVERS
 +M:    Andi Shyti <andi.shyti@kernel.org>
  L:    linux-i2c@vger.kernel.org
 -S:    Odd Fixes
 +S:    Maintained
  W:    https://i2c.wiki.kernel.org/
  Q:    https://patchwork.ozlabs.org/project/linux-i2c/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
@@@ -10060,9 -9968,8 +10066,9 @@@ M:    Miquel Raynal <miquel.raynal@bootlin
  L:    linux-wpan@vger.kernel.org
  S:    Maintained
  W:    https://linux-wpan.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan-next.git
 +Q:    https://patchwork.kernel.org/project/linux-wpan/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wpan/wpan.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wpan/wpan-next.git
  F:    Documentation/networking/ieee802154.rst
  F:    drivers/net/ieee802154/
  F:    include/linux/ieee802154.h
@@@ -10352,13 -10259,6 +10358,13 @@@ L: linux-fbdev@vger.kernel.or
  S:    Maintained
  F:    drivers/video/fbdev/i810/
  
 +INTEL 8254 COUNTER DRIVER
 +M:    William Breathitt Gray <william.gray@linaro.org>
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/counter/i8254.c
 +F:    include/linux/i8254.h
 +
  INTEL 8255 GPIO DRIVER
  M:    William Breathitt Gray <william.gray@linaro.org>
  L:    linux-gpio@vger.kernel.org
@@@ -10441,8 -10341,9 +10447,8 @@@ M:   Jesse Brandeburg <jesse.brandeburg@i
  M:    Tony Nguyen <anthony.l.nguyen@intel.com>
  L:    intel-wired-lan@lists.osuosl.org (moderated for non-subscribers)
  S:    Supported
 -W:    http://www.intel.com/support/feedback.htm
 -W:    http://e1000.sourceforge.net/
 -Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
 +W:    https://www.intel.com/content/www/us/en/support.html
 +Q:    https://patchwork.ozlabs.org/project/intel-wired-lan/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git
  F:    Documentation/networking/device_drivers/ethernet/intel/
@@@ -10908,6 -10809,7 +10914,6 @@@ S:   Maintaine
  F:    drivers/net/ethernet/sgi/ioc3-eth.c
  
  IOMAP FILESYSTEM LIBRARY
 -M:    Christoph Hellwig <hch@infradead.org>
  M:    Darrick J. Wong <djwong@kernel.org>
  L:    linux-xfs@vger.kernel.org
  L:    linux-fsdevel@vger.kernel.org
@@@ -11368,10 -11270,6 +11374,10 @@@ W: http://kernelnewbies.org/KernelJanit
  KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
  M:    Chuck Lever <chuck.lever@oracle.com>
  M:    Jeff Layton <jlayton@kernel.org>
 +R:    Neil Brown <neilb@suse.de>
 +R:    Olga Kornievskaia <kolga@netapp.com>
 +R:    Dai Ngo <Dai.Ngo@oracle.com>
 +R:    Tom Talpey <tom@talpey.com>
  L:    linux-nfs@vger.kernel.org
  S:    Supported
  W:    http://nfs.sourceforge.net/
@@@ -11429,8 -11327,6 +11435,8 @@@ L:   linux-kselftest@vger.kernel.or
  L:    kunit-dev@googlegroups.com
  S:    Maintained
  W:    https://google.github.io/kunit-docs/third_party/kernel/docs/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git kunit
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git kunit-fixes
  F:    Documentation/dev-tools/kunit/
  F:    include/kunit/
  F:    lib/kunit/
@@@ -11479,6 -11375,7 +11485,6 @@@ F:   tools/testing/selftests/kvm/aarch64
  
  KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
  M:    Huacai Chen <chenhuacai@kernel.org>
 -M:    Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>
  L:    linux-mips@vger.kernel.org
  L:    kvm@vger.kernel.org
  S:    Maintained
@@@ -11488,13 -11385,7 +11494,13 @@@ F: arch/mips/include/uapi/asm/kvm
  F:    arch/mips/kvm/
  
  KERNEL VIRTUAL MACHINE FOR POWERPC (KVM/powerpc)
 +M:    Michael Ellerman <mpe@ellerman.id.au>
 +R:    Nicholas Piggin <npiggin@gmail.com>
  L:    linuxppc-dev@lists.ozlabs.org
 +L:    kvm@vger.kernel.org
 +S:    Maintained (Book3S 64-bit HV)
 +S:    Odd fixes (Book3S 64-bit PR)
 +S:    Orphan (Book3E and 32-bit)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git topic/ppc-kvm
  F:    arch/powerpc/include/asm/kvm*
  F:    arch/powerpc/include/uapi/asm/kvm*
@@@ -11856,7 -11747,7 +11862,7 @@@ LEGO MINDSTORMS EV
  R:    David Lechner <david@lechnology.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/power/supply/lego,ev3-battery.yaml
 -F:    arch/arm/boot/dts/da850-lego-ev3.dts
 +F:    arch/arm/boot/dts/ti/davinci/da850-lego-ev3.dts
  F:    drivers/power/supply/lego_ev3_battery.c
  
  LEGO USB Tower driver
@@@ -12027,12 -11918,11 +12033,12 @@@ F:        lib/linear_ranges.
  F:    lib/test_linear_ranges.c
  
  LINUX FOR POWER MACINTOSH
 -M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
  L:    linuxppc-dev@lists.ozlabs.org
 -S:    Odd Fixes
 +S:    Orphan
  F:    arch/powerpc/platforms/powermac/
  F:    drivers/macintosh/
 +X:    drivers/macintosh/adb-iop.c
 +X:    drivers/macintosh/via-macii.c
  
  LINUX FOR POWERPC (32-BIT AND 64-BIT)
  M:    Michael Ellerman <mpe@ellerman.id.au>
@@@ -12651,11 -12541,12 +12657,11 @@@ MARVELL NAND CONTROLLER DRIVE
  M:    Miquel Raynal <miquel.raynal@bootlin.com>
  L:    linux-mtd@lists.infradead.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/mtd/marvell-nand.txt
  F:    drivers/mtd/nand/raw/marvell_nand.c
  
  MARVELL OCTEON ENDPOINT DRIVER
  M:    Veerasenareddy Burru <vburru@marvell.com>
 -M:    Abhijit Ayarekar <aayarekar@marvell.com>
 +M:    Sathesh Edara <sedara@marvell.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/marvell/octeon_ep
@@@ -12737,15 -12628,6 +12743,15 @@@ F: Documentation/userspace-api/media/dr
  F:    drivers/media/i2c/max2175*
  F:    include/uapi/linux/max2175.h
  
 +MAX31827 TEMPERATURE SWITCH DRIVER
 +M:    Daniel Matyas <daniel.matyas@analog.com>
 +L:    linux-hwmon@vger.kernel.org
 +S:    Supported
 +W:    http://ez.analog.com/community/linux-device-drivers
 +F:    Documentation/devicetree/bindings/hwmon/adi,max31827.yaml
 +F:    Documentation/hwmon/max31827.rst
 +F:    drivers/hwmon/max31827.c
 +
  MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  L:    linux-hwmon@vger.kernel.org
  S:    Orphan
@@@ -12963,13 -12845,6 +12969,13 @@@ F: Documentation/devicetree/bindings/ne
  F:    drivers/net/ieee802154/mcr20a.c
  F:    drivers/net/ieee802154/mcr20a.h
  
 +MDIO REGMAP DRIVER
 +M:    Maxime Chevallier <maxime.chevallier@bootlin.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/mdio/mdio-regmap.c
 +F:    include/linux/mdio/mdio-regmap.h
 +
  MEASUREMENT COMPUTING CIO-DAC IIO DRIVER
  M:    William Breathitt Gray <william.gray@linaro.org>
  L:    linux-iio@vger.kernel.org
@@@ -13269,15 -13144,6 +13275,15 @@@ S: Maintaine
  F:    drivers/net/pcs/pcs-mtk-lynxi.c
  F:    include/linux/pcs/pcs-mtk-lynxi.h
  
 +MEDIATEK ETHERNET PHY DRIVERS
 +M:    Daniel Golle <daniel@makrotopia.org>
 +M:    Qingfang Deng <dqfext@gmail.com>
 +M:    SkyLake Huang <SkyLake.Huang@mediatek.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/phy/mediatek-ge-soc.c
 +F:    drivers/net/phy/mediatek-ge.c
 +
  MEDIATEK I2C CONTROLLER DRIVER
  M:    Qii Wang <qii.wang@mediatek.com>
  L:    linux-i2c@vger.kernel.org
@@@ -13339,7 -13205,6 +13345,7 @@@ R:   Shayne Chen <shayne.chen@mediatek.co
  R:    Sean Wang <sean.wang@mediatek.com>
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
 +T:    git https://github.com/nbd168/wireless
  F:    Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
  F:    drivers/net/wireless/mediatek/mt76/
  
@@@ -13374,12 -13239,6 +13380,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/i2c/mediatek,mt7621-i2c.yaml
  F:    drivers/i2c/busses/i2c-mt7621.c
  
 +MEDIATEK MTMIPS CLOCK DRIVER
 +M:    Sergio Paracuellos <sergio.paracuellos@gmail.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/clock/mediatek,mtmips-sysc.yaml
 +F:    drivers/clk/ralink/clk-mtmips.c
 +
  MEDIATEK NAND CONTROLLER DRIVER
  L:    linux-mtd@lists.infradead.org
  S:    Orphan
@@@ -13406,11 -13265,10 +13412,11 @@@ F:        drivers/memory/mtk-smi.
  F:    include/soc/mediatek/smi.h
  
  MEDIATEK SWITCH DRIVER
 -M:    Sean Wang <sean.wang@mediatek.com>
 +M:    Arınç ÃœNAL <arinc.unal@arinc9.com>
 +M:    Daniel Golle <daniel@makrotopia.org>
  M:    Landen Chao <Landen.Chao@mediatek.com>
  M:    DENG Qingfang <dqfext@gmail.com>
 -M:    Daniel Golle <daniel@makrotopia.org>
 +M:    Sean Wang <sean.wang@mediatek.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/dsa/mt7530-mdio.c
@@@ -13775,7 -13633,6 +13781,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/ABI/stable/sysfs-bus-mhi
  F:    Documentation/mhi/
  F:    drivers/bus/mhi/
 +F:    drivers/pci/endpoint/functions/pci-epf-mhi.c
  F:    include/linux/mhi.h
  
  MICROBLAZE ARCHITECTURE
@@@ -13858,7 -13715,6 +13864,7 @@@ MICROCHIP EIC DRIVE
  M:    Claudiu Beznea <claudiu.beznea@microchip.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
 +F:    Documentation/devicetree/bindings/interrupt-controller/microchip,sama7g5-eic.yaml
  F:    drivers/irqchip/irq-mchp-eic.c
  
  MICROCHIP I2C DRIVER
@@@ -14185,12 -14041,12 +14191,12 @@@ MIKROTIK CRS3XX 98DX3236 BOARD SUPPOR
  M:    Luka Kovacic <luka.kovacic@sartura.hr>
  M:    Luka Perkov <luka.perkov@sartura.hr>
  S:    Maintained
 -F:    arch/arm/boot/dts/armada-xp-crs305-1g-4s-bit.dts
 -F:    arch/arm/boot/dts/armada-xp-crs305-1g-4s.dts
 -F:    arch/arm/boot/dts/armada-xp-crs326-24g-2s-bit.dts
 -F:    arch/arm/boot/dts/armada-xp-crs326-24g-2s.dts
 -F:    arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s-bit.dts
 -F:    arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s.dts
 +F:    arch/arm/boot/dts/marvell/armada-xp-crs305-1g-4s-bit.dts
 +F:    arch/arm/boot/dts/marvell/armada-xp-crs305-1g-4s.dts
 +F:    arch/arm/boot/dts/marvell/armada-xp-crs326-24g-2s-bit.dts
 +F:    arch/arm/boot/dts/marvell/armada-xp-crs326-24g-2s.dts
 +F:    arch/arm/boot/dts/marvell/armada-xp-crs328-4c-20s-4s-bit.dts
 +F:    arch/arm/boot/dts/marvell/armada-xp-crs328-4c-20s-4s.dts
  
  MIPI CCS, SMIA AND SMIA++ IMAGE SENSOR DRIVER
  M:    Sakari Ailus <sakari.ailus@linux.intel.com>
@@@ -14293,7 -14149,7 +14299,7 @@@ R:   Lubomir Rintel <lkundrak@v3.sk
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Odd Fixes
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lkundrak/linux-mmp.git
 -F:    arch/arm/boot/dts/mmp*
 +F:    arch/arm/boot/dts/marvell/mmp*
  F:    arch/arm/mach-mmp/
  F:    include/linux/soc/mmp/
  
@@@ -14833,7 -14689,7 +14839,7 @@@ NETWORKING [LABELED] (NetLabel, Labele
  M:    Paul Moore <paul@paul-moore.com>
  L:    netdev@vger.kernel.org
  L:    linux-security-module@vger.kernel.org
 -S:    Maintained
 +S:    Supported
  W:    https://github.com/netlabel
  F:    Documentation/netlabel/
  F:    include/net/calipso.h
@@@ -14869,7 -14725,6 +14875,7 @@@ NETWORKING [TCP
  M:    Eric Dumazet <edumazet@google.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
 +F:    include/linux/net_mm.h
  F:    include/linux/tcp.h
  F:    include/net/tcp.h
  F:    include/trace/events/tcp.h
@@@ -15426,13 -15281,19 +15432,13 @@@ M:        Tony Lindgren <tony@atomide.com
  L:    linux-omap@vger.kernel.org
  L:    devicetree@vger.kernel.org
  S:    Maintained
 -F:    arch/arm/boot/dts/*am3*
 -F:    arch/arm/boot/dts/*am4*
 -F:    arch/arm/boot/dts/*am5*
 -F:    arch/arm/boot/dts/*dra7*
 -F:    arch/arm/boot/dts/*omap*
 -F:    arch/arm/boot/dts/logicpd-som-lv*
 -F:    arch/arm/boot/dts/logicpd-torpedo*
 +F:    arch/arm/boot/dts/ti/omap/
  
  OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
  L:    linux-omap@vger.kernel.org
  L:    linux-fbdev@vger.kernel.org
  S:    Orphan
 -F:    Documentation/arm/omap/dss.rst
 +F:    Documentation/arch/arm/omap/dss.rst
  F:    drivers/video/fbdev/omap2/
  
  OMAP FRAMEBUFFER SUPPORT
@@@ -15534,7 -15395,7 +15540,7 @@@ OMAP/NEWFLOW NANOBONE MACHINE SUPPOR
  M:    Mark Jackson <mpfj@newflow.co.uk>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
 -F:    arch/arm/boot/dts/am335x-nano.dts
 +F:    arch/arm/boot/dts/ti/omap/am335x-nano.dts
  
  OMAP1 SUPPORT
  M:    Aaro Koskinen <aaro.koskinen@iki.fi>
@@@ -15561,7 -15422,6 +15567,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    arch/arm/configs/omap2plus_defconfig
  F:    arch/arm/mach-omap2/
  F:    drivers/bus/ti-sysc.c
 +F:    drivers/gpio/gpio-tps65219.c
  F:    drivers/i2c/busses/i2c-omap.c
  F:    drivers/irqchip/irq-omap-intc.c
  F:    drivers/mfd/*omap*.c
@@@ -15982,7 -15842,6 +15988,7 @@@ F:   include/media/i2c/ov2659.
  
  OVERLAY FILESYSTEM
  M:    Miklos Szeredi <miklos@szeredi.hu>
 +M:    Amir Goldstein <amir73il@gmail.com>
  L:    linux-unionfs@vger.kernel.org
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git
@@@ -16085,7 -15944,7 +16091,7 @@@ F:   include/uapi/linux/ppdev.
  
  PARAVIRT_OPS INTERFACE
  M:    Juergen Gross <jgross@suse.com>
 -M:    Srivatsa S. Bhat (VMware) <srivatsa@csail.mit.edu>
 +R:    Ajay Kaher <akaher@vmware.com>
  R:    Alexey Makhalov <amakhalov@vmware.com>
  R:    VMware PV-Drivers Reviewers <pv-drivers@vmware.com>
  L:    virtualization@lists.linux-foundation.org
@@@ -16521,7 -16380,7 +16527,7 @@@ F:   Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/dwc/pcie-keembay.c
  
  PCIE DRIVER FOR INTEL LGM GW SOC
 -M:    Rahul Tanwar <rtanwar@maxlinear.com>
 +M:    Chuanhua Lei <lchuanhua@maxlinear.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml
@@@ -16828,7 -16687,7 +16834,7 @@@ PIN CONTROLLER - QUALCOM
  M:    Bjorn Andersson <andersson@kernel.org>
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/pinctrl/qcom,*.txt
 +F:    Documentation/devicetree/bindings/pinctrl/qcom,*
  F:    drivers/pinctrl/qcom/
  
  PIN CONTROLLER - RENESAS
@@@ -17283,7 -17142,7 +17289,7 @@@ L:   linux-arm-kernel@lists.infradead.or
  S:    Maintained
  T:    git git://github.com/hzhuang1/linux.git
  T:    git git://github.com/rjarzmik/linux.git
 -F:    arch/arm/boot/dts/pxa*
 +F:    arch/arm/boot/dts/intel/pxa/
  F:    arch/arm/mach-pxa/
  F:    drivers/dma/pxa*
  F:    drivers/pcmcia/pxa2xx*
@@@ -17321,7 -17180,6 +17327,7 @@@ F:   sound/soc/codecs/wcd9335.
  F:    sound/soc/codecs/wcd934x.c
  F:    sound/soc/codecs/wsa881x.c
  F:    sound/soc/codecs/wsa883x.c
 +F:    sound/soc/codecs/wsa884x.c
  F:    sound/soc/qcom/
  
  QCOM EMBEDDED USB DEBUGGER (EUD)
@@@ -17496,8 -17354,6 +17502,8 @@@ QUALCOMM ATHEROS ATH11K WIRELESS DRIVE
  M:    Kalle Valo <kvalo@kernel.org>
  L:    ath11k@lists.infradead.org
  S:    Supported
 +W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
 +B:    https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
  F:    Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
  F:    drivers/net/wireless/ath/ath11k/
@@@ -17507,7 -17363,6 +17513,7 @@@ M:   Toke Høiland-Jørgensen <toke@toke.
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
  F:    Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
  F:    drivers/net/wireless/ath/ath9k/
  
@@@ -17540,8 -17395,6 +17546,8 @@@ F:   include/dt-bindings/clock/qcom,
  
  QUALCOMM CLOUD AI (QAIC) DRIVER
  M:    Jeffrey Hugo <quic_jhugo@quicinc.com>
 +R:    Carl Vanderlip <quic_carlv@quicinc.com>
 +R:    Pranjal Ramajor Asha Kanojiya <quic_pkanojiy@quicinc.com>
  L:    linux-arm-msm@vger.kernel.org
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
@@@ -17694,6 -17547,14 +17700,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
  F:    drivers/thermal/qcom/
  
+ QUALCOMM TYPEC PORT MANAGER DRIVER
+ M:    Bryan O'Donoghue <bryan.odonoghue@linaro.org>
+ L:    linux-arm-msm@vger.kernel.org
+ L:    linux-usb@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/usb/qcom,pmic-*.yaml
+ F:    drivers/usb/typec/tcpm/qcom/
  QUALCOMM VENUS VIDEO ACCELERATOR DRIVER
  M:    Stanimir Varbanov <stanimir.k.varbanov@gmail.com>
  M:    Vikash Garodia <quic_vgarodia@quicinc.com>
@@@ -17939,7 -17800,7 +17953,7 @@@ M:   Boqun Feng <boqun.feng@gmail.com
  R:    Steven Rostedt <rostedt@goodmis.org>
  R:    Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  R:    Lai Jiangshan <jiangshanlai@gmail.com>
 -R:    Zqiang <qiang1.zhang@intel.com>
 +R:    Zqiang <qiang.zhang1211@gmail.com>
  L:    rcu@vger.kernel.org
  S:    Supported
  W:    http://www.rdrop.com/users/paulmck/RCU/
@@@ -17970,7 -17831,7 +17984,7 @@@ F:   tools/testing/selftests/rtc
  Real-time Linux Analysis (RTLA) tools
  M:    Daniel Bristot de Oliveira <bristot@kernel.org>
  M:    Steven Rostedt <rostedt@goodmis.org>
 -L:    linux-trace-devel@vger.kernel.org
 +L:    linux-trace-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/tools/rtla/
  F:    tools/tracing/rtla/
@@@ -18191,14 -18052,6 +18205,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/usb/renesas,rzn1-usbf.yaml
  F:    drivers/usb/gadget/udc/renesas_usbf.c
  
 +RENESAS RZ/V2M I2C DRIVER
 +M:    Fabrizio Castro <fabrizio.castro.jz@renesas.com>
 +L:    linux-i2c@vger.kernel.org
 +L:    linux-renesas-soc@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/i2c/renesas,rzv2m.yaml
 +F:    drivers/i2c/busses/i2c-rzv2m.c
 +
  RENESAS USB PHY DRIVER
  M:    Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  L:    linux-renesas-soc@vger.kernel.org
@@@ -18211,13 -18064,6 +18225,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/clock/renesas,versaclock7.yaml
  F:    drivers/clk/clk-versaclock7.c
  
 +RENESAS X9250 DIGITAL POTENTIOMETERS DRIVER
 +M:    Herve Codina <herve.codina@bootlin.com>
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/potentiometer/renesas,x9250.yaml
 +F:    drivers/iio/potentiometer/x9250.c
 +
  RESET CONTROLLER FRAMEWORK
  M:    Philipp Zabel <p.zabel@pengutronix.de>
  S:    Maintained
@@@ -18329,8 -18175,6 +18343,8 @@@ Q:   https://patchwork.kernel.org/project
  T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
  F:    Documentation/devicetree/bindings/riscv/
  F:    arch/riscv/boot/dts/
 +X:    arch/riscv/boot/dts/allwinner/
 +X:    arch/riscv/boot/dts/renesas/
  
  RISC-V PMU DRIVERS
  M:    Atish Patra <atishp@atishpatra.org>
@@@ -18341,14 -18185,6 +18355,14 @@@ F: drivers/perf/riscv_pmu.
  F:    drivers/perf/riscv_pmu_legacy.c
  F:    drivers/perf/riscv_pmu_sbi.c
  
 +RISC-V THEAD SoC SUPPORT
 +M:    Jisheng Zhang <jszhang@kernel.org>
 +M:    Guo Ren <guoren@kernel.org>
 +M:    Fu Wei <wefu@redhat.com>
 +L:    linux-riscv@lists.infradead.org
 +S:    Maintained
 +F:    arch/riscv/boot/dts/thead/
 +
  RNBD BLOCK DRIVERS
  M:    Md. Haris Iqbal <haris.iqbal@ionos.com>
  M:    Jack Wang <jinpu.wang@ionos.com>
@@@ -18430,11 -18266,10 +18444,11 @@@ S:        Maintaine
  F:    Documentation/devicetree/bindings/iio/light/bh1750.yaml
  F:    drivers/iio/light/bh1750.c
  
 -ROHM BU27034 AMBIENT LIGHT SENSOR DRIVER
 +ROHM BU270xx LIGHT SENSOR DRIVERs
  M:    Matti Vaittinen <mazziesaccount@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Supported
 +F:    drivers/iio/light/rohm-bu27008.c
  F:    drivers/iio/light/rohm-bu27034.c
  
  ROHM MULTIFUNCTION BD9571MWV-M PMIC DEVICE DRIVERS
@@@ -18558,7 -18393,7 +18572,7 @@@ F:   drivers/infiniband/ulp/rtrs
  RUNTIME VERIFICATION (RV)
  M:    Daniel Bristot de Oliveira <bristot@kernel.org>
  M:    Steven Rostedt <rostedt@goodmis.org>
 -L:    linux-trace-devel@vger.kernel.org
 +L:    linux-trace-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/trace/rv/
  F:    include/linux/rv.h
@@@ -18933,7 -18768,7 +18947,7 @@@ SANCLOUD BEAGLEBONE ENHANCED DEVICE TRE
  M:    Paul Barker <paul.barker@sancloud.com>
  R:    Marc Murphy <marc.murphy@sancloud.com>
  S:    Supported
 -F:    arch/arm/boot/dts/am335x-sancloud*
 +F:    arch/arm/boot/dts/ti/omap/am335x-sancloud*
  
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <zwanem@gmail.com>
@@@ -18960,16 -18795,6 +18974,16 @@@ F: include/linux/wait.
  F:    include/uapi/linux/sched.h
  F:    kernel/sched/
  
 +SCSI LIBSAS SUBSYSTEM
 +R:    John Garry <john.g.garry@oracle.com>
 +R:    Jason Yan <yanaijie@huawei.com>
 +L:    linux-scsi@vger.kernel.org
 +S:    Supported
 +F:    drivers/scsi/libsas/
 +F:    include/scsi/libsas.h
 +F:    include/scsi/sas_ata.h
 +F:    Documentation/scsi/libsas.rst
 +
  SCSI RDMA PROTOCOL (SRP) INITIATOR
  M:    Bart Van Assche <bvanassche@acm.org>
  L:    linux-rdma@vger.kernel.org
@@@ -19098,7 -18923,7 +19112,7 @@@ K:   \bsecure_computin
  K:    \bTIF_SECCOMP\b
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) Broadcom BRCMSTB DRIVER
 -M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +M:    Kamal Dasu <kamal.dasu@broadcom.com>
  M:    Al Cooper <alcooperx@gmail.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mmc@vger.kernel.org
@@@ -19311,9 -19136,6 +19325,9 @@@ SHARED MEMORY COMMUNICATIONS (SMC) SOCK
  M:    Karsten Graul <kgraul@linux.ibm.com>
  M:    Wenjia Zhang <wenjia@linux.ibm.com>
  M:    Jan Karcher <jaka@linux.ibm.com>
 +R:    D. Wythe <alibuda@linux.alibaba.com>
 +R:    Tony Lu <tonylu@linux.alibaba.com>
 +R:    Wen Gu <guwen@linux.alibaba.com>
  L:    linux-s390@vger.kernel.org
  S:    Supported
  F:    net/smc/
@@@ -19772,15 -19594,15 +19786,15 @@@ F:        include/uapi/linux/raid
  SOLIDRUN CLEARFOG SUPPORT
  M:    Russell King <linux@armlinux.org.uk>
  S:    Maintained
 -F:    arch/arm/boot/dts/armada-388-clearfog*
 -F:    arch/arm/boot/dts/armada-38x-solidrun-*
 +F:    arch/arm/boot/dts/marvell/armada-388-clearfog*
 +F:    arch/arm/boot/dts/marvell/armada-38x-solidrun-*
  
  SOLIDRUN CUBOX-I/HUMMINGBOARD SUPPORT
  M:    Russell King <linux@armlinux.org.uk>
  S:    Maintained
 -F:    arch/arm/boot/dts/imx6*-cubox-i*
 -F:    arch/arm/boot/dts/imx6*-hummingboard*
 -F:    arch/arm/boot/dts/imx6*-sr-*
 +F:    arch/arm/boot/dts/nxp/imx/imx6*-cubox-i*
 +F:    arch/arm/boot/dts/nxp/imx/imx6*-hummingboard*
 +F:    arch/arm/boot/dts/nxp/imx/imx6*-sr-*
  
  SONIC NETWORK DRIVER
  M:    Thomas Bogendoerfer <tsbogend@alpha.franken.de>
@@@ -20065,7 -19887,7 +20079,7 @@@ M:   soc@kernel.or
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  W:    http://www.st.com/spear
 -F:    arch/arm/boot/dts/spear*
 +F:    arch/arm/boot/dts/st/spear*
  F:    arch/arm/mach-spear/
  F:    drivers/clk/spear/
  F:    drivers/pinctrl/spear/
@@@ -20304,13 -20126,6 +20318,13 @@@ F: Documentation/devicetree/bindings/cl
  F:    drivers/clk/starfive/clk-starfive-jh71*
  F:    include/dt-bindings/clock/starfive?jh71*.h
  
 +STARFIVE CRYPTO DRIVER
 +M:    Jia Jie Ho <jiajie.ho@starfivetech.com>
 +M:    William Qiu <william.qiu@starfivetech.com>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/crypto/starfive*
 +F:    drivers/crypto/starfive/
 +
  STARFIVE JH71X0 PINCTRL DRIVERS
  M:    Emil Renner Berthing <kernel@esmil.dk>
  M:    Jianlong Huang <jianlong.huang@starfivetech.com>
@@@ -20329,6 -20144,12 +20343,12 @@@ F: Documentation/devicetree/bindings/re
  F:    drivers/reset/starfive/reset-starfive-jh71*
  F:    include/dt-bindings/reset/starfive?jh71*.h
  
+ STARFIVE JH71X0 USB DRIVERS
+ M:    Minda Chen <minda.chen@starfivetech.com>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/usb/starfive,jh7110-usb.yaml
+ F:    drivers/usb/cdns3/cdns3-starfive.c
  STARFIVE JH71XX PMU CONTROLLER DRIVER
  M:    Walker Chen <walker.chen@starfivetech.com>
  S:    Supported
@@@ -20336,12 -20157,6 +20356,12 @@@ F: Documentation/devicetree/bindings/po
  F:    drivers/soc/starfive/jh71xx_pmu.c
  F:    include/dt-bindings/power/starfive,jh7110-pmu.h
  
 +STARFIVE JH7110 TDM DRIVER
 +M:    Walker Chen <walker.chen@starfivetech.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/starfive,jh7110-tdm.yaml
 +F:    sound/soc/starfive/jh7110_tdm.c
 +
  STARFIVE SOC DRIVERS
  M:    Conor Dooley <conor@kernel.org>
  S:    Maintained
@@@ -21286,7 -21101,7 +21306,7 @@@ L:   linux-arm-kernel@lists.infradead.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
  F:    Documentation/devicetree/bindings/i2c/i2c-davinci.txt
 -F:    arch/arm/boot/dts/da850*
 +F:    arch/arm/boot/dts/ti/davinci/
  F:    arch/arm/mach-davinci/
  F:    drivers/i2c/busses/i2c-davinci.c
  
@@@ -22126,6 -21941,7 +22146,7 @@@ F:   drivers/usb
  F:    include/dt-bindings/usb/
  F:    include/linux/usb.h
  F:    include/linux/usb/
+ F:    include/uapi/linux/usb/
  
  USB TYPEC BUS FOR ALTERNATE MODES
  M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
@@@ -22300,13 -22116,6 +22321,13 @@@ F: Documentation/filesystems/vfat.rs
  F:    fs/fat/
  F:    tools/testing/selftests/filesystems/fat/
  
 +VFIO CDX DRIVER
 +M:    Nipun Gupta <nipun.gupta@amd.com>
 +M:    Nikhil Agarwal <nikhil.agarwal@amd.com>
 +L:    kvm@vger.kernel.org
 +S:    Maintained
 +F:    drivers/vfio/cdx/*
 +
  VFIO DRIVER
  M:    Alex Williamson <alex.williamson@redhat.com>
  L:    kvm@vger.kernel.org
@@@ -22388,6 -22197,7 +22409,6 @@@ L:   linux-fbdev@vger.kernel.or
  S:    Maintained
  F:    drivers/video/fbdev/via/
  F:    include/linux/via-core.h
 -F:    include/linux/via-gpio.h
  F:    include/linux/via_i2c.h
  
  VIA VELOCITY NETWORK DRIVER
@@@ -22640,14 -22450,6 +22661,14 @@@ L: linux-fsdevel@vger.kernel.or
  S:    Maintained
  F:    fs/vboxsf/*
  
 +VIRTUAL PCM TEST DRIVER
 +M:    Ivan Orlov <ivan.orlov0322@gmail.com>
 +L:    alsa-devel@alsa-project.org
 +S:    Maintained
 +F:    Documentation/sound/cards/pcmtest.rst
 +F:    sound/drivers/pcmtest.c
 +F:    tools/testing/selftests/alsa/test-pcmtest-driver.c
 +
  VIRTUAL SERIO DEVICE DRIVER
  M:    Stephen Chandler Paul <thatslyude@gmail.com>
  S:    Maintained
@@@ -22718,7 -22520,7 +22739,7 @@@ S:   Supporte
  F:    drivers/misc/vmw_balloon.c
  
  VMWARE HYPERVISOR INTERFACE
 -M:    Srivatsa S. Bhat (VMware) <srivatsa@csail.mit.edu>
 +M:    Ajay Kaher <akaher@vmware.com>
  M:    Alexey Makhalov <amakhalov@vmware.com>
  R:    VMware PV-Drivers Reviewers <pv-drivers@vmware.com>
  L:    virtualization@lists.linux-foundation.org
@@@ -22745,8 -22547,8 +22766,8 @@@ F:   drivers/scsi/vmw_pvscsi.
  F:    drivers/scsi/vmw_pvscsi.h
  
  VMWARE VIRTUAL PTP CLOCK DRIVER
 -M:    Srivatsa S. Bhat (VMware) <srivatsa@csail.mit.edu>
  M:    Deep Shah <sdeep@vmware.com>
 +R:    Ajay Kaher <akaher@vmware.com>
  R:    Alexey Makhalov <amakhalov@vmware.com>
  R:    VMware PV-Drivers Reviewers <pv-drivers@vmware.com>
  L:    netdev@vger.kernel.org
@@@ -22969,13 -22771,6 +22990,13 @@@ L: linux-wireless@vger.kernel.or
  S:    Odd fixes
  F:    drivers/net/wireless/legacy/wl3501*
  
 +WMI BINARY MOF DRIVER
 +L:    platform-drivers-x86@vger.kernel.org
 +S:    Orphan
 +F:    Documentation/ABI/stable/sysfs-platform-wmi-bmof
 +F:    Documentation/wmi/devices/wmi-bmof.rst
 +F:    drivers/platform/x86/wmi-bmof.c
 +
  WOLFSON MICROELECTRONICS DRIVERS
  L:    patches@opensource.cirrus.com
  S:    Supported
@@@ -23355,9 -23150,8 +23376,9 @@@ F:   Documentation/devicetree/bindings/ii
  F:    drivers/iio/adc/xilinx-ams.c
  
  XILINX AXI ETHERNET DRIVER
 -M:    Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
 +M:    Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
  S:    Maintained
 +F:    Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml
  F:    drivers/net/ethernet/xilinx/xilinx_axienet*
  
  XILINX CAN DRIVER
@@@ -23375,8 -23169,8 +23396,8 @@@ F:   drivers/soc/xilinx/xlnx_event_manage
  F:    include/linux/firmware/xlnx-event-manager.h
  
  XILINX GPIO DRIVER
 -M:    Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
 -R:    Srinivas Neeli <srinivas.neeli@xilinx.com>
 +M:    Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
 +R:    Srinivas Neeli <srinivas.neeli@amd.com>
  R:    Michal Simek <michal.simek@amd.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
@@@ -23391,8 -23185,8 +23412,8 @@@ F:   drivers/pwm/pwm-xilinx.
  F:    include/clocksource/timer-xilinx.h
  
  XILINX SD-FEC IP CORES
 -M:    Derek Kiernan <derek.kiernan@xilinx.com>
 -M:    Dragan Cvetic <dragan.cvetic@xilinx.com>
 +M:    Derek Kiernan <derek.kiernan@amd.com>
 +M:    Dragan Cvetic <dragan.cvetic@amd.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/misc/xlnx,sd-fec.txt
  F:    Documentation/misc-devices/xilinx_sdfec.rst
@@@ -23408,6 -23202,7 +23429,6 @@@ S:   Maintaine
  F:    drivers/tty/serial/uartlite.c
  
  XILINX VIDEO IP CORES
 -M:    Hyun Kwon <hyun.kwon@xilinx.com>
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
  S:    Supported
@@@ -23436,6 -23231,7 +23457,6 @@@ F:   include/linux/dma/amd_xdma.
  F:    include/linux/platform_data/amd_xdma.h
  
  XILINX ZYNQMP DPDMA DRIVER
 -M:    Hyun Kwon <hyun.kwon@xilinx.com>
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    dmaengine@vger.kernel.org
  S:    Supported
@@@ -23451,6 -23247,7 +23472,6 @@@ F:   Documentation/devicetree/bindings/me
  F:    drivers/edac/zynqmp_edac.c
  
  XILINX ZYNQMP PSGTR PHY DRIVER
 -M:    Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
@@@ -23459,7 -23256,7 +23480,7 @@@ F:   Documentation/devicetree/bindings/ph
  F:    drivers/phy/xilinx/phy-zynqmp.c
  
  XILINX ZYNQMP SHA3 DRIVER
 -M:    Harsha <harsha.harsha@xilinx.com>
 +M:    Harsha <harsha.harsha@amd.com>
  S:    Maintained
  F:    drivers/crypto/xilinx/zynqmp-sha.c
  
diff --combined drivers/usb/dwc3/core.c
@@@ -1800,6 -1800,17 +1800,17 @@@ static int dwc3_probe(struct platform_d
        dwc_res = *res;
        dwc_res.start += DWC3_GLOBALS_REGS_START;
  
+       if (dev->of_node) {
+               struct device_node *parent = of_get_parent(dev->of_node);
+               if (of_device_is_compatible(parent, "realtek,rtd-dwc3")) {
+                       dwc_res.start -= DWC3_GLOBALS_REGS_START;
+                       dwc_res.start += DWC3_RTK_RTD_GLOBALS_REGS_START;
+               }
+               of_node_put(parent);
+       }
        regs = devm_ioremap_resource(dev, &dwc_res);
        if (IS_ERR(regs))
                return PTR_ERR(regs);
@@@ -1913,7 -1924,7 +1924,7 @@@ err_put_psy
        return ret;
  }
  
- static int dwc3_remove(struct platform_device *pdev)
+ static void dwc3_remove(struct platform_device *pdev)
  {
        struct dwc3     *dwc = platform_get_drvdata(pdev);
  
        pm_runtime_disable(&pdev->dev);
        pm_runtime_dont_use_autosuspend(&pdev->dev);
        pm_runtime_put_noidle(&pdev->dev);
 +      /*
 +       * HACK: Clear the driver data, which is currently accessed by parent
 +       * glue drivers, before allowing the parent to suspend.
 +       */
 +      platform_set_drvdata(pdev, NULL);
        pm_runtime_set_suspended(&pdev->dev);
  
        dwc3_free_event_buffers(dwc);
  
        if (dwc->usb_psy)
                power_supply_put(dwc->usb_psy);
-       return 0;
  }
  
  #ifdef CONFIG_PM
@@@ -2252,7 -2256,7 +2261,7 @@@ MODULE_DEVICE_TABLE(acpi, dwc3_acpi_mat
  
  static struct platform_driver dwc3_driver = {
        .probe          = dwc3_probe,
-       .remove         = dwc3_remove,
+       .remove_new     = dwc3_remove,
        .driver         = {
                .name   = "dwc3",
                .of_match_table = of_match_ptr(of_dwc3_match),
@@@ -167,7 -167,8 +167,8 @@@ static int dwc3_qcom_register_extcon(st
  
        qcom->edev = extcon_get_edev_by_phandle(dev, 0);
        if (IS_ERR(qcom->edev))
-               return PTR_ERR(qcom->edev);
+               return dev_err_probe(dev, PTR_ERR(qcom->edev),
+                                    "Failed to get extcon\n");
  
        qcom->vbus_nb.notifier_call = dwc3_qcom_vbus_notifier;
  
@@@ -252,16 -253,14 +253,14 @@@ static int dwc3_qcom_interconnect_init(
  
        qcom->icc_path_ddr = of_icc_get(dev, "usb-ddr");
        if (IS_ERR(qcom->icc_path_ddr)) {
-               dev_err(dev, "failed to get usb-ddr path: %ld\n",
-                               PTR_ERR(qcom->icc_path_ddr));
-               return PTR_ERR(qcom->icc_path_ddr);
+               return dev_err_probe(dev, PTR_ERR(qcom->icc_path_ddr),
+                                    "failed to get usb-ddr path\n");
        }
  
        qcom->icc_path_apps = of_icc_get(dev, "apps-usb");
        if (IS_ERR(qcom->icc_path_apps)) {
-               dev_err(dev, "failed to get apps-usb path: %ld\n",
-                               PTR_ERR(qcom->icc_path_apps));
-               ret = PTR_ERR(qcom->icc_path_apps);
+               ret = dev_err_probe(dev, PTR_ERR(qcom->icc_path_apps),
+                                   "failed to get apps-usb path\n");
                goto put_path_ddr;
        }
  
@@@ -308,16 -307,7 +307,16 @@@ static void dwc3_qcom_interconnect_exit
  /* Only usable in contexts where the role can not change. */
  static bool dwc3_qcom_is_host(struct dwc3_qcom *qcom)
  {
 -      struct dwc3 *dwc = platform_get_drvdata(qcom->dwc3);
 +      struct dwc3 *dwc;
 +
 +      /*
 +       * FIXME: Fix this layering violation.
 +       */
 +      dwc = platform_get_drvdata(qcom->dwc3);
 +
 +      /* Core driver may not have probed yet. */
 +      if (!dwc)
 +              return false;
  
        return dwc->xhci;
  }
@@@ -800,6 -790,7 +799,7 @@@ static int dwc3_qcom_probe(struct platf
        struct device           *dev = &pdev->dev;
        struct dwc3_qcom        *qcom;
        struct resource         *res, *parent_res = NULL;
+       struct resource         local_res;
        int                     ret, i;
        bool                    ignore_pipe_clk;
        bool                    wakeup_source;
  
        qcom->resets = devm_reset_control_array_get_optional_exclusive(dev);
        if (IS_ERR(qcom->resets)) {
-               ret = PTR_ERR(qcom->resets);
-               dev_err(&pdev->dev, "failed to get resets, err=%d\n", ret);
-               return ret;
+               return dev_err_probe(&pdev->dev, PTR_ERR(qcom->resets),
+                                    "failed to get resets\n");
        }
  
        ret = reset_control_assert(qcom->resets);
  
        ret = dwc3_qcom_clk_init(qcom, of_clk_get_parent_count(np));
        if (ret) {
-               dev_err(dev, "failed to get clocks\n");
+               dev_err_probe(dev, ret, "failed to get clocks\n");
                goto reset_assert;
        }
  
        if (np) {
                parent_res = res;
        } else {
-               parent_res = kmemdup(res, sizeof(struct resource), GFP_KERNEL);
-               if (!parent_res)
-                       return -ENOMEM;
+               memcpy(&local_res, res, sizeof(struct resource));
+               parent_res = &local_res;
  
                parent_res->start = res->start +
                        qcom->acpi_pdata->qscratch_base_offset;
                        if (IS_ERR_OR_NULL(qcom->urs_usb)) {
                                dev_err(dev, "failed to create URS USB platdev\n");
                                if (!qcom->urs_usb)
-                                       return -ENODEV;
+                                       ret = -ENODEV;
                                else
-                                       return PTR_ERR(qcom->urs_usb);
+                                       ret = PTR_ERR(qcom->urs_usb);
+                               goto clk_disable;
                        }
                }
        }
@@@ -947,14 -937,18 +946,18 @@@ reset_assert
        return ret;
  }
  
- static int dwc3_qcom_remove(struct platform_device *pdev)
+ static void dwc3_qcom_remove(struct platform_device *pdev)
  {
        struct dwc3_qcom *qcom = platform_get_drvdata(pdev);
+       struct device_node *np = pdev->dev.of_node;
        struct device *dev = &pdev->dev;
        int i;
  
        device_remove_software_node(&qcom->dwc3->dev);
-       of_platform_depopulate(dev);
+       if (np)
+               of_platform_depopulate(&pdev->dev);
+       else
+               platform_device_put(pdev);
  
        for (i = qcom->num_clocks - 1; i >= 0; i--) {
                clk_disable_unprepare(qcom->clks[i]);
  
        pm_runtime_allow(dev);
        pm_runtime_disable(dev);
-       return 0;
  }
  
  static int __maybe_unused dwc3_qcom_pm_suspend(struct device *dev)
@@@ -1061,7 -1053,7 +1062,7 @@@ MODULE_DEVICE_TABLE(acpi, dwc3_qcom_acp
  
  static struct platform_driver dwc3_qcom_driver = {
        .probe          = dwc3_qcom_probe,
-       .remove         = dwc3_qcom_remove,
+       .remove_new     = dwc3_qcom_remove,
        .driver         = {
                .name   = "dwc3-qcom",
                .pm     = &dwc3_qcom_dev_pm_ops,
@@@ -198,7 -198,6 +198,7 @@@ static void dwc3_gadget_del_and_unmap_r
        list_del(&req->list);
        req->remaining = 0;
        req->needs_extra_trb = false;
 +      req->num_trbs = 0;
  
        if (req->request.status == -EINPROGRESS)
                req->request.status = status;
@@@ -2703,13 -2702,17 +2703,17 @@@ static int dwc3_gadget_soft_disconnect(
  
  static int dwc3_gadget_soft_connect(struct dwc3 *dwc)
  {
+       int ret;
        /*
         * In the Synopsys DWC_usb31 1.90a programming guide section
         * 4.1.9, it specifies that for a reconnect after a
         * device-initiated disconnect requires a core soft reset
         * (DCTL.CSftRst) before enabling the run/stop bit.
         */
-       dwc3_core_soft_reset(dwc);
+       ret = dwc3_core_soft_reset(dwc);
+       if (ret)
+               return ret;
  
        dwc3_event_buffers_setup(dwc);
        __dwc3_gadget_start(dwc);
@@@ -2744,7 -2747,9 +2748,9 @@@ static int dwc3_gadget_pullup(struct us
        ret = pm_runtime_get_sync(dwc->dev);
        if (!ret || ret < 0) {
                pm_runtime_put(dwc->dev);
-               return 0;
+               if (ret < 0)
+                       pm_runtime_set_suspended(dwc->dev);
+               return ret;
        }
  
        if (dwc->pullups_connected == is_on) {
@@@ -3809,6 -3814,9 +3815,9 @@@ static void dwc3_endpoint_interrupt(str
                break;
        case DWC3_DEPEVT_RXTXFIFOEVT:
                break;
+       default:
+               dev_err(dwc->dev, "unknown endpoint event %d\n", event->endpoint_event);
+               break;
        }
  }
  
@@@ -37,14 -37,6 +37,14 @@@ static const struct bus_type gadget_bus
   * @vbus: for udcs who care about vbus status, this value is real vbus status;
   * for udcs who do not care about vbus status, this value is always true
   * @started: the UDC's started state. True if the UDC had started.
 + * @allow_connect: Indicates whether UDC is allowed to be pulled up.
 + * Set/cleared by gadget_(un)bind_driver() after gadget driver is bound or
 + * unbound.
 + * @connect_lock: protects udc->started, gadget->connect,
 + * gadget->allow_connect and gadget->deactivate. The routines
 + * usb_gadget_connect_locked(), usb_gadget_disconnect_locked(),
 + * usb_udc_connect_control_locked(), usb_gadget_udc_start_locked() and
 + * usb_gadget_udc_stop_locked() are called with this lock held.
   *
   * This represents the internal data structure which is used by the UDC-class
   * to hold information about udc driver and gadget together.
@@@ -56,12 -48,9 +56,12 @@@ struct usb_udc 
        struct list_head                list;
        bool                            vbus;
        bool                            started;
 +      bool                            allow_connect;
 +      struct work_struct              vbus_work;
 +      struct mutex                    connect_lock;
  };
  
- static struct class *udc_class;
+ static const struct class udc_class;
  static LIST_HEAD(udc_list);
  
  /* Protects udc_list, udc->driver, driver->is_bound, and related calls */
@@@ -698,8 -687,17 +698,8 @@@ out
  }
  EXPORT_SYMBOL_GPL(usb_gadget_vbus_disconnect);
  
 -/**
 - * usb_gadget_connect - software-controlled connect to USB host
 - * @gadget:the peripheral being connected
 - *
 - * Enables the D+ (or potentially D-) pullup.  The host will start
 - * enumerating this gadget when the pullup is active and a VBUS session
 - * is active (the link is powered).
 - *
 - * Returns zero on success, else negative errno.
 - */
 -int usb_gadget_connect(struct usb_gadget *gadget)
 +static int usb_gadget_connect_locked(struct usb_gadget *gadget)
 +      __must_hold(&gadget->udc->connect_lock)
  {
        int ret = 0;
  
                goto out;
        }
  
 -      if (gadget->deactivated) {
 +      if (gadget->deactivated || !gadget->udc->allow_connect || !gadget->udc->started) {
                /*
 -               * If gadget is deactivated we only save new state.
 -               * Gadget will be connected automatically after activation.
 +               * If the gadget isn't usable (because it is deactivated,
 +               * unbound, or not yet started), we only save the new state.
 +               * The gadget will be connected automatically when it is
 +               * activated/bound/started.
                 */
                gadget->connected = true;
                goto out;
@@@ -728,31 -724,22 +728,31 @@@ out
  
        return ret;
  }
 -EXPORT_SYMBOL_GPL(usb_gadget_connect);
  
  /**
 - * usb_gadget_disconnect - software-controlled disconnect from USB host
 - * @gadget:the peripheral being disconnected
 - *
 - * Disables the D+ (or potentially D-) pullup, which the host may see
 - * as a disconnect (when a VBUS session is active).  Not all systems
 - * support software pullup controls.
 + * usb_gadget_connect - software-controlled connect to USB host
 + * @gadget:the peripheral being connected
   *
 - * Following a successful disconnect, invoke the ->disconnect() callback
 - * for the current gadget driver so that UDC drivers don't need to.
 + * Enables the D+ (or potentially D-) pullup.  The host will start
 + * enumerating this gadget when the pullup is active and a VBUS session
 + * is active (the link is powered).
   *
   * Returns zero on success, else negative errno.
   */
 -int usb_gadget_disconnect(struct usb_gadget *gadget)
 +int usb_gadget_connect(struct usb_gadget *gadget)
 +{
 +      int ret;
 +
 +      mutex_lock(&gadget->udc->connect_lock);
 +      ret = usb_gadget_connect_locked(gadget);
 +      mutex_unlock(&gadget->udc->connect_lock);
 +
 +      return ret;
 +}
 +EXPORT_SYMBOL_GPL(usb_gadget_connect);
 +
 +static int usb_gadget_disconnect_locked(struct usb_gadget *gadget)
 +      __must_hold(&gadget->udc->connect_lock)
  {
        int ret = 0;
  
        if (!gadget->connected)
                goto out;
  
 -      if (gadget->deactivated) {
 +      if (gadget->deactivated || !gadget->udc->started) {
                /*
                 * If gadget is deactivated we only save new state.
                 * Gadget will stay disconnected after activation.
@@@ -787,30 -774,6 +787,30 @@@ out
  
        return ret;
  }
 +
 +/**
 + * usb_gadget_disconnect - software-controlled disconnect from USB host
 + * @gadget:the peripheral being disconnected
 + *
 + * Disables the D+ (or potentially D-) pullup, which the host may see
 + * as a disconnect (when a VBUS session is active).  Not all systems
 + * support software pullup controls.
 + *
 + * Following a successful disconnect, invoke the ->disconnect() callback
 + * for the current gadget driver so that UDC drivers don't need to.
 + *
 + * Returns zero on success, else negative errno.
 + */
 +int usb_gadget_disconnect(struct usb_gadget *gadget)
 +{
 +      int ret;
 +
 +      mutex_lock(&gadget->udc->connect_lock);
 +      ret = usb_gadget_disconnect_locked(gadget);
 +      mutex_unlock(&gadget->udc->connect_lock);
 +
 +      return ret;
 +}
  EXPORT_SYMBOL_GPL(usb_gadget_disconnect);
  
  /**
@@@ -828,14 -791,13 +828,14 @@@ int usb_gadget_deactivate(struct usb_ga
  {
        int ret = 0;
  
 +      mutex_lock(&gadget->udc->connect_lock);
        if (gadget->deactivated)
 -              goto out;
 +              goto unlock;
  
        if (gadget->connected) {
 -              ret = usb_gadget_disconnect(gadget);
 +              ret = usb_gadget_disconnect_locked(gadget);
                if (ret)
 -                      goto out;
 +                      goto unlock;
  
                /*
                 * If gadget was being connected before deactivation, we want
        }
        gadget->deactivated = true;
  
 -out:
 +unlock:
 +      mutex_unlock(&gadget->udc->connect_lock);
        trace_usb_gadget_deactivate(gadget, ret);
  
        return ret;
@@@ -866,9 -827,8 +866,9 @@@ int usb_gadget_activate(struct usb_gadg
  {
        int ret = 0;
  
 +      mutex_lock(&gadget->udc->connect_lock);
        if (!gadget->deactivated)
 -              goto out;
 +              goto unlock;
  
        gadget->deactivated = false;
  
         * while it was being deactivated, we call usb_gadget_connect().
         */
        if (gadget->connected)
 -              ret = usb_gadget_connect(gadget);
 +              ret = usb_gadget_connect_locked(gadget);
 +      mutex_unlock(&gadget->udc->connect_lock);
  
 -out:
 +unlock:
 +      mutex_unlock(&gadget->udc->connect_lock);
        trace_usb_gadget_activate(gadget, ret);
  
        return ret;
@@@ -1120,22 -1078,12 +1120,22 @@@ EXPORT_SYMBOL_GPL(usb_gadget_set_state)
  
  /* ------------------------------------------------------------------------- */
  
 -static void usb_udc_connect_control(struct usb_udc *udc)
 +/* Acquire connect_lock before calling this function. */
 +static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock)
  {
        if (udc->vbus)
 -              usb_gadget_connect(udc->gadget);
 +              usb_gadget_connect_locked(udc->gadget);
        else
 -              usb_gadget_disconnect(udc->gadget);
 +              usb_gadget_disconnect_locked(udc->gadget);
 +}
 +
 +static void vbus_event_work(struct work_struct *work)
 +{
 +      struct usb_udc *udc = container_of(work, struct usb_udc, vbus_work);
 +
 +      mutex_lock(&udc->connect_lock);
 +      usb_udc_connect_control_locked(udc);
 +      mutex_unlock(&udc->connect_lock);
  }
  
  /**
   *
   * The udc driver calls it when it wants to connect or disconnect gadget
   * according to vbus status.
 + *
 + * This function can be invoked from interrupt context by irq handlers of
 + * the gadget drivers, however, usb_udc_connect_control() has to run in
 + * non-atomic context due to the following:
 + * a. Some of the gadget driver implementations expect the ->pullup
 + * callback to be invoked in non-atomic context.
 + * b. usb_gadget_disconnect() acquires udc_lock which is a mutex.
 + * Hence offload invocation of usb_udc_connect_control() to workqueue.
   */
  void usb_udc_vbus_handler(struct usb_gadget *gadget, bool status)
  {
  
        if (udc) {
                udc->vbus = status;
 -              usb_udc_connect_control(udc);
 +              schedule_work(&udc->vbus_work);
        }
  }
  EXPORT_SYMBOL_GPL(usb_udc_vbus_handler);
@@@ -1184,7 -1124,7 +1184,7 @@@ void usb_gadget_udc_reset(struct usb_ga
  EXPORT_SYMBOL_GPL(usb_gadget_udc_reset);
  
  /**
 - * usb_gadget_udc_start - tells usb device controller to start up
 + * usb_gadget_udc_start_locked - tells usb device controller to start up
   * @udc: The UDC to be started
   *
   * This call is issued by the UDC Class driver when it's about
   * necessary to have it powered on.
   *
   * Returns zero on success, else negative errno.
 + *
 + * Caller should acquire connect_lock before invoking this function.
   */
 -static inline int usb_gadget_udc_start(struct usb_udc *udc)
 +static inline int usb_gadget_udc_start_locked(struct usb_udc *udc)
 +      __must_hold(&udc->connect_lock)
  {
        int ret;
  
  }
  
  /**
 - * usb_gadget_udc_stop - tells usb device controller we don't need it anymore
 + * usb_gadget_udc_stop_locked - tells usb device controller we don't need it anymore
   * @udc: The UDC to be stopped
   *
   * This call is issued by the UDC Class driver after calling
   * The details are implementation specific, but it can go as
   * far as powering off UDC completely and disable its data
   * line pullups.
 + *
 + * Caller should acquire connect lock before invoking this function.
   */
 -static inline void usb_gadget_udc_stop(struct usb_udc *udc)
 +static inline void usb_gadget_udc_stop_locked(struct usb_udc *udc)
 +      __must_hold(&udc->connect_lock)
  {
        if (!udc->started) {
                dev_err(&udc->dev, "UDC had already stopped\n");
@@@ -1378,7 -1312,7 +1378,7 @@@ int usb_add_gadget(struct usb_gadget *g
  
        device_initialize(&udc->dev);
        udc->dev.release = usb_udc_release;
-       udc->dev.class = udc_class;
+       udc->dev.class = &udc_class;
        udc->dev.groups = usb_udc_attr_groups;
        udc->dev.parent = gadget->dev.parent;
        ret = dev_set_name(&udc->dev, "%s",
  
        udc->gadget = gadget;
        gadget->udc = udc;
 +      mutex_init(&udc->connect_lock);
  
        udc->started = false;
  
        mutex_lock(&udc_lock);
        list_add_tail(&udc->list, &udc_list);
        mutex_unlock(&udc_lock);
 +      INIT_WORK(&udc->vbus_work, vbus_event_work);
  
        ret = device_add(&udc->dev);
        if (ret)
@@@ -1527,7 -1459,6 +1527,7 @@@ void usb_del_gadget(struct usb_gadget *
        flush_work(&gadget->work);
        device_del(&gadget->dev);
        ida_free(&gadget_id_numbers, gadget->id_number);
 +      cancel_work_sync(&udc->vbus_work);
        device_unregister(&udc->dev);
  }
  EXPORT_SYMBOL_GPL(usb_del_gadget);
@@@ -1592,16 -1523,11 +1592,16 @@@ static int gadget_bind_driver(struct de
        if (ret)
                goto err_bind;
  
 -      ret = usb_gadget_udc_start(udc);
 -      if (ret)
 +      mutex_lock(&udc->connect_lock);
 +      ret = usb_gadget_udc_start_locked(udc);
 +      if (ret) {
 +              mutex_unlock(&udc->connect_lock);
                goto err_start;
 +      }
        usb_gadget_enable_async_callbacks(udc);
 -      usb_udc_connect_control(udc);
 +      udc->allow_connect = true;
 +      usb_udc_connect_control_locked(udc);
 +      mutex_unlock(&udc->connect_lock);
  
        kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE);
        return 0;
@@@ -1632,16 -1558,12 +1632,16 @@@ static void gadget_unbind_driver(struc
  
        kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE);
  
 -      usb_gadget_disconnect(gadget);
 +      udc->allow_connect = false;
 +      cancel_work_sync(&udc->vbus_work);
 +      mutex_lock(&udc->connect_lock);
 +      usb_gadget_disconnect_locked(gadget);
        usb_gadget_disable_async_callbacks(udc);
        if (gadget->irq)
                synchronize_irq(gadget->irq);
        udc->driver->unbind(gadget);
 -      usb_gadget_udc_stop(udc);
 +      usb_gadget_udc_stop_locked(udc);
 +      mutex_unlock(&udc->connect_lock);
  
        mutex_lock(&udc_lock);
        driver->is_bound = false;
@@@ -1727,15 -1649,11 +1727,15 @@@ static ssize_t soft_connect_store(struc
        }
  
        if (sysfs_streq(buf, "connect")) {
 -              usb_gadget_udc_start(udc);
 -              usb_gadget_connect(udc->gadget);
 +              mutex_lock(&udc->connect_lock);
 +              usb_gadget_udc_start_locked(udc);
 +              usb_gadget_connect_locked(udc->gadget);
 +              mutex_unlock(&udc->connect_lock);
        } else if (sysfs_streq(buf, "disconnect")) {
 -              usb_gadget_disconnect(udc->gadget);
 -              usb_gadget_udc_stop(udc);
 +              mutex_lock(&udc->connect_lock);
 +              usb_gadget_disconnect_locked(udc->gadget);
 +              usb_gadget_udc_stop_locked(udc);
 +              mutex_unlock(&udc->connect_lock);
        } else {
                dev_err(dev, "unsupported command '%s'\n", buf);
                ret = -EINVAL;
@@@ -1856,6 -1774,11 +1856,11 @@@ static int usb_udc_uevent(const struct 
        return 0;
  }
  
+ static const struct class udc_class = {
+       .name           = "udc",
+       .dev_uevent     = usb_udc_uevent,
+ };
  static const struct bus_type gadget_bus_type = {
        .name = "gadget",
        .probe = gadget_bind_driver,
@@@ -1867,18 -1790,13 +1872,13 @@@ static int __init usb_udc_init(void
  {
        int rc;
  
-       udc_class = class_create("udc");
-       if (IS_ERR(udc_class)) {
-               pr_err("failed to create udc class --> %ld\n",
-                               PTR_ERR(udc_class));
-               return PTR_ERR(udc_class);
-       }
-       udc_class->dev_uevent = usb_udc_uevent;
+       rc = class_register(&udc_class);
+       if (rc)
+               return rc;
  
        rc = bus_register(&gadget_bus_type);
        if (rc)
-               class_destroy(udc_class);
+               class_unregister(&udc_class);
        return rc;
  }
  subsys_initcall(usb_udc_init);
  static void __exit usb_udc_exit(void)
  {
        bus_unregister(&gadget_bus_type);
-       class_destroy(udc_class);
+       class_unregister(&udc_class);
  }
  module_exit(usb_udc_exit);
  
@@@ -2445,7 -2445,7 +2445,7 @@@ err
   * pxa_udc_remove - removes the udc device driver
   * @_dev: platform device
   */
- static int pxa_udc_remove(struct platform_device *_dev)
+ static void pxa_udc_remove(struct platform_device *_dev)
  {
        struct pxa_udc *udc = platform_get_drvdata(_dev);
  
        udc->transceiver = NULL;
        the_controller = NULL;
        clk_unprepare(udc->clk);
-       return 0;
  }
  
  static void pxa_udc_shutdown(struct platform_device *_dev)
                udc_disable(udc);
  }
  
 -#ifdef CONFIG_PXA27x
 -extern void pxa27x_clear_otgph(void);
 -#else
 -#define pxa27x_clear_otgph()   do {} while (0)
 -#endif
 -
  #ifdef CONFIG_PM
  /**
   * pxa_udc_suspend - Suspend udc device
@@@ -2541,7 -2545,7 +2539,7 @@@ static struct platform_driver udc_drive
                .of_match_table = of_match_ptr(udc_pxa_dt_ids),
        },
        .probe          = pxa_udc_probe,
-       .remove         = pxa_udc_remove,
+       .remove_new     = pxa_udc_remove,
        .shutdown       = pxa_udc_shutdown,
  #ifdef CONFIG_PM
        .suspend        = pxa_udc_suspend,
@@@ -2653,7 -2653,7 +2653,7 @@@ static void renesas_usb3_debugfs_init(s
  }
  
  /*------- platform_driver ------------------------------------------------*/
- static int renesas_usb3_remove(struct platform_device *pdev)
+ static void renesas_usb3_remove(struct platform_device *pdev)
  {
        struct renesas_usb3 *usb3 = platform_get_drvdata(pdev);
  
  
        __renesas_usb3_ep_free_request(usb3->ep0_req);
        pm_runtime_disable(&pdev->dev);
-       return 0;
  }
  
  static int renesas_usb3_init_ep(struct renesas_usb3 *usb3, struct device *dev,
@@@ -2877,9 -2875,9 +2875,9 @@@ static int renesas_usb3_probe(struct pl
                struct rzv2m_usb3drd *ddata = dev_get_drvdata(pdev->dev.parent);
  
                usb3->drd_reg = ddata->reg;
 -              ret = devm_request_irq(ddata->dev, ddata->drd_irq,
 +              ret = devm_request_irq(&pdev->dev, ddata->drd_irq,
                                       renesas_usb3_otg_irq, 0,
 -                                     dev_name(ddata->dev), usb3);
 +                                     dev_name(&pdev->dev), usb3);
                if (ret < 0)
                        return ret;
        }
@@@ -3015,7 -3013,7 +3013,7 @@@ static SIMPLE_DEV_PM_OPS(renesas_usb3_p
  
  static struct platform_driver renesas_usb3_driver = {
        .probe          = renesas_usb3_probe,
-       .remove         = renesas_usb3_remove,
+       .remove_new     = renesas_usb3_remove,
        .driver         = {
                .name = udc_name,
                .pm             = &renesas_usb3_pm_ops,
@@@ -29,7 -29,6 +29,7 @@@
  #include <linux/of_platform.h>
  #include <linux/of_gpio.h>
  #include <linux/platform_data/usb-ohci-pxa27x.h>
 +#include <linux/platform_data/pxa2xx_udc.h>
  #include <linux/platform_device.h>
  #include <linux/regulator/consumer.h>
  #include <linux/signal.h>
@@@ -264,6 -263,12 +264,6 @@@ static inline void pxa27x_reset_hc(stru
        __raw_writel(uhchr & ~UHCHR_FHR, pxa_ohci->mmio_base + UHCHR);
  }
  
 -#ifdef CONFIG_PXA27x
 -extern void pxa27x_clear_otgph(void);
 -#else
 -#define pxa27x_clear_otgph()  do {} while (0)
 -#endif
 -
  static int pxa27x_start_hc(struct pxa27x_ohci *pxa_ohci, struct device *dev)
  {
        int retval;
@@@ -501,7 -506,7 +501,7 @@@ static int ohci_hcd_pxa27x_probe(struc
   * the HCD's stop() method.  It is always called from a thread
   * context, normally "rmmod", "apmd", or something similar.
   */
- static int ohci_hcd_pxa27x_remove(struct platform_device *pdev)
+ static void ohci_hcd_pxa27x_remove(struct platform_device *pdev)
  {
        struct usb_hcd *hcd = platform_get_drvdata(pdev);
        struct pxa27x_ohci *pxa_ohci = to_pxa27x_ohci(hcd);
                pxa27x_ohci_set_vbus_power(pxa_ohci, i, false);
  
        usb_put_hcd(hcd);
-       return 0;
  }
  
  /*-------------------------------------------------------------------------*/
@@@ -572,7 -576,7 +571,7 @@@ static const struct dev_pm_ops ohci_hcd
  
  static struct platform_driver ohci_hcd_pxa27x_driver = {
        .probe          = ohci_hcd_pxa27x_probe,
-       .remove         = ohci_hcd_pxa27x_remove,
+       .remove_new     = ohci_hcd_pxa27x_remove,
        .shutdown       = usb_hcd_platform_shutdown,
        .driver         = {
                .name   = "pxa27x-ohci",
@@@ -248,8 -248,6 +248,8 @@@ static void option_instat_callback(stru
  #define QUECTEL_VENDOR_ID                     0x2c7c
  /* These Quectel products use Quectel's vendor ID */
  #define QUECTEL_PRODUCT_EC21                  0x0121
 +#define QUECTEL_PRODUCT_EM061K_LTA            0x0123
 +#define QUECTEL_PRODUCT_EM061K_LMS            0x0124
  #define QUECTEL_PRODUCT_EC25                  0x0125
  #define QUECTEL_PRODUCT_EG91                  0x0191
  #define QUECTEL_PRODUCT_EG95                  0x0195
  #define QUECTEL_PRODUCT_RM520N                        0x0801
  #define QUECTEL_PRODUCT_EC200U                        0x0901
  #define QUECTEL_PRODUCT_EC200S_CN             0x6002
 +#define QUECTEL_PRODUCT_EM061K_LWW            0x6008
 +#define QUECTEL_PRODUCT_EM061K_LCN            0x6009
  #define QUECTEL_PRODUCT_EC200T                        0x6026
  #define QUECTEL_PRODUCT_RM500K                        0x7001
  
@@@ -1151,6 -1147,10 +1151,10 @@@ static const struct usb_device_id optio
        { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x90fa),
          .driver_info = RSVD(3) },
        /* u-blox products */
+       { USB_DEVICE(UBLOX_VENDOR_ID, 0x1311) },        /* u-blox LARA-R6 01B */
+       { USB_DEVICE(UBLOX_VENDOR_ID, 0x1312),          /* u-blox LARA-R6 01B (RMNET) */
+         .driver_info = RSVD(4) },
+       { USB_DEVICE_INTERFACE_CLASS(UBLOX_VENDOR_ID, 0x1313, 0xff) },  /* u-blox LARA-R6 01B (ECM) */
        { USB_DEVICE(UBLOX_VENDOR_ID, 0x1341) },        /* u-blox LARA-L6 */
        { USB_DEVICE(UBLOX_VENDOR_ID, 0x1342),          /* u-blox LARA-L6 (RMNET) */
          .driver_info = RSVD(4) },
        { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0x00, 0x40) },
        { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x30) },
        { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x30) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0x00, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0xff, 0x30) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0x00, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0xff, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0xff, 0x30) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0x00, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0xff, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0xff, 0x30) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0x00, 0x40) },
 +      { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0xff, 0x40) },
        { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff),
          .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
        { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) },
@@@ -132,8 -132,10 +132,8 @@@ static int ucsi_exec_command(struct ucs
        if (ret)
                return ret;
  
 -      if (cci & UCSI_CCI_BUSY) {
 -              ucsi->ops->async_write(ucsi, UCSI_CANCEL, NULL, 0);
 -              return -EBUSY;
 -      }
 +      if (cmd != UCSI_CANCEL && cci & UCSI_CCI_BUSY)
 +              return ucsi_exec_command(ucsi, UCSI_CANCEL);
  
        if (!(cci & UCSI_CCI_COMMAND_COMPLETE))
                return -EIO;
                return ucsi_read_error(ucsi);
        }
  
 +      if (cmd == UCSI_CANCEL && cci & UCSI_CCI_CANCEL_COMPLETE) {
 +              ret = ucsi_acknowledge_command(ucsi);
 +              return ret ? ret : -EBUSY;
 +      }
 +
        return UCSI_CCI_LENGTH(cci);
  }
  
@@@ -812,6 -809,23 +812,23 @@@ static void ucsi_partner_change(struct 
                break;
        }
  
+       if (con->status.flags & UCSI_CONSTAT_CONNECTED) {
+               switch (UCSI_CONSTAT_PARTNER_TYPE(con->status.flags)) {
+               case UCSI_CONSTAT_PARTNER_TYPE_DEBUG:
+                       typec_set_mode(con->port, TYPEC_MODE_DEBUG);
+                       break;
+               case UCSI_CONSTAT_PARTNER_TYPE_AUDIO:
+                       typec_set_mode(con->port, TYPEC_MODE_AUDIO);
+                       break;
+               default:
+                       if (UCSI_CONSTAT_PARTNER_FLAGS(con->status.flags) ==
+                                       UCSI_CONSTAT_PARTNER_FLAG_USB)
+                               typec_set_mode(con->port, TYPEC_STATE_USB);
+               }
+       } else {
+               typec_set_mode(con->port, TYPEC_STATE_SAFE);
+       }
        /* Only notify USB controller if partner supports USB data */
        if (!(UCSI_CONSTAT_PARTNER_FLAGS(con->status.flags) & UCSI_CONSTAT_PARTNER_FLAG_USB))
                u_role = USB_ROLE_NONE;