Merge tag 'pci-v5.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaa...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 8 Jul 2021 19:06:20 +0000 (12:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 8 Jul 2021 19:06:20 +0000 (12:06 -0700)
Pull pci updates from Bjorn Helgaas:
 "Enumeration:
   - Fix dsm_label_utf16s_to_utf8s() buffer overrun (Krzysztof
     Wilczyński)
   - Rely on lengths from scnprintf(), dsm_label_utf16s_to_utf8s()
     (Krzysztof Wilczyński)
   - Use sysfs_emit() and sysfs_emit_at() in "show" functions (Krzysztof
     Wilczyński)
   - Fix 'resource_alignment' newline issues (Krzysztof Wilczyński)
   - Add 'devspec' newline (Krzysztof Wilczyński)
   - Dynamically map ECAM regions (Russell King)

  Resource management:
   - Coalesce host bridge contiguous apertures (Kai-Heng Feng)

  PCIe native device hotplug:
   - Ignore Link Down/Up caused by DPC (Lukas Wunner)

  Power management:
   - Leave Apple Thunderbolt controllers on for s2idle or standby
     (Konstantin Kharlamov)

  Virtualization:
   - Work around Huawei Intelligent NIC VF FLR erratum (Chiqijun)
   - Clarify error message for unbound IOV devices (Moritz Fischer)
   - Add pci_reset_bus_function() Secondary Bus Reset interface (Raphael
     Norwitz)

  Peer-to-peer DMA:
   - Simplify distance calculation (Christoph Hellwig)
   - Finish RCU conversion of pdev->p2pdma (Eric Dumazet)
   - Rename upstream_bridge_distance() and rework doc (Logan Gunthorpe)
   - Collect acs list in stack buffer to avoid sleeping (Logan
     Gunthorpe)
   - Use correct calc_map_type_and_dist() return type (Logan Gunthorpe)
   - Warn if host bridge not in whitelist (Logan Gunthorpe)
   - Refactor pci_p2pdma_map_type() (Logan Gunthorpe)
   - Avoid pci_get_slot(), which may sleep (Logan Gunthorpe)

  Altera PCIe controller driver:
   - Add Joyce Ooi as Altera PCIe maintainer (Joyce Ooi)

  Broadcom iProc PCIe controller driver:
   - Fix multi-MSI base vector number allocation (Sandor Bodo-Merle)
   - Support multi-MSI only on uniprocessor kernel (Sandor Bodo-Merle)

  Freescale i.MX6 PCIe controller driver:
   - Limit DBI register length for imx6qp PCIe (Richard Zhu)
   - Add "vph-supply" for PHY supply voltage (Richard Zhu)
   - Enable PHY internal regulator when supplied >3V (Richard Zhu)
   - Remove imx6_pcie_probe() redundant error message (Zhen Lei)

  Intel Gateway PCIe controller driver:
   - Fix INTx enable (Martin Blumenstingl)

  Marvell Aardvark PCIe controller driver:
   - Fix checking for PIO Non-posted Request (Pali Rohár)
   - Implement workaround for the readback value of VEND_ID (Pali Rohár)

  MediaTek PCIe controller driver:
   - Remove redundant error printing in mtk_pcie_subsys_powerup() (Zhen
     Lei)

  MediaTek PCIe Gen3 controller driver:
   - Add missing MODULE_DEVICE_TABLE (Zou Wei)

  Microchip PolarFlare PCIe controller driver:
   - Make struct event_descs static (Krzysztof Wilczyński)

  Microsoft Hyper-V host bridge driver:
   - Fix race condition when removing the device (Long Li)
   - Remove bus device removal unused refcount/functions (Long Li)

  Mobiveil PCIe controller driver:
   - Remove unused readl and writel functions (Krzysztof Wilczyński)

  NVIDIA Tegra PCIe controller driver:
   - Add missing MODULE_DEVICE_TABLE (Zou Wei)

  NVIDIA Tegra194 PCIe controller driver:
   - Fix tegra_pcie_ep_raise_msi_irq() ill-defined shift (Jon Hunter)
   - Fix host initialization during resume (Vidya Sagar)

  Rockchip PCIe controller driver:
   - Register IRQ handlers after device and data are ready (Javier
     Martinez Canillas)"

* tag 'pci-v5.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (48 commits)
  PCI/P2PDMA: Finish RCU conversion of pdev->p2pdma
  PCI: xgene: Annotate __iomem pointer
  PCI: Fix kernel-doc formatting
  PCI: cpcihp: Declare cpci_debug in header file
  MAINTAINERS: Add Joyce Ooi as Altera PCIe maintainer
  PCI: rockchip: Register IRQ handlers after device and data are ready
  PCI: tegra194: Fix tegra_pcie_ep_raise_msi_irq() ill-defined shift
  PCI: aardvark: Implement workaround for the readback value of VEND_ID
  PCI: aardvark: Fix checking for PIO Non-posted Request
  PCI: tegra194: Fix host initialization during resume
  PCI: tegra: Add missing MODULE_DEVICE_TABLE
  PCI: imx6: Enable PHY internal regulator when supplied >3V
  dt-bindings: imx6q-pcie: Add "vph-supply" for PHY supply voltage
  PCI: imx6: Limit DBI register length for imx6qp PCIe
  PCI: imx6: Remove imx6_pcie_probe() redundant error message
  PCI: intel-gw: Fix INTx enable
  PCI: iproc: Support multi-MSI only on uniprocessor kernel
  PCI: iproc: Fix multi-MSI base vector number allocation
  PCI: mediatek-gen3: Add missing MODULE_DEVICE_TABLE
  PCI: Dynamically map ECAM regions
  ...

1  2 
MAINTAINERS
drivers/pci/controller/dwc/pcie-tegra194.c
drivers/pci/controller/pci-aardvark.c
drivers/pci/controller/pci-hyperv.c
drivers/pci/pci.c
drivers/pci/probe.c
drivers/pci/quirks.c
include/linux/pci.h

diff --combined MAINTAINERS
@@@ -299,6 -299,7 +299,6 @@@ M: William Breathitt Gray <vilhelm.gray
  M:    Syed Nayyar Waris <syednwaris@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-bus-counter-104-quad-8
  F:    drivers/counter/104-quad-8.c
  
  ACCES PCI-IDIO-16 GPIO DRIVER
@@@ -430,14 -431,6 +430,14 @@@ W:       https://01.org/linux-acp
  B:    https://bugzilla.kernel.org
  F:    drivers/acpi/acpi_video.c
  
 +ACPI VIOT DRIVER
 +M:    Jean-Philippe Brucker <jean-philippe@linaro.org>
 +L:    linux-acpi@vger.kernel.org
 +L:    iommu@lists.linux-foundation.org
 +S:    Maintained
 +F:    drivers/acpi/viot.c
 +F:    include/linux/acpi_viot.h
 +
  ACPI WMI DRIVER
  L:    platform-driver-x86@vger.kernel.org
  S:    Orphan
@@@ -752,12 -745,6 +752,12 @@@ L:       linux-crypto@vger.kernel.or
  S:    Maintained
  F:    drivers/crypto/allwinner/
  
 +ALLWINNER HARDWARE SPINLOCK SUPPORT
 +M:    Wilken Gottwalt <wilken.gottwalt@posteo.net>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwlock/allwinner,sun6i-hwspinlock.yaml
 +F:    drivers/hwspinlock/sun6i_hwspinlock.c
 +
  ALLWINNER THERMAL DRIVER
  M:    Vasily Khoruzhick <anarsoul@gmail.com>
  M:    Yangtao Li <tiny.windzz@gmail.com>
@@@ -796,14 -783,6 +796,14 @@@ M:       Ley Foon Tan <ley.foon.tan@intel.com
  S:    Maintained
  F:    drivers/mailbox/mailbox-altera.c
  
 +ALTERA MSGDMA IP CORE DRIVER
 +M:    Olivier Dautricourt <olivier.dautricourt@orolia.com>
 +R:    Stefan Roese <sr@denx.de>
 +L:    dmaengine@vger.kernel.org
 +S:    Odd Fixes
 +F:    Documentation/devicetree/bindings/dma/altr,msgdma.yaml
 +F:    drivers/dma/altera-msgdma.c
 +
  ALTERA PIO DRIVER
  M:    Joyce Ooi <joyce.ooi@intel.com>
  L:    linux-gpio@vger.kernel.org
@@@ -899,7 -878,7 +899,7 @@@ M: Harry Wentland <harry.wentland@amd.c
  M:    Leo Li <sunpeng.li@amd.com>
  L:    amd-gfx@lists.freedesktop.org
  S:    Supported
 -T:    git git://people.freedesktop.org/~agd5f/linux
 +T:    git https://gitlab.freedesktop.org/agd5f/linux.git
  F:    drivers/gpu/drm/amd/display/
  
  AMD FAM15H PROCESSOR POWER MONITORING DRIVER
@@@ -975,7 -954,7 +975,7 @@@ AMD POWERPLA
  M:    Evan Quan <evan.quan@amd.com>
  L:    amd-gfx@lists.freedesktop.org
  S:    Supported
 -T:    git git://people.freedesktop.org/~agd5f/linux
 +T:    git https://gitlab.freedesktop.org/agd5f/linux.git
  F:    drivers/gpu/drm/amd/pm/powerplay/
  
  AMD SEATTLE DEVICE TREE SUPPORT
@@@ -994,7 -973,7 +994,7 @@@ F: drivers/net/ethernet/amd/xgbe
  
  AMD SENSOR FUSION HUB DRIVER
  M:    Nehal Shah <nehal-bakulchandra.shah@amd.com>
 -M:    Sandeep Singh <sandeep.singh@amd.com>
 +M:    Basavaraj Natikar <basavaraj.natikar@amd.com>
  L:    linux-input@vger.kernel.org
  S:    Maintained
  F:    Documentation/hid/amd-sfh*
@@@ -1332,7 -1311,6 +1332,7 @@@ W:      http://www.aquantia.co
  F:    drivers/net/ethernet/aquantia/atlantic/aq_ptp*
  
  ARASAN NAND CONTROLLER DRIVER
 +M:    Miquel Raynal <miquel.raynal@bootlin.com>
  M:    Naga Sureshkumar Relli <nagasure@xilinx.com>
  L:    linux-mtd@lists.infradead.org
  S:    Maintained
@@@ -1474,22 -1452,6 +1474,22 @@@ S:    Odd Fixe
  F:    drivers/amba/
  F:    include/linux/amba/bus.h
  
 +ARM PRIMECELL PL35X NAND CONTROLLER DRIVER
 +M:    Miquel Raynal <miquel.raynal@bootlin.com@bootlin.com>
 +M:    Naga Sureshkumar Relli <nagasure@xilinx.com>
 +L:    linux-mtd@lists.infradead.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mtd/arm,pl353-nand-r2p1.yaml
 +F:    drivers/mtd/nand/raw/pl35x-nand-controller.c
 +
 +ARM PRIMECELL PL35X SMC DRIVER
 +M:    Miquel Raynal <miquel.raynal@bootlin.com@bootlin.com>
 +M:    Naga Sureshkumar Relli <nagasure@xilinx.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mtd/arm,pl353-smc.yaml
 +F:    drivers/memory/pl353-smc.c
 +
  ARM PRIMECELL CLCD PL110 DRIVER
  M:    Russell King <linux@armlinux.org.uk>
  S:    Odd Fixes
@@@ -1616,7 -1578,7 +1616,7 @@@ F:      drivers/clk/sunxi
  ARM/Allwinner sunXi SoC support
  M:    Maxime Ripard <mripard@kernel.org>
  M:    Chen-Yu Tsai <wens@csie.org>
 -R:    Jernej Skrabec <jernej.skrabec@siol.net>
 +R:    Jernej Skrabec <jernej.skrabec@gmail.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/sunxi/linux.git
@@@ -1656,8 -1618,8 +1656,8 @@@ F:      Documentation/devicetree/bindings/so
  F:    sound/soc/meson/
  
  ARM/Amlogic Meson SoC support
 +M:    Neil Armstrong <narmstrong@baylibre.com>
  M:    Kevin Hilman <khilman@baylibre.com>
 -R:    Neil Armstrong <narmstrong@baylibre.com>
  R:    Jerome Brunet <jbrunet@baylibre.com>
  R:    Martin Blumenstingl <martin.blumenstingl@googlemail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1693,11 -1655,9 +1693,11 @@@ C:    irc://chat.freenode.net/asahi-de
  T:    git https://github.com/AsahiLinux/linux.git
  F:    Documentation/devicetree/bindings/arm/apple.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
  F:    arch/arm64/boot/dts/apple/
  F:    drivers/irqchip/irq-apple-aic.c
  F:    include/dt-bindings/interrupt-controller/apple-aic.h
 +F:    include/dt-bindings/pinctrl/apple.h
  
  ARM/ARTPEC MACHINE SUPPORT
  M:    Jesper Nilsson <jesper.nilsson@axis.com>
@@@ -1851,13 -1811,12 +1851,13 @@@ F:   Documentation/devicetree/bindings/ne
  F:    Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
  F:    Documentation/devicetree/bindings/rtc/faraday,ftrtc010.txt
  F:    arch/arm/mach-gemini/
 +F:    drivers/crypto/gemini/
  F:    drivers/net/ethernet/cortina/
  F:    drivers/pinctrl/pinctrl-gemini.c
  F:    drivers/rtc/rtc-ftrtc010.c
  
  ARM/CZ.NIC TURRIS SUPPORT
 -M:    Marek Behun <kabel@kernel.org>
 +M:    Marek Behún <kabel@kernel.org>
  S:    Maintained
  W:    https://www.turris.cz/
  F:    Documentation/ABI/testing/debugfs-moxtet
