Merge drm/drm-next into drm-misc-next
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 20 Jun 2022 16:21:25 +0000 (18:21 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 20 Jun 2022 16:21:25 +0000 (18:21 +0200)
Backmerging to get new regmap APIs of v5.19-rc1.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
12 files changed:
1  2 
MAINTAINERS
drivers/dma-buf/dma-buf.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/bridge/Kconfig
drivers/gpu/drm/display/drm_dp_mst_topology.c
drivers/gpu/drm/msm/dp/dp_parser.c
drivers/gpu/drm/msm/dsi/dsi_host.c
drivers/video/fbdev/core/fbmem.c
drivers/video/fbdev/efifb.c
drivers/video/fbdev/simplefb.c
include/drm/drm_edid.h
include/uapi/linux/dma-buf.h

diff --combined MAINTAINERS
index 4fcf76fbb6d98c3284aa60c2bdaa51f4a1dd7bfd,39fcbdd678a2bb48cc3065f4228d92502f902c8f..3412310537ccd3d5b6ddee5f8072e37abce6d986
@@@ -382,7 -382,7 +382,7 @@@ F: include/acpi
  F:    tools/power/acpi/
  
  ACPI FOR ARM64 (ACPI/arm64)
- M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  M:    Hanjun Guo <guohanjun@huawei.com>
  M:    Sudeep Holla <sudeep.holla@arm.com>
  L:    linux-acpi@vger.kernel.org
@@@ -820,7 -820,7 +820,7 @@@ S: Maintaine
  F:    drivers/mailbox/mailbox-altera.c
  
  ALTERA MSGDMA IP CORE DRIVER
- M:    Olivier Dautricourt <olivier.dautricourt@orolia.com>
+ M:    Olivier Dautricourt <olivierdautricourt@gmail.com>
  R:    Stefan Roese <sr@denx.de>
  L:    dmaengine@vger.kernel.org
  S:    Odd Fixes
@@@ -1044,7 -1044,6 +1044,6 @@@ F:      arch/arm64/boot/dts/amd/amd-seattle-
  F:    drivers/net/ethernet/amd/xgbe/
  
  AMD SENSOR FUSION HUB DRIVER
- M:    Nehal Shah <nehal-bakulchandra.shah@amd.com>
  M:    Basavaraj Natikar <basavaraj.natikar@amd.com>
  L:    linux-input@vger.kernel.org
  S:    Maintained
@@@ -1091,6 -1090,14 +1090,14 @@@ W:    https://ez.analog.com/linux-software
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
  F:    drivers/iio/adc/ad7292.c
  
+ ANALOG DEVICES INC AD3552R DRIVER
+ M:    Nuno Sá <nuno.sa@analog.com>
+ L:    linux-iio@vger.kernel.org
+ S:    Supported
+ W:    https://ez.analog.com/linux-software-drivers
+ F:    Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
+ F:    drivers/iio/dac/ad3552r.c
  ANALOG DEVICES INC AD7293 DRIVER
  M:    Antoniu Miclaus <antoniu.miclaus@analog.com>
  L:    linux-iio@vger.kernel.org
@@@ -1376,14 -1383,6 +1383,6 @@@ L:     linux-input@vger.kernel.or
  S:    Odd fixes
  F:    drivers/input/mouse/bcm5974.c
  
- APPLE DART IOMMU DRIVER
- M:    Sven Peter <sven@svenpeter.dev>
- R:    Alyssa Rosenzweig <alyssa@rosenzweig.io>
- L:    iommu@lists.linux-foundation.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/iommu/apple,dart.yaml
- F:    drivers/iommu/apple-dart.c
  APPLE PCIE CONTROLLER DRIVER
  M:    Alyssa Rosenzweig <alyssa@rosenzweig.io>
  M:    Marc Zyngier <maz@kernel.org>
@@@ -1447,6 -1446,7 +1446,7 @@@ F:      drivers/media/i2c/aptina-pll.
  
  AQUACOMPUTER D5 NEXT PUMP SENSOR DRIVER
  M:    Aleksa Savic <savicaleksa83@gmail.com>
+ M:    Jack Doan <me@jackdoan.com>
  L:    linux-hwmon@vger.kernel.org
  S:    Maintained
  F:    Documentation/hwmon/aquacomputer_d5next.rst
@@@ -1507,7 -1507,7 +1507,7 @@@ F:      drivers/clocksource/arm_arch_timer.
  ARM HDLCD DRM DRIVER
  M:    Liviu Dudau <liviu.dudau@arm.com>
  S:    Supported
- F:    Documentation/devicetree/bindings/display/arm,hdlcd.txt
+ F:    Documentation/devicetree/bindings/display/arm,hdlcd.yaml
  F:    drivers/gpu/drm/arm/hdlcd_*
  
  ARM INTEGRATOR, VERSATILE AND REALVIEW SUPPORT
@@@ -1526,10 -1526,7 +1526,7 @@@ F:     Documentation/devicetree/bindings/mt
  F:    arch/arm/boot/dts/arm-realview-*
  F:    arch/arm/boot/dts/integrator*
  F:    arch/arm/boot/dts/versatile*
- F:    arch/arm/mach-integrator/
- F:    arch/arm/mach-realview/
  F:    arch/arm/mach-versatile/
- F:    arch/arm/plat-versatile/
  F:    drivers/bus/arm-integrator-lm.c
  F:    drivers/clk/versatile/
  F:    drivers/i2c/busses/i2c-versatile.c
@@@ -1545,7 -1542,7 +1542,7 @@@ M:      Mihail Atanassov <mihail.atanassov@a
  L:    Mali DP Maintainers <malidp@foss.arm.com>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
- F:    Documentation/devicetree/bindings/display/arm,komeda.txt
+ F:    Documentation/devicetree/bindings/display/arm,komeda.yaml
  F:    Documentation/gpu/komeda-kms.rst
  F:    drivers/gpu/drm/arm/display/include/
  F:    drivers/gpu/drm/arm/display/komeda/
@@@ -1567,7 -1564,7 +1564,7 @@@ M:      Brian Starkey <brian.starkey@arm.com
  L:    Mali DP Maintainers <malidp@foss.arm.com>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
- F:    Documentation/devicetree/bindings/display/arm,malidp.txt
+ F:    Documentation/devicetree/bindings/display/arm,malidp.yaml
  F:    Documentation/gpu/afbc.rst
  F:    drivers/gpu/drm/arm/
  
@@@ -1837,7 -1834,11 +1834,11 @@@ F:    Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/clock/apple,nco.yaml
  F:    Documentation/devicetree/bindings/i2c/apple,i2c.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/apple,*
+ F:    Documentation/devicetree/bindings/iommu/apple,dart.yaml
+ F:    Documentation/devicetree/bindings/iommu/apple,sart.yaml
  F:    Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
+ F:    Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml
+ F:    Documentation/devicetree/bindings/nvmem/apple,efuses.yaml
  F:    Documentation/devicetree/bindings/pci/apple,pcie.yaml
  F:    Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
  F:    Documentation/devicetree/bindings/power/apple*
@@@ -1846,14 -1847,18 +1847,18 @@@ F:   arch/arm64/boot/dts/apple
  F:    drivers/clk/clk-apple-nco.c
  F:    drivers/i2c/busses/i2c-pasemi-core.c
  F:    drivers/i2c/busses/i2c-pasemi-platform.c
+ F:    drivers/iommu/apple-dart.c
  F:    drivers/irqchip/irq-apple-aic.c
  F:    drivers/mailbox/apple-mailbox.c
+ F:    drivers/nvme/host/apple.c
+ F:    drivers/nvmem/apple-efuses.c
  F:    drivers/pinctrl/pinctrl-apple-gpio.c
  F:    drivers/soc/apple/*
  F:    drivers/watchdog/apple_wdt.c
  F:    include/dt-bindings/interrupt-controller/apple-aic.h
  F:    include/dt-bindings/pinctrl/apple.h
  F:    include/linux/apple-mailbox.h
+ F:    include/linux/soc/apple/*
  
  ARM/ARTPEC MACHINE SUPPORT
  M:    Jesper Nilsson <jesper.nilsson@axis.com>
@@@ -2004,7 -2009,7 +2009,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  T:    git git://github.com/ulli-kroll/linux.git
  F:    Documentation/devicetree/bindings/arm/gemini.yaml
- F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.txt
+ F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.yaml
  F:    Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
  F:    Documentation/devicetree/bindings/rtc/faraday,ftrtc010.yaml
  F:    arch/arm/boot/dts/gemini*
@@@ -2130,6 -2135,18 +2135,18 @@@ T:    git git://git.kernel.org/pub/scm/lin
  F:    arch/arm/mach-sa1100/include/mach/jornada720.h
  F:    arch/arm/mach-sa1100/jornada720.c
  
+ ARM/HPE GXP ARCHITECTURE
+ M:    Jean-Marie Verdun <verdun@hpe.com>
+ M:    Nick Hawkins <nick.hawkins@hpe.com>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/arm/hpe,gxp.yaml
+ F:    Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml
+ F:    arch/arm/boot/dts/hpe-bmc*
+ F:    arch/arm/boot/dts/hpe-gxp*
+ F:    arch/arm/mach-hpe/
+ F:    drivers/clocksource/timer-gxp.c
+ F:    drivers/watchdog/gxp-wdt.c
  ARM/IGEP MACHINE SUPPORT
  M:    Enric Balletbo i Serra <eballetbo@gmail.com>
  M:    Javier Martinez Canillas <javier@dowhile0.org>
@@@ -2548,7 -2565,7 +2565,7 @@@ F:      drivers/pci/controller/dwc/pcie-qcom
  F:    drivers/phy/qualcomm/
  F:    drivers/power/*/msm*
  F:    drivers/reset/reset-qcom-*
- F:    drivers/scsi/ufs/ufs-qcom*
+ F:    drivers/ufs/host/ufs-qcom*
  F:    drivers/spi/spi-geni-qcom.c
  F:    drivers/spi/spi-qcom-qspi.c
  F:    drivers/spi/spi-qup.c
@@@ -2572,7 -2589,7 +2589,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/gpio/gpio-rda.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.txt
  F:    Documentation/devicetree/bindings/serial/rda,8810pl-uart.yaml
- F:    Documentation/devicetree/bindings/timer/rda,8810pl-timer.txt
+ F:    Documentation/devicetree/bindings/timer/rda,8810pl-timer.yaml
  F:    arch/arm/boot/dts/rda8810pl-*
  F:    drivers/clocksource/timer-rda.c
  F:    drivers/gpio/gpio-rda.c
@@@ -2945,7 -2962,7 +2962,7 @@@ N:      uniphie
  ARM/VERSATILE EXPRESS PLATFORM
  M:    Liviu Dudau <liviu.dudau@arm.com>
  M:    Sudeep Holla <sudeep.holla@arm.com>
- M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    */*/*/vexpress*
@@@ -3101,6 -3118,16 +3118,16 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
  F:    drivers/mmc/host/sdhci-of-aspeed*
  
+ ASPEED SMC SPI DRIVER
+ M:    Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
+ M:    Cédric Le Goater <clg@kaod.org>
+ L:    linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
+ L:    openbmc@lists.ozlabs.org (moderated for non-subscribers)
+ L:    linux-spi@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/spi/aspeed,ast2600-fmc.yaml
+ F:    drivers/spi/spi-aspeed-smc.c
  ASPEED VIDEO ENGINE DRIVER
  M:    Eddie James <eajames@linux.ibm.com>
  L:    linux-media@vger.kernel.org
@@@ -3506,10 -3533,14 +3533,14 @@@ R:   Andy Shevchenko <andriy.shevchenko@l
  R:    Rasmus Villemoes <linux@rasmusvillemoes.dk>
  S:    Maintained
  F:    include/linux/bitmap.h
+ F:    include/linux/cpumask.h
  F:    include/linux/find.h
+ F:    include/linux/nodemask.h
  F:    lib/bitmap.c
+ F:    lib/cpumask.c
  F:    lib/find_bit.c
  F:    lib/find_bit_benchmark.c
+ F:    lib/nodemask.c
  F:    lib/test_bitmap.c
  F:    tools/include/linux/bitmap.h
  F:    tools/include/linux/find.h
@@@ -3571,8 -3602,9 +3602,9 @@@ M:      Andy Gospodarek <andy@greyhouse.net
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://sourceforge.net/projects/bonding/
+ F:    Documentation/networking/bonding.rst
  F:    drivers/net/bonding/
- F:    include/net/bonding.h
+ F:    include/net/bond*
  F:    include/uapi/linux/if_bonding.h
  
  BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
@@@ -3725,6 -3757,13 +3757,13 @@@ F:    include/linux/bpf_lsm.
  F:    kernel/bpf/bpf_lsm.c
  F:    security/bpf/
  
+ BPFTOOL
+ M:    Quentin Monnet <quentin@isovalent.com>
+ L:    bpf@vger.kernel.org
+ S:    Maintained
+ F:    kernel/bpf/disasm.*
+ F:    tools/bpf/bpftool/
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <michael.chan@broadcom.com>
  L:    netdev@vger.kernel.org
@@@ -3742,9 -3781,23 +3781,23 @@@ F:    drivers/net/dsa/bcm_sf2
  F:    include/linux/dsa/brcm.h
  F:    include/linux/platform_data/b53.h
  
+ BROADCOM BCMBCA ARM ARCHITECTURE
+ M:    William Zhang <william.zhang@broadcom.com>
+ M:    Anand Gore <anand.gore@broadcom.com>
+ M:    Kursad Oney <kursad.oney@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ T:    git git://github.com/broadcom/stblinux.git
+ F:    Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
+ F:    arch/arm/boot/dts/bcm47622.dtsi
+ F:    arch/arm/boot/dts/bcm947622.dts
+ N:    bcmbca
+ N:    bcm[9]?47622
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
  M:    Nicolas Saenz Julienne <nsaenz@kernel.org>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -3754,12 -3807,13 +3807,13 @@@ F:   drivers/pci/controller/pcie-brcmstb.
  F:    drivers/staging/vc04_services
  N:    bcm2711
  N:    bcm283*
+ N:    raspberrypi
  
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Maintained
  T:    git git://github.com/broadcom/mach-bcm
  F:    arch/arm/mach-bcm/
@@@ -3779,7 -3833,7 +3833,7 @@@ F:      arch/mips/include/asm/mach-bcm47xx/
  
  BROADCOM BCM4908 ETHERNET DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/brcm,bcm4908-enet.yaml
@@@ -3788,7 -3842,7 +3842,7 @@@ F:      drivers/net/ethernet/broadcom/unimac
  
  BROADCOM BCM4908 PINMUX DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/brcm,bcm4908-pinctrl.yaml
@@@ -3798,7 -3852,7 +3852,7 @@@ BROADCOM BCM5301X ARM ARCHITECTUR
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Hauke Mehrtens <hauke@hauke-m.de>
  M:    Rafał Miłecki <zajec5@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/bcm470*
@@@ -3809,7 -3863,7 +3863,7 @@@ F:      arch/arm/mach-bcm/bcm_5301x.
  BROADCOM BCM53573 ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Rafał Miłecki <rafal@milecki.pl>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/bcm47189*
@@@ -3817,7 -3871,7 +3871,7 @@@ F:      arch/arm/boot/dts/bcm53573
  
  BROADCOM BCM63XX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -3831,7 -3885,7 +3885,7 @@@ F:      drivers/usb/gadget/udc/bcm63xx_udc.
  
  BROADCOM BCM7XXX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -3849,21 -3903,21 +3903,21 @@@ N:   bcm712
  BROADCOM BDC DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
  L:    linux-usb@vger.kernel.org
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/usb/brcm,bdc.yaml
  F:    drivers/usb/gadget/udc/bdc/
  
  BROADCOM BMIPS CPUFREQ DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  F:    drivers/cpufreq/bmips-cpufreq.c
  
  BROADCOM BMIPS MIPS ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mips@vger.kernel.org
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -3931,14 -3985,14 +3985,14 @@@ F:   drivers/net/wireless/broadcom/brcm80
  BROADCOM BRCMSTB GPIO DRIVER
  M:    Doug Berger <opendmb@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Supported
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
  F:    drivers/gpio/gpio-brcmstb.c
  
  BROADCOM BRCMSTB I2C DRIVER
  M:    Kamal Dasu <kdasu.kdev@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-i2c@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml
@@@ -3946,7 -4000,7 +4000,7 @@@ F:      drivers/i2c/busses/i2c-brcmstb.
  
  BROADCOM BRCMSTB UART DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-serial@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml
@@@ -3954,7 -4008,7 +4008,7 @@@ F:      drivers/tty/serial/8250/8250_bcm7271
  
  BROADCOM BRCMSTB USB EHCI DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml
@@@ -3962,7 -4016,7 +4016,7 @@@ F:      drivers/usb/host/ehci-brcm.
  
  BROADCOM BRCMSTB USB PIN MAP DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/usb/brcm,usb-pinmap.yaml
@@@ -3970,14 -4024,14 +4024,14 @@@ F:   drivers/usb/misc/brcmstb-usb-pinmap.
  
  BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/phy/broadcom/phy-brcm-usb*
  
  BROADCOM ETHERNET PHY DRIVERS
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt
@@@ -3988,7 -4042,7 +4042,7 @@@ F:      include/linux/brcmphy.
  BROADCOM GENET ETHERNET DRIVER
  M:    Doug Berger <opendmb@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml
@@@ -4002,7 -4056,7 +4056,7 @@@ F:      include/linux/platform_data/mdio-bcm
  BROADCOM IPROC ARM ARCHITECTURE
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -4030,7 -4084,7 +4084,7 @@@ N:      stingra
  
  BROADCOM IPROC GBIT ETHERNET DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/brcm,amac.yaml
@@@ -4039,7 -4093,7 +4093,7 @@@ F:      drivers/net/ethernet/broadcom/unimac
  
  BROADCOM KONA GPIO DRIVER
  M:    Ray Jui <rjui@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Supported
  F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
  F:    drivers/gpio/gpio-bcm-kona.c
@@@ -4072,7 -4126,7 +4126,7 @@@ F:      drivers/firmware/broadcom/
  BROADCOM PMB (POWER MANAGEMENT BUS) DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -4088,7 -4142,7 +4142,7 @@@ F:      include/linux/bcma
  
  BROADCOM SPI DRIVER
  M:    Kamal Dasu <kdasu.kdev@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
  F:    drivers/spi/spi-bcm-qspi.*
@@@ -4097,7 -4151,7 +4151,7 @@@ F:      drivers/spi/spi-iproc-qspi.
  
  BROADCOM STB AVS CPUFREQ DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/cpufreq/brcm,stb-avs-cpu-freq.txt
@@@ -4105,7 -4159,7 +4159,7 @@@ F:      drivers/cpufreq/brcmstb
  
  BROADCOM STB AVS TMON DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/thermal/brcm,avs-tmon.yaml
@@@ -4113,7 -4167,7 +4167,7 @@@ F:      drivers/thermal/broadcom/brcmstb
  
  BROADCOM STB DPFE DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.yaml
@@@ -4122,7 -4176,7 +4176,7 @@@ F:      drivers/memory/brcmstb_dpfe.
  BROADCOM STB NAND FLASH DRIVER
  M:    Brian Norris <computersforpeace@gmail.com>
  M:    Kamal Dasu <kdasu.kdev@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mtd@lists.infradead.org
  S:    Maintained
  F:    drivers/mtd/nand/raw/brcmnand/
@@@ -4132,7 -4186,7 +4186,7 @@@ BROADCOM STB PCIE DRIVE
  M:    Jim Quinlan <jim2101024@gmail.com>
  M:    Nicolas Saenz Julienne <nsaenz@kernel.org>
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
@@@ -4140,7 -4194,7 +4194,7 @@@ F:      drivers/pci/controller/pcie-brcmstb.
  
  BROADCOM SYSTEMPORT ETHERNET DRIVER
  M:    Florian Fainelli <f.fainelli@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bcmsysport.*
@@@ -4157,7 -4211,7 +4211,7 @@@ F:      drivers/net/ethernet/broadcom/tg3.
  
  BROADCOM VK DRIVER
  M:    Scott Branden <scott.branden@broadcom.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  S:    Supported
  F:    drivers/misc/bcm-vk/
  F:    include/uapi/linux/misc/bcm_vk.h
@@@ -4375,7 -4429,6 +4429,6 @@@ 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
  F:    include/linux/can/length.h
  F:    include/linux/can/platform/
  F:    include/linux/can/rx-offload.h
@@@ -4546,8 -4599,8 +4599,8 @@@ F:      drivers/power/supply/cw2015_battery.
  
  CEPH COMMON CODE (LIBCEPH)
  M:    Ilya Dryomov <idryomov@gmail.com>
- M:    Jeff Layton <jlayton@kernel.org>
  M:    Xiubo Li <xiubli@redhat.com>
+ R:    Jeff Layton <jlayton@kernel.org>
  L:    ceph-devel@vger.kernel.org
  S:    Supported
  W:    http://ceph.com/
@@@ -4557,9 -4610,9 +4610,9 @@@ F:      include/linux/crush
  F:    net/ceph/
  
  CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
- M:    Jeff Layton <jlayton@kernel.org>
  M:    Xiubo Li <xiubli@redhat.com>
  M:    Ilya Dryomov <idryomov@gmail.com>
+ R:    Jeff Layton <jlayton@kernel.org>
  L:    ceph-devel@vger.kernel.org
  S:    Supported
  W:    http://ceph.com/
@@@ -4574,7 -4627,9 +4627,9 @@@ L:      keyrings@vger.kernel.or
  S:    Maintained
  F:    Documentation/admin-guide/module-signing.rst
  F:    certs/
+ F:    scripts/check-blacklist-hashes.awk
  F:    scripts/sign-file.c
+ F:    tools/certs/
  
  CFAG12864B LCD DRIVER
  M:    Miguel Ojeda <ojeda@kernel.org>
@@@ -4619,6 -4674,7 +4674,7 @@@ F:      Documentation/dev-tools/checkpatch.r
  
  CHINESE DOCUMENTATION
  M:    Alex Shi <alexs@kernel.org>
+ M:    Yanteng Si <siyanteng@loongson.cn>
  S:    Maintained
  F:    Documentation/translations/zh_CN/
  
@@@ -4692,10 -4748,12 +4748,12 @@@ CIRRUS LOGIC AUDIO CODEC DRIVER
  M:    James Schulman <james.schulman@cirrus.com>
  M:    David Rhodes <david.rhodes@cirrus.com>
  M:    Lucas Tanure <tanureal@opensource.cirrus.com>
+ M:    Richard Fitzgerald <rf@opensource.cirrus.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    patches@opensource.cirrus.com
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/cirrus,cs*
+ F:    include/dt-bindings/sound/cs*
  F:    sound/pci/hda/cs*
  F:    sound/soc/codecs/cs*
  
@@@ -4996,6 -5054,7 +5054,7 @@@ F:      Documentation/admin-guide/cgroup-v1
  F:    Documentation/admin-guide/cgroup-v2.rst
  F:    include/linux/cgroup*
  F:    kernel/cgroup/
+ F:    tools/testing/selftests/cgroup/
  
  CONTROL GROUP - BLOCK IO CONTROLLER (BLKIO)
  M:    Tejun Heo <tj@kernel.org>
@@@ -5024,11 -5083,15 +5083,15 @@@ M:   Johannes Weiner <hannes@cmpxchg.org
  M:    Michal Hocko <mhocko@kernel.org>
  M:    Roman Gushchin <roman.gushchin@linux.dev>
  M:    Shakeel Butt <shakeelb@google.com>
+ R:    Muchun Song <songmuchun@bytedance.com>
  L:    cgroups@vger.kernel.org
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/memcontrol.c
  F:    mm/swap_cgroup.c
+ F:    tools/testing/selftests/cgroup/memcg_protection.m
+ F:    tools/testing/selftests/cgroup/test_kmem.c
+ F:    tools/testing/selftests/cgroup/test_memcontrol.c
  
  CORETEMP HARDWARE MONITORING DRIVER
  M:    Fenghua Yu <fenghua.yu@intel.com>
@@@ -5050,12 -5113,6 +5113,6 @@@ S:     Maintaine
  F:    Documentation/hwmon/corsair-psu.rst
  F:    drivers/hwmon/corsair-psu.c
  
- COSA/SRP SYNC SERIAL DRIVER
- M:    Jan "Yenya" Kasprzak <kas@fi.muni.cz>
- S:    Maintained
- W:    http://www.fi.muni.cz/~kas/cosa/
- F:    drivers/net/wan/cosa*
  COUNTER SUBSYSTEM
  M:    William Breathitt Gray <vilhelm.gray@gmail.com>
  L:    linux-iio@vger.kernel.org
@@@ -5132,7 -5189,7 +5189,7 @@@ F:      arch/x86/kernel/cpuid.
  F:    arch/x86/kernel/msr.c
  
  CPUIDLE DRIVER - ARM BIG LITTLE
- M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  M:    Daniel Lezcano <daniel.lezcano@linaro.org>
  L:    linux-pm@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -5152,7 -5209,7 +5209,7 @@@ F:      drivers/cpuidle/cpuidle-exynos.
  F:    include/linux/platform_data/cpuidle-exynos.h
  
  CPUIDLE DRIVER - ARM PSCI
- M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  M:    Sudeep Holla <sudeep.holla@arm.com>
  L:    linux-pm@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -5237,6 -5294,14 +5294,14 @@@ T:    git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
  F:    drivers/media/platform/sunxi/sun6i-csi/
  
+ CTU CAN FD DRIVER
+ M:    Pavel Pisa <pisa@cmp.felk.cvut.cz>
+ M:    Ondrej Ille <ondrej.ille@gmail.com>
+ L:    linux-can@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/net/can/ctu,ctucanfd.yaml
+ F:    drivers/net/can/ctucanfd/
  CW1200 WLAN driver
  M:    Solomon Peachy <pizza@shaftnet.org>
  S:    Maintained
@@@ -5439,6 -5504,7 +5504,7 @@@ F:      net/ax25/sysctl_net_ax25.
  
  DATA ACCESS MONITOR
  M:    SeongJae Park <sj@kernel.org>
+ L:    damon@lists.linux.dev
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-kernel-mm-damon
@@@ -5917,7 -5983,7 +5983,7 @@@ R:      Benjamin Gaignard <benjamin.gaignard
  R:    Liam Mark <lmark@codeaurora.org>
  R:    Laura Abbott <labbott@redhat.com>
  R:    Brian Starkey <Brian.Starkey@arm.com>
- R:    John Stultz <john.stultz@linaro.org>
+ R:    John Stultz <jstultz@google.com>
  L:    linux-media@vger.kernel.org
  L:    dri-devel@lists.freedesktop.org
  L:    linaro-mm-sig@lists.linaro.org (moderated for non-subscribers)
@@@ -5992,6 -6058,12 +6058,12 @@@ L:    linux-doc@vger.kernel.or
  S:    Maintained
  F:    Documentation/translations/it_IT
  
+ DOCUMENTATION/JAPANESE
+ R:    Akira Yokosawa <akiyks@gmail.com>
+ L:    linux-doc@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/translations/ja_JP
  DONGWOON DW9714 LENS VOICE COIL DRIVER
  M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    linux-media@vger.kernel.org
@@@ -6013,7 -6085,7 +6085,7 @@@ M:      Sakari Ailus <sakari.ailus@linux.int
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
- F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.txt
+ F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
  F:    drivers/media/i2c/dw9807-vcm.c
  
  DOUBLETALK DRIVER
@@@ -6212,12 -6284,6 +6284,12 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/i810/
  F:    include/uapi/drm/i810_drm.h
  
 +DRM DRIVER FOR LOGICVC DISPLAY CONTROLLER
 +M:    Paul Kocialkowski <paul.kocialkowski@bootlin.com>
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/logicvc/
 +
  DRM DRIVER FOR LVDS PANELS
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    dri-devel@lists.freedesktop.org
@@@ -6264,8 -6330,9 +6336,9 @@@ F:      drivers/gpu/drm/tiny/panel-mipi-dbi.
  
  DRM DRIVER FOR MSM ADRENO GPU
  M:    Rob Clark <robdclark@gmail.com>
- M:    Sean Paul <sean@poorly.run>
- R:    Abhinav Kumar <quic_abhinavk@quicinc.com>
+ M:    Abhinav Kumar <quic_abhinavk@quicinc.com>
+ M:    Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
+ R:    Sean Paul <sean@poorly.run>
  L:    linux-arm-msm@vger.kernel.org
  L:    dri-devel@lists.freedesktop.org
  L:    freedreno@lists.freedesktop.org
@@@ -6611,7 -6678,7 +6684,7 @@@ F:      drivers/gpu/drm/gma500
  DRM DRIVERS FOR HISILICON
  M:    Xinliang Liu <xinliang.liu@linaro.org>
  M:    Tian Tao  <tiantao6@hisilicon.com>
- R:    John Stultz <john.stultz@linaro.org>
+ R:    John Stultz <jstultz@google.com>
  R:    Xinwei Kong <kong.kongxinwei@hisilicon.com>
  R:    Chen Feng <puck.chen@hisilicon.com>
  L:    dri-devel@lists.freedesktop.org
@@@ -7408,7 -7475,6 +7481,6 @@@ L:      linux-mm@kvack.or
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/execve
  F:    arch/alpha/kernel/binfmt_loader.c
- F:    arch/x86/ia32/ia32_aout.c
  F:    fs/*binfmt_*.c
  F:    fs/exec.c
  F:    include/linux/binfmts.h
@@@ -7486,6 -7552,7 +7558,7 @@@ S:      Maintaine
  F:    Documentation/admin-guide/bootconfig.rst
  F:    fs/proc/bootconfig.c
  F:    include/linux/bootconfig.h
+ F:    lib/bootconfig-data.S
  F:    lib/bootconfig.c
  F:    tools/bootconfig/*
  F:    tools/bootconfig/scripts/*
@@@ -7524,7 -7591,7 +7597,7 @@@ F:      Documentation/hwmon/f71805f.rs
  F:    drivers/hwmon/f71805f.c
  
  FADDR2LINE
- M:    Josh Poimboeuf <jpoimboe@redhat.com>
+ M:    Josh Poimboeuf <jpoimboe@kernel.org>
  S:    Maintained
  F:    scripts/faddr2line
  
@@@ -7595,6 -7662,7 +7668,7 @@@ F:      include/uapi/scsi/fc
  
  FILE LOCKING (flock() and fcntl()/lockf())
  M:    Jeff Layton <jlayton@kernel.org>
+ M:    Chuck Lever <chuck.lever@oracle.com>
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
  F:    fs/fcntl.c
@@@ -7679,6 -7747,7 +7753,7 @@@ F:      include/linux/arm_ffa.
  
  FIRMWARE LOADER (request_firmware)
  M:    Luis Chamberlain <mcgrof@kernel.org>
+ M:    Russ Weight <russell.h.weight@intel.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/firmware_class/
@@@ -7747,7 -7816,7 +7822,7 @@@ R:      Tom Rix <trix@redhat.com
  L:    linux-fpga@vger.kernel.org
  S:    Maintained
  Q:    http://patchwork.kernel.org/project/linux-fpga/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga.git
  F:    Documentation/devicetree/bindings/fpga/
  F:    Documentation/driver-api/fpga/
  F:    Documentation/fpga/
@@@ -8137,7 -8206,7 +8212,7 @@@ M:      Ingo Molnar <mingo@redhat.com
  R:    Peter Zijlstra <peterz@infradead.org>
  R:    Darren Hart <dvhart@infradead.org>
  R:    Davidlohr Bueso <dave@stgolabs.net>
- R:    André Almeida <andrealmeid@collabora.com>
+ R:    André Almeida <andrealmeid@igalia.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
@@@ -8373,7 -8442,7 +8448,7 @@@ M:      Mika Westerberg <mika.westerberg@lin
  M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  L:    linux-gpio@vger.kernel.org
  L:    linux-acpi@vger.kernel.org
- S:    Maintained
+ S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git
  F:    Documentation/firmware-guide/acpi/gpio-properties.rst
  F:    drivers/gpio/gpiolib-acpi.c
@@@ -8410,7 -8479,7 +8485,7 @@@ M:      Linus Walleij <linus.walleij@linaro.
  M:    Bartosz Golaszewski <brgl@bgdev.pl>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
  F:    Documentation/ABI/obsolete/sysfs-gpio
  F:    Documentation/ABI/testing/gpio-cdev
  F:    Documentation/admin-guide/gpio/
@@@ -8581,17 -8650,6 +8656,6 @@@ L:     linux-efi@vger.kernel.or
  S:    Maintained
  F:    block/partitions/efi.*
  
- H8/300 ARCHITECTURE
- M:    Yoshinori Sato <ysato@users.sourceforge.jp>
- L:    uclinux-h8-devel@lists.sourceforge.jp (moderated for non-subscribers)
- S:    Maintained
- W:    http://uclinux-h8.sourceforge.jp
- T:    git git://git.sourceforge.jp/gitroot/uclinux-h8/linux.git
- F:    arch/h8300/
- F:    drivers/clk/h8300/
- F:    drivers/clocksource/h8300_*.c
- F:    drivers/irqchip/irq-renesas-h8*.c
  HABANALABS PCI DRIVER
  M:    Oded Gabbay <ogabbay@kernel.org>
  S:    Supported
@@@ -8777,6 -8835,14 +8841,14 @@@ F:    drivers/hid/hid-sensor-
  F:    drivers/iio/*/hid-*
  F:    include/linux/hid-sensor-*
  
+ HID WACOM DRIVER
+ M:    Ping Cheng <ping.cheng@wacom.com>
+ M:    Jason Gerecke  <jason.gerecke@wacom.com>
+ L:    linux-input@vger.kernel.org
+ S:    Maintained
+ F:    drivers/hid/wacom.h
+ F:    drivers/hid/wacom_*
  HIGH-RESOLUTION TIMERS, CLOCKEVENTS
  M:    Thomas Gleixner <tglx@linutronix.de>
  L:    linux-kernel@vger.kernel.org
@@@ -8792,7 -8858,6 +8864,6 @@@ F:      kernel/time/timer_*.
  HIGH-SPEED SCC DRIVER FOR AX.25
  L:    linux-hams@vger.kernel.org
  S:    Orphan
- F:    drivers/net/hamradio/dmascc.c
  F:    drivers/net/hamradio/scc.c
  
  HIGHPOINT ROCKETRAID 3xxx RAID DRIVER
@@@ -8873,7 -8938,7 +8944,7 @@@ F:      Documentation/devicetree/bindings/ne
  F:    drivers/net/ethernet/hisilicon/
  
  HIKEY960 ONBOARD USB GPIO HUB DRIVER
- M:    John Stultz <john.stultz@linaro.org>
+ M:    John Stultz <jstultz@google.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/misc/hisi_hikey_usb.c
@@@ -9028,8 -9093,16 +9099,16 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/input/touchscreen/htcpen.c
  
+ HTE SUBSYSTEM
+ M:    Dipen Patel <dipenp@nvidia.com>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/timestamp/
+ F:    Documentation/driver-api/hte/
+ F:    drivers/hte/
+ F:    include/linux/hte.h
  HTS221 TEMPERATURE-HUMIDITY IIO DRIVER
- M:    Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
+ M:    Lorenzo Bianconi <lorenzo@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  W:    http://www.st.com/
@@@ -9042,16 -9115,20 +9121,20 @@@ S:   Orpha
  F:    Documentation/networking/device_drivers/ethernet/huawei/hinic.rst
  F:    drivers/net/ethernet/huawei/hinic/
  
- HUGETLB FILESYSTEM
+ HUGETLB SUBSYSTEM
  M:    Mike Kravetz <mike.kravetz@oracle.com>
+ M:    Muchun Song <songmuchun@bytedance.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-kernel-mm-hugepages
  F:    Documentation/admin-guide/mm/hugetlbpage.rst
  F:    Documentation/vm/hugetlbfs_reserv.rst
+ F:    Documentation/vm/vmemmap_dedup.rst
  F:    fs/hugetlbfs/
  F:    include/linux/hugetlb.h
  F:    mm/hugetlb.c
+ F:    mm/hugetlb_vmemmap.c
+ F:    mm/hugetlb_vmemmap.h
  
  HVA ST MEDIA DRIVER
  M:    Jean-Christophe Trotin <jean-christophe.trotin@foss.st.com>
@@@ -9293,13 -9370,13 +9376,13 @@@ F:   drivers/i2c/i2c-stub.
  I3C DRIVER FOR CADENCE I3C MASTER IP
  M:    Przemysław Gaj <pgaj@cadence.com>
  S:    Maintained
- F:    Documentation/devicetree/bindings/i3c/cdns,i3c-master.txt
+ F:    Documentation/devicetree/bindings/i3c/cdns,i3c-master.yaml
  F:    drivers/i3c/master/i3c-master-cdns.c
  
  I3C DRIVER FOR SYNOPSYS DESIGNWARE
  M:    Vitor Soares <vitor.soares@synopsys.com>
  S:    Maintained
- F:    Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.txt
+ F:    Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
  F:    drivers/i3c/master/dw*
  
  I3C SUBSYSTEM
@@@ -9838,7 -9915,7 +9921,7 @@@ F:      drivers/video/fbdev/intelfb
  INTEL GPIO DRIVERS
  M:    Andy Shevchenko <andy@kernel.org>
  L:    linux-gpio@vger.kernel.org
- S:    Maintained
+ S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git
  F:    drivers/gpio/gpio-ich.c
  F:    drivers/gpio/gpio-merrifield.c
@@@ -9887,6 -9964,14 +9970,14 @@@ B:    https://bugzilla.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git
  F:    drivers/idle/intel_idle.c
  
+ INTEL IN FIELD SCAN (IFS) DEVICE
+ M:    Jithu Joseph <jithu.joseph@intel.com>
+ R:    Ashok Raj <ashok.raj@intel.com>
+ R:    Tony Luck <tony.luck@intel.com>
+ S:    Maintained
+ F:    drivers/platform/x86/intel/ifs
+ F:    include/trace/events/intel_ifs.h
  INTEL INTEGRATED SENSOR HUB DRIVER
  M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  M:    Jiri Kosina <jikos@kernel.org>
@@@ -10051,7 -10136,7 +10142,7 @@@ F:   drivers/platform/x86/intel/pmc
  
  INTEL PMIC GPIO DRIVERS
  M:    Andy Shevchenko <andy@kernel.org>
- S:    Maintained
+ S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git
  F:    drivers/gpio/gpio-*cove.c
  
@@@ -10157,7 -10242,7 +10248,7 @@@ S:   Supporte
  F:    drivers/net/wireless/intel/iwlegacy/
  
  INTEL WIRELESS WIFI LINK (iwlwifi)
- M:    Luca Coelho <luciano.coelho@intel.com>
+ M:    Gregory Greenman <gregory.greenman@intel.com>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
@@@ -10670,6 -10755,7 +10761,7 @@@ W:   http://kernelnewbies.org/KernelJanit
  
  KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
  M:    Chuck Lever <chuck.lever@oracle.com>
+ M:    Jeff Layton <jlayton@kernel.org>
  L:    linux-nfs@vger.kernel.org
  S:    Supported
  W:    http://nfs.sourceforge.net/
@@@ -10793,6 -10879,8 +10885,8 @@@ T:   git git://github.com/kvm-riscv/linux
  F:    arch/riscv/include/asm/kvm*
  F:    arch/riscv/include/uapi/asm/kvm*
  F:    arch/riscv/kvm/
+ F:    tools/testing/selftests/kvm/*/riscv/
+ F:    tools/testing/selftests/kvm/riscv/
  
  KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
  M:    Christian Borntraeger <borntraeger@linux.ibm.com>
@@@ -10807,9 -10895,12 +10901,12 @@@ F: Documentation/virt/kvm/s390
  F:    arch/s390/include/asm/gmap.h
  F:    arch/s390/include/asm/kvm*
  F:    arch/s390/include/uapi/asm/kvm*
+ F:    arch/s390/include/uapi/asm/uvdevice.h
  F:    arch/s390/kernel/uv.c
  F:    arch/s390/kvm/
  F:    arch/s390/mm/gmap.c
+ F:    drivers/s390/char/uvdevice.c
+ F:    tools/testing/selftests/drivers/s390x/uvdevice/
  F:    tools/testing/selftests/kvm/*/s390x/
  F:    tools/testing/selftests/kvm/s390x/
  
@@@ -10882,6 -10973,15 +10979,15 @@@ S: Supporte
  F:    include/keys/trusted_tee.h
  F:    security/keys/trusted-keys/trusted_tee.c
  
+ KEYS-TRUSTED-CAAM
+ M:    Ahmad Fatoum <a.fatoum@pengutronix.de>
+ R:    Pengutronix Kernel Team <kernel@pengutronix.de>
+ L:    linux-integrity@vger.kernel.org
+ L:    keyrings@vger.kernel.org
+ S:    Maintained
+ F:    include/keys/trusted_caam.h
+ F:    security/keys/trusted-keys/trusted_caam.c
  KEYS/KEYRINGS
  M:    David Howells <dhowells@redhat.com>
  M:    Jarkko Sakkinen <jarkko@kernel.org>
@@@ -10936,6 -11036,7 +11042,7 @@@ F:   drivers/tty/serial/kgdboc.
  F:    include/linux/kdb.h
  F:    include/linux/kgdb.h
  F:    kernel/debug/
+ F:    kernel/module/kdb.c
  
  KHADAS MCU MFD DRIVER
  M:    Neil Armstrong <narmstrong@baylibre.com>
@@@ -11173,6 -11274,7 +11280,7 @@@ M:   Damien Le Moal <damien.lemoal@openso
  L:    linux-ide@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata.git
+ F:    Documentation/ABI/testing/sysfs-ata
  F:    Documentation/devicetree/bindings/ata/
  F:    drivers/ata/
  F:    include/linux/ata.h
@@@ -11374,7 -11476,7 +11482,7 @@@ F:   drivers/mmc/host/litex_mmc.
  N:    litex
  
  LIVE PATCHING
- M:    Josh Poimboeuf <jpoimboe@redhat.com>
+ M:    Josh Poimboeuf <jpoimboe@kernel.org>
  M:    Jiri Kosina <jikos@kernel.org>
  M:    Miroslav Benes <mbenes@suse.cz>
  M:    Petr Mladek <pmladek@suse.com>
@@@ -11385,10 -11487,9 +11493,9 @@@ T:  git git://git.kernel.org/pub/scm/lin
  F:    Documentation/ABI/testing/sysfs-kernel-livepatch
  F:    Documentation/livepatch/
  F:    arch/powerpc/include/asm/livepatch.h
- F:    arch/s390/include/asm/livepatch.h
- F:    arch/x86/include/asm/livepatch.h
  F:    include/linux/livepatch.h
  F:    kernel/livepatch/
+ F:    kernel/module/livepatch.c
  F:    lib/livepatch/
  F:    samples/livepatch/
  F:    tools/testing/selftests/livepatch/
@@@ -11494,6 -11595,16 +11601,16 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/display/bridge/lontium,lt8912b.yaml
  F:    drivers/gpu/drm/bridge/lontium-lt8912b.c
  
+ LOONGARCH
+ M:    Huacai Chen <chenhuacai@kernel.org>
+ R:    WANG Xuerui <kernel@xen0n.name>
+ S:    Maintained
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git
+ F:    arch/loongarch/
+ F:    drivers/*/*loongarch*
+ F:    Documentation/loongarch/
+ F:    Documentation/translations/zh_CN/loongarch/
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
  M:    Sathya Prakash <sathya.prakash@broadcom.com>
  M:    Sreekanth Reddy <sreekanth.reddy@broadcom.com>
@@@ -11854,9 -11965,16 +11971,16 @@@ MARVELL XENON MMC/SD/SDIO HOST CONTROLL
  M:    Hu Ziji <huziji@marvell.com>
  L:    linux-mmc@vger.kernel.org
  S:    Supported
- F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt
+ F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.yaml
  F:    drivers/mmc/host/sdhci-xenon*
  
+ MARVELL OCTEON ENDPOINT DRIVER
+ M:    Veerasenareddy Burru <vburru@marvell.com>
+ M:    Abhijit Ayarekar <aayarekar@marvell.com>
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/ethernet/marvell/octeon_ep
  MATROX FRAMEBUFFER DRIVER
  L:    linux-fbdev@vger.kernel.org
  S:    Orphan
@@@ -12182,7 -12300,7 +12306,7 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    Documentation/admin-guide/media/imx7.rst
  F:    Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
  F:    Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
- F:    drivers/media/platform/imx/imx-mipi-csis.c
+ F:    drivers/media/platform/nxp/imx-mipi-csis.c
  F:    drivers/staging/media/imx/imx7-media-csi.c
  
  MEDIA DRIVERS FOR HELENE
@@@ -12237,7 -12355,7 +12361,7 @@@ L:   linux-media@vger.kernel.or
  L:    linux-tegra@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
- F:    Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt
+ F:    Documentation/devicetree/bindings/media/nvidia,tegra-vde.yaml
  F:    drivers/media/platform/nvidia/tegra-vde/
  
  MEDIA DRIVERS FOR RENESAS - CEU
@@@ -12387,7 -12505,7 +12511,7 @@@ MEDIATEK I2C CONTROLLER DRIVE
  M:    Qii Wang <qii.wang@mediatek.com>
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/i2c/i2c-mt65xx.txt
+ F:    Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml
  F:    drivers/i2c/busses/i2c-mt65xx.c
  
  MEDIATEK IOMMU DRIVER
@@@ -12400,10 -12518,9 +12524,9 @@@ F:  drivers/iommu/mtk_iommu
  F:    include/dt-bindings/memory/mt*-port.h
  
  MEDIATEK JPEG DRIVER
- M:    Rick Chang <rick.chang@mediatek.com>
  M:    Bin Liu <bin.liu@mediatek.com>
  S:    Supported
- F:    Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
+ F:    Documentation/devicetree/bindings/media/mediatek-jpeg-*.yaml
  F:    drivers/media/platform/mediatek/jpeg/
  
  MEDIATEK MDP DRIVER
@@@ -12419,7 -12536,7 +12542,7 @@@ MEDIATEK MEDIA DRIVE
  M:    Tiffany Lin <tiffany.lin@mediatek.com>
  M:    Andrew-CT Chen <andrew-ct.chen@mediatek.com>
  S:    Supported
- F:    Documentation/devicetree/bindings/media/mediatek-vcodec.txt
+ F:    Documentation/devicetree/bindings/media/mediatek,vcodec*.yaml
  F:    Documentation/devicetree/bindings/media/mediatek-vpu.txt
  F:    drivers/media/platform/mediatek/vcodec/
  F:    drivers/media/platform/mediatek/vpu/
@@@ -12506,6 -12623,17 +12629,17 @@@ S: Maintaine
  F:    drivers/net/dsa/mt7530.*
  F:    net/dsa/tag_mtk.c
  
+ MEDIATEK T7XX 5G WWAN MODEM DRIVER
+ M:    Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
+ M:    Intel Corporation <linuxwwan@intel.com>
+ R:    Chiranjeevi Rapolu <chiranjeevi.rapolu@linux.intel.com>
+ R:    Liu Haijun <haijun.liu@mediatek.com>
+ R:    M Chetan Kumar <m.chetan.kumar@linux.intel.com>
+ R:    Ricardo Martinez <ricardo.martinez@linux.intel.com>
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/wwan/t7xx/
  MEDIATEK USB3 DRD IP DRIVER
  M:    Chunfeng Yun <chunfeng.yun@mediatek.com>
  L:    linux-usb@vger.kernel.org
@@@ -12586,7 -12714,6 +12720,6 @@@ L:   netdev@vger.kernel.or
  S:    Supported
  W:    http://www.mellanox.com
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
- F:    drivers/net/ethernet/mellanox/mlx5/core/accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/fpga/*
  F:    include/linux/mlx5/mlx5_ifc_fpga.h
@@@ -12825,7 -12952,7 +12958,7 @@@ F:   arch/arm64/boot/dts/marvell/armada-3
  
  MHI BUS
  M:    Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
- R:    Hemant Kumar <hemantk@codeaurora.org>
+ R:    Hemant Kumar <quic_hemantk@quicinc.com>
  L:    mhi@lists.linux.dev
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
@@@ -12935,6 -13062,13 +13068,13 @@@ F: drivers/net/dsa/microchip/
  F:    include/linux/platform_data/microchip-ksz.h
  F:    net/dsa/tag_ksz.c
  
+ MICROCHIP LAN87xx/LAN937x T1 PHY DRIVER
+ M:    Arun Ramadoss <arun.ramadoss@microchip.com>
+ R:    UNGLinuxDriver@microchip.com
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/phy/microchip_t1.c
  MICROCHIP LAN743X ETHERNET DRIVER
  M:    Bryan Whitehead <bryan.whitehead@microchip.com>
  M:    UNGLinuxDriver@microchip.com
@@@ -12988,7 -13122,7 +13128,7 @@@ M:   Claudiu Beznea <claudiu.beznea@micro
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-pwm@vger.kernel.org
  S:    Supported
- F:    Documentation/devicetree/bindings/pwm/atmel-pwm.txt
+ F:    Documentation/devicetree/bindings/pwm/atmel,at91sam-pwm.yaml
  F:    drivers/pwm/pwm-atmel.c
  
  MICROCHIP SAMA5D2-COMPATIBLE ADC DRIVER
@@@ -13296,7 -13430,7 +13436,7 @@@ L:   linux-kernel@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
  F:    include/linux/module.h
- F:    kernel/module.c
+ F:    kernel/module/
  
  MONOLITHIC POWER SYSTEM PMIC DRIVER
  M:    Saravanan Sekar <sravanhome@gmail.com>
@@@ -13327,7 -13461,7 +13467,7 @@@ F:   drivers/net/phy/motorcomm.
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
  M:    Jiri Slaby <jirislaby@kernel.org>
  S:    Maintained
- F:    Documentation/driver-api/serial/moxa-smartio.rst
+ F:    Documentation/driver-api/tty/moxa-smartio.rst
  F:    drivers/tty/mxser.*
  
  MR800 AVERMEDIA USB FM RADIO DRIVER
@@@ -13560,12 -13694,21 +13700,21 @@@ M:        Samuel Mendoza-Jonas <sam@mendozajon
  S:    Maintained
  F:    net/ncsi/
  
- NCT6775 HARDWARE MONITOR DRIVER
+ NCT6775 HARDWARE MONITOR DRIVER - CORE & PLATFORM DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
  S:    Maintained
  F:    Documentation/hwmon/nct6775.rst
- F:    drivers/hwmon/nct6775.c
+ F:    drivers/hwmon/nct6775-core.c
+ F:    drivers/hwmon/nct6775-platform.c
+ F:    drivers/hwmon/nct6775.h
+ NCT6775 HARDWARE MONITOR DRIVER - I2C DRIVER
+ M:    Zev Weiss <zev@bewilderbeest.net>
+ L:    linux-hwmon@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/hwmon/nuvoton,nct6775.yaml
+ F:    drivers/hwmon/nct6775-i2c.c
  
  NETDEVSIM
  M:    Jakub Kicinski <kuba@kernel.org>
@@@ -13798,6 -13941,7 +13947,7 @@@ F:   include/net/mptcp.
  F:    include/trace/events/mptcp.h
  F:    include/uapi/linux/mptcp.h
  F:    net/mptcp/
+ F:    tools/testing/selftests/bpf/*/*mptcp*.c
  F:    tools/testing/selftests/net/mptcp/
  
  NETWORKING [TCP]
@@@ -14225,7 -14369,7 +14375,7 @@@ R:   NXP Linux Team <linux-imx@nxp.com
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml
- F:    drivers/media/platform/imx-jpeg
+ F:    drivers/media/platform/nxp/imx-jpeg
  
  NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
  M:    Jonas Malaco <jonas@protocubo.io>
@@@ -14250,7 -14394,7 +14400,7 @@@ F:   lib/objagg.
  F:    lib/test_objagg.c
  
  OBJTOOL
- M:    Josh Poimboeuf <jpoimboe@redhat.com>
+ M:    Josh Poimboeuf <jpoimboe@kernel.org>
  M:    Peter Zijlstra <peterz@infradead.org>
  S:    Supported
  F:    tools/objtool/
@@@ -14398,7 -14542,6 +14548,6 @@@ F:   arch/arm/*omap*/*pm
  F:    drivers/cpufreq/omap-cpufreq.c
  
  OMAP POWERDOMAIN SOC ADAPTATION LAYER SUPPORT
- M:    Rajendra Nayak <rnayak@codeaurora.org>
  M:    Paul Walmsley <paul@pwsan.com>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
@@@ -14424,6 -14567,7 +14573,7 @@@ F:   arch/arm/boot/dts/am335x-nano.dt
  
  OMAP1 SUPPORT
  M:    Aaro Koskinen <aaro.koskinen@iki.fi>
+ M:    Janusz Krzysztofik <jmkrzyszt@gmail.com>
  M:    Tony Lindgren <tony@atomide.com>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
@@@ -14859,6 -15003,19 +15009,19 @@@ F: Documentation/core-api/padata.rs
  F:    include/linux/padata.h
  F:    kernel/padata.c
  
+ PAGE CACHE
+ M:    Matthew Wilcox (Oracle) <willy@infradead.org>
+ L:    linux-fsdevel@vger.kernel.org
+ S:    Supported
+ T:    git git://git.infradead.org/users/willy/pagecache.git
+ F:    Documentation/filesystems/locking.rst
+ F:    Documentation/filesystems/vfs.rst
+ F:    include/linux/pagemap.h
+ F:    mm/filemap.c
+ F:    mm/page-writeback.c
+ F:    mm/readahead.c
+ F:    mm/truncate.c
  PAGE POOL
  M:    Jesper Dangaard Brouer <hawk@kernel.org>
  M:    Ilias Apalodimas <ilias.apalodimas@linaro.org>
@@@ -15187,7 -15344,7 +15350,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>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  R:    Krzysztof Wilczyński <kw@linux.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
@@@ -15250,7 -15407,7 +15413,7 @@@ F:   Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/pci-xgene-msi.c
  
  PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
- M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  R:    Rob Herring <robh@kernel.org>
  R:    Krzysztof Wilczyński <kw@linux.com>
  L:    linux-pci@vger.kernel.org
@@@ -15391,7 -15548,7 +15554,7 @@@ PCIE DRIVER FOR SOCIONEXT UNIPHIE
  M:    Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/pci/uniphier-pcie*
+ F:    Documentation/devicetree/bindings/pci/socionext,uniphier-pcie*
  F:    drivers/pci/controller/dwc/pcie-uniphier*
  
  PCIE DRIVER FOR ST SPEAR13XX
@@@ -15501,7 -15658,8 +15664,8 @@@ F:   tools/perf
  PERFORMANCE EVENTS TOOLING ARM64
  R:    John Garry <john.garry@huawei.com>
  R:    Will Deacon <will@kernel.org>
- R:    Mathieu Poirier <mathieu.poirier@linaro.org>
+ R:    James Clark <james.clark@arm.com>
+ R:    Mike Leach <mike.leach@linaro.org>
  R:    Leo Yan <leo.yan@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
@@@ -15683,6 -15841,14 +15847,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
  F:    drivers/iio/chemical/pms7003.c
  
+ PLATFORM FEATURE INFRASTRUCTURE
+ M:    Juergen Gross <jgross@suse.com>
+ S:    Maintained
+ F:    arch/*/include/asm/platform-feature.h
+ F:    include/asm-generic/platform-feature.h
+ F:    include/linux/platform-feature.h
+ F:    kernel/platform-feature.c
  PLDMFW LIBRARY
  M:    Jacob Keller <jacob.e.keller@intel.com>
  S:    Maintained
@@@ -15802,7 -15968,7 +15974,7 @@@ F:   include/linux/dtpm.
  
  POWER STATE COORDINATION INTERFACE (PSCI)
  M:    Mark Rutland <mark.rutland@arm.com>
- M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/firmware/psci/
@@@ -15890,7 -16056,9 +16062,9 @@@ F:   kernel/printk
  PRINTK INDEXING
  R:    Chris Down <chris@chrisdown.name>
  S:    Maintained
+ F:    Documentation/core-api/printk-index.rst
  F:    kernel/printk/index.c
+ K:    printk_index
  
  PROC FILESYSTEM
  L:    linux-kernel@vger.kernel.org
@@@ -15994,7 -16162,6 +16168,6 @@@ F:   include/asm-generic/syscall.
  F:    include/linux/ptrace.h
  F:    include/linux/regset.h
  F:    include/uapi/linux/ptrace.h
- F:    include/uapi/linux/ptrace.h
  F:    kernel/ptrace.c
  
  PULSE8-CEC DRIVER
@@@ -16005,6 -16172,12 +16178,12 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/admin-guide/media/pulse8-cec.rst
  F:    drivers/media/cec/usb/pulse8/
  
+ PURELIFI PLFXLC DRIVER
+ M:    Srinivasan Raju <srini.raju@purelifi.com>
+ L:    linux-wireless@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/wireless/purelifi/plfxlc/
  PVRUSB2 VIDEO4LINUX DRIVER
  M:    Mike Isely <isely@pobox.com>
  L:    pvrusb2@isely.net       (subscribers-only)
@@@ -16537,6 -16710,13 +16716,13 @@@ L: linux-mips@vger.kernel.or
  S:    Maintained
  F:    arch/mips/boot/dts/ralink/mt7621*
  
+ RALINK PINCTRL DRIVER
+ M:    Arınç ÜNAL <arinc.unal@arinc9.com>
+ M:    Sergio Paracuellos <sergio.paracuellos@gmail.com>
+ L:    linux-mips@vger.kernel.org
+ S:    Maintained
+ F:    drivers/pinctrl/ralink/
  RALINK RT2X00 WIRELESS LAN DRIVER
  M:    Stanislaw Gruszka <stf_xl@wp.pl>
  M:    Helmut Schaa <helmut.schaa@googlemail.com>
@@@ -16883,6 -17063,14 +17069,14 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
  F:    drivers/iio/adc/rzg2l_adc.c
  
+ RENESAS RZ/N1 RTC CONTROLLER DRIVER
+ M:    Miquel Raynal <miquel.raynal@bootlin.com>
+ L:    linux-rtc@vger.kernel.org
+ L:    linux-renesas-soc@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/rtc/renesas,rzn1-rtc.yaml
+ F:    drivers/rtc/rtc-rzn1.c
  RENESAS R-CAR GEN3 & RZ/N1 NAND CONTROLLER DRIVER
  M:    Miquel Raynal <miquel.raynal@bootlin.com>
  L:    linux-mtd@lists.infradead.org
@@@ -17542,6 -17730,7 +17736,7 @@@ R:   Steven Rostedt <rostedt@goodmis.org
  R:    Ben Segall <bsegall@google.com> (CONFIG_CFS_BANDWIDTH)
  R:    Mel Gorman <mgorman@suse.de> (CONFIG_NUMA_BALANCING)
  R:    Daniel Bristot de Oliveira <bristot@redhat.com> (SCHED_DEADLINE)
+ R:    Valentin Schneider <vschneid@redhat.com> (TOPOLOGY)
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
@@@ -17591,6 -17780,7 +17786,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
  F:    Documentation/devicetree/bindings/scsi/
  F:    drivers/scsi/
+ F:    drivers/ufs/
  F:    include/scsi/
  
  SCSI TAPE DRIVER
@@@ -17685,7 -17875,7 +17881,7 @@@ K:   \bTIF_SECCOMP\
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) Broadcom BRCMSTB DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
- R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
+ R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mmc@vger.kernel.org
  S:    Maintained
  F:    drivers/mmc/host/sdhci-brcmstb*
@@@ -18016,8 -18206,8 +18212,8 @@@ F:   drivers/platform/x86/touchscreen_dmi
  SILICON LABS WIRELESS DRIVERS (for WFxxx series)
  M:    Jérôme Pouiller <jerome.pouiller@silabs.com>
  S:    Supported
- F:    Documentation/devicetree/bindings/staging/net/wireless/silabs,wfx.yaml
- F:    drivers/staging/wfx/
+ F:    Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml
+ F:    drivers/net/wireless/silabs/wfx/
  
  SILICON MOTION SM712 FRAME BUFFER DRIVER
  M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
@@@ -18130,6 -18320,7 +18326,7 @@@ M:   Joonsoo Kim <iamjoonsoo.kim@lge.com
  M:    Andrew Morton <akpm@linux-foundation.org>
  M:    Vlastimil Babka <vbabka@suse.cz>
  R:    Roman Gushchin <roman.gushchin@linux.dev>
+ R:    Hyeonggon Yoo <42.hyeyoo@gmail.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
@@@ -18165,7 -18356,7 +18362,7 @@@ F:   drivers/net/ethernet/smsc/smc91x.
  
  SECURE MONITOR CALL(SMC) CALLING CONVENTION (SMCCC)
  M:    Mark Rutland <mark.rutland@arm.com>
- M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Lorenzo Pieralisi <lpieralisi@kernel.org>
  M:    Sudeep Holla <sudeep.holla@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -18662,7 -18853,7 +18859,7 @@@ S:   Maintaine
  F:    arch/alpha/kernel/srm_env.c
  
  ST LSM6DSx IMU IIO DRIVER
- M:    Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
+ M:    Lorenzo Bianconi <lorenzo@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  W:    http://www.st.com/
@@@ -18819,7 -19010,7 +19016,7 @@@ F:   include/dt-bindings/reset/starfive-j
  
  STATIC BRANCH/CALL
  M:    Peter Zijlstra <peterz@infradead.org>
- M:    Josh Poimboeuf <jpoimboe@redhat.com>
+ M:    Josh Poimboeuf <jpoimboe@kernel.org>
  M:    Jason Baron <jbaron@akamai.com>
  R:    Steven Rostedt <rostedt@goodmis.org>
  R:    Ard Biesheuvel <ardb@kernel.org>
@@@ -18903,12 -19094,26 +19100,26 @@@ L:        netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/dlink/sundance.c
  
+ SUNPLUS ETHERNET DRIVER
+ M:    Wells Lu <wellslutw@gmail.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ W:    https://sunplus.atlassian.net/wiki/spaces/doc/overview
+ F:    Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml
+ F:    drivers/net/ethernet/sunplus/
  SUNPLUS OCOTP DRIVER
  M:    Vincent Shih <vincent.sunplus@gmail.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/nvmem/sunplus,sp7021-ocotp.yaml
  F:    drivers/nvmem/sunplus-ocotp.c
  
+ SUNPLUS PWM DRIVER
+ M:    Hammer Hsieh <hammerh0314@gmail.com>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/pwm/sunplus,sp7021-pwm.yaml
+ F:    drivers/pwm/pwm-sunplus.c
  SUNPLUS RTC DRIVER
  M:    Vincent Shih <vincent.sunplus@gmail.com>
  L:    linux-rtc@vger.kernel.org
@@@ -18929,6 -19134,13 +19140,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/serial/sunplus,sp7021-uart.yaml
  F:    drivers/tty/serial/sunplus-uart.c
  
+ SUNPLUS WATCHDOG DRIVER
+ M:    Xiantao Hu <xt.hu@cqplus1.com>
+ L:    linux-watchdog@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/watchdog/sunplus,sp7021-wdt.yaml
+ F:    drivers/watchdog/sunplus_wdt.c
  SUPERH
  M:    Yoshinori Sato <ysato@users.sourceforge.jp>
  M:    Rich Felker <dalias@libc.org>
@@@ -19033,7 -19245,7 +19251,7 @@@ F:   arch/arc/plat-axs10
  SYNOPSYS AXS10x RESET CONTROLLER DRIVER
  M:    Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
  S:    Supported
- F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
+ F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.yaml
  F:    drivers/reset/reset-axs10x.c
  
  SYNOPSYS CREG GPIO DRIVER
@@@ -19074,6 -19286,7 +19292,7 @@@ SYNOPSYS DESIGNWARE DMAC DRIVE
  M:    Viresh Kumar <vireshk@kernel.org>
  R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  S:    Maintained
+ F:    Documentation/devicetree/bindings/dma/renesas,rzn1-dmamux.yaml
  F:    Documentation/devicetree/bindings/dma/snps,dma-spear1340.yaml
  F:    drivers/dma/dw/
  F:    include/dt-bindings/dma/dw-dmac.h
@@@ -19568,6 -19781,7 +19787,7 @@@ F:   drivers/thermal
  F:    include/linux/cpu_cooling.h
  F:    include/linux/thermal.h
  F:    include/uapi/linux/thermal.h
+ F:    tools/lib/thermal/
  F:    tools/thermal/
  
  THERMAL DRIVER FOR AMLOGIC SOCS
@@@ -19820,7 -20034,7 +20040,7 @@@ F:   drivers/net/wireless/ti
  F:    include/linux/wl12xx.h
  
  TIMEKEEPING, CLOCKSOURCE CORE, NTP, ALARMTIMER
- M:    John Stultz <john.stultz@linaro.org>
+ M:    John Stultz <jstultz@google.com>
  M:    Thomas Gleixner <tglx@linutronix.de>
  R:    Stephen Boyd <sboyd@kernel.org>
  L:    linux-kernel@vger.kernel.org
@@@ -19867,6 -20081,7 +20087,7 @@@ F:   drivers/media/usb/tm6000
  TMIO/SDHI MMC DRIVER
  M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
  L:    linux-mmc@vger.kernel.org
+ L:    linux-renesas-soc@vger.kernel.org
  S:    Supported
  F:    drivers/mmc/host/renesas_sdhi*
  F:    drivers/mmc/host/tmio_mmc*
@@@ -19876,6 -20091,7 +20097,7 @@@ TMP401 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
  S:    Maintained
+ F:    Documentation/devicetree/bindings/hwmon/ti,tmp401.yaml
  F:    Documentation/hwmon/tmp401.rst
  F:    drivers/hwmon/tmp401.c
  
@@@ -19989,8 -20205,8 +20211,8 @@@ M:   Ingo Molnar <mingo@redhat.com
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
  F:    Documentation/trace/ftrace.rst
- F:    arch/*/*/*/ftrace.h
- F:    arch/*/kernel/ftrace.c
+ F:    arch/*/*/*/*ftrace*
+ F:    arch/*/*/*ftrace*
  F:    fs/tracefs/
  F:    include/*/ftrace.h
  F:    include/linux/trace*.h
@@@ -20221,35 -20437,28 +20443,28 @@@ F:        drivers/cdrom/cdrom.
  F:    include/linux/cdrom.h
  F:    include/uapi/linux/cdrom.h
  
- UNISYS S-PAR DRIVERS
- M:    David Kershner <david.kershner@unisys.com>
- L:    sparmaintainer@unisys.com (Unisys internal)
- S:    Supported
- F:    drivers/staging/unisys/
- F:    drivers/visorbus/
- F:    include/linux/visorbus.h
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
  R:    Alim Akhtar <alim.akhtar@samsung.com>
  R:    Avri Altman <avri.altman@wdc.com>
+ R:    Bart Van Assche <bvanassche@acm.org>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/ufs/
  F:    Documentation/scsi/ufs.rst
- F:    drivers/scsi/ufs/
+ F:    drivers/ufs/core/
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER DWC HOOKS
  M:    Pedro Sousa <pedrom.sousa@synopsys.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
- F:    drivers/scsi/ufs/*dwc*
+ F:    drivers/ufs/host/*dwc*
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS
  M:    Stanley Chu <stanley.chu@mediatek.com>
  L:    linux-scsi@vger.kernel.org
  L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
- F:    drivers/scsi/ufs/ufs-mediatek*
+ F:    drivers/ufs/host/ufs-mediatek*
  
  UNSORTED BLOCK IMAGES (UBI)
  M:    Richard Weinberger <richard@nod.at>
@@@ -20559,7 -20768,6 +20774,6 @@@ F:   drivers/usb/host/uhci
  
  USB VIDEO CLASS
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- L:    linux-uvc-devel@lists.sourceforge.net (subscribers-only)
  L:    linux-media@vger.kernel.org
  S:    Maintained
  W:    http://www.ideasonboard.org/uvc/
@@@ -20898,6 -21106,7 +21112,7 @@@ F:   include/uapi/linux/virtio_crypto.
  VIRTIO DRIVERS FOR S390
  M:    Cornelia Huck <cohuck@redhat.com>
  M:    Halil Pasic <pasic@linux.ibm.com>
+ M:    Eric Farman <farman@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
  L:    virtualization@lists.linux-foundation.org
  L:    kvm@vger.kernel.org
@@@ -21048,7 -21257,7 +21263,7 @@@ L:   linux-kernel@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
  F:    Documentation/driver-api/vme.rst
- F:    drivers/staging/vme/
+ F:    drivers/staging/vme_user/
  F:    drivers/vme/
  F:    include/linux/vme*
  
@@@ -21471,7 -21680,7 +21686,7 @@@ F:   arch/x86/kernel/apic/x2apic_uv_x.
  F:    arch/x86/platform/uv/
  
  X86 STACK UNWINDING
- M:    Josh Poimboeuf <jpoimboe@redhat.com>
+ M:    Josh Poimboeuf <jpoimboe@kernel.org>
  M:    Peter Zijlstra <peterz@infradead.org>
  S:    Supported
  F:    arch/x86/include/asm/unwind*.h
@@@ -21537,6 -21746,7 +21752,7 @@@ K:   (?:\b|_)xdp(?:\b|_
  XDP SOCKETS (AF_XDP)
  M:    Björn Töpel <bjorn@kernel.org>
  M:    Magnus Karlsson <magnus.karlsson@intel.com>
+ M:    Maciej Fijalkowski <maciej.fijalkowski@intel.com>
  R:    Jonathan Lemon <jonathan.lemon@gmail.com>
  L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
@@@ -21573,23 -21783,29 +21789,29 @@@ F:        arch/arm64/include/asm/xen
  F:    arch/arm64/xen/
  
  XEN HYPERVISOR INTERFACE
- M:    Boris Ostrovsky <boris.ostrovsky@oracle.com>
  M:    Juergen Gross <jgross@suse.com>
- R:    Stefano Stabellini <sstabellini@kernel.org>
+ M:    Stefano Stabellini <sstabellini@kernel.org>
+ R:    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
  F:    Documentation/ABI/stable/sysfs-hypervisor-xen
  F:    Documentation/ABI/testing/sysfs-hypervisor-xen
- F:    arch/x86/include/asm/pvclock-abi.h
- F:    arch/x86/include/asm/xen/
- F:    arch/x86/platform/pvh/
- F:    arch/x86/xen/
  F:    drivers/*/xen-*front.c
  F:    drivers/xen/
  F:    include/uapi/xen/
  F:    include/xen/
  
+ XEN HYPERVISOR X86
+ M:    Juergen Gross <jgross@suse.com>
+ R:    Boris Ostrovsky <boris.ostrovsky@oracle.com>
+ L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
+ S:    Supported
+ F:    arch/x86/include/asm/pvclock-abi.h
+ F:    arch/x86/include/asm/xen/
+ F:    arch/x86/platform/pvh/
+ F:    arch/x86/xen/
  XEN NETWORK BACKEND DRIVER
  M:    Wei Liu <wei.liu@kernel.org>
  M:    Paul Durrant <paul@xen.org>
@@@ -21670,7 -21886,7 +21892,7 @@@ M:   Appana Durga Kedareswara rao <appana
  R:    Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
  L:    linux-can@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/net/can/xilinx_can.txt
+ F:    Documentation/devicetree/bindings/net/can/xilinx,can.yaml
  F:    drivers/net/can/xilinx_can.c
  
  XILINX GPIO DRIVER
@@@ -21694,6 -21910,12 +21916,12 @@@ F: drivers/misc/Makefil
  F:    drivers/misc/xilinx_sdfec.c
  F:    include/uapi/misc/xilinx_sdfec.h
  
+ XILINX PWM DRIVER
+ M:    Sean Anderson <sean.anderson@seco.com>
+ S:    Maintained
+ F:    drivers/pwm/pwm-xilinx.c
+ F:    include/clocksource/timer-xilinx.h
  XILINX UARTLITE SERIAL DRIVER
  M:    Peter Korsgaard <jacmet@sunsite.dk>
  L:    linux-serial@vger.kernel.org
@@@ -21805,6 -22027,13 +22033,13 @@@ L: linux-mm@kvack.or
  S:    Maintained
  F:    mm/zbud.c
  
+ Z3FOLD COMPRESSED PAGE ALLOCATOR
+ M:    Vitaly Wool <vitaly.wool@konsulko.com>
+ R:    Miaohe Lin <linmiaohe@huawei.com>
+ L:    linux-mm@kvack.org
+ S:    Maintained
+ F:    mm/z3fold.c
  ZD1211RW WIRELESS DRIVER
  M:    Ulrich Kunitz <kune@deine-taler.de>
  L:    linux-wireless@vger.kernel.org
index 5e1b0534b3ce44a1bc8db328eaeeb4c5a358a16b,727f5bb7d1067c8eddc3b9cf0610afc4ea08792f..630133284e2b28f03b4b6c3f880ce3e9ef879fbb
@@@ -20,7 -20,6 +20,7 @@@
  #include <linux/debugfs.h>
  #include <linux/module.h>
  #include <linux/seq_file.h>
 +#include <linux/sync_file.h>
  #include <linux/poll.h>
  #include <linux/dma-resv.h>
  #include <linux/mm.h>
@@@ -193,9 -192,6 +193,9 @@@ static loff_t dma_buf_llseek(struct fil
   * Note that this only signals the completion of the respective fences, i.e. the
   * DMA transfers are complete. Cache flushing and any other necessary
   * preparations before CPU access can begin still need to happen.
 + *
 + * As an alternative to poll(), the set of fences on DMA buffer can be
 + * exported as a &sync_file using &dma_buf_sync_file_export.
   */
  
  static void dma_buf_poll_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
@@@ -330,101 -326,6 +330,101 @@@ static long dma_buf_set_name(struct dma
        return 0;
  }
  
 +#if IS_ENABLED(CONFIG_SYNC_FILE)
 +static long dma_buf_export_sync_file(struct dma_buf *dmabuf,
 +                                   void __user *user_data)
 +{
 +      struct dma_buf_export_sync_file arg;
 +      enum dma_resv_usage usage;
 +      struct dma_fence *fence = NULL;
 +      struct sync_file *sync_file;
 +      int fd, ret;
 +
 +      if (copy_from_user(&arg, user_data, sizeof(arg)))
 +              return -EFAULT;
 +
 +      if (arg.flags & ~DMA_BUF_SYNC_RW)
 +              return -EINVAL;
 +
 +      if ((arg.flags & DMA_BUF_SYNC_RW) == 0)
 +              return -EINVAL;
 +
 +      fd = get_unused_fd_flags(O_CLOEXEC);
 +      if (fd < 0)
 +              return fd;
 +
 +      usage = dma_resv_usage_rw(arg.flags & DMA_BUF_SYNC_WRITE);
 +      ret = dma_resv_get_singleton(dmabuf->resv, usage, &fence);
 +      if (ret)
 +              goto err_put_fd;
 +
 +      if (!fence)
 +              fence = dma_fence_get_stub();
 +
 +      sync_file = sync_file_create(fence);
 +
 +      dma_fence_put(fence);
 +
 +      if (!sync_file) {
 +              ret = -ENOMEM;
 +              goto err_put_fd;
 +      }
 +
 +      arg.fd = fd;
 +      if (copy_to_user(user_data, &arg, sizeof(arg))) {
 +              ret = -EFAULT;
 +              goto err_put_file;
 +      }
 +
 +      fd_install(fd, sync_file->file);
 +
 +      return 0;
 +
 +err_put_file:
 +      fput(sync_file->file);
 +err_put_fd:
 +      put_unused_fd(fd);
 +      return ret;
 +}
 +
 +static long dma_buf_import_sync_file(struct dma_buf *dmabuf,
 +                                   const void __user *user_data)
 +{
 +      struct dma_buf_import_sync_file arg;
 +      struct dma_fence *fence;
 +      enum dma_resv_usage usage;
 +      int ret = 0;
 +
 +      if (copy_from_user(&arg, user_data, sizeof(arg)))
 +              return -EFAULT;
 +
 +      if (arg.flags & ~DMA_BUF_SYNC_RW)
 +              return -EINVAL;
 +
 +      if ((arg.flags & DMA_BUF_SYNC_RW) == 0)
 +              return -EINVAL;
 +
 +      fence = sync_file_get_fence(arg.fd);
 +      if (!fence)
 +              return -EINVAL;
 +
 +      usage = (arg.flags & DMA_BUF_SYNC_WRITE) ? DMA_RESV_USAGE_WRITE :
 +                                                 DMA_RESV_USAGE_READ;
 +
 +      dma_resv_lock(dmabuf->resv, NULL);
 +
 +      ret = dma_resv_reserve_fences(dmabuf->resv, 1);
 +      if (!ret)
 +              dma_resv_add_fence(dmabuf->resv, fence, usage);
 +
 +      dma_resv_unlock(dmabuf->resv);
 +
 +      dma_fence_put(fence);
 +
 +      return ret;
 +}
 +#endif
 +
  static long dma_buf_ioctl(struct file *file,
                          unsigned int cmd, unsigned long arg)
  {
        case DMA_BUF_SET_NAME_B:
                return dma_buf_set_name(dmabuf, (const char __user *)arg);
  
 +#if IS_ENABLED(CONFIG_SYNC_FILE)
 +      case DMA_BUF_IOCTL_EXPORT_SYNC_FILE:
 +              return dma_buf_export_sync_file(dmabuf, (void __user *)arg);
 +      case DMA_BUF_IOCTL_IMPORT_SYNC_FILE:
 +              return dma_buf_import_sync_file(dmabuf, (const void __user *)arg);
 +#endif
 +
        default:
                return -ENOTTY;
        }
@@@ -514,6 -408,7 +514,7 @@@ static inline int is_dma_buf_file(struc
  
  static struct file *dma_buf_getfile(struct dma_buf *dmabuf, int flags)
  {
+       static atomic64_t dmabuf_inode = ATOMIC64_INIT(0);
        struct file *file;
        struct inode *inode = alloc_anon_inode(dma_buf_mnt->mnt_sb);
  
        inode->i_size = dmabuf->size;
        inode_set_bytes(inode, dmabuf->size);
  
+       /*
+        * The ->i_ino acquired from get_next_ino() is not unique thus
+        * not suitable for using it as dentry name by dmabuf stats.
+        * Override ->i_ino with the unique and dmabuffs specific
+        * value.
+        */
+       inode->i_ino = atomic64_add_return(1, &dmabuf_inode);
        file = alloc_file_pseudo(inode, dma_buf_mnt, "dmabuf",
                                 flags, &dma_buf_fops);
        if (IS_ERR(file))
@@@ -650,10 -552,6 +658,6 @@@ struct dma_buf *dma_buf_export(const st
        file->f_mode |= FMODE_LSEEK;
        dmabuf->file = file;
  
-       ret = dma_buf_stats_setup(dmabuf);
-       if (ret)
-               goto err_sysfs;
        mutex_init(&dmabuf->lock);
        INIT_LIST_HEAD(&dmabuf->attachments);
  
        list_add(&dmabuf->list_node, &db_list.head);
        mutex_unlock(&db_list.lock);
  
+       ret = dma_buf_stats_setup(dmabuf);
+       if (ret)
+               goto err_sysfs;
        return dmabuf;
  
  err_sysfs:
index 4515630fb9d23ca9a6d926c81ab76b06d00cae15,ad4571190a90cad7d63653f3c9f3713b27ef407e..eb6c55e9f6b50e6585253becab700c457560ccca
@@@ -85,7 -85,6 +85,6 @@@
  #include <drm/drm_audio_component.h>
  #include <drm/drm_gem_atomic_helper.h>
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
  #include "ivsrcid/dcn/irqsrcs_dcn_1_0.h"
  
  #include "dcn/dcn_1_0_offset.h"
@@@ -94,7 -93,6 +93,6 @@@
  #include "vega10_ip_offset.h"
  
  #include "soc15_common.h"
- #endif
  
  #include "modules/inc/mod_freesync.h"
  #include "modules/power/power_helpers.h"
@@@ -605,7 -603,6 +603,6 @@@ static void dm_crtc_high_irq(void *inte
        spin_unlock_irqrestore(&adev_to_drm(adev)->event_lock, flags);
  }
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
  #if defined(CONFIG_DRM_AMD_SECURE_DISPLAY)
  /**
   * dm_dcn_vertical_interrupt0_high_irq() - Handles OTG Vertical interrupt0 for
@@@ -773,7 -770,7 +770,7 @@@ static void dm_dmub_outbox1_low_irq(voi
  
                do {
                        dc_stat_get_dmub_notification(adev->dm.dc, &notify);
-                       if (notify.type > ARRAY_SIZE(dm->dmub_thread_offload)) {
+                       if (notify.type >= ARRAY_SIZE(dm->dmub_thread_offload)) {
                                DRM_ERROR("DM: notify type %d invalid!", notify.type);
                                continue;
                        }
        if (count > DMUB_TRACE_MAX_READ)
                DRM_DEBUG_DRIVER("Warning : count > DMUB_TRACE_MAX_READ");
  }
- #endif /* CONFIG_DRM_AMD_DC_DCN */
  
  static int dm_set_clockgating_state(void *handle,
                  enum amd_clockgating_state state)
@@@ -1127,9 -1123,7 +1123,7 @@@ static int dm_dmub_hw_init(struct amdgp
        switch (adev->ip_versions[DCE_HWIP][0]) {
        case IP_VERSION(3, 1, 3): /* Only for this asic hw internal rev B0 */
                hw_params.dpia_supported = true;
- #if defined(CONFIG_DRM_AMD_DC_DCN)
                hw_params.disable_dpia = adev->dm.dc->debug.dpia_debug.bits.disable_dpia;
- #endif
                break;
        default:
                break;
@@@ -1191,7 -1185,6 +1185,6 @@@ static void dm_dmub_hw_resume(struct am
        }
  }
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
  static void mmhub_read_system_context(struct amdgpu_device *adev, struct dc_phy_addr_space_config *pa_config)
  {
        uint64_t pt_base;
        pa_config->is_hvm_enabled = 0;
  
  }
- #endif
- #if defined(CONFIG_DRM_AMD_DC_DCN)
  static void vblank_control_worker(struct work_struct *work)
  {
        struct vblank_control_work *vblank_work =
        kfree(vblank_work);
  }
  
- #endif
  static void dm_handle_hpd_rx_offload_work(struct work_struct *work)
  {
        struct hpd_rx_irq_offload_work *offload_work;
@@@ -1412,9 -1402,7 +1402,7 @@@ static int amdgpu_dm_init(struct amdgpu
  
        mutex_init(&adev->dm.dc_lock);
        mutex_init(&adev->dm.audio_lock);
- #if defined(CONFIG_DRM_AMD_DC_DCN)
        spin_lock_init(&adev->dm.vblank_lock);
- #endif
  
        if(amdgpu_dm_irq_init(adev)) {
                DRM_ERROR("amdgpu: failed to initialize DM IRQ support.\n");
        if (amdgpu_dc_feature_mask & DC_EDP_NO_POWER_SEQUENCING)
                init_data.flags.edp_no_power_sequencing = true;
  
- #ifdef CONFIG_DRM_AMD_DC_DCN
        if (amdgpu_dc_feature_mask & DC_DISABLE_LTTPR_DP1_4A)
                init_data.flags.allow_lttpr_non_transparent_mode.bits.DP1_4A = true;
        if (amdgpu_dc_feature_mask & DC_DISABLE_LTTPR_DP2_0)
                init_data.flags.allow_lttpr_non_transparent_mode.bits.DP2_0 = true;
- #endif
  
        init_data.flags.seamless_boot_edp_requested = false;
  
                goto error;
        }
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
        if ((adev->flags & AMD_IS_APU) && (adev->asic_type >= CHIP_CARRIZO)) {
                struct dc_phy_addr_space_config pa_config;
  
                // Call the DC init_memory func
                dc_setup_system_context(adev->dm.dc, &pa_config);
        }
- #endif
  
        adev->dm.freesync_module = mod_freesync_create(adev->dm.dc);
        if (!adev->dm.freesync_module) {
  
        amdgpu_dm_init_color_mod();
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
        if (adev->dm.dc->caps.max_links > 0) {
                adev->dm.vblank_control_workqueue =
                        create_singlethread_workqueue("dm_vblank_control_workqueue");
                if (!adev->dm.vblank_control_workqueue)
                        DRM_ERROR("amdgpu: failed to initialize vblank_workqueue.\n");
        }
- #endif
  
  #ifdef CONFIG_DRM_AMD_DC_HDCP
        if (adev->dm.dc->caps.max_links > 0 && adev->family >= AMDGPU_FAMILY_RV) {
                }
  
                amdgpu_dm_outbox_init(adev);
- #if defined(CONFIG_DRM_AMD_DC_DCN)
                if (!register_dmub_notify_callback(adev, DMUB_NOTIFICATION_AUX_REPLY,
                        dmub_aux_setconfig_callback, false)) {
                        DRM_ERROR("amdgpu: fail to register dmub aux callback");
                        DRM_ERROR("amdgpu: fail to register dmub hpd callback");
                        goto error;
                }
- #endif /* CONFIG_DRM_AMD_DC_DCN */
        }
  
        if (amdgpu_dm_initialize_drm_device(adev)) {
@@@ -1689,12 -1669,10 +1669,10 @@@ static void amdgpu_dm_fini(struct amdgp
  {
        int i;
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
        if (adev->dm.vblank_control_workqueue) {
                destroy_workqueue(adev->dm.vblank_control_workqueue);
                adev->dm.vblank_control_workqueue = NULL;
        }
- #endif
  
        for (i = 0; i < adev->dm.display_indexes_num; i++) {
                drm_encoder_cleanup(&adev->dm.mst_encoders[i].base);
@@@ -2405,9 -2383,7 +2383,7 @@@ static int dm_suspend(void *handle
        if (amdgpu_in_reset(adev)) {
                mutex_lock(&dm->dc_lock);
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
                dc_allow_idle_optimizations(adev->dm.dc, false);
- #endif
  
                dm->cached_dc_state = dc_copy_state(dm->dc->current_state);
  
@@@ -3560,7 -3536,6 +3536,6 @@@ static int dce110_register_irq_handlers
        return 0;
  }
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
  /* Register IRQ sources and initialize IRQ callbacks */
  static int dcn10_register_irq_handlers(struct amdgpu_device *adev)
  {
@@@ -3749,7 -3724,6 +3724,6 @@@ static int register_outbox_irq_handlers
  
        return 0;
  }
- #endif
  
  /*
   * Acquires the lock for the atomic state object and returns
@@@ -4253,7 -4227,6 +4227,6 @@@ static int amdgpu_dm_initialize_drm_dev
                        goto fail;
                }
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
        /* Use Outbox interrupt */
        switch (adev->ip_versions[DCE_HWIP][0]) {
        case IP_VERSION(3, 0, 0):
                        break;
                }
        }
- #endif
  
        /* Disable vblank IRQs aggressively for power-saving. */
        adev_to_drm(adev)->vblank_disable_immediate = true;
                }
                break;
        default:
- #if defined(CONFIG_DRM_AMD_DC_DCN)
                switch (adev->ip_versions[DCE_HWIP][0]) {
                case IP_VERSION(1, 0, 0):
                case IP_VERSION(1, 0, 1):
                                        adev->ip_versions[DCE_HWIP][0]);
                        goto fail;
                }
- #endif
                break;
        }
  
@@@ -4557,7 -4527,7 +4527,7 @@@ static int dm_early_init(void *handle
                adev->mode_info.num_dig = 6;
                break;
        default:
- #if defined(CONFIG_DRM_AMD_DC_DCN)
                switch (adev->ip_versions[DCE_HWIP][0]) {
                case IP_VERSION(2, 0, 2):
                case IP_VERSION(3, 0, 0):
                                        adev->ip_versions[DCE_HWIP][0]);
                        return -EINVAL;
                }
- #endif
                break;
        }
  
@@@ -5413,17 -5382,19 +5382,19 @@@ fill_plane_buffer_attributes(struct amd
  
  static void
  fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
-                              bool *per_pixel_alpha, bool *global_alpha,
-                              int *global_alpha_value)
+                              bool *per_pixel_alpha, bool *pre_multiplied_alpha,
+                              bool *global_alpha, int *global_alpha_value)
  {
        *per_pixel_alpha = false;
+       *pre_multiplied_alpha = true;
        *global_alpha = false;
        *global_alpha_value = 0xff;
  
        if (plane_state->plane->type != DRM_PLANE_TYPE_OVERLAY)
                return;
  
-       if (plane_state->pixel_blend_mode == DRM_MODE_BLEND_PREMULTI) {
+       if (plane_state->pixel_blend_mode == DRM_MODE_BLEND_PREMULTI ||
+               plane_state->pixel_blend_mode == DRM_MODE_BLEND_COVERAGE) {
                static const uint32_t alpha_formats[] = {
                        DRM_FORMAT_ARGB8888,
                        DRM_FORMAT_RGBA8888,
                                break;
                        }
                }
+               if (per_pixel_alpha && plane_state->pixel_blend_mode == DRM_MODE_BLEND_COVERAGE)
+                       *pre_multiplied_alpha = false;
        }
  
        if (plane_state->alpha < 0xffff) {
@@@ -5600,7 -5574,7 +5574,7 @@@ fill_dc_plane_info_and_addr(struct amdg
                return ret;
  
        fill_blending_from_plane_state(
-               plane_state, &plane_info->per_pixel_alpha,
+               plane_state, &plane_info->per_pixel_alpha, &plane_info->pre_multiplied_alpha,
                &plane_info->global_alpha, &plane_info->global_alpha_value);
  
        return 0;
@@@ -5647,6 -5621,7 +5621,7 @@@ static int fill_dc_plane_attributes(str
        dc_plane_state->tiling_info = plane_info.tiling_info;
        dc_plane_state->visible = plane_info.visible;
        dc_plane_state->per_pixel_alpha = plane_info.per_pixel_alpha;
+       dc_plane_state->pre_multiplied_alpha = plane_info.pre_multiplied_alpha;
        dc_plane_state->global_alpha = plane_info.global_alpha;
        dc_plane_state->global_alpha_value = plane_info.global_alpha_value;
        dc_plane_state->dcc = plane_info.dcc;
@@@ -6617,14 -6592,12 +6592,14 @@@ dm_crtc_duplicate_state(struct drm_crt
        return &state->base;
  }
  
 +#ifdef CONFIG_DEBUG_FS
  static int amdgpu_dm_crtc_late_register(struct drm_crtc *crtc)
  {
        crtc_debugfs_init(crtc);
  
        return 0;
  }
 +#endif
  
  static inline int dm_set_vupdate_irq(struct drm_crtc *crtc, bool enable)
  {
@@@ -6648,10 -6621,8 +6623,8 @@@ static inline int dm_set_vblank(struct 
        struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);
        struct amdgpu_device *adev = drm_to_adev(crtc->dev);
        struct dm_crtc_state *acrtc_state = to_dm_crtc_state(crtc->state);
- #if defined(CONFIG_DRM_AMD_DC_DCN)
        struct amdgpu_display_manager *dm = &adev->dm;
        struct vblank_control_work *work;
- #endif
        int rc = 0;
  
        if (enable) {
        if (amdgpu_in_reset(adev))
                return 0;
  
- #if defined(CONFIG_DRM_AMD_DC_DCN)
        if (dm->vblank_control_workqueue) {
                work = kzalloc(sizeof(*work), GFP_ATOMIC);
                if (!work)
  
                queue_work(dm->vblank_control_workqueue, &work->work);
        }
- #endif
  
        return 0;
  }
@@@ -6722,9 -6691,7 +6693,9 @@@ static const struct drm_crtc_funcs amdg
        .enable_vblank = dm_enable_vblank,
        .disable_vblank = dm_disable_vblank,
        .get_vblank_timestamp = drm_crtc_vblank_helper_get_vblank_timestamp,
 +#if defined(CONFIG_DEBUG_FS)
        .late_register = amdgpu_dm_crtc_late_register,
 +#endif
  };
  
  static enum drm_connector_status
@@@ -7951,7 -7918,8 +7922,8 @@@ static int amdgpu_dm_plane_init(struct 
        if (plane->type == DRM_PLANE_TYPE_OVERLAY &&
            plane_cap && plane_cap->per_pixel_alpha) {
                unsigned int blend_caps = BIT(DRM_MODE_BLEND_PIXEL_NONE) |
-                                         BIT(DRM_MODE_BLEND_PREMULTI);
+                                         BIT(DRM_MODE_BLEND_PREMULTI) |
+                                         BIT(DRM_MODE_BLEND_COVERAGE);
  
                drm_plane_create_alpha_property(plane);
                drm_plane_create_blend_mode_property(plane, blend_caps);
@@@ -9361,14 -9329,12 +9333,12 @@@ static void amdgpu_dm_commit_planes(str
        /* Update the planes if changed or disable if we don't have any. */
        if ((planes_count || acrtc_state->active_planes == 0) &&
                acrtc_state->stream) {
- #if defined(CONFIG_DRM_AMD_DC_DCN)
                /*
                 * If PSR or idle optimizations are enabled then flush out
                 * any pending work before hardware programming.
                 */
                if (dm->vblank_control_workqueue)
                        flush_workqueue(dm->vblank_control_workqueue);
- #endif
  
                bundle->stream_update.stream = acrtc_state->stream;
                if (new_pcrtc_state->mode_changed) {
@@@ -9706,21 -9672,19 +9676,19 @@@ static void amdgpu_dm_atomic_commit_tai
        if (dc_state) {
                /* if there mode set or reset, disable eDP PSR */
                if (mode_set_reset_required) {
- #if defined(CONFIG_DRM_AMD_DC_DCN)
                        if (dm->vblank_control_workqueue)
                                flush_workqueue(dm->vblank_control_workqueue);
- #endif
                        amdgpu_dm_psr_disable_all(dm);
                }
  
                dm_enable_per_frame_crtc_master_sync(dc_state);
                mutex_lock(&dm->dc_lock);
                WARN_ON(!dc_commit_state(dm->dc, dc_state));
- #if defined(CONFIG_DRM_AMD_DC_DCN)
-                /* Allow idle optimization when vblank count is 0 for display off */
-                if (dm->active_vblank_irq_count == 0)
-                    dc_allow_idle_optimizations(dm->dc,true);
- #endif
+               /* Allow idle optimization when vblank count is 0 for display off */
+               if (dm->active_vblank_irq_count == 0)
+                       dc_allow_idle_optimizations(dm->dc, true);
                mutex_unlock(&dm->dc_lock);
        }
  
index c37dd0e964a4732df837e42baeabaf22b4672ac5,8ffd601e68f95742f278ff725239faeb7ad724fd..1afe99dac0ff2fb8a851662eb880a205cc6d7b82
@@@ -92,9 -92,8 +92,10 @@@ config DRM_ITE_IT650
        select DRM_DISPLAY_HELPER
          select DRM_DP_AUX_BUS
          select DRM_KMS_HELPER
+         select DRM_DP_HELPER
          select EXTCON
 +        select CRYPTO
 +        select CRYPTO_HASH
          help
            ITE IT6505 DisplayPort bridge chip driver.
  
index 93651bc9a02c4a0c5db6ca129df3bf06b8f6301c,67b3b9697da7fdcfc22c21906069b91ab5345dd2..18f2b6075b780d8589f1d0107f6a56aa10720ae5
@@@ -3860,7 -3860,9 +3860,7 @@@ int drm_dp_mst_topology_mgr_resume(stru
        if (!mgr->mst_primary)
                goto out_fail;
  
 -      ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, mgr->dpcd,
 -                             DP_RECEIVER_CAP_SIZE);
 -      if (ret != DP_RECEIVER_CAP_SIZE) {
 +      if (drm_dp_read_dpcd_caps(mgr->aux, mgr->dpcd) < 0) {
                drm_dbg_kms(mgr->dev, "dpcd read failed - undocked during suspend?\n");
                goto out_fail;
        }
@@@ -4849,6 -4851,7 +4849,7 @@@ static void fetch_monitor_name(struct d
  
        mst_edid = drm_dp_mst_get_edid(port->connector, mgr, port);
        drm_edid_get_monitor_name(mst_edid, name, namelen);
+       kfree(mst_edid);
  }
  
  /**
@@@ -4908,7 -4911,8 +4909,7 @@@ void drm_dp_mst_dump_topology(struct se
                u8 buf[DP_PAYLOAD_TABLE_SIZE];
                int ret;
  
 -              ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE);
 -              if (ret) {
 +              if (drm_dp_read_dpcd_caps(mgr->aux, buf) < 0) {
                        seq_printf(m, "dpcd read failed\n");
                        goto out;
                }
index 6088d70f22e52cc89f2468d73b098a114ffb5c22,8f9fed9fdafc49cd248cfdd26b731da558b9561d..57ae14a0e1814e6a541556713f31b501b08ee62f
@@@ -102,12 -102,14 +102,12 @@@ static int dp_parser_ctrl_res(struct dp
  static int dp_parser_misc(struct dp_parser *parser)
  {
        struct device_node *of_node = parser->pdev->dev.of_node;
 -      int len = 0;
 -      const char *data_lane_property = "data-lanes";
 +      int len;
  
 -      len = of_property_count_elems_of_size(of_node,
 -                       data_lane_property, sizeof(u32));
 +      len = drm_of_get_data_lanes_count(of_node, 1, DP_MAX_NUM_DP_LANES);
        if (len < 0) {
 -              DRM_WARN("Invalid property %s, default max DP lanes = %d\n",
 -                              data_lane_property, DP_MAX_NUM_DP_LANES);
 +              DRM_WARN("Invalid property \"data-lanes\", default max DP lanes = %d\n",
 +                       DP_MAX_NUM_DP_LANES);
                len = DP_MAX_NUM_DP_LANES;
        }
  
@@@ -258,12 -260,10 +258,10 @@@ static int dp_parser_clock(struct dp_pa
                }
        }
  
-       DRM_DEBUG_DP("clock parsing successful\n");
        return 0;
  }
  
static int dp_parser_find_next_bridge(struct dp_parser *parser)
+ int dp_parser_find_next_bridge(struct dp_parser *parser)
  {
        struct device *dev = &parser->pdev->dev;
        struct drm_bridge *bridge;
        return 0;
  }
  
- static int dp_parser_parse(struct dp_parser *parser, int connector_type)
+ static int dp_parser_parse(struct dp_parser *parser)
  {
        int rc = 0;
  
        if (rc)
                return rc;
  
-       /*
-        * External bridges are mandatory for eDP interfaces: one has to
-        * provide at least an eDP panel (which gets wrapped into panel-bridge).
-        *
-        * For DisplayPort interfaces external bridges are optional, so
-        * silently ignore an error if one is not present (-ENODEV).
-        */
-       rc = dp_parser_find_next_bridge(parser);
-       if (rc == -ENODEV) {
-               if (connector_type == DRM_MODE_CONNECTOR_eDP) {
-                       DRM_ERROR("eDP: next bridge is not present\n");
-                       return rc;
-               }
-       } else if (rc) {
-               if (rc != -EPROBE_DEFER)
-                       DRM_ERROR("DP: error parsing next bridge: %d\n", rc);
-               return rc;
-       }
        /* Map the corresponding regulator information according to
         * version. Currently, since we only have one supported platform,
         * mapping the regulator directly.
index c4a24ae00d946e468e0b5493b48210527241a055,a95d5df52653cfd34ee1fd7f663b29934c76339a..208e9ed1bb0e149532a20ff7459f79ef3adb8e77
@@@ -21,8 -21,6 +21,8 @@@
  
  #include <video/mipi_display.h>
  
 +#include <drm/drm_of.h>
 +
  #include "dsi.h"
  #include "dsi.xml.h"
  #include "sfpb.xml.h"
@@@ -33,6 -31,8 +33,8 @@@
  
  #define DSI_RESET_TOGGLE_DELAY_MS 20
  
+ static int dsi_populate_dsc_params(struct msm_display_dsc_config *dsc);
  static int dsi_get_version(const void __iomem *base, u32 *major, u32 *minor)
  {
        u32 ver;
@@@ -159,6 -159,7 +161,7 @@@ struct msm_dsi_host 
        struct regmap *sfpb;
  
        struct drm_display_mode *mode;
+       struct msm_display_dsc_config *dsc;
  
        /* connected device info */
        struct device_node *device_node;
@@@ -911,6 -912,68 +914,68 @@@ static void dsi_ctrl_config(struct msm_
                dsi_write(msm_host, REG_DSI_CPHY_MODE_CTRL, BIT(0));
  }
  
+ static void dsi_update_dsc_timing(struct msm_dsi_host *msm_host, bool is_cmd_mode, u32 hdisplay)
+ {
+       struct msm_display_dsc_config *dsc = msm_host->dsc;
+       u32 reg, intf_width, reg_ctrl, reg_ctrl2;
+       u32 slice_per_intf, total_bytes_per_intf;
+       u32 pkt_per_line;
+       u32 bytes_in_slice;
+       u32 eol_byte_num;
+       /* first calculate dsc parameters and then program
+        * compress mode registers
+        */
+       intf_width = hdisplay;
+       slice_per_intf = DIV_ROUND_UP(intf_width, dsc->drm->slice_width);
+       /* If slice_per_pkt is greater than slice_per_intf
+        * then default to 1. This can happen during partial
+        * update.
+        */
+       if (slice_per_intf > dsc->drm->slice_count)
+               dsc->drm->slice_count = 1;
+       slice_per_intf = DIV_ROUND_UP(hdisplay, dsc->drm->slice_width);
+       bytes_in_slice = DIV_ROUND_UP(dsc->drm->slice_width * dsc->drm->bits_per_pixel, 8);
+       dsc->drm->slice_chunk_size = bytes_in_slice;
+       total_bytes_per_intf = bytes_in_slice * slice_per_intf;
+       eol_byte_num = total_bytes_per_intf % 3;
+       pkt_per_line = slice_per_intf / dsc->drm->slice_count;
+       if (is_cmd_mode) /* packet data type */
+               reg = DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE(MIPI_DSI_DCS_LONG_WRITE);
+       else
+               reg = DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE(MIPI_DSI_COMPRESSED_PIXEL_STREAM);
+       /* DSI_VIDEO_COMPRESSION_MODE & DSI_COMMAND_COMPRESSION_MODE
+        * registers have similar offsets, so for below common code use
+        * DSI_VIDEO_COMPRESSION_MODE_XXXX for setting bits
+        */
+       reg |= DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE(pkt_per_line >> 1);
+       reg |= DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM(eol_byte_num);
+       reg |= DSI_VIDEO_COMPRESSION_MODE_CTRL_EN;
+       if (is_cmd_mode) {
+               reg_ctrl = dsi_read(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL);
+               reg_ctrl2 = dsi_read(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL2);
+               reg_ctrl &= ~0xffff;
+               reg_ctrl |= reg;
+               reg_ctrl2 &= ~DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__MASK;
+               reg_ctrl2 |= DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH(bytes_in_slice);
+               dsi_write(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL, reg_ctrl);
+               dsi_write(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL2, reg_ctrl2);
+       } else {
+               dsi_write(msm_host, REG_DSI_VIDEO_COMPRESSION_MODE_CTRL, reg);
+       }
+ }
  static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_bonded_dsi)
  {
        struct drm_display_mode *mode = msm_host->mode;
                hdisplay /= 2;
        }
  
+       if (msm_host->dsc) {
+               struct msm_display_dsc_config *dsc = msm_host->dsc;
+               /* update dsc params with timing params */
+               if (!dsc || !mode->hdisplay || !mode->vdisplay) {
+                       pr_err("DSI: invalid input: pic_width: %d pic_height: %d\n",
+                              mode->hdisplay, mode->vdisplay);
+                       return;
+               }
+               dsc->drm->pic_width = mode->hdisplay;
+               dsc->drm->pic_height = mode->vdisplay;
+               DBG("Mode %dx%d\n", dsc->drm->pic_width, dsc->drm->pic_height);
+               /* we do the calculations for dsc parameters here so that
+                * panel can use these parameters
+                */
+               dsi_populate_dsc_params(dsc);
+               /* Divide the display by 3 but keep back/font porch and
+                * pulse width same
+                */
+               h_total -= hdisplay;
+               hdisplay /= 3;
+               h_total += hdisplay;
+               ha_end = ha_start + hdisplay;
+       }
        if (msm_host->mode_flags & MIPI_DSI_MODE_VIDEO) {
+               if (msm_host->dsc)
+                       dsi_update_dsc_timing(msm_host, false, mode->hdisplay);
                dsi_write(msm_host, REG_DSI_ACTIVE_H,
                        DSI_ACTIVE_H_START(ha_start) |
                        DSI_ACTIVE_H_END(ha_end));
                        DSI_ACTIVE_VSYNC_VPOS_START(vs_start) |
                        DSI_ACTIVE_VSYNC_VPOS_END(vs_end));
        } else {                /* command mode */
+               if (msm_host->dsc)
+                       dsi_update_dsc_timing(msm_host, true, mode->hdisplay);
                /* image data and 1 byte write_memory_start cmd */
-               wc = hdisplay * dsi_get_bpp(msm_host->format) / 8 + 1;
+               if (!msm_host->dsc)
+                       wc = hdisplay * dsi_get_bpp(msm_host->format) / 8 + 1;
+               else
+                       wc = mode->hdisplay / 2 + 1;
  
                dsi_write(msm_host, REG_DSI_CMD_MDP_STREAM0_CTRL,
                        DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT(wc) |
@@@ -1343,10 -1443,10 +1445,10 @@@ static int dsi_cmds2buf_tx(struct msm_d
                        dsi_get_bpp(msm_host->format) / 8;
  
        len = dsi_cmd_dma_add(msm_host, msg);
-       if (!len) {
+       if (len < 0) {
                pr_err("%s: failed to add cmd type = 0x%x\n",
                        __func__,  msg->type);
-               return -EINVAL;
+               return len;
        }
  
        /* for video mode, do not send cmds more than
        }
  
        ret = dsi_cmd_dma_tx(msm_host, len);
-       if (ret < len) {
-               pr_err("%s: cmd dma tx failed, type=0x%x, data0=0x%x, len=%d\n",
-                       __func__, msg->type, (*(u8 *)(msg->tx_buf)), len);
-               return -ECOMM;
+       if (ret < 0) {
+               pr_err("%s: cmd dma tx failed, type=0x%x, data0=0x%x, len=%d, ret=%d\n",
+                       __func__, msg->type, (*(u8 *)(msg->tx_buf)), len, ret);
+               return ret;
+       } else if (ret < len) {
+               pr_err("%s: cmd dma tx failed, type=0x%x, data0=0x%x, ret=%d len=%d\n",
+                       __func__, msg->type, (*(u8 *)(msg->tx_buf)), ret, len);
+               return -EIO;
        }
  
        return len;
@@@ -1675,10 -1779,11 +1781,10 @@@ static int dsi_host_parse_lane_data(str
                return 0;
        }
  
 -      num_lanes = len / sizeof(u32);
 -
 -      if (num_lanes < 1 || num_lanes > 4) {
 +      num_lanes = drm_of_get_data_lanes_count(ep, 1, 4);
 +      if (num_lanes < 0) {
                DRM_DEV_ERROR(dev, "bad number of data lanes\n");
 -              return -EINVAL;
 +              return num_lanes;
        }
  
        msm_host->num_data_lanes = num_lanes;
        return -EINVAL;
  }
  
+ static u32 dsi_dsc_rc_buf_thresh[DSC_NUM_BUF_RANGES - 1] = {
+       0x0e, 0x1c, 0x2a, 0x38, 0x46, 0x54, 0x62,
+       0x69, 0x70, 0x77, 0x79, 0x7b, 0x7d, 0x7e
+ };
+ /* only 8bpc, 8bpp added */
+ static char min_qp[DSC_NUM_BUF_RANGES] = {
+       0, 0, 1, 1, 3, 3, 3, 3, 3, 3, 5, 5, 5, 7, 13
+ };
+ static char max_qp[DSC_NUM_BUF_RANGES] = {
+       4, 4, 5, 6, 7, 7, 7, 8, 9, 10, 11, 12, 13, 13, 15
+ };
+ static char bpg_offset[DSC_NUM_BUF_RANGES] = {
+       2, 0, 0, -2, -4, -6, -8, -8, -8, -10, -10, -12, -12, -12, -12
+ };
+ static int dsi_populate_dsc_params(struct msm_display_dsc_config *dsc)
+ {
+       int mux_words_size;
+       int groups_per_line, groups_total;
+       int min_rate_buffer_size;
+       int hrd_delay;
+       int pre_num_extra_mux_bits, num_extra_mux_bits;
+       int slice_bits;
+       int target_bpp_x16;
+       int data;
+       int final_value, final_scale;
+       int i;
+       dsc->drm->rc_model_size = 8192;
+       dsc->drm->first_line_bpg_offset = 12;
+       dsc->drm->rc_edge_factor = 6;
+       dsc->drm->rc_tgt_offset_high = 3;
+       dsc->drm->rc_tgt_offset_low = 3;
+       dsc->drm->simple_422 = 0;
+       dsc->drm->convert_rgb = 1;
+       dsc->drm->vbr_enable = 0;
+       /* handle only bpp = bpc = 8 */
+       for (i = 0; i < DSC_NUM_BUF_RANGES - 1 ; i++)
+               dsc->drm->rc_buf_thresh[i] = dsi_dsc_rc_buf_thresh[i];
+       for (i = 0; i < DSC_NUM_BUF_RANGES; i++) {
+               dsc->drm->rc_range_params[i].range_min_qp = min_qp[i];
+               dsc->drm->rc_range_params[i].range_max_qp = max_qp[i];
+               dsc->drm->rc_range_params[i].range_bpg_offset = bpg_offset[i];
+       }
+       dsc->drm->initial_offset = 6144; /* Not bpp 12 */
+       if (dsc->drm->bits_per_pixel != 8)
+               dsc->drm->initial_offset = 2048;        /* bpp = 12 */
+       mux_words_size = 48;            /* bpc == 8/10 */
+       if (dsc->drm->bits_per_component == 12)
+               mux_words_size = 64;
+       dsc->drm->initial_xmit_delay = 512;
+       dsc->drm->initial_scale_value = 32;
+       dsc->drm->first_line_bpg_offset = 12;
+       dsc->drm->line_buf_depth = dsc->drm->bits_per_component + 1;
+       /* bpc 8 */
+       dsc->drm->flatness_min_qp = 3;
+       dsc->drm->flatness_max_qp = 12;
+       dsc->drm->rc_quant_incr_limit0 = 11;
+       dsc->drm->rc_quant_incr_limit1 = 11;
+       dsc->drm->mux_word_size = DSC_MUX_WORD_SIZE_8_10_BPC;
+       /* FIXME: need to call drm_dsc_compute_rc_parameters() so that rest of
+        * params are calculated
+        */
+       groups_per_line = DIV_ROUND_UP(dsc->drm->slice_width, 3);
+       dsc->drm->slice_chunk_size = dsc->drm->slice_width * dsc->drm->bits_per_pixel / 8;
+       if ((dsc->drm->slice_width * dsc->drm->bits_per_pixel) % 8)
+               dsc->drm->slice_chunk_size++;
+       /* rbs-min */
+       min_rate_buffer_size =  dsc->drm->rc_model_size - dsc->drm->initial_offset +
+                               dsc->drm->initial_xmit_delay * dsc->drm->bits_per_pixel +
+                               groups_per_line * dsc->drm->first_line_bpg_offset;
+       hrd_delay = DIV_ROUND_UP(min_rate_buffer_size, dsc->drm->bits_per_pixel);
+       dsc->drm->initial_dec_delay = hrd_delay - dsc->drm->initial_xmit_delay;
+       dsc->drm->initial_scale_value = 8 * dsc->drm->rc_model_size /
+                                      (dsc->drm->rc_model_size - dsc->drm->initial_offset);
+       slice_bits = 8 * dsc->drm->slice_chunk_size * dsc->drm->slice_height;
+       groups_total = groups_per_line * dsc->drm->slice_height;
+       data = dsc->drm->first_line_bpg_offset * 2048;
+       dsc->drm->nfl_bpg_offset = DIV_ROUND_UP(data, (dsc->drm->slice_height - 1));
+       pre_num_extra_mux_bits = 3 * (mux_words_size + (4 * dsc->drm->bits_per_component + 4) - 2);
+       num_extra_mux_bits = pre_num_extra_mux_bits - (mux_words_size -
+                            ((slice_bits - pre_num_extra_mux_bits) % mux_words_size));
+       data = 2048 * (dsc->drm->rc_model_size - dsc->drm->initial_offset + num_extra_mux_bits);
+       dsc->drm->slice_bpg_offset = DIV_ROUND_UP(data, groups_total);
+       /* bpp * 16 + 0.5 */
+       data = dsc->drm->bits_per_pixel * 16;
+       data *= 2;
+       data++;
+       data /= 2;
+       target_bpp_x16 = data;
+       data = (dsc->drm->initial_xmit_delay * target_bpp_x16) / 16;
+       final_value =  dsc->drm->rc_model_size - data + num_extra_mux_bits;
+       dsc->drm->final_offset = final_value;
+       final_scale = 8 * dsc->drm->rc_model_size / (dsc->drm->rc_model_size - final_value);
+       data = (final_scale - 9) * (dsc->drm->nfl_bpg_offset + dsc->drm->slice_bpg_offset);
+       dsc->drm->scale_increment_interval = (2048 * dsc->drm->final_offset) / data;
+       dsc->drm->scale_decrement_interval = groups_per_line / (dsc->drm->initial_scale_value - 8);
+       return 0;
+ }
  static int dsi_host_parse_dt(struct msm_dsi_host *msm_host)
  {
        struct device *dev = &msm_host->pdev->dev;
@@@ -1932,9 -2164,24 +2165,24 @@@ int msm_dsi_host_modeset_init(struct mi
  {
        struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
        const struct msm_dsi_cfg_handler *cfg_hnd = msm_host->cfg_hnd;
+       struct drm_panel *panel;
        int ret;
  
        msm_host->dev = dev;
+       panel = msm_dsi_host_get_panel(&msm_host->base);
+       if (!IS_ERR(panel) && panel->dsc) {
+               struct msm_display_dsc_config *dsc = msm_host->dsc;
+               if (!dsc) {
+                       dsc = devm_kzalloc(&msm_host->pdev->dev, sizeof(*dsc), GFP_KERNEL);
+                       if (!dsc)
+                               return -ENOMEM;
+                       dsc->drm = panel->dsc;
+                       msm_host->dsc = dsc;
+               }
+       }
        ret = cfg_hnd->ops->tx_buf_alloc(msm_host, SZ_4K);
        if (ret) {
                pr_err("%s: alloc tx gem obj failed, %d\n", __func__, ret);
@@@ -2093,9 -2340,12 +2341,12 @@@ int msm_dsi_host_cmd_rx(struct mipi_dsi
                }
  
                ret = dsi_cmds2buf_tx(msm_host, msg);
-               if (ret < msg->tx_len) {
+               if (ret < 0) {
                        pr_err("%s: Read cmd Tx failed, %d\n", __func__, ret);
                        return ret;
+               } else if (ret < msg->tx_len) {
+                       pr_err("%s: Read cmd Tx failed, too short: %d\n", __func__, ret);
+                       return -ECOMM;
                }
  
                /*
@@@ -2410,6 -2660,32 +2661,32 @@@ int msm_dsi_host_set_display_mode(struc
        return 0;
  }
  
+ enum drm_mode_status msm_dsi_host_check_dsc(struct mipi_dsi_host *host,
+                                           const struct drm_display_mode *mode)
+ {
+       struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
+       struct msm_display_dsc_config *dsc = msm_host->dsc;
+       int pic_width = mode->hdisplay;
+       int pic_height = mode->vdisplay;
+       if (!msm_host->dsc)
+               return MODE_OK;
+       if (pic_width % dsc->drm->slice_width) {
+               pr_err("DSI: pic_width %d has to be multiple of slice %d\n",
+                      pic_width, dsc->drm->slice_width);
+               return MODE_H_ILLEGAL;
+       }
+       if (pic_height % dsc->drm->slice_height) {
+               pr_err("DSI: pic_height %d has to be multiple of slice %d\n",
+                      pic_height, dsc->drm->slice_height);
+               return MODE_V_ILLEGAL;
+       }
+       return MODE_OK;
+ }
  struct drm_panel *msm_dsi_host_get_panel(struct mipi_dsi_host *host)
  {
        return of_drm_find_panel(to_msm_dsi_host(host)->device_node);
@@@ -2499,3 -2775,10 +2776,10 @@@ void msm_dsi_host_test_pattern_en(struc
                dsi_write(msm_host, REG_DSI_TEST_PATTERN_GEN_CMD_STREAM0_TRIGGER,
                                DSI_TEST_PATTERN_GEN_CMD_STREAM0_TRIGGER_SW_TRIGGER);
  }
+ struct msm_display_dsc_config *msm_dsi_host_get_dsc_config(struct mipi_dsi_host *host)
+ {
+       struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
+       return msm_host->dsc;
+ }
index e0720fef0ee62164449f9012e5f0d79027179ae6,2a1a425ceb98eddd593711497fca28bebf1c074a..c4a18322dee99d05e9b76ddd479cffbb03832cff
@@@ -19,7 -19,6 +19,7 @@@
  #include <linux/kernel.h>
  #include <linux/major.h>
  #include <linux/slab.h>
 +#include <linux/sysfb.h>
  #include <linux/mm.h>
  #include <linux/mman.h>
  #include <linux/vt.h>
@@@ -1765,17 -1764,6 +1765,17 @@@ int remove_conflicting_framebuffers(str
                do_free = true;
        }
  
 +      /*
 +       * If a driver asked to unregister a platform device registered by
 +       * sysfb, then can be assumed that this is a driver for a display
 +       * that is set up by the system firmware and has a generic driver.
 +       *
 +       * Drivers for devices that don't have a generic driver will never
 +       * ask for this, so let's assume that a real driver for the display
 +       * was already probed and prevent sysfb to register devices later.
 +       */
 +      sysfb_disable();
 +
        mutex_lock(&registration_lock);
        do_remove_conflicting_framebuffers(a, name, primary);
        mutex_unlock(&registration_lock);
  }
  EXPORT_SYMBOL(remove_conflicting_framebuffers);
  
- /**
-  * is_firmware_framebuffer - detect if firmware-configured framebuffer matches
-  * @a: memory range, users of which are to be checked
-  *
-  * This function checks framebuffer devices (initialized by firmware/bootloader)
-  * which use memory range described by @a. If @a matchesm the function returns
-  * true, otherwise false.
-  */
- bool is_firmware_framebuffer(struct apertures_struct *a)
- {
-       bool do_free = false;
-       bool found = false;
-       int i;
-       if (!a) {
-               a = alloc_apertures(1);
-               if (!a)
-                       return false;
-               a->ranges[0].base = 0;
-               a->ranges[0].size = ~0;
-               do_free = true;
-       }
-       mutex_lock(&registration_lock);
-       /* check all firmware fbs and kick off if the base addr overlaps */
-       for_each_registered_fb(i) {
-               struct apertures_struct *gen_aper;
-               if (!(registered_fb[i]->flags & FBINFO_MISC_FIRMWARE))
-                       continue;
-               gen_aper = registered_fb[i]->apertures;
-               if (fb_do_apertures_overlap(gen_aper, a)) {
-                       found = true;
-                       break;
-               }
-       }
-       mutex_unlock(&registration_lock);
-       if (do_free)
-               kfree(a);
-       return found;
- }
- EXPORT_SYMBOL(is_firmware_framebuffer);
  /**
   * remove_conflicting_pci_framebuffers - remove firmware-configured framebuffers for PCI devices
   * @pdev: PCI device
index edca3703b9640ccf905cc627140535852806738c,b3d5f884c5445b68759b8f18bc7ef8047e10ec30..16c1aaae9afa45680c6bd79ef8c87c2c4987c5ee
@@@ -243,6 -243,10 +243,10 @@@ error
  static inline void efifb_show_boot_graphics(struct fb_info *info) {}
  #endif
  
+ /*
+  * fb_ops.fb_destroy is called by the last put_fb_info() call at the end
+  * of unregister_framebuffer() or fb_release(). Do any cleanup here.
+  */
  static void efifb_destroy(struct fb_info *info)
  {
        if (efifb_pci_dev)
                else
                        memunmap(info->screen_base);
        }
        if (request_mem_succeeded)
                release_mem_region(info->apertures->ranges[0].base,
                                   info->apertures->ranges[0].size);
        fb_dealloc_cmap(&info->cmap);
+       framebuffer_release(info);
  }
  
  static const struct fb_ops efifb_ops = {
@@@ -351,6 -358,17 +358,6 @@@ static int efifb_probe(struct platform_
        char *option = NULL;
        efi_memory_desc_t md;
  
 -      /*
 -       * Generic drivers must not be registered if a framebuffer exists.
 -       * If a native driver was probed, the display hardware was already
 -       * taken and attempting to use the system framebuffer is dangerous.
 -       */
 -      if (num_registered_fb > 0) {
 -              dev_err(&dev->dev,
 -                      "efifb: a framebuffer is already registered\n");
 -              return -EINVAL;
 -      }
 -
        if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || pci_dev_disabled)
                return -ENODEV;
  
@@@ -609,9 -627,9 +616,9 @@@ static int efifb_remove(struct platform
  {
        struct fb_info *info = platform_get_drvdata(pdev);
  
+       /* efifb_destroy takes care of info cleanup */
        unregister_framebuffer(info);
        sysfs_remove_groups(&pdev->dev.kobj, efifb_groups);
-       framebuffer_release(info);
  
        return 0;
  }
index 0ef41173325a09ae37d0e79f905850f54393d0e0,2c198561c338f74fbb2e34a85aa22f70b36faa3b..991a31846ae76a40cbd261795f3bb637e394ec22
@@@ -84,6 -84,10 +84,10 @@@ struct simplefb_par 
  static void simplefb_clocks_destroy(struct simplefb_par *par);
  static void simplefb_regulators_destroy(struct simplefb_par *par);
  
+ /*
+  * fb_ops.fb_destroy is called by the last put_fb_info() call at the end
+  * of unregister_framebuffer() or fb_release(). Do any cleanup here.
+  */
  static void simplefb_destroy(struct fb_info *info)
  {
        struct simplefb_par *par = info->par;
@@@ -94,6 -98,8 +98,8 @@@
        if (info->screen_base)
                iounmap(info->screen_base);
  
+       framebuffer_release(info);
        if (mem)
                release_mem_region(mem->start, resource_size(mem));
  }
@@@ -413,6 -419,17 +419,6 @@@ static int simplefb_probe(struct platfo
        struct simplefb_par *par;
        struct resource *res, *mem;
  
 -      /*
 -       * Generic drivers must not be registered if a framebuffer exists.
 -       * If a native driver was probed, the display hardware was already
 -       * taken and attempting to use the system framebuffer is dangerous.
 -       */
 -      if (num_registered_fb > 0) {
 -              dev_err(&pdev->dev,
 -                      "simplefb: a framebuffer is already registered\n");
 -              return -EINVAL;
 -      }
 -
        if (fb_get_options("simplefb", NULL))
                return -ENODEV;
  
@@@ -534,8 -551,8 +540,8 @@@ static int simplefb_remove(struct platf
  {
        struct fb_info *info = platform_get_drvdata(pdev);
  
+       /* simplefb_destroy takes care of info cleanup */
        unregister_framebuffer(info);
-       framebuffer_release(info);
  
        return 0;
  }
diff --combined include/drm/drm_edid.h
index c592d2c1afeddfb77bef941d7791e461e5dd0d4c,95ac09ef41b26df32b16050692362a7cd6a9a258..9d2d78135deef00da1e92af1f8c1d600eba082f3
@@@ -122,7 -122,7 +122,7 @@@ struct detailed_data_monitor_range 
                        u8 supported_scalings;
                        u8 preferred_refresh;
                } __attribute__((packed)) cvt;
-       } formula;
+       } __attribute__((packed)) formula;
  } __attribute__((packed));
  
  struct detailed_data_wpindex {
@@@ -155,7 -155,7 +155,7 @@@ struct detailed_non_pixel 
                struct detailed_data_wpindex color;
                struct std_timing timings[6];
                struct cvt_timing cvt[4];
-       } data;
+       } __attribute__((packed)) data;
  } __attribute__((packed));
  
  #define EDID_DETAIL_EST_TIMINGS 0xf7
@@@ -173,7 -173,7 +173,7 @@@ struct detailed_timing 
        union {
                struct detailed_pixel_timing pixel_data;
                struct detailed_non_pixel other_data;
-       } data;
+       } __attribute__((packed)) data;
  } __attribute__((packed));
  
  #define DRM_EDID_INPUT_SERRATION_VSYNC (1 << 0)
@@@ -594,15 -594,6 +594,15 @@@ drm_display_mode_from_cea_vic(struct dr
                              u8 video_code);
  
  /* Interface based on struct drm_edid */
 +const struct drm_edid *drm_edid_alloc(const void *edid, size_t size);
 +const struct drm_edid *drm_edid_dup(const struct drm_edid *drm_edid);
 +void drm_edid_free(const struct drm_edid *drm_edid);
 +const struct drm_edid *drm_edid_read(struct drm_connector *connector);
 +const struct drm_edid *drm_edid_read_ddc(struct drm_connector *connector,
 +                                       struct i2c_adapter *adapter);
 +const struct drm_edid *drm_edid_read_custom(struct drm_connector *connector,
 +                                          int (*read_block)(void *context, u8 *buf, unsigned int block, size_t len),
 +                                          void *context);
  const u8 *drm_find_edid_extension(const struct drm_edid *drm_edid,
                                  int ext_id, int *ext_index);
  
index 30fb8834aa3cb7af090aa07bcea218daeff07c51,b1523cb8ab307d7454160a5d5b3f1d1c0fc1b596..5a6fda66d9adf01438619e7e67fa69f0fec2d88d
@@@ -85,88 -85,6 +85,88 @@@ struct dma_buf_sync 
  
  #define DMA_BUF_NAME_LEN      32
  
 +/**
 + * struct dma_buf_export_sync_file - Get a sync_file from a dma-buf
 + *
 + * Userspace can perform a DMA_BUF_IOCTL_EXPORT_SYNC_FILE to retrieve the
 + * current set of fences on a dma-buf file descriptor as a sync_file.  CPU
 + * waits via poll() or other driver-specific mechanisms typically wait on
 + * whatever fences are on the dma-buf at the time the wait begins.  This
 + * is similar except that it takes a snapshot of the current fences on the
 + * dma-buf for waiting later instead of waiting immediately.  This is
 + * useful for modern graphics APIs such as Vulkan which assume an explicit
 + * synchronization model but still need to inter-operate with dma-buf.
 + *
 + * The intended usage pattern is the following:
 + *
 + *  1. Export a sync_file with flags corresponding to the expected GPU usage
 + *     via DMA_BUF_IOCTL_EXPORT_SYNC_FILE.
 + *
 + *  2. Submit rendering work which uses the dma-buf.  The work should wait on
 + *     the exported sync file before rendering and produce another sync_file
 + *     when complete.
 + *
 + *  3. Import the rendering-complete sync_file into the dma-buf with flags
 + *     corresponding to the GPU usage via DMA_BUF_IOCTL_IMPORT_SYNC_FILE.
 + *
 + * Unlike doing implicit synchronization via a GPU kernel driver's exec ioctl,
 + * the above is not a single atomic operation.  If userspace wants to ensure
 + * ordering via these fences, it is the respnosibility of userspace to use
 + * locks or other mechanisms to ensure that no other context adds fences or
 + * submits work between steps 1 and 3 above.
 + */
 +struct dma_buf_export_sync_file {
 +      /**
 +       * @flags: Read/write flags
 +       *
 +       * Must be DMA_BUF_SYNC_READ, DMA_BUF_SYNC_WRITE, or both.
 +       *
 +       * If DMA_BUF_SYNC_READ is set and DMA_BUF_SYNC_WRITE is not set,
 +       * the returned sync file waits on any writers of the dma-buf to
 +       * complete.  Waiting on the returned sync file is equivalent to
 +       * poll() with POLLIN.
 +       *
 +       * If DMA_BUF_SYNC_WRITE is set, the returned sync file waits on
 +       * any users of the dma-buf (read or write) to complete.  Waiting
 +       * on the returned sync file is equivalent to poll() with POLLOUT.
 +       * If both DMA_BUF_SYNC_WRITE and DMA_BUF_SYNC_READ are set, this
 +       * is equivalent to just DMA_BUF_SYNC_WRITE.
 +       */
 +      __u32 flags;
 +      /** @fd: Returned sync file descriptor */
 +      __s32 fd;
 +};
 +
 +/**
 + * struct dma_buf_import_sync_file - Insert a sync_file into a dma-buf
 + *
 + * Userspace can perform a DMA_BUF_IOCTL_IMPORT_SYNC_FILE to insert a
 + * sync_file into a dma-buf for the purposes of implicit synchronization
 + * with other dma-buf consumers.  This allows clients using explicitly
 + * synchronized APIs such as Vulkan to inter-op with dma-buf consumers
 + * which expect implicit synchronization such as OpenGL or most media
 + * drivers/video.
 + */
 +struct dma_buf_import_sync_file {
 +      /**
 +       * @flags: Read/write flags
 +       *
 +       * Must be DMA_BUF_SYNC_READ, DMA_BUF_SYNC_WRITE, or both.
 +       *
 +       * If DMA_BUF_SYNC_READ is set and DMA_BUF_SYNC_WRITE is not set,
 +       * this inserts the sync_file as a read-only fence.  Any subsequent
 +       * implicitly synchronized writes to this dma-buf will wait on this
 +       * fence but reads will not.
 +       *
 +       * If DMA_BUF_SYNC_WRITE is set, this inserts the sync_file as a
 +       * write fence.  All subsequent implicitly synchronized access to
 +       * this dma-buf will wait on this fence.
 +       */
 +      __u32 flags;
 +      /** @fd: Sync file descriptor */
 +      __s32 fd;
 +};
 +
  #define DMA_BUF_BASE          'b'
  #define DMA_BUF_IOCTL_SYNC    _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
  
   * between them in actual uapi, they're just different numbers.
   */
  #define DMA_BUF_SET_NAME      _IOW(DMA_BUF_BASE, 1, const char *)
- #define DMA_BUF_SET_NAME_A    _IOW(DMA_BUF_BASE, 1, u32)
- #define DMA_BUF_SET_NAME_B    _IOW(DMA_BUF_BASE, 1, u64)
+ #define DMA_BUF_SET_NAME_A    _IOW(DMA_BUF_BASE, 1, __u32)
+ #define DMA_BUF_SET_NAME_B    _IOW(DMA_BUF_BASE, 1, __u64)
 +#define DMA_BUF_IOCTL_EXPORT_SYNC_FILE        _IOWR(DMA_BUF_BASE, 2, struct dma_buf_export_sync_file)
 +#define DMA_BUF_IOCTL_IMPORT_SYNC_FILE        _IOW(DMA_BUF_BASE, 3, struct dma_buf_import_sync_file)
  
  #endif