@@@ -2013,7 -1972,6 +2013,7 @@@ F:      Documentation/devicetree/bindings/in
  F:    Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml
  F:    arch/arm/mach-ixp4xx/
  F:    drivers/clocksource/timer-ixp4xx.c
 +F:    drivers/crypto/ixp4xx_crypto.c
  F:    drivers/gpio/gpio-ixp4xx.c
  F:    drivers/irqchip/irq-ixp4xx.c
  F:    include/linux/irqchip/irq-ixp4xx.h
@@@ -2217,7 -2175,6 +2217,7 @@@ F:      arch/arm/boot/dts/mstar-
  F:    arch/arm/mach-mstar/
  F:    drivers/clk/mstar/
  F:    drivers/gpio/gpio-msc313.c
 +F:    drivers/watchdog/msc313e_wdt.c
  F:    include/dt-bindings/clock/mstar-*
  F:    include/dt-bindings/gpio/msc313-gpio.h
  
@@@ -3778,6 -3735,9 +3778,6 @@@ F:      drivers/gpio/gpio-bcm-kona.
  
  BROADCOM NETXTREME-E ROCE DRIVER
  M:    Selvin Xavier <selvin.xavier@broadcom.com>
 -M:    Devesh Sharma <devesh.sharma@broadcom.com>
 -M:    Somnath Kotur <somnath.kotur@broadcom.com>
 -M:    Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
  M:    Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
@@@ -3917,7 -3877,6 +3917,7 @@@ L:      linux-btrfs@vger.kernel.or
  S:    Maintained
  W:    http://btrfs.wiki.kernel.org/
  Q:    http://patchwork.kernel.org/project/linux-btrfs/list/
 +C:    irc://irc.libera.chat/btrfs
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git
  F:    Documentation/filesystems/btrfs.rst
  F:    fs/btrfs/
@@@ -4081,9 -4040,7 +4081,9 @@@ W:      https://github.com/linux-ca
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git
  F:    Documentation/devicetree/bindings/net/can/
 +F:    Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml
  F:    drivers/net/can/
 +F:    drivers/phy/phy-can-transceiver.c
  F:    include/linux/can/bittiming.h
  F:    include/linux/can/dev.h
  F:    include/linux/can/led.h
@@@ -4181,14 -4138,6 +4181,14 @@@ S:    Odd Fixe
  F:    Documentation/devicetree/bindings/arm/cavium-thunder2.txt
  F:    arch/arm64/boot/dts/cavium/thunder2-99xx*
  
 +CBS/ETF/TAPRIO QDISCS
 +M:    Vinicius Costa Gomes <vinicius.gomes@intel.com>
 +S:    Maintained
 +L:    netdev@vger.kernel.org
 +F:    net/sched/sch_cbs.c
 +F:    net/sched/sch_etf.c
 +F:    net/sched/sch_taprio.c
 +
  CC2520 IEEE-802.15.4 RADIO DRIVER
  M:    Varka Bhadram <varkabhadram@gmail.com>
  L:    linux-wpan@vger.kernel.org
@@@ -4487,18 -4436,6 +4487,18 @@@ F:    include/linux/compiler-clang.
  F:    scripts/clang-tools/
  K:    \b(?i:clang|llvm)\b
  
 +CLANG CONTROL FLOW INTEGRITY SUPPORT
 +M:    Sami Tolvanen <samitolvanen@google.com>
 +M:    Kees Cook <keescook@chromium.org>
 +R:    Nathan Chancellor <nathan@kernel.org>
 +R:    Nick Desaulniers <ndesaulniers@google.com>
 +L:    clang-built-linux@googlegroups.com
 +S:    Supported
 +B:    https://github.com/ClangBuiltLinux/linux/issues
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/clang/features
 +F:    include/linux/cfi.h
 +F:    kernel/cfi.c
 +
  CLEANCACHE API
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  L:    linux-kernel@vger.kernel.org
@@@ -4664,12 -4601,6 +4664,12 @@@ S:    Supporte
  F:    drivers/video/console/
  F:    include/linux/console*
  
 +CONTEXT TRACKING
 +M:    Frederic Weisbecker <frederic@kernel.org>
 +S:    Maintained
 +F:    kernel/context_tracking.c
 +F:    include/linux/context_tracking*
 +
  CONTROL GROUP (CGROUP)
  M:    Tejun Heo <tj@kernel.org>
  M:    Zefan Li <lizefan.x@bytedance.com>
@@@ -4744,7 -4675,7 +4744,7 @@@ COUNTER SUBSYSTE
  M:    William Breathitt Gray <vilhelm.gray@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-bus-counter*
 +F:    Documentation/ABI/testing/sysfs-bus-counter
  F:    Documentation/driver-api/generic-counter.rst
  F:    drivers/counter/
  F:    include/linux/counter.h
@@@ -5067,10 -4998,11 +5067,10 @@@ S:   Maintaine
  F:    drivers/input/touchscreen/cy8ctma140.c
  
  CYTTSP TOUCHSCREEN DRIVER
 -M:    Ferruh Yigit <fery@cypress.com>
 +M:    Linus Walleij <linus.walleij@linaro.org>
  L:    linux-input@vger.kernel.org
 -S:    Supported
 +S:    Maintained
  F:    drivers/input/touchscreen/cyttsp*
 -F:    include/linux/input/cyttsp.h
  
  D-LINK DIR-685 TOUCHKEYS DRIVER
  M:    Linus Walleij <linus.walleij@linaro.org>
@@@ -5157,7 -5089,7 +5157,7 @@@ S:      Maintaine
  F:    drivers/net/fddi/defza.*
  
  DEINTERLACE DRIVERS FOR ALLWINNER H3
 -M:    Jernej Skrabec <jernej.skrabec@siol.net>
 +M:    Jernej Skrabec <jernej.skrabec@gmail.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -5238,14 -5170,7 +5238,14 @@@ DELL WMI NOTIFICATIONS DRIVE
  M:    Matthew Garrett <mjg59@srcf.ucam.org>
  M:    Pali Rohár <pali@kernel.org>
  S:    Maintained
 -F:    drivers/platform/x86/dell/dell-wmi.c
 +F:    drivers/platform/x86/dell/dell-wmi-base.c
 +
 +DELL WMI HARDWARE PRIVACY SUPPORT
 +M:    Perry Yuan <Perry.Yuan@dell.com>
 +L:    Dell.Client.Kernel@dell.com
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    drivers/platform/x86/dell/dell-wmi-privacy.c
  
  DELTA ST MEDIA DRIVER
  M:    Hugues Fruchet <hugues.fruchet@foss.st.com>
@@@ -5255,13 -5180,6 +5255,13 @@@ W:    https://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/platform/sti/delta
  
 +DELTA DPS920AB PSU DRIVER
 +M:    Robert Marko <robert.marko@sartura.hr>
 +L:    linux-hwmon@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/hwmon/dps920ab.rst
 +F:    drivers/hwmon/pmbus/dps920ab.c
 +
  DENALI NAND DRIVER
  L:    linux-mtd@lists.infradead.org
  S:    Orphan
@@@ -5319,7 -5237,7 +5319,7 @@@ DEVICE DIRECT ACCESS (DAX
  M:    Dan Williams <dan.j.williams@intel.com>
  M:    Vishal Verma <vishal.l.verma@intel.com>
  M:    Dave Jiang <dave.jiang@intel.com>
 -L:    linux-nvdimm@lists.01.org
 +L:    nvdimm@lists.linux.dev
  S:    Supported
  F:    drivers/dax/
  
@@@ -5651,6 -5569,7 +5651,6 @@@ F:      drivers/soc/fsl/dpi
  
  DPAA2 ETHERNET DRIVER
  M:    Ioana Ciornei <ioana.ciornei@nxp.com>
 -M:    Ioana Radulescu <ruxandra.radulescu@nxp.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/networking/device_drivers/ethernet/freescale/dpaa2/ethernet-driver.rst
@@@ -5713,14 -5632,14 +5713,14 @@@ F:   include/linux/power/smartreflex.
  DRM DRIVER FOR ALLWINNER DE2 AND DE3 ENGINE
  M:    Maxime Ripard <mripard@kernel.org>
  M:    Chen-Yu Tsai <wens@csie.org>
 -R:    Jernej Skrabec <jernej.skrabec@siol.net>
 +R:    Jernej Skrabec <jernej.skrabec@gmail.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/sun4i/sun8i*
  
  DRM DRIVER FOR ARM PL111 CLCD
 -M:    Eric Anholt <eric@anholt.net>
 +M:    Emma Anholt <emma@anholt.net>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/pl111/
@@@ -5800,7 -5719,7 +5800,7 @@@ T:      git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/tiny/gm12u320.c
  
  DRM DRIVER FOR HX8357D PANELS
 -M:    Eric Anholt <eric@anholt.net>
 +M:    Emma Anholt <emma@anholt.net>
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/display/himax,hx8357d.txt
@@@ -5951,13 -5870,6 +5951,13 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/savage/
  F:    include/uapi/drm/savage_drm.h
  
 +DRM DRIVER FOR SIMPLE FRAMEBUFFERS
 +M:    Thomas Zimmermann <tzimmermann@suse.de>
 +L:    dri-devel@lists.freedesktop.org
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/tiny/simpledrm.c
 +
  DRM DRIVER FOR SIS VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/sis/
@@@ -6111,7 -6023,7 +6111,7 @@@ M:      Neil Armstrong <narmstrong@baylibre.
  M:    Robert Foss <robert.foss@linaro.org>
  R:    Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
  R:    Jonas Karlman <jonas@kwiboo.se>
 -R:    Jernej Skrabec <jernej.skrabec@siol.net>
 +R:    Jernej Skrabec <jernej.skrabec@gmail.com>
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/bridge/
@@@ -6165,14 -6077,6 +6165,14 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/hisilicon/
  F:    drivers/gpu/drm/hisilicon/
  
 +DRM DRIVER FOR HYPERV SYNTHETIC VIDEO DEVICE
 +M:    Deepak Rawat <drawat.floss@gmail.com>
 +L:    linux-hyperv@vger.kernel.org
 +L:    dri-devel@lists.freedesktop.org
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/hyperv
 +
  DRM DRIVERS FOR LIMA
  M:    Qiang Yu <yuq825@gmail.com>
  L:    dri-devel@lists.freedesktop.org
@@@ -6273,7 -6177,7 +6273,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/omapdrm/
  
  DRM DRIVERS FOR V3D
 -M:    Eric Anholt <eric@anholt.net>
 +M:    Emma Anholt <emma@anholt.net>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
@@@ -6281,7 -6185,7 +6281,7 @@@ F:      drivers/gpu/drm/v3d
  F:    include/uapi/drm/v3d_drm.h
  
  DRM DRIVERS FOR VC4
 -M:    Eric Anholt <eric@anholt.net>
 +M:    Emma Anholt <emma@anholt.net>
  M:    Maxime Ripard <mripard@kernel.org>
  S:    Supported
  T:    git git://github.com/anholt/linux
@@@ -6335,7 -6239,7 +6335,7 @@@ M:      Christian Koenig <christian.koenig@a
  M:    Huang Rui <ray.huang@amd.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
 -T:    git git://people.freedesktop.org/~agd5f/linux
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/ttm/
  F:    include/drm/ttm/
  
@@@ -6533,11 -6437,10 +6533,11 @@@ F:   Documentation/filesystems/ecryptfs.r
  F:    fs/ecryptfs/
  
  EDAC-AMD64
 -M:    Borislav Petkov <bp@alien8.de>
 +M:    Yazen Ghannam <yazen.ghannam@amd.com>
  L:    linux-edac@vger.kernel.org
 -S:    Maintained
 +S:    Supported
  F:    drivers/edac/amd64_edac*
 +F:    drivers/edac/mce_amd*
  
  EDAC-ARMADA
  M:    Jan Luebbe <jlu@pengutronix.de>
@@@ -6818,6 -6721,7 +6818,6 @@@ F:      drivers/net/ethernet/emulex/benet
  
  EMULEX ONECONNECT ROCE DRIVER
  M:    Selvin Xavier <selvin.xavier@broadcom.com>
 -M:    Devesh Sharma <devesh.sharma@broadcom.com>
  L:    linux-rdma@vger.kernel.org
  S:    Odd Fixes
  W:    http://www.broadcom.com
@@@ -6832,15 -6736,6 +6832,15 @@@ S:    Supporte
  W:    http://www.broadcom.com
  F:    drivers/scsi/lpfc/
  
 +EMULEX/BROADCOM EFCT FC/FCOE SCSI TARGET DRIVER
 +M:    James Smart <james.smart@broadcom.com>
 +M:    Ram Vegesna <ram.vegesna@broadcom.com>
 +L:    linux-scsi@vger.kernel.org
 +L:    target-devel@vger.kernel.org
 +S:    Supported
 +W:    http://www.broadcom.com
 +F:    drivers/scsi/elx/
 +
  ENE CB710 FLASH CARD READER DRIVER
  M:    Michał Mirosław <mirq-linux@rere.qmqm.pl>
  S:    Maintained
@@@ -6868,7 -6763,7 +6868,7 @@@ F:      include/video/s1d13xxxfb.
  
  EROFS FILE SYSTEM
  M:    Gao Xiang <xiang@kernel.org>
 -M:    Chao Yu <yuchao0@huawei.com>
 +M:    Chao Yu <chao@kernel.org>
  L:    linux-erofs@lists.ozlabs.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
@@@ -6909,8 -6804,6 +6909,8 @@@ F:      Documentation/devicetree/bindings/ne
  F:    Documentation/devicetree/bindings/net/qca,ar803x.yaml
  F:    Documentation/networking/phy.rst
  F:    drivers/net/mdio/
 +F:    drivers/net/mdio/acpi_mdio.c
 +F:    drivers/net/mdio/fwnode_mdio.c
  F:    drivers/net/mdio/of_mdio.c
  F:    drivers/net/pcs/
  F:    drivers/net/phy/
@@@ -7045,7 -6938,6 +7045,7 @@@ F:      net/core/failover.
  FANOTIFY
  M:    Jan Kara <jack@suse.cz>
  R:    Amir Goldstein <amir73il@gmail.com>
 +R:    Matthew Bobrowski <repnop@google.com>
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
  F:    fs/notify/fanotify/
@@@ -7114,7 -7006,7 +7114,7 @@@ M:      Dan Williams <dan.j.williams@intel.c
  R:    Matthew Wilcox <willy@infradead.org>
  R:    Jan Kara <jack@suse.cz>
  L:    linux-fsdevel@vger.kernel.org
 -L:    linux-nvdimm@lists.01.org
 +L:    nvdimm@lists.linux.dev
  S:    Supported
  F:    fs/dax.c
  F:    include/linux/dax.h
@@@ -7195,6 -7087,7 +7195,6 @@@ FLEXTIMER FTM-QUADDEC DRIVE
  M:    Patrick Havelange <patrick.havelange@essensium.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-bus-counter-ftm-quaddec
  F:    Documentation/devicetree/bindings/counter/ftm-quaddec.txt
  F:    drivers/counter/ftm-quaddec.c
  
@@@ -7210,13 -7103,6 +7210,13 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/input/joystick/fsia6b.c
  
 +FOCUSRITE SCARLETT GEN 2/3 MIXER DRIVER
 +M:    Geoffrey D. Bennett <g@b4.vu>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
 +F:    sound/usb/mixer_scarlett_gen2.c
 +
  FORCEDETH GIGABIT ETHERNET DRIVER
  M:    Rain River <rain.1986.08.12@gmail.com>
  M:    Zhu Yanjun <zyjzyj2000@gmail.com>
@@@ -7271,7 -7157,7 +7271,7 @@@ F:      include/video
  
  FREESCALE CAAM (Cryptographic Acceleration and Assurance Module) DRIVER
  M:    Horia Geantă <horia.geanta@nxp.com>
 -M:    Aymen Sghaier <aymen.sghaier@nxp.com>
 +M:    Pankaj Gupta <pankaj.gupta@nxp.com>
  L:    linux-crypto@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/crypto/fsl-sec4.txt
@@@ -7459,6 -7345,7 +7459,6 @@@ F:      drivers/net/ethernet/freescale/fs_en
  F:    include/linux/fs_enet_pd.h
  
  FREESCALE SOC SOUND DRIVERS
 -M:    Timur Tabi <timur@kernel.org>
  M:    Nicolin Chen <nicoleotsuka@gmail.com>
  M:    Xiubo Li <Xiubo.Lee@gmail.com>
  R:    Fabio Estevam <festevam@gmail.com>
@@@ -7661,12 -7548,6 +7661,12 @@@ M:    Kieran Bingham <kbingham@kernel.org
  S:    Supported
  F:    scripts/gdb/
  
 +GEMINI CRYPTO DRIVER
 +M:    Corentin Labbe <clabbe@baylibre.com>
 +L:    linux-crypto@vger.kernel.org
 +S:    Maintained
 +F:    drivers/crypto/gemini/
 +
  GEMTEK FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -7759,14 -7640,6 +7759,14 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/input/touchscreen/resistive-adc-touch.c
  
 +GENERIC STRING LIBRARY
 +R:    Andy Shevchenko <andy@kernel.org>
 +S:    Maintained
 +F:    lib/string.c
 +F:    lib/string_helpers.c
 +F:    lib/test_string.c
 +F:    lib/test-string_helpers.c
 +
  GENERIC UIO DRIVER FOR PCI DEVICES
  M:    "Michael S. Tsirkin" <mst@redhat.com>
  L:    kvm@vger.kernel.org
@@@ -8402,13 -8275,6 +8402,13 @@@ S:    Maintaine
  W:    http://www.hisilicon.com
  F:    drivers/spi/spi-hisi-kunpeng.c
  
 +HISILICON SPMI CONTROLLER DRIVER FOR HIKEY 970
 +M:    Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
 +F:    drivers/spmi/hisi-spmi-controller.c
 +
  HISILICON STAGING DRIVERS FOR HIKEY 960/970
  M:    Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  S:    Maintained
@@@ -8897,6 -8763,22 +8897,6 @@@ L:     linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/busses/i2c-icy.c
  
 -IDE SUBSYSTEM
 -M:    "David S. Miller" <davem@davemloft.net>
 -L:    linux-ide@vger.kernel.org
 -S:    Maintained
 -Q:    http://patchwork.ozlabs.org/project/linux-ide/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide.git
 -F:    Documentation/ide/
 -F:    drivers/ide/
 -F:    include/linux/ide.h
 -
 -IDE/ATAPI DRIVERS
 -L:    linux-ide@vger.kernel.org
 -S:    Orphan
 -F:    Documentation/cdrom/ide-cd.rst
 -F:    drivers/ide/ide-cd*
 -
  IDEAPAD LAPTOP EXTRAS DRIVER
  M:    Ike Panhc <ike.pan@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -8976,7 -8858,7 +8976,7 @@@ IIO MULTIPLEXE
  M:    Peter Rosin <peda@axentia.se>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
 +F:    Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.yaml
  F:    drivers/iio/multiplexer/iio-mux.c
  
  IIO SCMI BASED DRIVER
@@@ -9248,15 -9130,6 +9248,15 @@@ F:    Documentation/networking/device_driv
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
  F:    include/linux/avf/virtchnl.h
 +F:    include/linux/net/intel/iidc.h
 +
 +INTEL ETHERNET PROTOCOL DRIVER FOR RDMA
 +M:    Mustafa Ismail <mustafa.ismail@intel.com>
 +M:    Shiraz Saleem <shiraz.saleem@intel.com>
 +L:    linux-rdma@vger.kernel.org
 +S:    Supported
 +F:    drivers/infiniband/hw/irdma/
 +F:    include/uapi/rdma/irdma-abi.h
  
  INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
  M:    Maik Broemme <mbroemme@libmpq.org>
@@@ -9362,12 -9235,6 +9362,12 @@@ F:    Documentation/admin-guide/media/ipu3
  F:    Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst
  F:    drivers/staging/media/ipu3/
  
 +INTEL IXP4XX CRYPTO SUPPORT
 +M:    Corentin Labbe <clabbe@baylibre.com>
 +L:    linux-crypto@vger.kernel.org
 +S:    Maintained
 +F:    drivers/crypto/ixp4xx_crypto.c
 +
  INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
  M:    Krzysztof Halasa <khalasa@piap.pl>
  S:    Maintained
@@@ -9432,6 -9299,16 +9432,6 @@@ F:     drivers/hwmon/intel-m10-bmc-hwmon.
  F:    drivers/mfd/intel-m10-bmc.c
  F:    include/linux/mfd/intel-m10-bmc.h
  
 -INTEL MAX 10 BMC MFD DRIVER
 -M:    Xu Yilun <yilun.xu@intel.com>
 -R:    Tom Rix <trix@redhat.com>
 -S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-driver-intel-m10-bmc
 -F:    Documentation/hwmon/intel-m10-bmc-hwmon.rst
 -F:    drivers/hwmon/intel-m10-bmc-hwmon.c
 -F:    drivers/mfd/intel-m10-bmc.c
 -F:    include/linux/mfd/intel-m10-bmc.h
 -
  INTEL MENLOW THERMAL DRIVER
  M:    Sujith Thomas <sujith.thomas@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -9487,10 -9364,13 +9487,10 @@@ L:   linux-pm@vger.kernel.or
  S:    Supported
  F:    drivers/cpufreq/intel_pstate.c
  
 -INTEL RDMA RNIC DRIVER
 -M:    Faisal Latif <faisal.latif@intel.com>
 -M:    Shiraz Saleem <shiraz.saleem@intel.com>
 -L:    linux-rdma@vger.kernel.org
 -S:    Supported
 -F:    drivers/infiniband/hw/i40iw/
 -F:    include/uapi/rdma/i40iw-abi.h
 +INTEL QUADRATURE ENCODER PERIPHERAL DRIVER
 +M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
 +L:    linux-iio@vger.kernel.org
 +F:    drivers/counter/intel-qep.c
  
  INTEL SCU DRIVERS
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
@@@ -9498,11 -9378,6 +9498,11 @@@ S:    Maintaine
  F:    arch/x86/include/asm/intel_scu_ipc.h
  F:    drivers/platform/x86/intel_scu_*
  
 +INTEL SKYLAKE INT3472 ACPI DEVICE DRIVER
 +M:    Daniel Scally <djrscally@gmail.com>
 +S:    Maintained
 +F:    drivers/platform/x86/intel/int3472/
 +
  INTEL SPEED SELECT TECHNOLOGY
  M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -9523,7 -9398,7 +9523,7 @@@ F:      include/linux/firmware/intel/stratix
  F:    include/linux/firmware/intel/stratix10-svc-client.h
  
  INTEL TELEMETRY DRIVER
 -M:    Rajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com>
 +M:    Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
  M:    "David E. Box" <david.e.box@linux.intel.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
@@@ -9568,13 -9443,6 +9568,13 @@@ L:    Dell.Client.Kernel@dell.co
  S:    Maintained
  F:    drivers/platform/x86/intel-wmi-thunderbolt.c
  
 +INTEL WWAN IOSM DRIVER
 +M:    M Chetan Kumar <m.chetan.kumar@intel.com>
 +M:    Intel Corporation <linuxwwan@intel.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/wwan/iosm/
 +
  INTEL(R) TRACE HUB
  M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
  S:    Supported
@@@ -9851,14 -9719,6 +9851,14 @@@ Q:    http://patchwork.linuxtv.org/project
  T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/it913x*
  
 +ITE IT66121 HDMI BRIDGE DRIVER
 +M:    Phong LE <ple@baylibre.com>
 +M:    Neil Armstrong <narmstrong@baylibre.com>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/bridge/ite,it66121.yaml
 +F:    drivers/gpu/drm/bridge/ite-it66121.c
 +
  IVTV VIDEO4LINUX DRIVER
  M:    Andy Walls <awalls@md.metrocast.net>
  L:    linux-media@vger.kernel.org
@@@ -10126,8 -9986,6 +10126,8 @@@ F:    arch/arm64/include/asm/kvm
  F:    arch/arm64/include/uapi/asm/kvm*
  F:    arch/arm64/kvm/
  F:    include/kvm/arm_*
 +F:    tools/testing/selftests/kvm/*/aarch64/
 +F:    tools/testing/selftests/kvm/aarch64/
  
  KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
  M:    Huacai Chen <chenhuacai@kernel.org>
@@@ -10520,7 -10378,7 +10520,7 @@@ LIBNVDIMM BLK: MMIO-APERTURE DRIVE
  M:    Dan Williams <dan.j.williams@intel.com>
  M:    Vishal Verma <vishal.l.verma@intel.com>
  M:    Dave Jiang <dave.jiang@intel.com>
 -L:    linux-nvdimm@lists.01.org
 +L:    nvdimm@lists.linux.dev
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
  P:    Documentation/nvdimm/maintainer-entry-profile.rst
@@@ -10531,7 -10389,7 +10531,7 @@@ LIBNVDIMM BTT: BLOCK TRANSLATION TABL
  M:    Vishal Verma <vishal.l.verma@intel.com>
  M:    Dan Williams <dan.j.williams@intel.com>
  M:    Dave Jiang <dave.jiang@intel.com>
 -L:    linux-nvdimm@lists.01.org
 +L:    nvdimm@lists.linux.dev
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
  P:    Documentation/nvdimm/maintainer-entry-profile.rst
@@@ -10541,7 -10399,7 +10541,7 @@@ LIBNVDIMM PMEM: PERSISTENT MEMORY DRIVE
  M:    Dan Williams <dan.j.williams@intel.com>
  M:    Vishal Verma <vishal.l.verma@intel.com>
  M:    Dave Jiang <dave.jiang@intel.com>
 -L:    linux-nvdimm@lists.01.org
 +L:    nvdimm@lists.linux.dev
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
  P:    Documentation/nvdimm/maintainer-entry-profile.rst
@@@ -10549,7 -10407,7 +10549,7 @@@ F:   drivers/nvdimm/pmem
  
  LIBNVDIMM: DEVICETREE BINDINGS
  M:    Oliver O'Halloran <oohall@gmail.com>
 -L:    linux-nvdimm@lists.01.org
 +L:    nvdimm@lists.linux.dev
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
  F:    Documentation/devicetree/bindings/pmem/pmem-region.txt
@@@ -10560,7 -10418,7 +10560,7 @@@ M:   Dan Williams <dan.j.williams@intel.c
  M:    Vishal Verma <vishal.l.verma@intel.com>
  M:    Dave Jiang <dave.jiang@intel.com>
  M:    Ira Weiny <ira.weiny@intel.com>
 -L:    linux-nvdimm@lists.01.org
 +L:    nvdimm@lists.linux.dev
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
  P:    Documentation/nvdimm/maintainer-entry-profile.rst
@@@ -10993,7 -10851,6 +10993,7 @@@ S:   Maintaine
  F:    drivers/mailbox/
  F:    include/linux/mailbox_client.h
  F:    include/linux/mailbox_controller.h
 +F:    include/dt-bindings/mailbox/
  F:    Documentation/devicetree/bindings/mailbox/
  
  MAILBOX ARM MHUv2
@@@ -11031,7 -10888,7 +11031,7 @@@ MARVELL ARMADA 3700 PHY DRIVER
  M:    Miquel Raynal <miquel.raynal@bootlin.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt
 -F:    Documentation/devicetree/bindings/phy/phy-mvebu-utmi.txt
 +F:    Documentation/devicetree/bindings/phy/marvell,armada-3700-utmi-phy.yaml
  F:    drivers/phy/marvell/phy-mvebu-a3700-comphy.c
  F:    drivers/phy/marvell/phy-mvebu-a3700-utmi.c
  
@@@ -11080,7 -10937,7 +11080,7 @@@ F:   include/linux/mv643xx.
  
  MARVELL MV88X3310 PHY DRIVER
  M:    Russell King <linux@armlinux.org.uk>
 -M:    Marek Behun <marek.behun@nic.cz>
 +M:    Marek Behún <kabel@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/phy/marvell10g.c
@@@ -11426,7 -11283,6 +11426,7 @@@ F:   include/media/imx.
  
  MEDIA DRIVERS FOR FREESCALE IMX7
  M:    Rui Miguel Silva <rmfrfs@gmail.com>
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -11536,7 -11392,6 +11536,7 @@@ L:   linux-renesas-soc@vger.kernel.or
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/renesas,csi2.yaml
 +F:    Documentation/devicetree/bindings/media/renesas,isp.yaml
  F:    Documentation/devicetree/bindings/media/renesas,vin.yaml
  F:    drivers/media/platform/rcar-vin/
  
@@@ -11965,7 -11820,6 +11965,7 @@@ F:   include/linux/mmzone.
  F:    include/linux/pagewalk.h
  F:    include/linux/vmalloc.h
  F:    mm/
 +F:    tools/testing/selftests/vm/
  
  MEMORY TECHNOLOGY DEVICES (MTD)
  M:    Miquel Raynal <miquel.raynal@bootlin.com>
@@@ -12127,13 -11981,11 +12127,13 @@@ MICROCHIP ISC DRIVE
  M:    Eugen Hristev <eugen.hristev@microchip.com>
  L:    linux-media@vger.kernel.org
  S:    Supported
 -F:    Documentation/devicetree/bindings/media/atmel-isc.txt
 +F:    Documentation/devicetree/bindings/media/atmel,isc.yaml
 +F:    Documentation/devicetree/bindings/media/microchip,xisc.yaml
  F:    drivers/media/platform/atmel/atmel-isc-base.c
  F:    drivers/media/platform/atmel/atmel-isc-regs.h
  F:    drivers/media/platform/atmel/atmel-isc.h
  F:    drivers/media/platform/atmel/atmel-sama5d2-isc.c
 +F:    drivers/media/platform/atmel/atmel-sama7g5-isc.c
  F:    include/linux/atmel-isc-media.h
  
  MICROCHIP ISI DRIVER
@@@ -12328,10 -12180,9 +12328,10 @@@ F: drivers/platform/surface/surfacepro3
  
  MICROSOFT SURFACE SYSTEM AGGREGATOR SUBSYSTEM
  M:    Maximilian Luz <luzmaximilian@gmail.com>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  W:    https://github.com/linux-surface/surface-aggregator-module
 -C:    irc://chat.freenode.net/##linux-surface
 +C:    irc://irc.libera.chat/linux-surface
  F:    Documentation/driver-api/surface_aggregator/
  F:    drivers/platform/surface/aggregator/
  F:    drivers/platform/surface/surface_acpi_notify.c
@@@ -12527,15 -12378,8 +12527,15 @@@ F: Documentation/userspace-api/media/dr
  F:    drivers/media/pci/meye/
  F:    include/uapi/linux/meye.h
  
 +MOTORCOMM PHY DRIVER
 +M:    Peter Geis <pgwipeout@gmail.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/phy/motorcomm.c
 +
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
 -S:    Orphan
 +M:    Jiri Slaby <jirislaby@kernel.org>
 +S:    Maintained
  F:    Documentation/driver-api/serial/moxa-smartio.rst
  F:    drivers/tty/mxser.*
  
@@@ -12748,7 -12592,7 +12748,7 @@@ S:   Orpha
  F:    drivers/net/ethernet/natsemi/natsemi.c
  
  NCR 5380 SCSI DRIVERS
 -M:    Finn Thain <fthain@telegraphics.com.au>
 +M:    Finn Thain <fthain@linux-m68k.org>
  M:    Michael Schmitz <schmitzmic@gmail.com>
  L:    linux-scsi@vger.kernel.org
  S:    Maintained
@@@ -12805,7 -12649,6 +12805,7 @@@ W:   http://www.netfilter.org
  W:    http://www.iptables.org/
  W:    http://www.nftables.org/
  Q:    http://patchwork.ozlabs.org/project/netfilter-devel/list/
 +C:    irc://irc.libera.chat/netfilter
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git
  F:    include/linux/netfilter*
@@@ -12837,9 -12680,9 +12837,9 @@@ F:   drivers/rtc/rtc-ntxec.
  F:    include/linux/mfd/ntxec.h
  
  NETRONOME ETHERNET DRIVERS
 -M:    Simon Horman <simon.horman@netronome.com>
 +M:    Simon Horman <simon.horman@corigine.com>
  R:    Jakub Kicinski <kuba@kernel.org>
 -L:    oss-drivers@netronome.com
 +L:    oss-drivers@corigine.com
  S:    Maintained
  F:    drivers/net/ethernet/netronome/
  
@@@ -12866,6 -12709,7 +12866,6 @@@ M:   "David S. Miller" <davem@davemloft.n
  M:    Jakub Kicinski <kuba@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -W:    http://www.linuxfoundation.org/en/Net
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
@@@ -12910,6 -12754,7 +12910,6 @@@ M:   "David S. Miller" <davem@davemloft.n
  M:    Jakub Kicinski <kuba@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -W:    http://www.linuxfoundation.org/en/Net
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  B:    mailto:netdev@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
@@@ -13051,10 -12896,8 +13051,10 @@@ F: include/uapi/linux/nexthop.
  F:    net/ipv4/nexthop.c
  
  NFC SUBSYSTEM
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
 +L:    linux-nfc@lists.01.org (subscribers-only)
  L:    netdev@vger.kernel.org
 -S:    Orphan
 +S:    Maintained
  F:    Documentation/devicetree/bindings/net/nfc/
  F:    drivers/nfc/
  F:    include/linux/platform_data/nfcmrvl.h
@@@ -13065,7 -12908,7 +13065,7 @@@ F:   net/nfc
  NFC VIRTUAL NCI DEVICE DRIVER
  M:    Bongsu Jeon <bongsu.jeon@samsung.com>
  L:    netdev@vger.kernel.org
 -L:    linux-nfc@lists.01.org (moderated for non-subscribers)
 +L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Supported
  F:    drivers/nfc/virtual_ncidev.c
  F:    tools/testing/selftests/nci/
@@@ -13221,7 -13064,7 +13221,7 @@@ F:   Documentation/filesystems/ntfs.rs
  F:    fs/ntfs/
  
  NUBUS SUBSYSTEM
 -M:    Finn Thain <fthain@telegraphics.com.au>
 +M:    Finn Thain <fthain@linux-m68k.org>
  L:    linux-m68k@lists.linux-m68k.org
  S:    Maintained
  F:    arch/*/include/asm/nubus.h
@@@ -13343,7 -13186,6 +13343,7 @@@ M:   Vladimir Oltean <olteanv@gmail.com
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/net/dsa/sja1105
 +F:    drivers/net/pcs/pcs-xpcs-nxp.c
  
  NXP TDA998X DRM DRIVER
  M:    Russell King <linux@armlinux.org.uk>
@@@ -13362,16 -13204,10 +13362,16 @@@ S:        Maintaine
  F:    Documentation/devicetree/bindings/sound/tfa9879.txt
  F:    sound/soc/codecs/tfa9879*
  
 +NXP/Goodix TFA989X (TFA1) DRIVER
 +M:    Stephan Gerhold <stephan@gerhold.net>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
 +F:    sound/soc/codecs/tfa989x.c
 +
  NXP-NCI NFC DRIVER
 -M:    Clément Perrochaud <clement.perrochaud@effinnov.com>
  R:    Charles Gorand <charles.gorand@effinnov.com>
 -L:    linux-nfc@lists.01.org (moderated for non-subscribers)
 +L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Supported
  F:    drivers/nfc/nxp-nci
  
@@@ -13489,7 -13325,7 +13489,7 @@@ M:   Santosh Shilimkar <ssantosh@kernel.o
  M:    Kevin Hilman <khilman@kernel.org>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/gpio/gpio-omap.txt
 +F:    Documentation/devicetree/bindings/gpio/ti,omap-gpio.yaml
  F:    drivers/gpio/gpio-omap.c
  
  OMAP HARDWARE SPINLOCK SUPPORT
@@@ -13528,7 -13364,7 +13528,7 @@@ M:   Vignesh R <vigneshr@ti.com
  L:    linux-omap@vger.kernel.org
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-omap.txt
 +F:    Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml
  F:    drivers/i2c/busses/i2c-omap.c
  
  OMAP IMAGING SUBSYSTEM (OMAP3 ISP and OMAP4 ISS)
@@@ -14106,8 -13942,7 +14106,7 @@@ F:   Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/pci-aardvark.c
  
  PCI DRIVER FOR ALTERA PCIE IP
- M:    Ley Foon Tan <ley.foon.tan@intel.com>
- L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
+ M:    Joyce Ooi <joyce.ooi@intel.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/altera-pcie.txt
@@@ -14274,7 -14109,6 +14273,7 @@@ F:   drivers/pci/controller/pci-v3-semi.
  PCI ENDPOINT SUBSYSTEM
  M:    Kishon Vijay Abraham I <kishon@ti.com>
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
 +R:    Krzysztof Wilczyński <kw@linux.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
  F:    Documentation/PCI/endpoint/*
@@@ -14305,8 -14139,7 +14304,7 @@@ S:   Supporte
  F:    Documentation/PCI/pci-error-recovery.rst
  
  PCI MSI DRIVER FOR ALTERA MSI IP
- M:    Ley Foon Tan <ley.foon.tan@intel.com>
- L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
+ M:    Joyce Ooi <joyce.ooi@intel.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/altera-pcie-msi.txt
@@@ -14323,7 -14156,6 +14321,7 @@@ F:   drivers/pci/controller/pci-xgene-msi
  PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
  R:    Rob Herring <robh@kernel.org>
 +R:    Krzysztof Wilczyński <kw@linux.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
  Q:    http://patchwork.ozlabs.org/project/linux-pci/list/
@@@ -14483,12 -14315,10 +14481,12 @@@ PER-CPU MEMORY ALLOCATO
  M:    Dennis Zhou <dennis@kernel.org>
  M:    Tejun Heo <tj@kernel.org>
  M:    Christoph Lameter <cl@linux.com>
 +L:    linux-mm@kvack.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu.git
  F:    arch/*/include/asm/percpu.h
  F:    include/linux/percpu*.h
 +F:    lib/percpu*.c
  F:    mm/percpu*.c
  
  PER-TASK DELAY ACCOUNTING
@@@ -14827,7 -14657,6 +14825,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/ABI/testing/sysfs-class-power
  F:    Documentation/devicetree/bindings/power/supply/
  F:    drivers/power/supply/
 +F:    include/linux/power/
  F:    include/linux/power_supply.h
  
  POWERNV OPERATOR PANEL LCD DISPLAY DRIVER
@@@ -14903,6 -14732,7 +14901,6 @@@ W:   https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/intersil/prism54/
  
  PROC FILESYSTEM
 -R:    Alexey Dobriyan <adobriyan@gmail.com>
  L:    linux-kernel@vger.kernel.org
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
@@@ -15297,13 -15127,6 +15295,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt
  F:    drivers/cpufreq/qcom-cpufreq-nvmem.c
  
 +QUALCOMM CRYPTO DRIVERS
 +M:    Thara Gopinath <thara.gopinath@linaro.org>
 +L:    linux-crypto@vger.kernel.org
 +L:    linux-arm-msm@vger.kernel.org
 +S:    Maintained
 +F:    drivers/crypto/qce/
 +
  QUALCOMM EMAC GIGABIT ETHERNET DRIVER
  M:    Timur Tabi <timur@kernel.org>
  L:    netdev@vger.kernel.org
@@@ -15432,7 -15255,6 +15430,7 @@@ F:   drivers/net/wireless/quantenn
  RADEON and AMDGPU DRM DRIVERS
  M:    Alex Deucher <alexander.deucher@amd.com>
  M:    Christian König <christian.koenig@amd.com>
 +M:    Pan, Xinhui <Xinhui.Pan@amd.com>
  L:    amd-gfx@lists.freedesktop.org
  S:    Supported
  T:    git https://gitlab.freedesktop.org/agd5f/linux.git
@@@ -15740,13 -15562,6 +15738,13 @@@ F: include/linux/rpmsg
  F:    include/uapi/linux/rpmsg.h
  F:    samples/rpmsg/
  
 +REMOTE PROCESSOR MESSAGING (RPMSG) WWAN CONTROL DRIVER
 +M:    Stephan Gerhold <stephan@gerhold.net>
 +L:    netdev@vger.kernel.org
 +L:    linux-remoteproc@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/wwan/rpmsg_wwan_ctrl.c
 +
  RENESAS CLOCK DRIVERS
  M:    Geert Uytterhoeven <geert+renesas@glider.be>
  L:    linux-renesas-soc@vger.kernel.org
@@@ -15757,9 -15572,8 +15755,9 @@@ F:   drivers/clk/renesas
  
  RENESAS EMEV2 I2C DRIVER
  M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
 +L:    linux-renesas-soc@vger.kernel.org
  S:    Supported
 -F:    Documentation/devicetree/bindings/i2c/renesas,iic-emev2.txt
 +F:    Documentation/devicetree/bindings/i2c/renesas,iic-emev2.yaml
  F:    drivers/i2c/busses/i2c-emev2.c
  
  RENESAS ETHERNET DRIVERS
@@@ -15779,10 -15593,9 +15777,10 @@@ F: drivers/iio/adc/rcar-gyroadc.
  
  RENESAS R-CAR I2C DRIVERS
  M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
 +L:    linux-renesas-soc@vger.kernel.org
  S:    Supported
 -F:    Documentation/devicetree/bindings/i2c/renesas,i2c.txt
 -F:    Documentation/devicetree/bindings/i2c/renesas,iic.txt
 +F:    Documentation/devicetree/bindings/i2c/renesas,rcar-i2c.yaml
 +F:    Documentation/devicetree/bindings/i2c/renesas,rmobile-iic.yaml
  F:    drivers/i2c/busses/i2c-rcar.c
  F:    drivers/i2c/busses/i2c-sh_mobile.c
  
@@@ -15797,9 -15610,8 +15795,9 @@@ F:   drivers/thermal/rcar_thermal.
  
  RENESAS RIIC DRIVER
  M:    Chris Brandt <chris.brandt@renesas.com>
 +L:    linux-renesas-soc@vger.kernel.org
  S:    Supported
 -F:    Documentation/devicetree/bindings/i2c/renesas,riic.txt
 +F:    Documentation/devicetree/bindings/i2c/renesas,riic.yaml
  F:    drivers/i2c/busses/i2c-riic.c
  
  RENESAS USB PHY DRIVER
@@@ -15879,14 -15691,6 +15877,14 @@@ F: arch/riscv
  N:    riscv
  K:    riscv
  
 +RISC-V/MICROCHIP POLARFIRE SOC SUPPORT
 +M:    Lewis Hanly <lewis.hanly@microchip.com>
 +L:    linux-riscv@lists.infradead.org
 +S:    Supported
 +F:    drivers/mailbox/mailbox-mpfs.c
 +F:    drivers/soc/microchip/
 +F:    include/soc/microchip/mpfs.h
 +
  RNBD BLOCK DRIVERS
  M:    Md. Haris Iqbal <haris.iqbal@ionos.com>
  M:    Jack Wang <jinpu.wang@ionos.com>
@@@ -16009,7 -15813,7 +16007,7 @@@ F:   include/uapi/linux/rose.
  F:    net/rose/
  
  ROTATION DRIVER FOR ALLWINNER A83T
 -M:    Jernej Skrabec <jernej.skrabec@siol.net>
 +M:    Jernej Skrabec <jernej.skrabec@gmail.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -16139,7 -15943,6 +16137,7 @@@ S390 IUCV NETWORK LAYE
  M:    Julian Wiedmann <jwi@linux.ibm.com>
  M:    Karsten Graul <kgraul@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
 +L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
  F:    drivers/s390/net/*iucv*
@@@ -16150,7 -15953,6 +16148,7 @@@ S390 NETWORK DRIVER
  M:    Julian Wiedmann <jwi@linux.ibm.com>
  M:    Karsten Graul <kgraul@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
 +L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
  F:    drivers/s390/net/
@@@ -16214,7 -16016,7 +16212,7 @@@ W:   http://www.ibm.com/developerworks/li
  F:    drivers/s390/scsi/zfcp_*
  
  S3C ADC BATTERY DRIVER
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  L:    linux-samsung-soc@vger.kernel.org
  S:    Odd Fixes
  F:    drivers/power/supply/s3c_adc_battery.c
@@@ -16329,7 -16131,7 +16327,7 @@@ F:   include/media/drv-intf/s3c_camif.
  SAMSUNG S3FWRN5 NFC DRIVER
  M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Krzysztof Opasiak <k.opasiak@samsung.com>
 -L:    linux-nfc@lists.01.org (moderated for non-subscribers)
 +L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/nfc/samsung,s3fwrn5.yaml
  F:    drivers/nfc/s3fwrn5
@@@ -16680,8 -16482,6 +16678,8 @@@ M:   Tomasz Duszynski <tduszyns@gmail.com
  S:    Maintained
  F:    Documentation/devicetree/bindings/iio/chemical/sensirion,sps30.yaml
  F:    drivers/iio/chemical/sps30.c
 +F:    drivers/iio/chemical/sps30_i2c.c
 +F:    drivers/iio/chemical/sps30_serial.c
  
  SERIAL DEVICE BUS
  M:    Rob Herring <robh@kernel.org>
@@@ -16744,7 -16544,6 +16742,7 @@@ F:   drivers/misc/sgi-xp
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
  M:    Karsten Graul <kgraul@linux.ibm.com>
 +M:    Guvenc Gulce <guvenc@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -17190,13 -16989,6 +17188,13 @@@ S: Maintaine
  F:    drivers/ssb/
  F:    include/linux/ssb/
  
 +SONY IMX208 SENSOR DRIVER
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/imx208.c
 +
  SONY IMX214 SENSOR DRIVER
  M:    Ricardo Ribalda <ribalda@kernel.org>
  L:    linux-media@vger.kernel.org
@@@ -17510,12 -17302,6 +17508,12 @@@ L: linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/busses/i2c-stm32*
  
 +ST STM32 SPI DRIVER
 +M:    Alain Volmat <alain.volmat@foss.st.com>
 +L:    linux-spi@vger.kernel.org
 +S:    Maintained
 +F:    drivers/spi/spi-stm32.c
 +
  ST STPDDC60 DRIVER
  M:    Daniel Nilsson <daniel.nilsson@flex.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -17865,7 -17651,6 +17863,7 @@@ M:   Jose Abreu <Jose.Abreu@synopsys.com
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/pcs/pcs-xpcs.c
 +F:    drivers/net/pcs/pcs-xpcs.h
  F:    include/linux/pcs/pcs-xpcs.h
  
  SYNOPSYS DESIGNWARE I2C DRIVER
@@@ -17875,6 -17660,7 +17873,6 @@@ R:   Mika Westerberg <mika.westerberg@lin
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
  F:    drivers/i2c/busses/i2c-designware-*
 -F:    include/linux/platform_data/i2c-designware.h
  
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
  M:    Jaehoon Chung <jh80.chung@samsung.com>
@@@ -17908,7 -17694,7 +17906,7 @@@ M:   Sudeep Holla <sudeep.holla@arm.com
  R:    Cristian Marussi <cristian.marussi@arm.com>
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/arm/arm,sc[mp]i.txt
 +F:    Documentation/devicetree/bindings/firmware/arm,sc[mp]i.yaml
  F:    drivers/clk/clk-sc[mp]i.c
  F:    drivers/cpufreq/sc[mp]i-cpufreq.c
  F:    drivers/firmware/arm_scmi/
@@@ -18281,11 -18067,11 +18279,11 @@@ L:        linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
  F:    Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
 -F:    Documentation/devicetree/bindings/clock/ti,sci-clk.txt
 +F:    Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
 -F:    Documentation/devicetree/bindings/reset/ti,sci-reset.txt
 -F:    Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
 +F:    Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
 +F:    Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
  F:    drivers/clk/keystone/sci-clk.c
  F:    drivers/firmware/ti_sci*
  F:    drivers/irqchip/irq-ti-sci-inta.c
@@@ -18306,13 -18092,6 +18304,13 @@@ F: Documentation/devicetree/bindings/hw
  F:    Documentation/hwmon/tps23861.rst
  F:    drivers/hwmon/tps23861.c
  
 +TEXAS INSTRUMENTS' TMP117 TEMPERATURE SENSOR DRIVER
 +M:    Puranjay Mohan <puranjay12@gmail.com>
 +L:    linux-iio@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/iio/temperature/ti,tmp117.yaml
 +F:    drivers/iio/temperature/tmp117.c
 +
  THANKO'S RAREMONO AM/FM/SW RADIO RECEIVER USB DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -18375,13 -18154,6 +18373,13 @@@ W: http://thinkwiki.org/wiki/Ibm-acp
  T:    git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
  F:    drivers/platform/x86/thinkpad_acpi.c
  
 +THINKPAD LMI DRIVER
 +M:    Mark Pearson <markpearson@lenovo.com>
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-class-firmware-attributes
 +F:    drivers/platform/x86/think-lmi.?
 +
  THUNDERBOLT DMA TRAFFIC TEST DRIVER
  M:    Isaac Hazan <isaac.hazan@intel.com>
  L:    linux-usb@vger.kernel.org
@@@ -18476,7 -18248,7 +18474,7 @@@ TI DAVINCI SERIES GPIO DRIVE
  M:    Keerthy <j-keerthy@ti.com>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/gpio/gpio-davinci.txt
 +F:    Documentation/devicetree/bindings/gpio/gpio-davinci.yaml
  F:    drivers/gpio/gpio-davinci.c
  
  TI DAVINCI SERIES MEDIA DRIVER
@@@ -18544,19 -18316,11 +18542,19 @@@ F:        sound/soc/codecs/tas571x
  TI TRF7970A NFC DRIVER
  M:    Mark Greer <mgreer@animalcreek.com>
  L:    linux-wireless@vger.kernel.org
 -L:    linux-nfc@lists.01.org (moderated for non-subscribers)
 +L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Supported
  F:    Documentation/devicetree/bindings/net/nfc/trf7970a.txt
  F:    drivers/nfc/trf7970a.c
  
 +TI TSC2046 ADC DRIVER
 +M:    Oleksij Rempel <o.rempel@pengutronix.de>
 +R:    kernel@pengutronix.de
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/adc/ti,tsc2046.yaml
 +F:    drivers/iio/adc/ti-tsc2046.c
 +
  TI TWL4030 SERIES SOC CODEC DRIVER
  M:    Peter Ujfalusi <peter.ujfalusi@gmail.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -18780,13 -18544,9 +18778,13 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/driver-api/serial/
  F:    drivers/tty/
  F:    drivers/tty/serial/serial_core.c
 +F:    include/linux/selection.h
  F:    include/linux/serial.h
  F:    include/linux/serial_core.h
 -F:    include/linux/tty.h
 +F:    include/linux/sysrq.h
 +F:    include/linux/tty*.h
 +F:    include/linux/vt.h
 +F:    include/linux/vt_*.h
  F:    include/uapi/linux/serial.h
  F:    include/uapi/linux/serial_core.h
  F:    include/uapi/linux/tty.h
@@@ -19077,7 -18837,7 +19075,7 @@@ L:   linux-usb@vger.kernel.or
  S:    Maintained
  F:    drivers/usb/roles/intel-xhci-usb-role-switch.c
  
 -USB IP DRIVER FOR HISILICON KIRIN
 +USB IP DRIVER FOR HISILICON KIRIN 960
  M:    Yu Chen <chenyu56@huawei.com>
  M:    Binghui Wang <wangbinghui@hisilicon.com>
  L:    linux-usb@vger.kernel.org
@@@ -19085,13 -18845,6 +19083,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/phy/hisilicon,hi3660-usb3.yaml
  F:    drivers/phy/hisilicon/phy-hi3660-usb3.c
  
 +USB IP DRIVER FOR HISILICON KIRIN 970
 +M:    Mauro Carvalho Chehab <mchehab@kernel.org>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/phy/hisilicon,hi3670-usb3.yaml
 +F:    drivers/phy/hisilicon/phy-kirin970-usb3.c
 +
  USB ISP116X DRIVER
  M:    Olav Kongas <ok@artecdesign.ee>
  L:    linux-usb@vger.kernel.org
@@@ -19099,13 -18852,6 +19097,13 @@@ S: Maintaine
  F:    drivers/usb/host/isp116x*
  F:    include/linux/usb/isp116x.h
  
 +USB ISP1760 DRIVER
 +M:    Rui Miguel Silva <rui.silva@linaro.org>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    drivers/usb/isp1760/*
 +F:    Documentation/devicetree/bindings/usb/nxp,isp1760.yaml
 +
  USB LAN78XX ETHERNET DRIVER
  M:    Woojung Huh <woojung.huh@microchip.com>
  M:    UNGLinuxDriver@microchip.com
@@@ -19803,10 -19549,6 +19801,10 @@@ F: include/dt-bindings/regulator
  F:    include/linux/regulator/
  K:    regulator_get_optional
  
 +VOLTAGE AND CURRENT REGULATOR IRQ HELPERS
 +R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
 +F:    drivers/regulator/irq_helpers.c
 +
  VRF
  M:    David Ahern <dsahern@kernel.org>
  L:    netdev@vger.kernel.org
@@@ -19824,7 -19566,6 +19822,7 @@@ S:   Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk.git
  F:    Documentation/core-api/printk-formats.rst
  F:    lib/test_printf.c
 +F:    lib/test_scanf.c
  F:    lib/vsprintf.c
  
  VT1211 HARDWARE MONITOR DRIVER
@@@ -20008,16 -19749,6 +20006,16 @@@ F: Documentation/core-api/workqueue.rs
  F:    include/linux/workqueue.h
  F:    kernel/workqueue.c
  
 +WWAN DRIVERS
 +M:    Loic Poulain <loic.poulain@linaro.org>
 +M:    Sergey Ryazanov <ryazanov.s.a@gmail.com>
 +R:    Johannes Berg <johannes@sipsolutions.net>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/wwan/
 +F:    include/linux/wwan.h
 +F:    include/uapi/linux/wwan.h
 +
  X-POWERS AXP288 PMIC DRIVERS
  M:    Hans de Goede <hdegoede@redhat.com>
  S:    Maintained
@@@ -20265,7 -19996,6 +20263,7 @@@ F:   arch/x86/xen/*swiotlb
  F:    drivers/xen/*swiotlb*
  
  XFS FILESYSTEM
 +C:    irc://irc.oftc.net/xfs
  M:    Darrick J. Wong <djwong@kernel.org>
  M:    linux-xfs@vger.kernel.org
  L:    linux-xfs@vger.kernel.org
@@@ -20413,6 -20143,7 +20411,6 @@@ M:   Seth Jennings <sjenning@redhat.com
  M:    Dan Streetman <ddstreet@ieee.org>
  L:    linux-mm@kvack.org
  S:    Maintained
 -F:    include/linux/zbud.h
  F:    mm/zbud.c
  
  ZD1211RW WIRELESS DRIVER
@@@ -22,6 -22,8 +22,6 @@@
  #include <linux/of_irq.h>
  #include <linux/of_pci.h>
  #include <linux/pci.h>
 -#include <linux/pci-acpi.h>
 -#include <linux/pci-ecam.h>
  #include <linux/phy/phy.h>
  #include <linux/pinctrl/consumer.h>
  #include <linux/platform_device.h>
@@@ -245,6 -247,24 +245,6 @@@ static const unsigned int pcie_gen_freq
        GEN4_CORE_CLK_FREQ
  };
  
 -static const u32 event_cntr_ctrl_offset[] = {
 -      0x1d8,
 -      0x1a8,
 -      0x1a8,
 -      0x1a8,
 -      0x1c4,
 -      0x1d8
 -};
 -
 -static const u32 event_cntr_data_offset[] = {
 -      0x1dc,
 -      0x1ac,
 -      0x1ac,
 -      0x1ac,
 -      0x1c8,
 -      0x1dc
 -};
 -
  struct tegra_pcie_dw {
        struct device *dev;
        struct resource *appl_res;
@@@ -293,6 -313,104 +293,6 @@@ struct tegra_pcie_dw_of_data 
        enum dw_pcie_device_mode mode;
  };
  
 -#if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)
 -struct tegra194_pcie_ecam  {
 -      void __iomem *config_base;
 -      void __iomem *iatu_base;
 -      void __iomem *dbi_base;
 -};
 -
 -static int tegra194_acpi_init(struct pci_config_window *cfg)
 -{
 -      struct device *dev = cfg->parent;
 -      struct tegra194_pcie_ecam *pcie_ecam;
 -
 -      pcie_ecam = devm_kzalloc(dev, sizeof(*pcie_ecam), GFP_KERNEL);
 -      if (!pcie_ecam)
 -              return -ENOMEM;
 -
 -      pcie_ecam->config_base = cfg->win;
 -      pcie_ecam->iatu_base = cfg->win + SZ_256K;
 -      pcie_ecam->dbi_base = cfg->win + SZ_512K;
 -      cfg->priv = pcie_ecam;
 -
 -      return 0;
 -}
 -
 -static void atu_reg_write(struct tegra194_pcie_ecam *pcie_ecam, int index,
 -                        u32 val, u32 reg)
 -{
 -      u32 offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
 -
 -      writel(val, pcie_ecam->iatu_base + offset + reg);
 -}
 -
 -static void program_outbound_atu(struct tegra194_pcie_ecam *pcie_ecam,
 -                               int index, int type, u64 cpu_addr,
 -                               u64 pci_addr, u64 size)
 -{
 -      atu_reg_write(pcie_ecam, index, lower_32_bits(cpu_addr),
 -                    PCIE_ATU_LOWER_BASE);
 -      atu_reg_write(pcie_ecam, index, upper_32_bits(cpu_addr),
 -                    PCIE_ATU_UPPER_BASE);
 -      atu_reg_write(pcie_ecam, index, lower_32_bits(pci_addr),
 -                    PCIE_ATU_LOWER_TARGET);
 -      atu_reg_write(pcie_ecam, index, lower_32_bits(cpu_addr + size - 1),
 -                    PCIE_ATU_LIMIT);
 -      atu_reg_write(pcie_ecam, index, upper_32_bits(pci_addr),
 -                    PCIE_ATU_UPPER_TARGET);
 -      atu_reg_write(pcie_ecam, index, type, PCIE_ATU_CR1);
 -      atu_reg_write(pcie_ecam, index, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
 -}
 -
 -static void __iomem *tegra194_map_bus(struct pci_bus *bus,
 -                                    unsigned int devfn, int where)
 -{
 -      struct pci_config_window *cfg = bus->sysdata;
 -      struct tegra194_pcie_ecam *pcie_ecam = cfg->priv;
 -      u32 busdev;
 -      int type;
 -
 -      if (bus->number < cfg->busr.start || bus->number > cfg->busr.end)
 -              return NULL;
 -
 -      if (bus->number == cfg->busr.start) {
 -              if (PCI_SLOT(devfn) == 0)
 -                      return pcie_ecam->dbi_base + where;
 -              else
 -                      return NULL;
 -      }
 -
 -      busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) |
 -               PCIE_ATU_FUNC(PCI_FUNC(devfn));
 -
 -      if (bus->parent->number == cfg->busr.start) {
 -              if (PCI_SLOT(devfn) == 0)
 -                      type = PCIE_ATU_TYPE_CFG0;
 -              else
 -                      return NULL;
 -      } else {
 -              type = PCIE_ATU_TYPE_CFG1;
 -      }
 -
 -      program_outbound_atu(pcie_ecam, 0, type, cfg->res.start, busdev,
 -                           SZ_256K);
 -
 -      return pcie_ecam->config_base + where;
 -}
 -
 -const struct pci_ecam_ops tegra194_pcie_ops = {
 -      .init           = tegra194_acpi_init,
 -      .pci_ops        = {
 -              .map_bus        = tegra194_map_bus,
 -              .read           = pci_generic_config_read,
 -              .write          = pci_generic_config_write,
 -      }
 -};
 -#endif /* defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) */
 -
 -#ifdef CONFIG_PCIE_TEGRA194
 -
  static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci)
  {
        return container_of(pci, struct tegra_pcie_dw, pci);
@@@ -576,24 -694,6 +576,24 @@@ static struct pci_ops tegra_pci_ops = 
  };
  
  #if defined(CONFIG_PCIEASPM)
 +static const u32 event_cntr_ctrl_offset[] = {
 +      0x1d8,
 +      0x1a8,
 +      0x1a8,
 +      0x1a8,
 +      0x1c4,
 +      0x1d8
 +};
 +
 +static const u32 event_cntr_data_offset[] = {
 +      0x1dc,
 +      0x1ac,
 +      0x1ac,
 +      0x1ac,
 +      0x1c8,
 +      0x1dc
 +};
 +
  static void disable_aspm_l11(struct tegra_pcie_dw *pcie)
  {
        u32 val;
@@@ -1826,7 -1926,7 +1826,7 @@@ static int tegra_pcie_ep_raise_msi_irq(
        if (unlikely(irq > 31))
                return -EINVAL;
  
-       appl_writel(pcie, (1 << irq), APPL_MSI_CTRL_1);
+       appl_writel(pcie, BIT(irq), APPL_MSI_CTRL_1);
  
        return 0;
  }
@@@ -2214,6 -2314,8 +2214,8 @@@ static int tegra_pcie_dw_resume_noirq(s
                goto fail_host_init;
        }
  
+       dw_pcie_setup_rc(&pcie->pci.pp);
        ret = tegra_pcie_dw_start_link(&pcie->pci);
        if (ret < 0)
                goto fail_host_init;
@@@ -2311,3 -2413,5 +2313,3 @@@ MODULE_DEVICE_TABLE(of, tegra_pcie_dw_o
  MODULE_AUTHOR("Vidya Sagar <vidyas@nvidia.com>");
  MODULE_DESCRIPTION("NVIDIA PCIe host controller driver");
  MODULE_LICENSE("GPL v2");
 -
 -#endif /* CONFIG_PCIE_TEGRA194 */
@@@ -57,7 -57,7 +57,7 @@@
  #define   PIO_COMPLETION_STATUS_UR            1
  #define   PIO_COMPLETION_STATUS_CRS           2
  #define   PIO_COMPLETION_STATUS_CA            4
- #define   PIO_NON_POSTED_REQ                  BIT(0)
+ #define   PIO_NON_POSTED_REQ                  BIT(10)
  #define PIO_ADDR_LS                           (PIO_BASE_ADDR + 0x8)
  #define PIO_ADDR_MS                           (PIO_BASE_ADDR + 0xc)
  #define PIO_WR_DATA                           (PIO_BASE_ADDR + 0x10)
  #define     LTSSM_MASK                                0x3f
  #define     LTSSM_L0                          0x10
  #define     RC_BAR_CONFIG                     0x300
+ #define VENDOR_ID_REG                         (LMI_BASE_ADDR + 0x44)
  
  /* PCIe core controller registers */
  #define CTRL_CORE_BASE_ADDR                   0x18000
@@@ -385,6 -386,16 +386,16 @@@ static void advk_pcie_setup_hw(struct a
        reg |= (IS_RC_MSK << IS_RC_SHIFT);
        advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
  
+       /*
+        * Replace incorrect PCI vendor id value 0x1b4b by correct value 0x11ab.
+        * VENDOR_ID_REG contains vendor id in low 16 bits and subsystem vendor
+        * id in high 16 bits. Updating this register changes readback value of
+        * read-only vendor id bits in PCIE_CORE_DEV_ID_REG register. Workaround
+        * for erratum 4.1: "The value of device and vendor ID is incorrect".
+        */
+       reg = (PCI_VENDOR_ID_MARVELL << 16) | PCI_VENDOR_ID_MARVELL;
+       advk_writel(pcie, reg, VENDOR_ID_REG);
        /* Set Advanced Error Capabilities and Control PF0 register */
        reg = PCIE_CORE_ERR_CAPCTL_ECRC_CHK_TX |
                PCIE_CORE_ERR_CAPCTL_ECRC_CHK_TX_EN |
@@@ -514,7 -525,7 +525,7 @@@ static int advk_pcie_wait_pio(struct ad
                udelay(PIO_RETRY_DELAY);
        }
  
 -      dev_err(dev, "config read/write timed out\n");
 +      dev_err(dev, "PIO read/write transfer time out\n");
        return -ETIMEDOUT;
  }
  
@@@ -657,35 -668,6 +668,35 @@@ static bool advk_pcie_valid_device(stru
        return true;
  }
  
 +static bool advk_pcie_pio_is_running(struct advk_pcie *pcie)
 +{
 +      struct device *dev = &pcie->pdev->dev;
 +
 +      /*
 +       * Trying to start a new PIO transfer when previous has not completed
 +       * cause External Abort on CPU which results in kernel panic:
 +       *
 +       *     SError Interrupt on CPU0, code 0xbf000002 -- SError
 +       *     Kernel panic - not syncing: Asynchronous SError Interrupt
 +       *
 +       * Functions advk_pcie_rd_conf() and advk_pcie_wr_conf() are protected
 +       * by raw_spin_lock_irqsave() at pci_lock_config() level to prevent
 +       * concurrent calls at the same time. But because PIO transfer may take
 +       * about 1.5s when link is down or card is disconnected, it means that
 +       * advk_pcie_wait_pio() does not always have to wait for completion.
 +       *
 +       * Some versions of ARM Trusted Firmware handles this External Abort at
 +       * EL3 level and mask it to prevent kernel panic. Relevant TF-A commit:
 +       * https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/commit/?id=3c7dcdac5c50
 +       */
 +      if (advk_readl(pcie, PIO_START)) {
 +              dev_err(dev, "Previous PIO read/write transfer is still running\n");
 +              return true;
 +      }
 +
 +      return false;
 +}
 +
  static int advk_pcie_rd_conf(struct pci_bus *bus, u32 devfn,
                             int where, int size, u32 *val)
  {
                return pci_bridge_emul_conf_read(&pcie->bridge, where,
                                                 size, val);
  
 -      /* Start PIO */
 -      advk_writel(pcie, 0, PIO_START);
 -      advk_writel(pcie, 1, PIO_ISR);
 +      if (advk_pcie_pio_is_running(pcie)) {
 +              *val = 0xffffffff;
 +              return PCIBIOS_SET_FAILED;
 +      }
  
        /* Program the control register */
        reg = advk_readl(pcie, PIO_CTRL);
        /* Program the data strobe */
        advk_writel(pcie, 0xf, PIO_WR_DATA_STRB);
  
 -      /* Start the transfer */
 +      /* Clear PIO DONE ISR and start the transfer */
 +      advk_writel(pcie, 1, PIO_ISR);
        advk_writel(pcie, 1, PIO_START);
  
        ret = advk_pcie_wait_pio(pcie);
@@@ -765,8 -745,9 +776,8 @@@ static int advk_pcie_wr_conf(struct pci
        if (where % size)
                return PCIBIOS_SET_FAILED;
  
 -      /* Start PIO */
 -      advk_writel(pcie, 0, PIO_START);
 -      advk_writel(pcie, 1, PIO_ISR);
 +      if (advk_pcie_pio_is_running(pcie))
 +              return PCIBIOS_SET_FAILED;
  
        /* Program the control register */
        reg = advk_readl(pcie, PIO_CTRL);
        /* Program the data strobe */
        advk_writel(pcie, data_strobe, PIO_WR_DATA_STRB);
  
 -      /* Start the transfer */
 +      /* Clear PIO DONE ISR and start the transfer */
 +      advk_writel(pcie, 1, PIO_ISR);
        advk_writel(pcie, 1, PIO_START);
  
        ret = advk_pcie_wait_pio(pcie);
@@@ -444,7 -444,6 +444,6 @@@ enum hv_pcibus_state 
        hv_pcibus_probed,
        hv_pcibus_installed,
        hv_pcibus_removing,
-       hv_pcibus_removed,
        hv_pcibus_maximum
  };
  
@@@ -453,7 -452,6 +452,6 @@@ struct hv_pcibus_device 
        /* Protocol version negotiated with the host */
        enum pci_protocol_version_t protocol_version;
        enum hv_pcibus_state state;
-       refcount_t remove_lock;
        struct hv_device *hdev;
        resource_size_t low_mmio_space;
        resource_size_t high_mmio_space;
        struct resource *low_mmio_res;
        struct resource *high_mmio_res;
        struct completion *survey_event;
-       struct completion remove_event;
        struct pci_bus *pci_bus;
        spinlock_t config_lock; /* Avoid two threads writing index page */
        spinlock_t device_list_lock;    /* Protect lists below */
@@@ -593,9 -590,6 +590,6 @@@ static void put_pcichild(struct hv_pci_
                kfree(hpdev);
  }
  
- static void get_hvpcibus(struct hv_pcibus_device *hv_pcibus);
- static void put_hvpcibus(struct hv_pcibus_device *hv_pcibus);
  /*
   * There is no good way to get notified from vmbus_onoffer_rescind(),
   * so let's use polling here, since this is not a hot path.
@@@ -2064,10 -2058,8 +2058,8 @@@ static void pci_devices_present_work(st
        }
        spin_unlock_irqrestore(&hbus->device_list_lock, flags);
  
-       if (!dr) {
-               put_hvpcibus(hbus);
+       if (!dr)
                return;
-       }
  
        /* First, mark all existing children as reported missing. */
        spin_lock_irqsave(&hbus->device_list_lock, flags);
                break;
        }
  
-       put_hvpcibus(hbus);
        kfree(dr);
  }
  
@@@ -2191,12 -2182,10 +2182,10 @@@ static int hv_pci_start_relations_work(
        list_add_tail(&dr->list_entry, &hbus->dr_list);
        spin_unlock_irqrestore(&hbus->device_list_lock, flags);
  
-       if (pending_dr) {
+       if (pending_dr)
                kfree(dr_wrk);
-       } else {
-               get_hvpcibus(hbus);
+       else
                queue_work(hbus->wq, &dr_wrk->wrk);
-       }
  
        return 0;
  }
@@@ -2339,8 -2328,6 +2328,6 @@@ static void hv_eject_device_work(struc
        put_pcichild(hpdev);
        put_pcichild(hpdev);
        /* hpdev has been freed. Do not use it any more. */
-       put_hvpcibus(hbus);
  }
  
  /**
@@@ -2364,7 -2351,6 +2351,6 @@@ static void hv_pci_eject_device(struct 
        hpdev->state = hv_pcichild_ejecting;
        get_pcichild(hpdev);
        INIT_WORK(&hpdev->wrk, hv_eject_device_work);
-       get_hvpcibus(hbus);
        queue_work(hbus->wq, &hpdev->wrk);
  }
  
@@@ -2964,17 -2950,6 +2950,6 @@@ static int hv_send_resources_released(s
        return 0;
  }
  
- static void get_hvpcibus(struct hv_pcibus_device *hbus)
- {
-       refcount_inc(&hbus->remove_lock);
- }
- static void put_hvpcibus(struct hv_pcibus_device *hbus)
- {
-       if (refcount_dec_and_test(&hbus->remove_lock))
-               complete(&hbus->remove_event);
- }
  #define HVPCI_DOM_MAP_SIZE (64 * 1024)
  static DECLARE_BITMAP(hvpci_dom_map, HVPCI_DOM_MAP_SIZE);
  
@@@ -3094,14 -3069,12 +3069,12 @@@ static int hv_pci_probe(struct hv_devic
        hbus->sysdata.domain = dom;
  
        hbus->hdev = hdev;
-       refcount_set(&hbus->remove_lock, 1);
        INIT_LIST_HEAD(&hbus->children);
        INIT_LIST_HEAD(&hbus->dr_list);
        INIT_LIST_HEAD(&hbus->resources_for_children);
        spin_lock_init(&hbus->config_lock);
        spin_lock_init(&hbus->device_list_lock);
        spin_lock_init(&hbus->retarget_msi_interrupt_lock);
-       init_completion(&hbus->remove_event);
        hbus->wq = alloc_ordered_workqueue("hv_pci_%x", 0,
                                           hbus->sysdata.domain);
        if (!hbus->wq) {
@@@ -3243,8 -3216,9 +3216,9 @@@ static int hv_pci_bus_exit(struct hv_de
                struct pci_packet teardown_packet;
                u8 buffer[sizeof(struct pci_message)];
        } pkt;
-       struct hv_dr_state *dr;
        struct hv_pci_compl comp_pkt;
+       struct hv_pci_dev *hpdev, *tmp;
+       unsigned long flags;
        int ret;
  
        /*
  
        if (!keep_devs) {
                /* Delete any children which might still exist. */
-               dr = kzalloc(sizeof(*dr), GFP_KERNEL);
-               if (dr && hv_pci_start_relations_work(hbus, dr))
-                       kfree(dr);
+               spin_lock_irqsave(&hbus->device_list_lock, flags);
+               list_for_each_entry_safe(hpdev, tmp, &hbus->children, list_entry) {
+                       list_del(&hpdev->list_entry);
+                       if (hpdev->pci_slot)
+                               pci_destroy_slot(hpdev->pci_slot);
+                       /* For the two refs got in new_pcichild_device() */
+                       put_pcichild(hpdev);
+                       put_pcichild(hpdev);
+               }
+               spin_unlock_irqrestore(&hbus->device_list_lock, flags);
        }
  
        ret = hv_send_resources_released(hdev);
@@@ -3301,13 -3282,23 +3282,23 @@@ static int hv_pci_remove(struct hv_devi
  
        hbus = hv_get_drvdata(hdev);
        if (hbus->state == hv_pcibus_installed) {
+               tasklet_disable(&hdev->channel->callback_event);
+               hbus->state = hv_pcibus_removing;
+               tasklet_enable(&hdev->channel->callback_event);
+               destroy_workqueue(hbus->wq);
+               hbus->wq = NULL;
+               /*
+                * At this point, no work is running or can be scheduled
+                * on hbus-wq. We can't race with hv_pci_devices_present()
+                * or hv_pci_eject_device(), it's safe to proceed.
+                */
                /* Remove the bus from PCI's point of view. */
                pci_lock_rescan_remove();
                pci_stop_root_bus(hbus->pci_bus);
                hv_pci_remove_slots(hbus);
                pci_remove_root_bus(hbus->pci_bus);
                pci_unlock_rescan_remove();
-               hbus->state = hv_pcibus_removed;
        }
  
        ret = hv_pci_bus_exit(hdev, false);
        hv_pci_free_bridge_windows(hbus);
        irq_domain_remove(hbus->irq_domain);
        irq_domain_free_fwnode(hbus->sysdata.fwnode);
-       put_hvpcibus(hbus);
-       wait_for_completion(&hbus->remove_event);
-       destroy_workqueue(hbus->wq);
  
        hv_put_dom_num(hbus->sysdata.domain);
  
@@@ -3476,9 -3464,6 +3464,9 @@@ static void __exit exit_hv_pci_drv(void
  
  static int __init init_hv_pci_drv(void)
  {
 +      if (!hv_is_hyperv_initialized())
 +              return -ENODEV;
 +
        /* Set the invalid domain number's bit, so it will not be used */
        set_bit(HVPCI_DOM_INVALID, hvpci_dom_map);
  
diff --combined drivers/pci/pci.c
@@@ -1900,21 -1900,11 +1900,21 @@@ static int pci_enable_device_flags(stru
        int err;
        int i, bars = 0;
  
 -      if (atomic_inc_return(&dev->enable_cnt) > 1) {
 -              pci_update_current_state(dev, dev->current_state);
 -              return 0;               /* already enabled */
 +      /*
 +       * Power state could be unknown at this point, either due to a fresh
 +       * boot or a device removal call.  So get the current power state
 +       * so that things like MSI message writing will behave as expected
 +       * (e.g. if the device really is in D0 at enable time).
 +       */
 +      if (dev->pm_cap) {
 +              u16 pmcsr;
 +              pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr);
 +              dev->current_state = (pmcsr & PCI_PM_CTRL_STATE_MASK);
        }
  
 +      if (atomic_inc_return(&dev->enable_cnt) > 1)
 +              return 0;               /* already enabled */
 +
        bridge = pci_upstream_bridge(dev);
        if (bridge)
                pci_enable_bridge(bridge);
@@@ -5030,6 -5020,16 +5030,16 @@@ static int pci_dev_reset_slot_function(
        return pci_reset_hotplug_slot(dev->slot->hotplug, probe);
  }
  
+ static int pci_reset_bus_function(struct pci_dev *dev, int probe)
+ {
+       int rc;
+       rc = pci_dev_reset_slot_function(dev, probe);
+       if (rc != -ENOTTY)
+               return rc;
+       return pci_parent_bus_reset(dev, probe);
+ }
  static void pci_dev_lock(struct pci_dev *dev)
  {
        pci_cfg_access_lock(dev);
  }
  
  /* Return 1 on successful lock, 0 on contention */
 -static int pci_dev_trylock(struct pci_dev *dev)
 +int pci_dev_trylock(struct pci_dev *dev)
  {
        if (pci_cfg_access_trylock(dev)) {
                if (device_trylock(&dev->dev))
  
        return 0;
  }
 +EXPORT_SYMBOL_GPL(pci_dev_trylock);
  
 -static void pci_dev_unlock(struct pci_dev *dev)
 +void pci_dev_unlock(struct pci_dev *dev)
  {
        device_unlock(&dev->dev);
        pci_cfg_access_unlock(dev);
  }
 +EXPORT_SYMBOL_GPL(pci_dev_unlock);
  
  static void pci_dev_save_and_disable(struct pci_dev *dev)
  {
@@@ -5152,10 -5150,7 +5162,7 @@@ int __pci_reset_function_locked(struct 
        rc = pci_pm_reset(dev, 0);
        if (rc != -ENOTTY)
                return rc;
-       rc = pci_dev_reset_slot_function(dev, 0);
-       if (rc != -ENOTTY)
-               return rc;
-       return pci_parent_bus_reset(dev, 0);
+       return pci_reset_bus_function(dev, 0);
  }
  EXPORT_SYMBOL_GPL(__pci_reset_function_locked);
  
@@@ -5187,11 -5182,8 +5194,8 @@@ int pci_probe_reset_function(struct pci
        rc = pci_pm_reset(dev, 1);
        if (rc != -ENOTTY)
                return rc;
-       rc = pci_dev_reset_slot_function(dev, 1);
-       if (rc != -ENOTTY)
-               return rc;
  
-       return pci_parent_bus_reset(dev, 1);
+       return pci_reset_bus_function(dev, 1);
  }
  
  /**
@@@ -6451,34 -6443,40 +6455,40 @@@ static ssize_t resource_alignment_show(
  
        spin_lock(&resource_alignment_lock);
        if (resource_alignment_param)
-               count = scnprintf(buf, PAGE_SIZE, "%s", resource_alignment_param);
+               count = sysfs_emit(buf, "%s\n", resource_alignment_param);
        spin_unlock(&resource_alignment_lock);
  
-       /*
-        * When set by the command line, resource_alignment_param will not
-        * have a trailing line feed, which is ugly. So conditionally add
-        * it here.
-        */
-       if (count >= 2 && buf[count - 2] != '\n' && count < PAGE_SIZE - 1) {
-               buf[count - 1] = '\n';
-               buf[count++] = 0;
-       }
        return count;
  }
  
  static ssize_t resource_alignment_store(struct bus_type *bus,
                                        const char *buf, size_t count)
  {
-       char *param = kstrndup(buf, count, GFP_KERNEL);
+       char *param, *old, *end;
+       if (count >= (PAGE_SIZE - 1))
+               return -EINVAL;
  
+       param = kstrndup(buf, count, GFP_KERNEL);
        if (!param)
                return -ENOMEM;
  
+       end = strchr(param, '\n');
+       if (end)
+               *end = '\0';
        spin_lock(&resource_alignment_lock);
-       kfree(resource_alignment_param);
-       resource_alignment_param = param;
+       old = resource_alignment_param;
+       if (strlen(param)) {
+               resource_alignment_param = param;
+       } else {
+               kfree(param);
+               resource_alignment_param = NULL;
+       }
        spin_unlock(&resource_alignment_lock);
+       kfree(old);
        return count;
  }
  
diff --combined drivers/pci/probe.c
@@@ -19,6 -19,7 +19,7 @@@
  #include <linux/hypervisor.h>
  #include <linux/irqdomain.h>
  #include <linux/pm_runtime.h>
+ #include <linux/list_sort.h>
  #include "pci.h"
  
  #define CARDBUS_LATENCY_TIMER 176     /* secondary latency timer */
@@@ -874,14 -875,31 +875,31 @@@ static void pci_set_bus_msi_domain(stru
        dev_set_msi_domain(&bus->dev, d);
  }
  
+ static int res_cmp(void *priv, const struct list_head *a,
+                  const struct list_head *b)
+ {
+       struct resource_entry *entry1, *entry2;
+       entry1 = container_of(a, struct resource_entry, node);
+       entry2 = container_of(b, struct resource_entry, node);
+       if (entry1->res->flags != entry2->res->flags)
+               return entry1->res->flags > entry2->res->flags;
+       if (entry1->offset != entry2->offset)
+               return entry1->offset > entry2->offset;
+       return entry1->res->start > entry2->res->start;
+ }
  static int pci_register_host_bridge(struct pci_host_bridge *bridge)
  {
        struct device *parent = bridge->dev.parent;
-       struct resource_entry *window, *n;
+       struct resource_entry *window, *next, *n;
        struct pci_bus *bus, *b;
-       resource_size_t offset;
+       resource_size_t offset, next_offset;
        LIST_HEAD(resources);
-       struct resource *res;
+       struct resource *res, *next_res;
        char addr[64], *fmt;
        const char *name;
        int err;
        device_enable_async_suspend(bus->bridge);
        pci_set_bus_of_node(bus);
        pci_set_bus_msi_domain(bus);
 -      if (bridge->msi_domain && !dev_get_msi_domain(&bus->dev))
 +      if (bridge->msi_domain && !dev_get_msi_domain(&bus->dev) &&
 +          !pci_host_of_has_msi_map(parent))
                bus->bus_flags |= PCI_BUS_FLAGS_NO_MSI;
  
        if (!parent)
        if (nr_node_ids > 1 && pcibus_to_node(bus) == NUMA_NO_NODE)
                dev_warn(&bus->dev, "Unknown NUMA node; performance will be reduced\n");
  
+       /* Sort and coalesce contiguous windows */
+       list_sort(NULL, &resources, res_cmp);
+       resource_list_for_each_entry_safe(window, n, &resources) {
+               if (list_is_last(&window->node, &resources))
+                       break;
+               next = list_next_entry(window, node);
+               offset = window->offset;
+               res = window->res;
+               next_offset = next->offset;
+               next_res = next->res;
+               if (res->flags != next_res->flags || offset != next_offset)
+                       continue;
+               if (res->end + 1 == next_res->start) {
+                       next_res->start = res->start;
+                       res->flags = res->start = res->end = 0;
+               }
+       }
        /* Add initial resources to the bus */
        resource_list_for_each_entry_safe(window, n, &resources) {
-               list_move_tail(&window->node, &bridge->windows);
                offset = window->offset;
                res = window->res;
+               if (!res->end)
+                       continue;
+               list_move_tail(&window->node, &bridge->windows);
  
                if (res->flags & IORESOURCE_BUS)
                        pci_bus_insert_busn_res(bus, bus->number, res->end);
@@@ -1576,26 -1617,6 +1618,26 @@@ static void set_pcie_untrusted(struct p
                dev->untrusted = true;
  }
  
 +static void pci_set_removable(struct pci_dev *dev)
 +{
 +      struct pci_dev *parent = pci_upstream_bridge(dev);
 +
 +      /*
 +       * We (only) consider everything downstream from an external_facing
 +       * device to be removable by the user. We're mainly concerned with
 +       * consumer platforms with user accessible thunderbolt ports that are
 +       * vulnerable to DMA attacks, and we expect those ports to be marked by
 +       * the firmware as external_facing. Devices in traditional hotplug
 +       * slots can technically be removed, but the expectation is that unless
 +       * the port is marked with external_facing, such devices are less
 +       * accessible to user / may not be removed by end user, and thus not
 +       * exposed as "removable" to userspace.
 +       */
 +      if (parent &&
 +          (parent->external_facing || dev_is_removable(&parent->dev)))
 +              dev_set_removable(&dev->dev, DEVICE_REMOVABLE);
 +}
 +
  /**
   * pci_ext_cfg_is_aliased - Is ext config space just an alias of std config?
   * @dev: PCI device
@@@ -1843,8 -1864,6 +1885,8 @@@ int pci_setup_device(struct pci_dev *de
        /* Early fixups, before probing the BARs */
        pci_fixup_device(pci_fixup_early, dev);
  
 +      pci_set_removable(dev);
 +
        pci_info(dev, "[%04x:%04x] type %02x class %#08x\n",
                 dev->vendor, dev->device, dev->hdr_type, dev->class);
  
@@@ -2249,6 -2268,7 +2291,7 @@@ static void pci_release_dev(struct devi
        pci_bus_put(pci_dev->bus);
        kfree(pci_dev->driver_override);
        bitmap_free(pci_dev->dma_alias_mask);
+       dev_dbg(dev, "device released\n");
        kfree(pci_dev);
  }
  
diff --combined drivers/pci/quirks.c
@@@ -27,6 -27,7 +27,7 @@@
  #include <linux/nvme.h>
  #include <linux/platform_data/x86/apple.h>
  #include <linux/pm_runtime.h>
+ #include <linux/suspend.h>
  #include <linux/switchtec.h>
  #include <asm/dma.h>  /* isa_dma_bridge_buggy */
  #include "pci.h"
@@@ -3547,18 -3548,6 +3548,18 @@@ static void quirk_no_bus_reset(struct p
  }
  
  /*
 + * Some NVIDIA GPU devices do not work with bus reset, SBR needs to be
 + * prevented for those affected devices.
 + */
 +static void quirk_nvidia_no_bus_reset(struct pci_dev *dev)
 +{
 +      if ((dev->device & 0xffc0) == 0x2340)
 +              quirk_no_bus_reset(dev);
 +}
 +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
 +                       quirk_nvidia_no_bus_reset);
 +
 +/*
   * Some Atheros AR9xxx and QCA988x chips do not behave after a bus reset.
   * The device will throw a Link Down error on AER-capable systems and
   * regardless of AER, config space of the device is never accessible again
@@@ -3578,16 -3567,6 +3579,16 @@@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_
   */
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CAVIUM, 0xa100, quirk_no_bus_reset);
  
 +/*
 + * Some TI KeyStone C667X devices do not support bus/hot reset.  The PCIESS
 + * automatically disables LTSSM when Secondary Bus Reset is received and
 + * the device stops working.  Prevent bus reset for these devices.  With
 + * this change, the device can be assigned to VMs with VFIO, but it will
 + * leak state between VMs.  Reference
 + * https://e2e.ti.com/support/processors/f/791/t/954382
 + */
 +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, 0xb005, quirk_no_bus_reset);
 +
  static void quirk_no_pm_reset(struct pci_dev *dev)
  {
        /*
@@@ -3656,6 -3635,16 +3657,16 @@@ static void quirk_apple_poweroff_thunde
                return;
        if (pci_pcie_type(dev) != PCI_EXP_TYPE_UPSTREAM)
                return;
+       /*
+        * SXIO/SXFP/SXLF turns off power to the Thunderbolt controller.
+        * We don't know how to turn it back on again, but firmware does,
+        * so we can only use SXIO/SXFP/SXLF if we're suspending via
+        * firmware.
+        */
+       if (!pm_suspend_via_firmware())
+               return;
        bridge = ACPI_HANDLE(&dev->dev);
        if (!bridge)
                return;
@@@ -4840,8 -4829,6 +4851,8 @@@ static const struct pci_dev_acs_enable
        { PCI_VENDOR_ID_AMPERE, 0xE00A, pci_quirk_xgene_acs },
        { PCI_VENDOR_ID_AMPERE, 0xE00B, pci_quirk_xgene_acs },
        { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs },
 +      /* Broadcom multi-function device */
 +      { PCI_VENDOR_ID_BROADCOM, 0x16D7, pci_quirk_mf_endpoint_acs },
        { PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs },
        /* Amazon Annapurna Labs */
        { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs },
@@@ -5243,8 -5230,7 +5254,8 @@@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_S
  static void quirk_amd_harvest_no_ats(struct pci_dev *pdev)
  {
        if ((pdev->device == 0x7312 && pdev->revision != 0x00) ||
 -          (pdev->device == 0x7340 && pdev->revision != 0xc5))
 +          (pdev->device == 0x7340 && pdev->revision != 0xc5) ||
 +          (pdev->device == 0x7341 && pdev->revision != 0x00))
                return;
  
        if (pdev->device == 0x15d8) {
@@@ -5271,7 -5257,6 +5282,7 @@@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_A
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7312, quirk_amd_harvest_no_ats);
  /* AMD Navi14 dGPU */
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7340, quirk_amd_harvest_no_ats);
 +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7341, quirk_amd_harvest_no_ats);
  /* AMD Raven platform iGPU */
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x15d8, quirk_amd_harvest_no_ats);
  #endif /* CONFIG_PCI_ATS */
diff --combined include/linux/pci.h
@@@ -497,7 -497,7 +497,7 @@@ struct pci_dev 
        u16             pasid_features;
  #endif
  #ifdef CONFIG_PCI_P2PDMA
-       struct pci_p2pdma *p2pdma;
+       struct pci_p2pdma __rcu *p2pdma;
  #endif
        u16             acs_cap;        /* ACS Capability offset */
        phys_addr_t     rom;            /* Physical address if not from BAR */
@@@ -862,8 -862,6 +862,8 @@@ struct module
   *              MSI-X vectors available for distribution to the VFs.
   * @err_handler: See Documentation/PCI/pci-error-recovery.rst
   * @groups:   Sysfs attribute groups.
 + * @dev_groups: Attributes attached to the device that will be
 + *              created once it is bound to the driver.
   * @driver:   Driver model structure.
   * @dynids:   List of dynamically added device IDs.
   */
@@@ -881,7 -879,6 +881,7 @@@ struct pci_driver 
        u32  (*sriov_get_vf_total_msix)(struct pci_dev *pf);
        const struct pci_error_handlers *err_handler;
        const struct attribute_group **groups;
 +      const struct attribute_group **dev_groups;
        struct device_driver    driver;
        struct pci_dynids       dynids;
  };
@@@ -1624,9 -1621,6 +1624,9 @@@ void pci_cfg_access_lock(struct pci_de
  bool pci_cfg_access_trylock(struct pci_dev *dev);
  void pci_cfg_access_unlock(struct pci_dev *dev);
  
 +int pci_dev_trylock(struct pci_dev *dev);
 +void pci_dev_unlock(struct pci_dev *dev);
 +
  /*
   * PCI domain support.  Sometimes called PCI segment (eg by ACPI),
   * a PCI domain is defined to be a set of PCI buses which share
@@@ -1778,10 -1772,6 +1778,10 @@@ static inline int pci_request_regions(s
  { return -EIO; }
  static inline void pci_release_regions(struct pci_dev *dev) { }
  
 +static inline int pci_register_io_range(struct fwnode_handle *fwnode,
 +                                      phys_addr_t addr, resource_size_t size)
 +{ return -EINVAL; }
 +
  static inline unsigned long pci_address_to_pio(phys_addr_t addr) { return -1; }
  
  static inline struct pci_bus *pci_find_next_bus(const struct pci_bus *from)
@@@ -2354,7 -2344,6 +2354,7 @@@ int pci_vpd_find_info_keyword(const u8 
  struct device_node;
  struct irq_domain;
  struct irq_domain *pci_host_bridge_of_msi_domain(struct pci_bus *bus);
 +bool pci_host_of_has_msi_map(struct device *dev);
  
  /* Arch may override this (weak) */
  struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus);
  #else /* CONFIG_OF */
  static inline struct irq_domain *
  pci_host_bridge_of_msi_domain(struct pci_bus *bus) { return NULL; }
 +static inline bool pci_host_of_has_msi_map(struct device *dev) { return false; }
  #endif  /* CONFIG_OF */
  
  static inline struct device_node *