Merge drm/drm-next into drm-misc-next
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 11 May 2021 13:59:18 +0000 (15:59 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 11 May 2021 13:59:18 +0000 (15:59 +0200)
Backmerging to get v5.12 fixes. Requested for vmwgfx.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
17 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
drivers/gpu/drm/amd/display/dc/dc_link.h
drivers/gpu/drm/drm_modes.c
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_dp_link_training.c
drivers/gpu/drm/qxl/qxl_drv.c
drivers/gpu/drm/tegra/dc.c
drivers/gpu/drm/tegra/drm.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h

diff --combined MAINTAINERS
index 64ed8b77cfa90c9b5ba9a8d96cd339ccd514154b,bd7aff0c120f20556547a36ba1ee47d8bfab1694..dd6457049e3e8003dfdbf8dbc7a1a18e54f622f6
@@@ -300,7 -300,6 +300,6 @@@ M: Syed Nayyar Waris <syednwaris@gmail.
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-counter-104-quad-8
- F:    Documentation/ABI/testing/sysfs-bus-iio-counter-104-quad-8
  F:    drivers/counter/104-quad-8.c
  
  ACCES PCI-IDIO-16 GPIO DRIVER
@@@ -573,6 -572,12 +572,12 @@@ S:       Maintaine
  F:    Documentation/scsi/advansys.rst
  F:    drivers/scsi/advansys.c
  
+ ADVANTECH SWBTN DRIVER
+ M:    Andrea Ho <Andrea.Ho@advantech.com.tw>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    drivers/platform/x86/adv_swbutton.c
  ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  S:    Supported
@@@ -619,6 -624,7 +624,7 @@@ F: fs/affs
  
  AFS FILESYSTEM
  M:    David Howells <dhowells@redhat.com>
+ M:    Marc Dionne <marc.dionne@auristor.com>
  L:    linux-afs@lists.infradead.org
  S:    Supported
  W:    https://www.infradead.org/~dhowells/kafs/
@@@ -697,6 -703,11 +703,11 @@@ S:       Maintaine
  F:    Documentation/i2c/busses/i2c-ali1563.rst
  F:    drivers/i2c/busses/i2c-ali1563.c
  
+ ALIENWARE WMI DRIVER
+ L:    Dell.Client.Kernel@dell.com
+ S:    Maintained
+ F:    drivers/platform/x86/dell/alienware-wmi.c
  ALL SENSORS DLH SERIES PRESSURE SENSORS DRIVER
  M:    Tomislav Denis <tomislav.denis@avl.com>
  L:    linux-iio@vger.kernel.org
@@@ -870,13 -881,6 +881,6 @@@ S:        Supporte
  T:    git git://people.freedesktop.org/~agd5f/linux
  F:    drivers/gpu/drm/amd/display/
  
- AMD ENERGY DRIVER
- M:    Naveen Krishna Chatradhi <nchatrad@amd.com>
- L:    linux-hwmon@vger.kernel.org
- S:    Maintained
- F:    Documentation/hwmon/amd_energy.rst
- F:    drivers/hwmon/amd_energy.c
  AMD FAM15H PROCESSOR POWER MONITORING DRIVER
  M:    Huang Rui <ray.huang@amd.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -1142,7 -1146,7 +1146,7 @@@ W:      http://ez.analog.com/community/linux
  F:    Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
  F:    Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
  F:    Documentation/devicetree/bindings/iio/*/adi,*
- F:    Documentation/devicetree/bindings/iio/dac/ad5758.txt
+ F:    Documentation/devicetree/bindings/iio/dac/adi,ad5758.yaml
  F:    drivers/iio/*/ad*
  F:    drivers/iio/adc/ltc249*
  F:    drivers/iio/amplifiers/hmc425a.c
@@@ -1530,6 -1534,7 +1534,7 @@@ F:      Documentation/devicetree/bindings/dm
  F:    Documentation/devicetree/bindings/i2c/i2c-owl.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/actions,owl-sirq.yaml
  F:    Documentation/devicetree/bindings/mmc/owl-mmc.yaml
+ F:    Documentation/devicetree/bindings/net/actions,owl-emac.yaml
  F:    Documentation/devicetree/bindings/pinctrl/actions,*
  F:    Documentation/devicetree/bindings/power/actions,owl-sps.txt
  F:    Documentation/devicetree/bindings/timer/actions,owl-timer.txt
@@@ -1542,6 -1547,7 +1547,7 @@@ F:      drivers/dma/owl-dma.
  F:    drivers/i2c/busses/i2c-owl.c
  F:    drivers/irqchip/irq-owl-sirq.c
  F:    drivers/mmc/host/owl-mmc.c
+ F:    drivers/net/ethernet/actions/
  F:    drivers/pinctrl/actions/*
  F:    drivers/soc/actions/
  F:    include/dt-bindings/power/owl-*
@@@ -1576,11 -1582,13 +1582,13 @@@ R:   Jernej Skrabec <jernej.skrabec@siol.
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git
+ L:    linux-sunxi@lists.linux.dev
  F:    arch/arm/mach-sunxi/
  F:    arch/arm64/boot/dts/allwinner/
  F:    drivers/clk/sunxi-ng/
  F:    drivers/pinctrl/sunxi/
  F:    drivers/soc/sunxi/
+ N:    allwinner
  N:    sun[x456789]i
  N:    sun50i
  
@@@ -1637,6 -1645,20 +1645,20 @@@ F:    arch/arm/mach-alpine
  F:    arch/arm64/boot/dts/amazon/
  F:    drivers/*/*alpine*
  
+ ARM/APPLE MACHINE SUPPORT
+ M:    Hector Martin <marcan@marcan.st>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ W:    https://asahilinux.org
+ B:    https://github.com/AsahiLinux/linux/issues
+ C:    irc://chat.freenode.net/asahi-dev
+ T:    git https://github.com/AsahiLinux/linux.git
+ F:    Documentation/devicetree/bindings/arm/apple.yaml
+ F:    Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
+ F:    arch/arm64/boot/dts/apple/
+ F:    drivers/irqchip/irq-apple-aic.c
+ F:    include/dt-bindings/interrupt-controller/apple-aic.h
  ARM/ARTPEC MACHINE SUPPORT
  M:    Jesper Nilsson <jesper.nilsson@axis.com>
  M:    Lars Persson <lars.persson@axis.com>
@@@ -1761,9 -1783,12 +1783,12 @@@ F:    Documentation/ABI/testing/sysfs-bus-
  F:    Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
  F:    Documentation/devicetree/bindings/arm/coresight-cti.yaml
  F:    Documentation/devicetree/bindings/arm/coresight.txt
+ F:    Documentation/devicetree/bindings/arm/ete.yaml
+ F:    Documentation/devicetree/bindings/arm/trbe.yaml
  F:    Documentation/trace/coresight/*
  F:    drivers/hwtracing/coresight/*
  F:    include/dt-bindings/arm/coresight-cti-dt.h
+ F:    include/linux/coresight*
  F:    tools/perf/arch/arm/util/auxtrace.c
  F:    tools/perf/arch/arm/util/cs-etm.c
  F:    tools/perf/arch/arm/util/cs-etm.h
@@@ -2201,6 -2226,15 +2226,15 @@@ F:    drivers/*/*npcm
  F:    drivers/*/*/*npcm*
  F:    include/dt-bindings/clock/nuvoton,npcm7xx-clock.h
  
+ ARM/NUVOTON WPCM450 ARCHITECTURE
+ M:    Jonathan Neuschäfer <j.neuschaefer@gmx.net>
+ L:    openbmc@lists.ozlabs.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/*/*wpcm*
+ F:    arch/arm/boot/dts/nuvoton-wpcm450*
+ F:    arch/arm/mach-npcm/wpcm450.c
+ F:    drivers/*/*wpcm*
  ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
  L:    openmoko-kernel@lists.openmoko.org (subscribers-only)
  S:    Orphan
@@@ -2303,6 -2337,7 +2337,7 @@@ F:      drivers/tty/serial/msm_serial.
  F:    drivers/usb/dwc3/dwc3-qcom.c
  F:    include/dt-bindings/*/qcom*
  F:    include/linux/*/qcom*
+ F:    include/linux/soc/qcom/
  
  ARM/RADISYS ENP2611 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
@@@ -2382,7 -2417,7 +2417,7 @@@ F:      sound/soc/rockchip
  N:    rockchip
  
  ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -2638,8 -2673,10 +2673,10 @@@ F:    drivers/watchdog/visconti_wdt.
  N:    visconti
  
  ARM/UNIPHIER ARCHITECTURE
+ M:    Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
+ M:    Masami Hiramatsu <mhiramat@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Orphan
+ S:    Maintained
  F:    Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
  F:    Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
  F:    Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
@@@ -2724,7 -2761,6 +2761,6 @@@ F:      Documentation/devicetree/bindings/i2
  F:    Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
  F:    Documentation/devicetree/bindings/spi/xlnx,zynq-qspi.yaml
  F:    arch/arm/mach-zynq/
- F:    drivers/block/xsysace.c
  F:    drivers/clocksource/timer-cadence-ttc.c
  F:    drivers/cpuidle/cpuidle-zynq.c
  F:    drivers/edac/synopsys_edac.c
@@@ -2863,6 -2899,18 +2899,18 @@@ W:    http://www.openaoe.org
  F:    Documentation/admin-guide/aoe/
  F:    drivers/block/aoe/
  
+ ATC260X PMIC MFD DRIVER
+ M:    Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+ M:    Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
+ L:    linux-actions@lists.infradead.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
+ F:    drivers/input/misc/atc260x-onkey.c
+ F:    drivers/mfd/atc260*
+ F:    drivers/power/reset/atc260x-poweroff.c
+ F:    drivers/regulator/atc260x-regulator.c
+ F:    include/linux/mfd/atc260x/*
  ATHEROS 71XX/9XXX GPIO DRIVER
  M:    Alban Bedel <albeu@free.fr>
  S:    Maintained
@@@ -2986,9 -3034,11 +3034,11 @@@ L:    linux-audit@redhat.com (moderated fo
  S:    Supported
  W:    https://github.com/linux-audit
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git
+ F:    include/asm-generic/audit_*.h
  F:    include/linux/audit.h
  F:    include/uapi/linux/audit.h
  F:    kernel/audit*
+ F:    lib/*audit.c
  
  AUXILIARY DISPLAY DRIVERS
  M:    Miguel Ojeda <ojeda@kernel.org>
@@@ -3158,6 -3208,22 +3208,22 @@@ F:    Documentation/filesystems/bfs.rs
  F:    fs/bfs/
  F:    include/uapi/linux/bfs_fs.h
  
+ BITMAP API
+ M:    Yury Norov <yury.norov@gmail.com>
+ R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+ R:    Rasmus Villemoes <linux@rasmusvillemoes.dk>
+ S:    Maintained
+ F:    include/asm-generic/bitops/find.h
+ F:    include/linux/bitmap.h
+ F:    lib/bitmap.c
+ F:    lib/find_bit.c
+ F:    lib/find_bit_benchmark.c
+ F:    lib/test_bitmap.c
+ F:    tools/include/asm-generic/bitops/find.h
+ F:    tools/include/linux/bitmap.h
+ F:    tools/lib/bitmap.c
+ F:    tools/lib/find_bit.c
  BLINKM RGB LED DRIVER
  M:    Jan-Simon Moeller <jansimon.moeller@gmx.de>
  S:    Maintained
@@@ -3240,6 -3306,7 +3306,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
  F:    Documentation/bpf/
  F:    Documentation/networking/filter.rst
+ F:    Documentation/userspace-api/ebpf/
  F:    arch/*/net/*
  F:    include/linux/bpf*
  F:    include/linux/filter.h
@@@ -3254,6 -3321,7 +3321,7 @@@ F:      net/core/filter.
  F:    net/sched/act_bpf.c
  F:    net/sched/cls_bpf.c
  F:    samples/bpf/
+ F:    scripts/bpf_doc.py
  F:    tools/bpf/
  F:    tools/lib/bpf/
  F:    tools/testing/selftests/bpf/
@@@ -3376,7 -3444,7 +3444,7 @@@ F:      include/linux/dsa/brcm.
  F:    include/linux/platform_data/b53.h
  
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
- M:    Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+ M:    Nicolas Saenz Julienne <nsaenz@kernel.org>
  L:    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)
@@@ -3565,6 -3633,14 +3633,14 @@@ S:    Supporte
  F:    Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml
  F:    drivers/i2c/busses/i2c-brcmstb.c
  
+ BROADCOM BRCMSTB UART DRIVER
+ M:    Al Cooper <alcooperx@gmail.com>
+ L:    linux-serial@vger.kernel.org
+ L:    bcm-kernel-feedback-list@broadcom.com
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml
+ F:    drivers/tty/serial/8250/8250_bcm7271.c
  BROADCOM BRCMSTB USB EHCI DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
  L:    linux-usb@vger.kernel.org
@@@ -3696,7 -3772,7 +3772,7 @@@ BROADCOM SPI DRIVE
  M:    Kamal Dasu <kdasu.kdev@gmail.com>
  M:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
- F:    Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.txt
+ F:    Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
  F:    drivers/spi/spi-bcm-qspi.*
  F:    drivers/spi/spi-brcmstb-qspi.c
  F:    drivers/spi/spi-iproc-qspi.c
@@@ -4188,13 -4264,20 +4264,20 @@@ X:   drivers/char/tpm
  CHECKPATCH
  M:    Andy Whitcroft <apw@canonical.com>
  M:    Joe Perches <joe@perches.com>
+ R:    Dwaipayan Ray <dwaipayanray1@gmail.com>
+ R:    Lukas Bulwahn <lukas.bulwahn@gmail.com>
  S:    Maintained
  F:    scripts/checkpatch.pl
  
+ CHECKPATCH DOCUMENTATION
+ M:    Dwaipayan Ray <dwaipayanray1@gmail.com>
+ M:    Lukas Bulwahn <lukas.bulwahn@gmail.com>
+ R:    Joe Perches <joe@perches.com>
+ S:    Maintained
+ F:    Documentation/dev-tools/checkpatch.rst
  CHINESE DOCUMENTATION
- M:    Harry Wei <harryxiyou@gmail.com>
- M:    Alex Shi <alex.shi@linux.alibaba.com>
- L:    xiyoulinuxkernelgroup@googlegroups.com (subscribers-only)
+ M:    Alex Shi <alexs@kernel.org>
  S:    Maintained
  F:    Documentation/translations/zh_CN/
  
@@@ -4427,6 -4510,12 +4510,12 @@@ S:    Supporte
  F:    Documentation/process/code-of-conduct-interpretation.rst
  F:    Documentation/process/code-of-conduct.rst
  
+ COMEDI DRIVERS
+ M:    Ian Abbott <abbotti@mev.co.uk>
+ M:    H Hartley Sweeten <hsweeten@visionengravers.com>
+ S:    Odd Fixes
+ F:    drivers/comedi/
  COMMON CLK FRAMEWORK
  M:    Michael Turquette <mturquette@baylibre.com>
  M:    Stephen Boyd <sboyd@kernel.org>
@@@ -4592,6 -4681,11 +4681,11 @@@ F:    drivers/counter
  F:    include/linux/counter.h
  F:    include/linux/counter_enum.h
  
+ CP2615 I2C DRIVER
+ M:    Bence Csókás <bence98@sch.bme.hu>
+ S:    Maintained
+ F:    drivers/i2c/busses/i2c-cp2615.c
  CPMAC ETHERNET DRIVER
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    netdev@vger.kernel.org
@@@ -4883,16 -4977,8 +4977,8 @@@ S:     Maintaine
  W:    http://www.armlinux.org.uk/
  F:    drivers/video/fbdev/cyber2000fb.*
  
- CYCLADES ASYNC MUX DRIVER
- S:    Orphan
- W:    http://www.cyclades.com/
- F:    drivers/tty/cyclades.c
- F:    include/linux/cyclades.h
- F:    include/uapi/linux/cyclades.h
  CYCLADES PC300 DRIVER
  S:    Orphan
- W:    http://www.cyclades.com/
  F:    drivers/net/wan/pc300*
  
  CYPRESS_FIRMWARE MEDIA DRIVER
@@@ -5041,19 -5127,19 +5127,19 @@@ F:   drivers/platform/x86/dell/dell_rbu.
  
  DELL SMBIOS DRIVER
  M:    Pali Rohár <pali@kernel.org>
- M:    Mario Limonciello <mario.limonciello@dell.com>
+ L:    Dell.Client.Kernel@dell.com
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/dell/dell-smbios.*
  
  DELL SMBIOS SMM DRIVER
- M:    Mario Limonciello <mario.limonciello@dell.com>
+ L:    Dell.Client.Kernel@dell.com
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/dell/dell-smbios-smm.c
  
  DELL SMBIOS WMI DRIVER
- M:    Mario Limonciello <mario.limonciello@dell.com>
+ L:    Dell.Client.Kernel@dell.com
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/dell/dell-smbios-wmi.c
@@@ -5067,14 -5153,14 +5153,14 @@@ F:   Documentation/driver-api/dcdbas.rs
  F:    drivers/platform/x86/dell/dcdbas.*
  
  DELL WMI DESCRIPTOR DRIVER
- M:    Mario Limonciello <mario.limonciello@dell.com>
+ L:    Dell.Client.Kernel@dell.com
  S:    Maintained
  F:    drivers/platform/x86/dell/dell-wmi-descriptor.c
  
  DELL WMI SYSMAN DRIVER
  M:    Divya Bharathi <divya.bharathi@dell.com>
- M:    Mario Limonciello <mario.limonciello@dell.com>
  M:    Prasanth Ksr <prasanth.ksr@dell.com>
+ L:    Dell.Client.Kernel@dell.com
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-class-firmware-attributes
@@@ -5106,6 -5192,13 +5192,13 @@@ S:    Maintaine
  F:    drivers/dma/dw-edma/
  F:    include/linux/dma/edma.h
  
+ DESIGNWARE XDATA IP DRIVER
+ M:    Gustavo Pimentel <gustavo.pimentel@synopsys.com>
+ L:    linux-pci@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/misc-devices/dw-xdata-pcie.rst
+ F:    drivers/misc/dw-xdata-pcie.c
  DESIGNWARE USB2 DRD IP DRIVER
  M:    Minas Harutyunyan <hminas@synopsys.com>
  L:    linux-usb@vger.kernel.org
@@@ -5176,6 -5269,12 +5269,12 @@@ M:    Torben Mathiasen <device@lanana.org
  S:    Maintained
  W:    http://lanana.org/docs/device-list/index.html
  
+ DEVICE RESOURCE MANAGEMENT HELPERS
+ M:    Hans de Goede <hdegoede@redhat.com>
+ R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+ S:    Maintained
+ F:    include/linux/devm-helpers.h
  DEVICE-MAPPER  (LVM)
  M:    Alasdair Kergon <agk@redhat.com>
  M:    Mike Snitzer <snitzer@redhat.com>
@@@ -5385,7 -5484,7 +5484,7 @@@ F:      drivers/hwmon/dme1737.
  DMI/SMBIOS SUPPORT
  M:    Jean Delvare <jdelvare@suse.com>
  S:    Maintained
- T:    quilt http://jdelvare.nerim.net/devel/linux/jdelvare-dmi/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging.git dmi-for-next
  F:    Documentation/ABI/testing/sysfs-firmware-dmi-tables
  F:    drivers/firmware/dmi-id.c
  F:    drivers/firmware/dmi_scan.c
@@@ -5411,6 -5510,12 +5510,12 @@@ X:    Documentation/power
  X:    Documentation/spi/
  X:    Documentation/userspace-api/media/
  
+ DOCUMENTATION REPORTING ISSUES
+ M:    Thorsten Leemhuis <linux@leemhuis.info>
+ L:    linux-doc@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/admin-guide/reporting-issues.rst
  DOCUMENTATION SCRIPTS
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-doc@vger.kernel.org
@@@ -5478,11 -5583,11 +5583,11 @@@ F:   drivers/net/ethernet/freescale/dpaa2
  F:    drivers/net/ethernet/freescale/dpaa2/dpni*
  
  DPAA2 ETHERNET SWITCH DRIVER
- M:    Ioana Radulescu <ruxandra.radulescu@nxp.com>
  M:    Ioana Ciornei <ioana.ciornei@nxp.com>
- L:    linux-kernel@vger.kernel.org
+ L:    netdev@vger.kernel.org
  S:    Maintained
- F:    drivers/staging/fsl-dpaa2/ethsw
+ F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-switch*
+ F:    drivers/net/ethernet/freescale/dpaa2/dpsw*
  
  DPT_I2O SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@microsemi.com>
@@@ -5765,13 -5870,6 +5870,13 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/savage/
  F:    include/uapi/drm/savage_drm.h
  
 +DRM DRIVER FOR SIMPLE FRAMEBUFFERS
 +M:    Thomas Zimmermann <tzimmermann@suse.de>
 +L:    dri-devel@lists.freedesktop.org
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/tiny/simplekms.c
 +
  DRM DRIVER FOR SIS VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/sis/
@@@ -5807,7 -5905,7 +5912,7 @@@ DRM DRIVER FOR ST-ERICSSON MCD
  M:    Linus Walleij <linus.walleij@linaro.org>
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
- F:    Documentation/devicetree/bindings/display/ste,mcde.txt
+ F:    Documentation/devicetree/bindings/display/ste,mcde.yaml
  F:    drivers/gpu/drm/mcde/
  
  DRM DRIVER FOR TDFX VIDEO CARDS
@@@ -6082,7 -6180,7 +6187,7 @@@ DRM DRIVERS FOR V3
  M:    Eric Anholt <eric@anholt.net>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
- F:    Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt
+ F:    Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
  F:    drivers/gpu/drm/v3d/
  F:    include/uapi/drm/v3d_drm.h
  
@@@ -6141,7 -6239,7 +6246,7 @@@ M:      Christian Koenig <christian.koenig@a
  M:    Huang Rui <ray.huang@amd.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
 -T:    git git://people.freedesktop.org/~agd5f/linux
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/ttm/
  F:    include/drm/ttm/
  
@@@ -7020,6 -7118,7 +7125,7 @@@ S:      Maintaine
  F:    Documentation/ABI/testing/sysfs-bus-dfl*
  F:    Documentation/fpga/dfl.rst
  F:    drivers/fpga/dfl*
+ F:    drivers/uio/uio_dfl.c
  F:    include/linux/dfl.h
  F:    include/uapi/linux/fpga-dfl.h
  
@@@ -7119,7 -7218,7 +7225,7 @@@ S:      Maintaine
  F:    drivers/i2c/busses/i2c-cpm.c
  
  FREESCALE IMX / MXC FEC DRIVER
- M:    Fugang Duan <fugang.duan@nxp.com>
+ M:    Joakim Zhang <qiangqing.zhang@nxp.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/fsl-fec.txt
@@@ -7160,6 -7259,13 +7266,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml
  F:    drivers/i2c/busses/i2c-imx-lpi2c.c
  
+ FREESCALE MPC I2C DRIVER
+ M:    Chris Packham <chris.packham@alliedtelesis.co.nz>
+ L:    linux-i2c@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
+ F:    drivers/i2c/busses/i2c-mpc.c
  FREESCALE QORIQ DPAA ETHERNET DRIVER
  M:    Madalin Bucur <madalin.bucur@nxp.com>
  L:    netdev@vger.kernel.org
@@@ -7189,6 -7295,7 +7302,7 @@@ FREESCALE QUAD SPI DRIVE
  M:    Han Xu <han.xu@nxp.com>
  L:    linux-spi@vger.kernel.org
  S:    Maintained
+ F:    Documentation/devicetree/bindings/spi/fsl,spi-fsl-qspi.yaml
  F:    drivers/spi/spi-fsl-qspi.c
  
  FREESCALE QUICC ENGINE LIBRARY
@@@ -7224,7 -7331,7 +7338,7 @@@ M:      Li Yang <leoyang.li@nxp.com
  L:    linuxppc-dev@lists.ozlabs.org
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/misc/fsl,dpaa2-console.txt
+ F:    Documentation/devicetree/bindings/misc/fsl,dpaa2-console.yaml
  F:    Documentation/devicetree/bindings/soc/fsl/
  F:    drivers/soc/fsl/
  F:    include/linux/fsl/
@@@ -7356,6 -7463,13 +7470,13 @@@ F:    fs/verity
  F:    include/linux/fsverity.h
  F:    include/uapi/linux/fsverity.h
  
+ FT260 FTDI USB-HID TO I2C BRIDGE DRIVER
+ M:    Michael Zaidman <michael.zaidman@gmail.com>
+ L:    linux-i2c@vger.kernel.org
+ L:    linux-input@vger.kernel.org
+ S:    Maintained
+ F:    drivers/hid/hid-ft260.c
  FUJITSU LAPTOP EXTRAS
  M:    Jonathan Woithe <jwoithe@just42.net>
  L:    platform-driver-x86@vger.kernel.org
@@@ -7391,6 -7505,7 +7512,7 @@@ M:      Thomas Gleixner <tglx@linutronix.de
  M:    Ingo Molnar <mingo@redhat.com>
  R:    Peter Zijlstra <peterz@infradead.org>
  R:    Darren Hart <dvhart@infradead.org>
+ R:    Davidlohr Bueso <dave@stgolabs.net>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
@@@ -7413,14 -7528,6 +7535,6 @@@ F:     Documentation/hwmon/gsc-hwmon.rs
  F:    drivers/hwmon/gsc-hwmon.c
  F:    include/linux/platform_data/gsc_hwmon.h
  
- GASKET DRIVER FRAMEWORK
- M:    Rob Springer <rspringer@google.com>
- M:    Todd Poynor <toddpoynor@google.com>
- M:    Ben Chan <benchan@chromium.org>
- M:    Richard Yeh <rcy@google.com>
- S:    Maintained
- F:    drivers/staging/gasket/
  GCC PLUGINS
  M:    Kees Cook <keescook@chromium.org>
  L:    linux-hardening@vger.kernel.org
@@@ -7572,6 -7679,12 +7686,12 @@@ F:    Documentation/filesystems/gfs2
  F:    fs/gfs2/
  F:    include/uapi/linux/gfs2_ondisk.h
  
+ GIGABYTE WMI DRIVER
+ M:    Thomas Weißschuh <thomas@weissschuh.net>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    drivers/platform/x86/gigabyte-wmi.c
  GNSS SUBSYSTEM
  M:    Johan Hovold <johan@kernel.org>
  S:    Maintained
@@@ -7880,6 -7993,7 +8000,7 @@@ F:      Documentation/hwmon
  F:    drivers/hwmon/
  F:    include/linux/hwmon*.h
  F:    include/trace/events/hwmon*.h
+ K:    (devm_)?hwmon_device_(un)?register(|_with_groups|_with_info)
  
  HARDWARE RANDOM NUMBER GENERATOR CORE
  M:    Matt Mackall <mpm@selenic.com>
@@@ -7921,6 -8035,11 +8042,11 @@@ W:    https://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/usb/hdpvr/
  
+ HEWLETT PACKARD ENTERPRISE ILO CHIF DRIVER
+ M:    Matt Hsiao <matt.hsiao@hpe.com>
+ S:    Supported
+ F:    drivers/misc/hpilo.[ch]
  HEWLETT PACKARD ENTERPRISE ILO NMI WATCHDOG DRIVER
  M:    Jerry Hoemann <jerry.hoemann@hpe.com>
  S:    Supported
@@@ -8069,6 -8188,13 +8195,13 @@@ F:    drivers/crypto/hisilicon/hpre/hpre.
  F:    drivers/crypto/hisilicon/hpre/hpre_crypto.c
  F:    drivers/crypto/hisilicon/hpre/hpre_main.c
  
+ HISILICON I2C CONTROLLER DRIVER
+ M:    Yicong Yang <yangyicong@hisilicon.com>
+ L:    linux-i2c@vger.kernel.org
+ S:    Maintained
+ W:    https://www.hisilicon.com
+ F:    drivers/i2c/busses/i2c-hisi.c
  HISILICON LPC BUS DRIVER
  M:    john.garry@huawei.com
  S:    Maintained
@@@ -8119,7 -8245,6 +8252,6 @@@ F:      drivers/crypto/hisilicon/zip
  
  HISILICON ROCE DRIVER
  M:    Lijun Ou <oulijun@huawei.com>
- M:    Wei Hu(Xavier) <huwei87@hisilicon.com>
  M:    Weihang Li <liweihang@huawei.com>
  L:    linux-rdma@vger.kernel.org
  S:    Maintained
@@@ -8143,6 -8268,13 +8275,13 @@@ F:    drivers/crypto/hisilicon/sec2/sec_cr
  F:    drivers/crypto/hisilicon/sec2/sec_crypto.h
  F:    drivers/crypto/hisilicon/sec2/sec_main.c
  
+ HISILICON SPI Controller DRIVER FOR KUNPENG SOCS
+ M:    Jay Fang <f.fangjian@huawei.com>
+ L:    linux-spi@vger.kernel.org
+ S:    Maintained
+ W:    http://www.hisilicon.com
+ F:    drivers/spi/spi-hisi-kunpeng.c
  HISILICON STAGING DRIVERS FOR HIKEY 960/970
  M:    Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  S:    Maintained
@@@ -8237,7 -8369,7 +8376,7 @@@ M:      Lorenzo Bianconi <lorenzo.bianconi83
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  W:    http://www.st.com/
- F:    Documentation/devicetree/bindings/iio/humidity/hts221.txt
+ F:    Documentation/devicetree/bindings/iio/humidity/st,hts221.yaml
  F:    drivers/iio/humidity/hts221*
  
  HUAWEI ETHERNET DRIVER
@@@ -8273,6 -8405,13 +8412,13 @@@ S:    Maintaine
  F:    mm/hwpoison-inject.c
  F:    mm/memory-failure.c
  
+ HYCON HY46XX TOUCHSCREEN SUPPORT
+ M:    Giulio Benetti <giulio.benetti@benettiengineering.com>
+ L:    linux-input@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml
+ F:    drivers/input/touchscreen/hycon-hy46xx.c
  HYGON PROCESSOR SUPPORT
  M:    Pu Wen <puwen@hygon.cn>
  L:    linux-kernel@vger.kernel.org
@@@ -8286,11 -8425,12 +8432,12 @@@ S:   Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/hi556.c
  
- Hyper-V CORE AND DRIVERS
+ Hyper-V/Azure CORE AND DRIVERS
  M:    "K. Y. Srinivasan" <kys@microsoft.com>
  M:    Haiyang Zhang <haiyangz@microsoft.com>
  M:    Stephen Hemminger <sthemmin@microsoft.com>
  M:    Wei Liu <wei.liu@kernel.org>
+ M:    Dexuan Cui <decui@microsoft.com>
  L:    linux-hyperv@vger.kernel.org
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
@@@ -8307,6 -8447,7 +8454,7 @@@ F:      drivers/hid/hid-hyperv.
  F:    drivers/hv/
  F:    drivers/input/serio/hyperv-keyboard.c
  F:    drivers/iommu/hyperv-iommu.c
+ F:    drivers/net/ethernet/microsoft/
  F:    drivers/net/hyperv/
  F:    drivers/pci/controller/pci-hyperv-intf.c
  F:    drivers/pci/controller/pci-hyperv.c
@@@ -8547,7 -8688,6 +8695,6 @@@ F:      drivers/pci/hotplug/rpaphp
  
  IBM Power SRIOV Virtual NIC Device Driver
  M:    Dany Madden <drt@linux.ibm.com>
- M:    Lijun Pan <ljp@linux.ibm.com>
  M:    Sukadev Bhattiprolu <sukadev@linux.ibm.com>
  R:    Thomas Falcon <tlfalcon@linux.ibm.com>
  L:    netdev@vger.kernel.org
@@@ -8575,7 -8715,8 +8722,8 @@@ S:      Supporte
  F:    drivers/scsi/ibmvscsi/ibmvfc*
  
  IBM Power Virtual Management Channel Driver
- M:    Steven Royer <seroyer@linux.ibm.com>
+ M:    Brad Warrum <bwarrum@linux.ibm.com>
+ M:    Ritu Agarwal <rituagar@linux.ibm.com>
  S:    Supported
  F:    drivers/misc/ibmvmc.*
  
@@@ -8633,9 -8774,8 +8781,8 @@@ F:      drivers/ide
  F:    include/linux/ide.h
  
  IDE/ATAPI DRIVERS
- M:    Borislav Petkov <bp@alien8.de>
  L:    linux-ide@vger.kernel.org
- S:    Maintained
+ S:    Orphan
  F:    Documentation/cdrom/ide-cd.rst
  F:    drivers/ide/ide-cd*
  
@@@ -8703,7 -8843,7 +8850,7 @@@ M:      Peter Rosin <peda@axentia.se
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-iio-dac-dpot-dac
- F:    Documentation/devicetree/bindings/iio/dac/dpot-dac.txt
+ F:    Documentation/devicetree/bindings/iio/dac/dpot-dac.yaml
  F:    drivers/iio/dac/dpot-dac.c
  
  IIO ENVELOPE DETECTOR
@@@ -8711,7 -8851,7 +8858,7 @@@ M:      Peter Rosin <peda@axentia.se
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-iio-adc-envelope-detector
- F:    Documentation/devicetree/bindings/iio/adc/envelope-detector.txt
+ F:    Documentation/devicetree/bindings/iio/adc/envelope-detector.yaml
  F:    drivers/iio/adc/envelope-detector.c
  
  IIO MULTIPLEXER
@@@ -8721,10 -8861,15 +8868,15 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
  F:    drivers/iio/multiplexer/iio-mux.c
  
+ IIO SCMI BASED DRIVER
+ M:    Jyoti Bhayana <jbhayana@google.com>
+ L:    linux-iio@vger.kernel.org
+ S:    Maintained
+ F:    drivers/iio/common/scmi_sensors/scmi_iio.c
  IIO SUBSYSTEM AND DRIVERS
  M:    Jonathan Cameron <jic23@kernel.org>
  R:    Lars-Peter Clausen <lars@metafoo.de>
- R:    Peter Meerwald-Stadler <pmeerw@pmeerw.net>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
@@@ -8740,9 -8885,9 +8892,9 @@@ IIO UNIT CONVERTE
  M:    Peter Rosin <peda@axentia.se>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/iio/afe/current-sense-amplifier.txt
- F:    Documentation/devicetree/bindings/iio/afe/current-sense-shunt.txt
- F:    Documentation/devicetree/bindings/iio/afe/voltage-divider.txt
+ F:    Documentation/devicetree/bindings/iio/afe/current-sense-amplifier.yaml
+ F:    Documentation/devicetree/bindings/iio/afe/current-sense-shunt.yaml
+ F:    Documentation/devicetree/bindings/iio/afe/voltage-divider.yaml
  F:    drivers/iio/afe/iio-rescale.c
  
  IKANOS/ADI EAGLE ADSL USB DRIVER
@@@ -9144,6 -9289,26 +9296,26 @@@ F:    include/linux/mei_cl_bus.
  F:    include/uapi/linux/mei.h
  F:    samples/mei/*
  
+ INTEL MAX 10 BMC MFD DRIVER
+ M:    Xu Yilun <yilun.xu@intel.com>
+ R:    Tom Rix <trix@redhat.com>
+ S:    Maintained
+ F:    Documentation/ABI/testing/sysfs-driver-intel-m10-bmc
+ F:    Documentation/hwmon/intel-m10-bmc-hwmon.rst
+ F:    drivers/hwmon/intel-m10-bmc-hwmon.c
+ F:    drivers/mfd/intel-m10-bmc.c
+ F:    include/linux/mfd/intel-m10-bmc.h
+ INTEL MAX 10 BMC MFD DRIVER
+ M:    Xu Yilun <yilun.xu@intel.com>
+ R:    Tom Rix <trix@redhat.com>
+ S:    Maintained
+ F:    Documentation/ABI/testing/sysfs-driver-intel-m10-bmc
+ F:    Documentation/hwmon/intel-m10-bmc-hwmon.rst
+ F:    drivers/hwmon/intel-m10-bmc-hwmon.c
+ F:    drivers/mfd/intel-m10-bmc.c
+ F:    include/linux/mfd/intel-m10-bmc.h
  INTEL MENLOW THERMAL DRIVER
  M:    Sujith Thomas <sujith.thomas@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -9163,6 -9328,7 +9335,7 @@@ M:      Rajneesh Bhardwaj <irenic.rajneesh@g
  M:    David E Box <david.e.box@intel.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
+ F:    Documentation/ABI/testing/sysfs-platform-intel-pmc
  F:    drivers/platform/x86/intel_pmc_core*
  
  INTEL PMIC GPIO DRIVERS
@@@ -9273,7 -9439,7 +9446,7 @@@ W:      https://slimbootloader.github.io/sec
  F:    drivers/platform/x86/intel-wmi-sbl-fw-update.c
  
  INTEL WMI THUNDERBOLT FORCE POWER DRIVER
- M:    Mario Limonciello <mario.limonciello@dell.com>
+ L:    Dell.Client.Kernel@dell.com
  S:    Maintained
  F:    drivers/platform/x86/intel-wmi-thunderbolt.c
  
@@@ -9303,6 -9469,7 +9476,7 @@@ Q:      https://patchwork.kernel.org/project
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/sgx
  F:    Documentation/x86/sgx.rst
  F:    arch/x86/entry/vdso/vsgx.S
+ F:    arch/x86/include/asm/sgx.h
  F:    arch/x86/include/uapi/asm/sgx.h
  F:    arch/x86/kernel/cpu/sgx/*
  F:    tools/testing/selftests/sgx/*
@@@ -9312,6 -9479,7 +9486,7 @@@ INTERCONNECT AP
  M:    Georgi Djakov <djakov@kernel.org>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc.git
  F:    Documentation/devicetree/bindings/interconnect/
  F:    Documentation/driver-api/interconnect.rst
  F:    drivers/interconnect/
@@@ -9319,6 -9487,13 +9494,13 @@@ F:    include/dt-bindings/interconnect
  F:    include/linux/interconnect-provider.h
  F:    include/linux/interconnect.h
  
+ INTERRUPT COUNTER DRIVER
+ M:    Oleksij Rempel <o.rempel@pengutronix.de>
+ R:    Pengutronix Kernel Team <kernel@pengutronix.de>
+ L:    linux-iio@vger.kernel.org
+ F:    Documentation/devicetree/bindings/counter/interrupt-counter.yaml
+ F:    drivers/counter/interrupt-cnt.c
  INVENSENSE ICM-426xx IMU DRIVER
  M:    Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
  L:    linux-iio@vger.kernel.org
@@@ -9331,7 -9506,7 +9513,7 @@@ INVENSENSE MPU-3050 GYROSCOPE DRIVE
  M:    Linus Walleij <linus.walleij@linaro.org>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
+ F:    Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml
  F:    drivers/iio/gyro/mpu3050*
  
  IOC3 ETHERNET DRIVER
@@@ -9378,6 -9553,7 +9560,7 @@@ F:      fs/io-wq.
  F:    fs/io_uring.c
  F:    include/linux/io_uring.h
  F:    include/uapi/linux/io_uring.h
+ F:    tools/io_uring/
  
  IPMI SUBSYSTEM
  M:    Corey Minyard <minyard@acm.org>
@@@ -9543,14 -9719,6 +9726,14 @@@ Q:    http://patchwork.linuxtv.org/project
  T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/it913x*
  
 +ITE IT66121 HDMI BRIDGE DRIVER
 +M:    Phong LE <ple@baylibre.com>
 +M:    Neil Armstrong <narmstrong@baylibre.com>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/bridge/ite,it66121.yaml
 +F:    drivers/gpu/drm/bridge/ite-it66121.c
 +
  IVTV VIDEO4LINUX DRIVER
  M:    Andy Walls <awalls@md.metrocast.net>
  L:    linux-media@vger.kernel.org
@@@ -9728,6 -9896,7 +9911,7 @@@ F:      scripts/*vmlinux
  F:    scripts/Kbuild*
  F:    scripts/Makefile*
  F:    scripts/basic/
+ F:    scripts/dummy-tools/
  F:    scripts/mk*
  F:    scripts/mod/
  F:    scripts/package/
@@@ -9754,6 -9923,11 +9938,11 @@@ F:    include/uapi/linux/sunrpc
  F:    net/sunrpc/
  F:    Documentation/filesystems/nfs/
  
+ KERNEL REGRESSIONS
+ M:    Thorsten Leemhuis <linux@leemhuis.info>
+ L:    regressions@lists.linux.dev
+ S:    Supported
  KERNEL SELFTEST FRAMEWORK
  M:    Shuah Khan <shuah@kernel.org>
  M:    Shuah Khan <skhan@linuxfoundation.org>
@@@ -9802,10 -9976,10 +9991,10 @@@ F:   virt/kvm/
  KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
  M:    Marc Zyngier <maz@kernel.org>
  R:    James Morse <james.morse@arm.com>
- R:    Julien Thierry <julien.thierry.kdev@gmail.com>
+ R:    Alexandru Elisei <alexandru.elisei@arm.com>
  R:    Suzuki K Poulose <suzuki.poulose@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- L:    kvmarm@lists.cs.columbia.edu
+ L:    kvmarm@lists.cs.columbia.edu (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git
  F:    arch/arm64/include/asm/kvm*
@@@ -9916,6 -10090,14 +10105,14 @@@ F:  include/keys/trusted-type.
  F:    include/keys/trusted_tpm.h
  F:    security/keys/trusted-keys/
  
+ KEYS-TRUSTED-TEE
+ M:    Sumit Garg <sumit.garg@linaro.org>
+ L:    linux-integrity@vger.kernel.org
+ L:    keyrings@vger.kernel.org
+ S:    Supported
+ F:    include/keys/trusted_tee.h
+ F:    security/keys/trusted-keys/trusted_tee.c
  KEYS/KEYRINGS
  M:    David Howells <dhowells@redhat.com>
  M:    Jarkko Sakkinen <jarkko@kernel.org>
@@@ -10013,6 -10195,12 +10210,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/leds/backlight/kinetic,ktd253.yaml
  F:    drivers/video/backlight/ktd253-backlight.c
  
+ KTEST
+ M:    Steven Rostedt <rostedt@goodmis.org>
+ M:    John Hawley <warthog9@eaglescrag.net>
+ S:    Maintained
+ F:    tools/testing/ktest
  L3MDEV
  M:    David Ahern <dsahern@kernel.org>
  L:    netdev@vger.kernel.org
@@@ -10034,6 -10222,21 +10237,21 @@@ F: net/core/sock_map.
  F:    net/ipv4/tcp_bpf.c
  F:    net/ipv4/udp_bpf.c
  
+ LANDLOCK SECURITY MODULE
+ M:    Mickaël Salaün <mic@digikod.net>
+ L:    linux-security-module@vger.kernel.org
+ S:    Supported
+ W:    https://landlock.io
+ T:    git https://github.com/landlock-lsm/linux.git
+ F:    Documentation/security/landlock.rst
+ F:    Documentation/userspace-api/landlock.rst
+ F:    include/uapi/linux/landlock.h
+ F:    samples/landlock/
+ F:    security/landlock/
+ F:    tools/testing/selftests/landlock/
+ K:    landlock
+ K:    LANDLOCK
  LANTIQ / INTEL Ethernet drivers
  M:    Hauke Mehrtens <hauke@hauke-m.de>
  L:    netdev@vger.kernel.org
@@@ -10083,7 -10286,7 +10301,7 @@@ F:   drivers/misc/eeprom/eeprom.
  LEGO MINDSTORMS EV3
  R:    David Lechner <david@lechnology.com>
  S:    Maintained
- F:    Documentation/devicetree/bindings/power/supply/lego_ev3_battery.txt
+ F:    Documentation/devicetree/bindings/power/supply/lego,ev3-battery.yaml
  F:    arch/arm/boot/dts/da850-lego-ev3.dts
  F:    drivers/power/supply/lego_ev3_battery.c
  
@@@ -10648,6 -10851,7 +10866,7 @@@ S:   Maintaine
  F:    drivers/mailbox/
  F:    include/linux/mailbox_client.h
  F:    include/linux/mailbox_controller.h
+ F:    Documentation/devicetree/bindings/mailbox/
  
  MAILBOX ARM MHUv2
  M:    Viresh Kumar <viresh.kumar@linaro.org>
@@@ -10733,6 -10937,7 +10952,7 @@@ F:   include/linux/mv643xx.
  
  MARVELL MV88X3310 PHY DRIVER
  M:    Russell King <linux@armlinux.org.uk>
+ M:    Marek Behun <marek.behun@nic.cz>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/phy/marvell10g.c
@@@ -10832,6 -11037,13 +11052,13 @@@ S: Orpha
  F:    drivers/video/fbdev/matrox/matroxfb_*
  F:    include/uapi/linux/matroxfb.h
  
+ MAX15301 DRIVER
+ M:    Daniel Nilsson <daniel.nilsson@flex.com>
+ L:    linux-hwmon@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/hwmon/max15301.rst
+ F:    drivers/hwmon/pmbus/max15301.c
  MAX16065 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
@@@ -10911,7 -11123,7 +11138,7 @@@ F:   drivers/regulator/max77802-regulator
  F:    include/dt-bindings/*/*max77802.h
  
  MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-pm@vger.kernel.org
  S:    Supported
@@@ -10920,7 -11132,7 +11147,7 @@@ F:   drivers/power/supply/max77693_charge
  
  MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS BASED BOARDS
  M:    Chanwoo Choi <cw00.choi@samsung.com>
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
@@@ -10948,7 -11160,7 +11175,7 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/radio/radio-maxiradio*
  
  MCAN MMIO DEVICE DRIVER
- M:    Pankaj Sharma <pankj.sharma@samsung.com>
+ M:    Chandrasekar Ramakrishnan <rcsekar@samsung.com>
  L:    linux-can@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
@@@ -11146,12 -11358,12 +11373,12 @@@ F:        drivers/media/platform/renesas-ceu.
  F:    include/media/drv-intf/renesas-ceu.h
  
  MEDIA DRIVERS FOR RENESAS - DRIF
- M:    Ramesh Shanmugasundaram <rashanmu@gmail.com>
+ M:    Fabrizio Castro <fabrizio.castro.jz@renesas.com>
  L:    linux-media@vger.kernel.org
  L:    linux-renesas-soc@vger.kernel.org
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
- F:    Documentation/devicetree/bindings/media/renesas,drif.txt
+ F:    Documentation/devicetree/bindings/media/renesas,drif.yaml
  F:    drivers/media/platform/rcar_drif.c
  
  MEDIA DRIVERS FOR RENESAS - FCP
@@@ -11320,7 -11532,7 +11547,7 @@@ F:   drivers/media/platform/mtk-vpu
  MEDIATEK MMC/SD/SDIO DRIVER
  M:    Chaotian Jing <chaotian.jing@mediatek.com>
  S:    Maintained
- F:    Documentation/devicetree/bindings/mmc/mtk-sd.txt
+ F:    Documentation/devicetree/bindings/mmc/mtk-sd.yaml
  F:    drivers/mmc/host/mtk-sd.c
  
  MEDIATEK MT76 WIRELESS LAN DRIVER
@@@ -11337,6 -11549,12 +11564,12 @@@ L: linux-wireless@vger.kernel.or
  S:    Maintained
  F:    drivers/net/wireless/mediatek/mt7601u/
  
+ MEDIATEK MT7621 CLOCK DRIVER
+ M:    Sergio Paracuellos <sergio.paracuellos@gmail.com>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/clock/mediatek,mt7621-sysc.yaml
+ F:    drivers/clk/ralink/clk-mt7621.c
  MEDIATEK MT7621/28/88 I2C DRIVER
  M:    Stefan Roese <sr@denx.de>
  L:    linux-i2c@vger.kernel.org
@@@ -11479,8 -11697,8 +11712,8 @@@ Q:   https://patchwork.kernel.org/project
  F:    drivers/net/ethernet/mellanox/mlxfw/
  
  MELLANOX HARDWARE PLATFORM SUPPORT
- M:    Andy Shevchenko <andy@infradead.org>
- M:    Darren Hart <dvhart@infradead.org>
+ M:    Hans de Goede <hdegoede@redhat.com>
+ M:    Mark Gross <mgross@linux.intel.com>
  M:    Vadim Pasternak <vadimp@nvidia.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Supported
@@@ -11571,7 -11789,7 +11804,7 @@@ F:   include/linux/memblock.
  F:    mm/memblock.c
  
  MEMORY CONTROLLER DRIVERS
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl.git
@@@ -11599,6 -11817,7 +11832,7 @@@ F:   include/linux/gfp.
  F:    include/linux/memory_hotplug.h
  F:    include/linux/mm.h
  F:    include/linux/mmzone.h
+ F:    include/linux/pagewalk.h
  F:    include/linux/vmalloc.h
  F:    mm/
  
@@@ -11839,7 -12058,7 +12073,7 @@@ MICROCHIP SAMA5D2-COMPATIBLE ADC DRIVE
  M:    Eugen Hristev <eugen.hristev@microchip.com>
  L:    linux-iio@vger.kernel.org
  S:    Supported
- F:    Documentation/devicetree/bindings/iio/adc/at91-sama5d2_adc.txt
+ F:    Documentation/devicetree/bindings/iio/adc/atmel,sama5d2-adc.yaml
  F:    drivers/iio/adc/at91-sama5d2_adc.c
  F:    include/dt-bindings/iio/adc/at91-sama5d2_adc.h
  
@@@ -11903,6 -12122,22 +12137,22 @@@ F: drivers/scsi/smartpqi/smartpqi*.[ch
  F:    include/linux/cciss*.h
  F:    include/uapi/linux/cciss*.h
  
+ MICROSOFT SURFACE BATTERY AND AC DRIVERS
+ M:    Maximilian Luz <luzmaximilian@gmail.com>
+ L:    linux-pm@vger.kernel.org
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    drivers/power/supply/surface_battery.c
+ F:    drivers/power/supply/surface_charger.c
+ MICROSOFT SURFACE DTX DRIVER
+ M:    Maximilian Luz <luzmaximilian@gmail.com>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/driver-api/surface_aggregator/clients/dtx.rst
+ F:    drivers/platform/surface/surface_dtx.c
+ F:    include/uapi/linux/surface_aggregator/dtx.h
  MICROSOFT SURFACE GPE LID SUPPORT DRIVER
  M:    Maximilian Luz <luzmaximilian@gmail.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -11918,12 -12153,25 +12168,25 @@@ S:        Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
  F:    drivers/platform/surface/
  
+ MICROSOFT SURFACE HID TRANSPORT DRIVER
+ M:    Maximilian Luz <luzmaximilian@gmail.com>
+ L:    linux-input@vger.kernel.org
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    drivers/hid/surface-hid/
  MICROSOFT SURFACE HOT-PLUG DRIVER
  M:    Maximilian Luz <luzmaximilian@gmail.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/surface/surface_hotplug.c
  
+ MICROSOFT SURFACE PLATFORM PROFILE DRIVER
+ M:    Maximilian Luz <luzmaximilian@gmail.com>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    drivers/platform/surface/surface_platform_profile.c
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <yu.c.chen@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -11939,6 -12187,7 +12202,7 @@@ F:   Documentation/driver-api/surface_agg
  F:    drivers/platform/surface/aggregator/
  F:    drivers/platform/surface/surface_acpi_notify.c
  F:    drivers/platform/surface/surface_aggregator_cdev.c
+ F:    drivers/platform/surface/surface_aggregator_registry.c
  F:    include/linux/surface_acpi_notify.h
  F:    include/linux/surface_aggregator/
  F:    include/uapi/linux/surface_aggregator/
@@@ -12130,8 -12379,7 +12394,7 @@@ F:   drivers/media/pci/meye
  F:    include/uapi/linux/meye.h
  
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
- M:    Jiri Slaby <jirislaby@kernel.org>
- S:    Maintained
+ S:    Orphan
  F:    Documentation/driver-api/serial/moxa-smartio.rst
  F:    drivers/tty/mxser.*
  
@@@ -12275,11 -12523,6 +12538,6 @@@ F:  drivers/mux
  F:    include/dt-bindings/mux/
  F:    include/linux/mux/
  
- MULTITECH MULTIPORT CARD (ISICOM)
- S:    Orphan
- F:    drivers/tty/isicom.c
- F:    include/linux/isicom.h
  MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER
  M:    Bin Liu <b-liu@ti.com>
  L:    linux-usb@vger.kernel.org
@@@ -12427,6 -12670,15 +12685,15 @@@ F: include/net/netrom.
  F:    include/uapi/linux/netrom.h
  F:    net/netrom/
  
+ NETRONIX EMBEDDED CONTROLLER
+ M:    Jonathan Neuschäfer <j.neuschaefer@gmx.net>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/mfd/netronix,ntxec.yaml
+ F:    drivers/mfd/ntxec.c
+ F:    drivers/pwm/pwm-ntxec.c
+ F:    drivers/rtc/rtc-ntxec.c
+ F:    include/linux/mfd/ntxec.h
  NETRONOME ETHERNET DRIVERS
  M:    Simon Horman <simon.horman@netronome.com>
  R:    Jakub Kicinski <kuba@kernel.org>
@@@ -12585,6 -12837,7 +12852,7 @@@ W:   https://github.com/multipath-tcp/mpt
  B:    https://github.com/multipath-tcp/mptcp_net-next/issues
  F:    Documentation/networking/mptcp-sysctl.rst
  F:    include/net/mptcp.h
+ F:    include/trace/events/mptcp.h
  F:    include/uapi/linux/mptcp.h
  F:    net/mptcp/
  F:    tools/testing/selftests/net/mptcp/
@@@ -12869,6 -13122,12 +13137,12 @@@ F: drivers/nvmem
  F:    include/linux/nvmem-consumer.h
  F:    include/linux/nvmem-provider.h
  
+ NXP C45 TJA11XX PHY DRIVER
+ M:    Radu Pirea <radu-nicolae.pirea@oss.nxp.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/phy/nxp-c45-tja11xx.c
  NXP FSPI DRIVER
  M:    Ashish Kumar <ashish.kumar@nxp.com>
  R:    Yogesh Gaur <yogeshgaur.83@gmail.com>
@@@ -12909,7 -13168,7 +13183,7 @@@ F:   Documentation/devicetree/bindings/re
  F:    drivers/regulator/pf8x00-regulator.c
  
  NXP PTN5150A CC LOGIC AND EXTCON DRIVER
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/extcon/extcon-ptn5150.yaml
@@@ -12952,6 -13211,21 +13226,21 @@@ L: linux-nfc@lists.01.org (moderated fo
  S:    Supported
  F:    drivers/nfc/nxp-nci
  
+ NXP i.MX 8QXP/8QM JPEG V4L2 DRIVER
+ M:    Mirela Rabulea <mirela.rabulea@nxp.com>
+ R:    NXP Linux Team <linux-imx@nxp.com>
+ L:    linux-media@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/media/imx8-jpeg.yaml
+ F:    drivers/media/platform/imx-jpeg
+ NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
+ M:    Jonas Malaco <jonas@protocubo.io>
+ L:    linux-hwmon@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/hwmon/nzxt-kraken2.rst
+ F:    drivers/hwmon/nzxt-kraken2.c
  OBJAGG
  M:    Jiri Pirko <jiri@nvidia.com>
  L:    netdev@vger.kernel.org
@@@ -13226,7 -13500,7 +13515,7 @@@ M:   Rui Miguel Silva <rmfrfs@gmail.com
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
- F:    Documentation/devicetree/bindings/media/i2c/ov2680.yaml
+ F:    Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml
  F:    drivers/media/i2c/ov2680.c
  
  OMNIVISION OV2685 SENSOR DRIVER
@@@ -13734,6 -14008,14 +14023,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
  F:    drivers/pci/controller/dwc/*imx6*
  
+ PCI DRIVER FOR FU740
+ M:    Paul Walmsley <paul.walmsley@sifive.com>
+ M:    Greentime Hu <greentime.hu@sifive.com>
+ L:    linux-pci@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
+ F:    drivers/pci/controller/dwc/pcie-fu740.c
  PCI DRIVER FOR INTEL VOLUME MANAGEMENT DEVICE (VMD)
  M:    Jonathan Derrick <jonathan.derrick@intel.com>
  L:    linux-pci@vger.kernel.org
@@@ -13818,13 -14100,6 +14115,6 @@@ F:  Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/cadence/pci-j721e.c
  F:    drivers/pci/controller/dwc/pci-dra7xx.c
  
- PCI DRIVER FOR TI KEYSTONE
- M:    Murali Karicheri <m-karicheri2@ti.com>
- L:    linux-pci@vger.kernel.org
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    drivers/pci/controller/dwc/pci-keystone.c
  PCI DRIVER FOR V3 SEMICONDUCTOR V360EPC
  M:    Linus Walleij <linus.walleij@linaro.org>
  L:    linux-pci@vger.kernel.org
@@@ -13941,7 -14216,6 +14231,6 @@@ PCIE DRIVER FOR HISILICO
  M:    Zhou Wang <wangzhou1@hisilicon.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/pci/hisilicon-pcie.txt
  F:    drivers/pci/controller/dwc/pcie-hisi.c
  
  PCIE DRIVER FOR HISILICON KIRIN
@@@ -13961,6 -14235,7 +14250,7 @@@ F:   drivers/pci/controller/dwc/pcie-hist
  
  PCIE DRIVER FOR MEDIATEK
  M:    Ryder Lee <ryder.lee@mediatek.com>
+ M:    Jianjun Wang <jianjun.wang@mediatek.com>
  L:    linux-pci@vger.kernel.org
  L:    linux-mediatek@lists.infradead.org
  S:    Supported
@@@ -14062,8 -14337,10 +14352,10 @@@ R: Mark Rutland <mark.rutland@arm.com
  R:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
  R:    Jiri Olsa <jolsa@redhat.com>
  R:    Namhyung Kim <namhyung@kernel.org>
+ L:    linux-perf-users@vger.kernel.org
  L:    linux-kernel@vger.kernel.org
  S:    Supported
+ W:    https://perf.wiki.kernel.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
  F:    arch/*/events/*
  F:    arch/*/events/*/*
@@@ -14145,7 -14422,7 +14437,7 @@@ L:   linux-gpio@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git
  F:    Documentation/devicetree/bindings/pinctrl/
- F:    Documentation/driver-api/pinctl.rst
+ F:    Documentation/driver-api/pin-control.rst
  F:    drivers/pinctrl/
  F:    include/linux/pinctrl/
  
@@@ -14200,7 -14477,7 +14492,7 @@@ F:   drivers/pinctrl/renesas
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <tomasz.figa@gmail.com>
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org
@@@ -14321,7 -14598,7 +14613,7 @@@ PNI RM3100 IIO DRIVE
  M:    Song Qiang <songqiang1304521@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/iio/magnetometer/pni,rm3100.txt
+ F:    Documentation/devicetree/bindings/iio/magnetometer/pni,rm3100.yaml
  F:    drivers/iio/magnetometer/rm3100*
  
  PNP SUPPORT
@@@ -14356,6 -14633,15 +14648,15 @@@ F: include/linux/pm_
  F:    include/linux/powercap.h
  F:    kernel/configs/nopm.config
  
+ DYNAMIC THERMAL POWER MANAGEMENT (DTPM)
+ M:    Daniel Lezcano <daniel.lezcano@kernel.org>
+ L:    linux-pm@vger.kernel.org
+ S:    Supported
+ B:    https://bugzilla.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
+ F:    drivers/powercap/dtpm*
+ F:    include/linux/dtpm.h
  POWER STATE COORDINATION INTERFACE (PSCI)
  M:    Mark Rutland <mark.rutland@arm.com>
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
@@@ -14433,7 -14719,7 +14734,7 @@@ F:   kernel/sched/psi.
  
  PRINTK
  M:    Petr Mladek <pmladek@suse.com>
- M:    Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
+ M:    Sergey Senozhatsky <senozhatsky@chromium.org>
  R:    Steven Rostedt <rostedt@goodmis.org>
  R:    John Ogness <john.ogness@linutronix.de>
  S:    Maintained
@@@ -14825,7 -15111,7 +15126,7 @@@ M:   Todor Tomov <todor.too@gmail.com
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    Documentation/admin-guide/media/qcom_camss.rst
- F:    Documentation/devicetree/bindings/media/qcom,camss.txt
+ F:    Documentation/devicetree/bindings/media/*camss*
  F:    drivers/media/platform/qcom/camss/
  
  QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER
@@@ -14937,6 -15223,7 +15238,7 @@@ F:   include/linux/if_rmnet.
  
  QUALCOMM TSENS THERMAL DRIVER
  M:    Amit Kucheria <amitk@kernel.org>
+ M:    Thara Gopinath <thara.gopinath@linaro.org>
  L:    linux-pm@vger.kernel.org
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
@@@ -15124,7 -15411,7 +15426,7 @@@ M:   Laurent Pinchart <laurent.pinchart+r
  M:    Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
  L:    linux-media@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/media/i2c/rdacm2x-gmsl.yaml
+ F:    Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml
  F:    drivers/media/i2c/max9271.c
  F:    drivers/media/i2c/max9271.h
  F:    drivers/media/i2c/rdacm21.c
@@@ -15303,7 -15590,7 +15605,7 @@@ RENESAS R-CAR GYROADC DRIVE
  M:    Marek Vasut <marek.vasut@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Supported
- F:    Documentation/devicetree/bindings/iio/adc/renesas,gyroadc.txt
+ F:    Documentation/devicetree/bindings/iio/adc/renesas,rcar-gyroadc.yaml
  F:    drivers/iio/adc/rcar-gyroadc.c
  
  RENESAS R-CAR I2C DRIVERS
@@@ -15407,8 -15694,8 +15709,8 @@@ N:   risc
  K:    riscv
  
  RNBD BLOCK DRIVERS
- M:    Danil Kipnis <danil.kipnis@cloud.ionos.com>
- M:    Jack Wang <jinpu.wang@cloud.ionos.com>
+ M:    Md. Haris Iqbal <haris.iqbal@ionos.com>
+ M:    Jack Wang <jinpu.wang@ionos.com>
  L:    linux-block@vger.kernel.org
  S:    Maintained
  F:    drivers/block/rnbd/
@@@ -15456,12 -15743,6 +15758,6 @@@ L:  netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/rocker/
  
- ROCKETPORT DRIVER
- S:    Maintained
- W:    http://www.comtrol.com
- F:    Documentation/driver-api/serial/rocket.rst
- F:    drivers/tty/rocket*
  ROCKETPORT EXPRESS/INFINITY DRIVER
  M:    Kevin Cernekee <cernekee@gmail.com>
  L:    linux-serial@vger.kernel.org
@@@ -15500,20 -15781,27 +15796,27 @@@ F:        Documentation/devicetree/bindings/mf
  F:    Documentation/devicetree/bindings/regulator/rohm,bd70528-regulator.txt
  F:    drivers/clk/clk-bd718x7.c
  F:    drivers/gpio/gpio-bd70528.c
+ F:    drivers/gpio/gpio-bd71815.c
  F:    drivers/gpio/gpio-bd71828.c
  F:    drivers/mfd/rohm-bd70528.c
  F:    drivers/mfd/rohm-bd71828.c
  F:    drivers/mfd/rohm-bd718x7.c
+ F:    drivers/mfd/rohm-bd9576.c
  F:    drivers/power/supply/bd70528-charger.c
  F:    drivers/regulator/bd70528-regulator.c
+ F:    drivers/regulator/bd71815-regulator.c
  F:    drivers/regulator/bd71828-regulator.c
  F:    drivers/regulator/bd718x7-regulator.c
+ F:    drivers/regulator/bd9576-regulator.c
  F:    drivers/regulator/rohm-regulator.c
  F:    drivers/rtc/rtc-bd70528.c
  F:    drivers/watchdog/bd70528_wdt.c
+ F:    drivers/watchdog/bd9576_wdt.c
  F:    include/linux/mfd/rohm-bd70528.h
+ F:    include/linux/mfd/rohm-bd71815.h
  F:    include/linux/mfd/rohm-bd71828.h
  F:    include/linux/mfd/rohm-bd718x7.h
+ F:    include/linux/mfd/rohm-bd957x.h
  F:    include/linux/mfd/rohm-generic.h
  F:    include/linux/mfd/rohm-shared.h
  
@@@ -15589,14 -15877,15 +15892,15 @@@ T:        git git://git.kernel.org/pub/scm/lin
  F:    drivers/net/wireless/realtek/rtl8xxxu/
  
  RTRS TRANSPORT DRIVERS
- M:    Danil Kipnis <danil.kipnis@cloud.ionos.com>
- M:    Jack Wang <jinpu.wang@cloud.ionos.com>
+ M:    Md. Haris Iqbal <haris.iqbal@ionos.com>
+ M:    Jack Wang <jinpu.wang@ionos.com>
  L:    linux-rdma@vger.kernel.org
  S:    Maintained
  F:    drivers/infiniband/ulp/rtrs/
  
  RXRPC SOCKETS (AF_RXRPC)
  M:    David Howells <dhowells@redhat.com>
+ M:    Marc Dionne <marc.dionne@auristor.com>
  L:    linux-afs@lists.infradead.org
  S:    Supported
  W:    https://www.infradead.org/~dhowells/kafs/
@@@ -15728,6 -16017,13 +16032,13 @@@ S: Supporte
  W:    http://www.ibm.com/developerworks/linux/linux390/
  F:    drivers/s390/scsi/zfcp_*
  
+ S3C ADC BATTERY DRIVER
+ M:    Krzysztof Kozlowski <krzk@kernel.org>
+ L:    linux-samsung-soc@vger.kernel.org
+ S:    Odd Fixes
+ F:    drivers/power/supply/s3c_adc_battery.c
+ F:    include/linux/s3c_adc_battery.h
  S3C24XX SD/MMC Driver
  M:    Ben Dooks <ben-linux@fluff.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -15767,7 -16063,7 +16078,7 @@@ F:   Documentation/admin-guide/LSM/SafeSe
  F:    security/safesetid/
  
  SAMSUNG AUDIO (ASoC) DRIVERS
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
@@@ -15775,7 -16071,7 +16086,7 @@@ F:   Documentation/devicetree/bindings/so
  F:    sound/soc/samsung/
  
  SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  L:    linux-crypto@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -15810,7 -16106,7 +16121,7 @@@ S:   Maintaine
  F:    drivers/platform/x86/samsung-laptop.c
  
  SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVERS
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-kernel@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
@@@ -15835,7 -16131,7 +16146,7 @@@ F:   drivers/media/platform/s3c-camif
  F:    include/media/drv-intf/s3c_camif.h
  
  SAMSUNG S3FWRN5 NFC DRIVER
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Krzysztof Opasiak <k.opasiak@samsung.com>
  L:    linux-nfc@lists.01.org (moderated for non-subscribers)
  S:    Maintained
@@@ -15855,7 -16151,7 +16166,7 @@@ S:   Supporte
  F:    drivers/media/i2c/s5k5baf.c
  
  SAMSUNG S5P Security SubSystem (SSS) DRIVER
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Vladimir Zapolskiy <vz@mleia.com>
  L:    linux-crypto@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
@@@ -15887,7 -16183,7 +16198,7 @@@ F:   include/linux/clk/samsung.
  F:    include/linux/platform_data/clk-s3c2410.h
  
  SAMSUNG SPI DRIVERS
- M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Andi Shyti <andi@etezian.org>
  L:    linux-spi@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
@@@ -16650,6 -16946,13 +16961,13 @@@ F: drivers/firmware/arm_sdei.
  F:    include/linux/arm_sdei.h
  F:    include/uapi/linux/arm_sdei.h
  
+ SOFTWARE NODES
+ R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+ R:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
+ L:    linux-acpi@vger.kernel.org
+ S:    Maintained
+ F:    drivers/base/swnode.c
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Song Liu <song@kernel.org>
  L:    linux-raid@vger.kernel.org
@@@ -16912,6 -17215,8 +17230,8 @@@ F:   arch/arm/mach-spear
  
  SPI NOR SUBSYSTEM
  M:    Tudor Ambarus <tudor.ambarus@microchip.com>
+ R:    Michael Walle <michael@walle.cc>
+ R:    Pratyush Yadav <p.yadav@ti.com>
  L:    linux-mtd@lists.infradead.org
  S:    Maintained
  W:    http://www.linux-mtd.infradead.org/
@@@ -16981,7 -17286,7 +17301,7 @@@ M:   Lorenzo Bianconi <lorenzo.bianconi83
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  W:    http://www.st.com/
- F:    Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt
+ F:    Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml
  F:    drivers/iio/imu/st_lsm6dsx/
  
  ST MIPID02 CSI-2 TO PARALLEL BRIDGE DRIVER
@@@ -16999,11 -17304,18 +17319,18 @@@ L:        linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/busses/i2c-stm32*
  
+ ST STPDDC60 DRIVER
+ M:    Daniel Nilsson <daniel.nilsson@flex.com>
+ L:    linux-hwmon@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/hwmon/stpddc60.rst
+ F:    drivers/hwmon/pmbus/stpddc60.c
  ST VL53L0X ToF RANGER(I2C) IIO DRIVER
  M:    Song Qiang <songqiang1304521@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/iio/proximity/vl53l0x.txt
+ F:    Documentation/devicetree/bindings/iio/proximity/st,vl53l0x.yaml
  F:    drivers/iio/proximity/vl53l0x-i2c.c
  
  STABLE BRANCH
@@@ -17020,12 -17332,6 +17347,6 @@@ L:  linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/staging/media/atomisp/
  
- STAGING - COMEDI
- M:    Ian Abbott <abbotti@mev.co.uk>
- M:    H Hartley Sweeten <hsweeten@visionengravers.com>
- S:    Odd Fixes
- F:    drivers/staging/comedi/
  STAGING - FIELDBUS SUBSYSTEM
  M:    Sven Van Asbroeck <TheSven73@gmail.com>
  S:    Maintained
@@@ -17323,7 -17629,7 +17644,7 @@@ F:   drivers/spi/spi-dw
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
  M:    Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
  S:    Maintained
- F:    Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.txt
+ F:    Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
  F:    drivers/dma/dw-axi-dmac/
  
  SYNOPSYS DESIGNWARE DMAC DRIVER
@@@ -17739,7 -18045,7 +18060,7 @@@ TEXAS INSTRUMENTS' DAC7612 DAC DRIVE
  M:    Ricardo Ribalda <ribalda@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Supported
- F:    Documentation/devicetree/bindings/iio/dac/ti,dac7612.txt
+ F:    Documentation/devicetree/bindings/iio/dac/ti,dac7612.yaml
  F:    drivers/iio/dac/ti-dac7612.c
  
  TEXAS INSTRUMENTS DMA DRIVERS
@@@ -17823,7 -18129,7 +18144,7 @@@ THERMAL/CPU_COOLIN
  M:    Amit Daniel Kachhap <amit.kachhap@gmail.com>
  M:    Daniel Lezcano <daniel.lezcano@linaro.org>
  M:    Viresh Kumar <viresh.kumar@linaro.org>
M:    Javi Merino <javi.merino@kernel.org>
R:    Lukasz Luba <lukasz.luba@arm.com>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    Documentation/driver-api/thermal/cpu-cooling-api.rst
@@@ -17881,6 -18187,13 +18202,13 @@@ M: Robert Richter <rric@kernel.org
  S:    Odd Fixes
  F:    drivers/gpio/gpio-thunderx.c
  
+ TI ADS131E0X ADC SERIES DRIVER
+ M:    Tomislav Denis <tomislav.denis@avl.com>
+ L:    linux-iio@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/iio/adc/ti,ads131e08.yaml
+ F:    drivers/iio/adc/ti-ads131e08.c
  TI AM437X VPFE DRIVER
  M:    "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -17989,36 -18302,6 +18317,6 @@@ S:  Maintaine
  F:    sound/soc/codecs/isabelle*
  F:    sound/soc/codecs/lm49453*
  
- TI LP855x BACKLIGHT DRIVER
- M:    Milo Kim <milo.kim@ti.com>
- S:    Maintained
- F:    Documentation/driver-api/backlight/lp855x-driver.rst
- F:    drivers/video/backlight/lp855x_bl.c
- F:    include/linux/platform_data/lp855x.h
- TI LP8727 CHARGER DRIVER
- M:    Milo Kim <milo.kim@ti.com>
- S:    Maintained
- F:    drivers/power/supply/lp8727_charger.c
- F:    include/linux/platform_data/lp8727.h
- TI LP8788 MFD DRIVER
- M:    Milo Kim <milo.kim@ti.com>
- S:    Maintained
- F:    drivers/iio/adc/lp8788_adc.c
- F:    drivers/leds/leds-lp8788.c
- F:    drivers/mfd/lp8788*.c
- F:    drivers/power/supply/lp8788-charger.c
- F:    drivers/regulator/lp8788-*.c
- F:    include/linux/mfd/lp8788*.h
- TI NETCP ETHERNET DRIVER
- M:    Wingman Kwok <w-kwok2@ti.com>
- M:    Murali Karicheri <m-karicheri2@ti.com>
- L:    netdev@vger.kernel.org
- S:    Maintained
- F:    drivers/net/ethernet/ti/netcp*
  TI PCM3060 ASoC CODEC DRIVER
  M:    Kirill Marinushkin <kmarinushkin@birdec.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -18032,12 -18315,6 +18330,6 @@@ L:  alsa-devel@alsa-project.org (moderat
  S:    Odd Fixes
  F:    sound/soc/codecs/tas571x*
  
- TI TCAN4X5X DEVICE DRIVER
- L:    linux-can@vger.kernel.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/net/can/tcan4x5x.txt
- F:    drivers/net/can/m_can/tcan4x5x*
  TI TRF7970A NFC DRIVER
  M:    Mark Greer <mgreer@animalcreek.com>
  L:    linux-wireless@vger.kernel.org
@@@ -19137,6 -19414,15 +19429,15 @@@ W: https://virtio-mem.gitlab.io
  F:    drivers/virtio/virtio_mem.c
  F:    include/uapi/linux/virtio_mem.h
  
+ VIRTIO SOUND DRIVER
+ M:    Anton Yakovlev <anton.yakovlev@opensynergy.com>
+ M:    "Michael S. Tsirkin" <mst@redhat.com>
+ L:    virtualization@lists.linux-foundation.org
+ L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    include/uapi/linux/virtio_snd.h
+ F:    sound/virtio/*
  VIRTUAL BOX GUEST DEVICE DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  M:    Arnd Bergmann <arnd@arndb.de>
@@@ -19275,7 -19561,7 +19576,7 @@@ F:   drivers/net/vrf.
  VSPRINTF
  M:    Petr Mladek <pmladek@suse.com>
  M:    Steven Rostedt <rostedt@goodmis.org>
- M:    Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
+ M:    Sergey Senozhatsky <senozhatsky@chromium.org>
  R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  R:    Rasmus Villemoes <linux@rasmusvillemoes.dk>
  S:    Maintained
@@@ -19429,7 -19715,6 +19730,6 @@@ F:   Documentation/devicetree/bindings/so
  F:    Documentation/hwmon/wm83??.rst
  F:    arch/arm/mach-s3c/mach-crag6410*
  F:    drivers/clk/clk-wm83*.c
- F:    drivers/extcon/extcon-arizona.c
  F:    drivers/gpio/gpio-*wm*.c
  F:    drivers/gpio/gpio-arizona.c
  F:    drivers/hwmon/wm83??-hwmon.c
@@@ -19453,7 -19738,7 +19753,7 @@@ F:   include/linux/mfd/wm8400
  F:    include/linux/regulator/arizona*
  F:    include/linux/wm97xx.h
  F:    include/sound/wm????.h
- F:    sound/soc/codecs/arizona.?
+ F:    sound/soc/codecs/arizona*
  F:    sound/soc/codecs/cs47l24*
  F:    sound/soc/codecs/wm*
  
@@@ -19926,7 -20211,7 +20226,7 @@@ F:   drivers/staging/media/zoran
  ZRAM COMPRESSED RAM BLOCK DEVICE DRVIER
  M:    Minchan Kim <minchan@kernel.org>
  M:    Nitin Gupta <ngupta@vflare.org>
- R:    Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
+ R:    Sergey Senozhatsky <senozhatsky@chromium.org>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/admin-guide/blockdev/zram.rst
@@@ -19940,7 -20225,7 +20240,7 @@@ F:   drivers/tty/serial/zs.
  ZSMALLOC COMPRESSED SLAB MEMORY ALLOCATOR
  M:    Minchan Kim <minchan@kernel.org>
  M:    Nitin Gupta <ngupta@vflare.org>
- R:    Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
+ R:    Sergey Senozhatsky <senozhatsky@chromium.org>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    Documentation/vm/zsmalloc.rst
index 6cf573293823c380f956ec358422950a85b6a9c6,f93883db2b467c89fff1fadd84feed875bcba401..6fd20ea2935b0d98ecc84f108de1cbfa8ea80851
@@@ -23,7 -23,6 +23,7 @@@
   */
  
  #include <drm/amdgpu_drm.h>
 +#include <drm/drm_aperture.h>
  #include <drm/drm_drv.h>
  #include <drm/drm_gem.h>
  #include <drm/drm_vblank.h>
@@@ -43,7 -42,7 +43,7 @@@
  #include "amdgpu_irq.h"
  #include "amdgpu_dma_buf.h"
  #include "amdgpu_sched.h"
 -
 +#include "amdgpu_fdinfo.h"
  #include "amdgpu_amdkfd.h"
  
  #include "amdgpu_ras.h"
@@@ -186,7 -185,7 +186,7 @@@ uint amdgpu_ras_mask = 0xffffffff
  int amdgpu_bad_page_threshold = -1;
  struct amdgpu_watchdog_timer amdgpu_watchdog_timer = {
        .timeout_fatal_disable = false,
-       .period = 0x23, /* default to max. timeout = 1 << 0x23 cycles */
+       .period = 0x0, /* default to 0x0 (timeout disable) */
  };
  
  /**
@@@ -554,7 -553,7 +554,7 @@@ module_param_named(timeout_fatal_disabl
   * DOC: timeout_period (uint)
   * Modify the watchdog timeout max_cycles as (1 << period)
   */
- MODULE_PARM_DESC(timeout_period, "watchdog timeout period (1 to 0x23(default), timeout maxCycles = (1 << period)");
+ MODULE_PARM_DESC(timeout_period, "watchdog timeout period (0 = timeout disabled, 1 ~ 0x23 = timeout maxcycles = (1 << period)");
  module_param_named(timeout_period, amdgpu_watchdog_timer.period, uint, 0644);
  
  /**
@@@ -1259,7 -1258,7 +1259,7 @@@ static int amdgpu_pci_probe(struct pci_
  #endif
  
        /* Get rid of things like offb */
 -      ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev, "amdgpudrmfb");
 +      ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "amdgpudrmfb");
        if (ret)
                return ret;
  
@@@ -1574,6 -1573,9 +1574,9 @@@ static int amdgpu_pmops_runtime_resume(
                amdgpu_device_baco_exit(drm_dev);
        }
        ret = amdgpu_device_resume(drm_dev, false);
+       if (ret)
+               return ret;
        if (amdgpu_device_supports_px(drm_dev))
                drm_dev->switch_power_state = DRM_SWITCH_POWER_ON;
        adev->in_runpm = false;
@@@ -1692,9 -1694,6 +1695,9 @@@ static const struct file_operations amd
  #ifdef CONFIG_COMPAT
        .compat_ioctl = amdgpu_kms_compat_ioctl,
  #endif
 +#ifdef CONFIG_PROC_FS
 +      .show_fdinfo = amdgpu_show_fdinfo
 +#endif
  };
  
  int amdgpu_file_to_fpriv(struct file *filp, struct amdgpu_fpriv **fpriv)
index 9f868cf3b8328e77a49791f5a8395bcc99c768d8,9acee4a5b2bad8bce0f68544210fe897953b969c..4a3e3f72e12774bfd7ec951d5a17d2d6d7b50918
@@@ -25,7 -25,6 +25,7 @@@
   *          Alex Deucher
   *          Jerome Glisse
   */
 +
  #include <linux/dma-fence-array.h>
  #include <linux/interval_tree_generic.h>
  #include <linux/idr.h>
@@@ -1718,50 -1717,6 +1718,50 @@@ error_unlock
        return r;
  }
  
 +void amdgpu_vm_get_memory(struct amdgpu_vm *vm, uint64_t *vram_mem,
 +                              uint64_t *gtt_mem, uint64_t *cpu_mem)
 +{
 +      struct amdgpu_bo_va *bo_va, *tmp;
 +
 +      list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status) {
 +              if (!bo_va->base.bo)
 +                      continue;
 +              amdgpu_bo_get_memory(bo_va->base.bo, vram_mem,
 +                              gtt_mem, cpu_mem);
 +      }
 +      list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status) {
 +              if (!bo_va->base.bo)
 +                      continue;
 +              amdgpu_bo_get_memory(bo_va->base.bo, vram_mem,
 +                              gtt_mem, cpu_mem);
 +      }
 +      list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status) {
 +              if (!bo_va->base.bo)
 +                      continue;
 +              amdgpu_bo_get_memory(bo_va->base.bo, vram_mem,
 +                              gtt_mem, cpu_mem);
 +      }
 +      list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) {
 +              if (!bo_va->base.bo)
 +                      continue;
 +              amdgpu_bo_get_memory(bo_va->base.bo, vram_mem,
 +                              gtt_mem, cpu_mem);
 +      }
 +      spin_lock(&vm->invalidated_lock);
 +      list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status) {
 +              if (!bo_va->base.bo)
 +                      continue;
 +              amdgpu_bo_get_memory(bo_va->base.bo, vram_mem,
 +                              gtt_mem, cpu_mem);
 +      }
 +      list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status) {
 +              if (!bo_va->base.bo)
 +                      continue;
 +              amdgpu_bo_get_memory(bo_va->base.bo, vram_mem,
 +                              gtt_mem, cpu_mem);
 +      }
 +      spin_unlock(&vm->invalidated_lock);
 +}
  /**
   * amdgpu_vm_bo_update - update all BO mappings in the vm page table
   *
@@@ -3193,6 -3148,12 +3193,12 @@@ void amdgpu_vm_manager_init(struct amdg
  {
        unsigned i;
  
+       /* Concurrent flushes are only possible starting with Vega10 and
+        * are broken on Navi10 and Navi14.
+        */
+       adev->vm_manager.concurrent_flush = !(adev->asic_type < CHIP_VEGA10 ||
+                                             adev->asic_type == CHIP_NAVI10 ||
+                                             adev->asic_type == CHIP_NAVI14);
        amdgpu_vmid_mgr_init(adev);
  
        adev->vm_manager.fence_context =
index 6823fa589370e24125679a6f757cbc22e6051632,4e140288159cd5f82295b3d57e57f9167e875796..6fd7dad0540a7d412779bb16fc01d8e061ebb460
@@@ -331,6 -331,7 +331,7 @@@ struct amdgpu_vm_manager 
        /* Handling of VMIDs */
        struct amdgpu_vmid_mgr                  id_mgr[AMDGPU_MAX_VMHUBS];
        unsigned int                            first_kfd_vmid;
+       bool                                    concurrent_flush;
  
        /* Handling of VM fences */
        u64                                     fence_context;
@@@ -446,8 -447,6 +447,8 @@@ void amdgpu_vm_set_task_info(struct amd
  void amdgpu_vm_move_to_lru_tail(struct amdgpu_device *adev,
                                struct amdgpu_vm *vm);
  void amdgpu_vm_del_from_lru_notify(struct ttm_buffer_object *bo);
 +void amdgpu_vm_get_memory(struct amdgpu_vm *vm, uint64_t *vram_mem,
 +                              uint64_t *gtt_mem, uint64_t *cpu_mem);
  
  #if defined(CONFIG_DEBUG_FS)
  void amdgpu_debugfs_vm_bo_info(struct amdgpu_vm *vm, struct seq_file *m);
index 2344aba9dca31eb1a48f2c4fc138e22a1954238a,bce105e2973e8c7224fe582e7f5185fbb27d7ce2..f7235438535f5ac00bce0ee859ab96088598a39a
@@@ -25,6 -25,7 +25,7 @@@
  #include <linux/dma-mapping.h>
  #include "amdgpu.h"
  #include "amdgpu_vm.h"
+ #include "amdgpu_res_cursor.h"
  #include "amdgpu_atomfirmware.h"
  #include "atom.h"
  
@@@ -449,8 -450,7 +450,8 @@@ static int amdgpu_vram_mgr_new(struct t
                /* default to 2MB */
                pages_per_node = (2UL << (20UL - PAGE_SHIFT));
  #endif
 -              pages_per_node = max((uint32_t)pages_per_node, mem->page_alignment);
 +              pages_per_node = max((uint32_t)pages_per_node,
 +                                   tbo->page_alignment);
                num_nodes = DIV_ROUND_UP(mem->num_pages, pages_per_node);
        }
  
  
        for (; pages_left; ++i) {
                unsigned long pages = min(pages_left, pages_per_node);
 -              uint32_t alignment = mem->page_alignment;
 +              uint32_t alignment = tbo->page_alignment;
  
                if (pages == pages_per_node)
                        alignment = pages_per_node;
@@@ -566,6 -566,8 +567,8 @@@ static void amdgpu_vram_mgr_del(struct 
   *
   * @adev: amdgpu device pointer
   * @mem: TTM memory object
+  * @offset: byte offset from the base of VRAM BO
+  * @length: number of bytes to export in sg_table
   * @dev: the other device
   * @dir: dma direction
   * @sgt: resulting sg table
   */
  int amdgpu_vram_mgr_alloc_sgt(struct amdgpu_device *adev,
                              struct ttm_resource *mem,
+                             u64 offset, u64 length,
                              struct device *dev,
                              enum dma_data_direction dir,
                              struct sg_table **sgt)
  {
-       struct drm_mm_node *node;
+       struct amdgpu_res_cursor cursor;
        struct scatterlist *sg;
        int num_entries = 0;
-       unsigned int pages;
        int i, r;
  
        *sgt = kmalloc(sizeof(**sgt), GFP_KERNEL);
        if (!*sgt)
                return -ENOMEM;
  
-       for (pages = mem->num_pages, node = mem->mm_node;
-            pages; pages -= node->size, ++node)
-               ++num_entries;
+       /* Determine the number of DRM_MM nodes to export */
+       amdgpu_res_first(mem, offset, length, &cursor);
+       while (cursor.remaining) {
+               num_entries++;
+               amdgpu_res_next(&cursor, cursor.size);
+       }
  
        r = sg_alloc_table(*sgt, num_entries, GFP_KERNEL);
        if (r)
                goto error_free;
  
+       /* Initialize scatterlist nodes of sg_table */
        for_each_sgtable_sg((*sgt), sg, i)
                sg->length = 0;
  
-       node = mem->mm_node;
+       /*
+        * Walk down DRM_MM nodes to populate scatterlist nodes
+        * @note: Use iterator api to get first the DRM_MM node
+        * and the number of bytes from it. Access the following
+        * DRM_MM node(s) if more buffer needs to exported
+        */
+       amdgpu_res_first(mem, offset, length, &cursor);
        for_each_sgtable_sg((*sgt), sg, i) {
-               phys_addr_t phys = (node->start << PAGE_SHIFT) +
-                       adev->gmc.aper_base;
-               size_t size = node->size << PAGE_SHIFT;
+               phys_addr_t phys = cursor.start + adev->gmc.aper_base;
+               size_t size = cursor.size;
                dma_addr_t addr;
  
-               ++node;
                addr = dma_map_resource(dev, phys, size, dir,
                                        DMA_ATTR_SKIP_CPU_SYNC);
                r = dma_mapping_error(dev, addr);
                sg_set_page(sg, NULL, size, 0);
                sg_dma_address(sg) = addr;
                sg_dma_len(sg) = size;
+               amdgpu_res_next(&cursor, cursor.size);
        }
        return 0;
  
  error_unmap:
index 296704ce37688fadb3f93fcd2d364a21ad18fd63,389eff96fcf6c63a76db81a0f9a4592411141bd8..9ca517b658546cecb4013a50c38c980deee0f62f
@@@ -2552,11 -2552,14 +2552,14 @@@ static void handle_hpd_irq(void *param
        struct drm_connector *connector = &aconnector->base;
        struct drm_device *dev = connector->dev;
        enum dc_connection_type new_connection_type = dc_connection_none;
- #ifdef CONFIG_DRM_AMD_DC_HDCP
        struct amdgpu_device *adev = drm_to_adev(dev);
+ #ifdef CONFIG_DRM_AMD_DC_HDCP
        struct dm_connector_state *dm_con_state = to_dm_connector_state(connector->state);
  #endif
  
+       if (adev->dm.disable_hpd_irq)
+               return;
        /*
         * In case of failure or MST no need to update connector status or notify the OS
         * since (for MST case) MST does this in its own context.
@@@ -2696,6 -2699,10 +2699,10 @@@ static void handle_hpd_rx_irq(void *par
  
        memset(&hpd_irq_data, 0, sizeof(hpd_irq_data));
  
+       if (adev->dm.disable_hpd_irq)
+               return;
        /*
         * TODO:Temporary add mutex to protect hpd interrupt not have a gpio
         * conflict, after implement i2c helper, this mutex should be
@@@ -4008,6 -4015,23 +4015,23 @@@ static int fill_dc_scaling_info(const s
        scaling_info->src_rect.x = state->src_x >> 16;
        scaling_info->src_rect.y = state->src_y >> 16;
  
+       /*
+        * For reasons we don't (yet) fully understand a non-zero
+        * src_y coordinate into an NV12 buffer can cause a
+        * system hang. To avoid hangs (and maybe be overly cautious)
+        * let's reject both non-zero src_x and src_y.
+        *
+        * We currently know of only one use-case to reproduce a
+        * scenario with non-zero src_x and src_y for NV12, which
+        * is to gesture the YouTube Android app into full screen
+        * on ChromeOS.
+        */
+       if (state->fb &&
+           state->fb->format->format == DRM_FORMAT_NV12 &&
+           (scaling_info->src_rect.x != 0 ||
+            scaling_info->src_rect.y != 0))
+               return -EINVAL;
        scaling_info->src_rect.width = state->src_w >> 16;
        if (scaling_info->src_rect.width == 0)
                return -EINVAL;
@@@ -4225,6 -4249,7 +4249,7 @@@ static bool dm_plane_format_mod_support
  {
        struct amdgpu_device *adev = drm_to_adev(plane->dev);
        const struct drm_format_info *info = drm_format_info(format);
+       int i;
  
        enum dm_micro_swizzle microtile = modifier_gfx9_swizzle_mode(modifier) & 3;
  
                return false;
  
        /*
-        * We always have to allow this modifier, because core DRM still
-        * checks LINEAR support if userspace does not provide modifers.
+        * We always have to allow these modifiers:
+        * 1. Core DRM checks for LINEAR support if userspace does not provide modifiers.
+        * 2. Not passing any modifiers is the same as explicitly passing INVALID.
         */
-       if (modifier == DRM_FORMAT_MOD_LINEAR)
+       if (modifier == DRM_FORMAT_MOD_LINEAR ||
+           modifier == DRM_FORMAT_MOD_INVALID) {
                return true;
+       }
  
-       /*
-        * The arbitrary tiling support for multiplane formats has not been hooked
-        * up.
-        */
-       if (info->num_planes > 1)
+       /* Check that the modifier is on the list of the plane's supported modifiers. */
+       for (i = 0; i < plane->modifier_count; i++) {
+               if (modifier == plane->modifiers[i])
+                       break;
+       }
+       if (i == plane->modifier_count)
                return false;
  
        /*
                /* Per radeonsi comments 16/64 bpp are more complicated. */
                if (info->cpp[0] != 4)
                        return false;
+               /* We support multi-planar formats, but not when combined with
+                * additional DCC metadata planes. */
+               if (info->num_planes > 1)
+                       return false;
        }
  
        return true;
@@@ -4463,7 -4496,7 +4496,7 @@@ add_gfx10_3_modifiers(const struct amdg
                    AMD_FMT_MOD_SET(DCC_CONSTANT_ENCODE, 1) |
                    AMD_FMT_MOD_SET(DCC_INDEPENDENT_64B, 1) |
                    AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, 1) |
-                   AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_128B));
+                   AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_64B));
  
        add_modifier(mods, size, capacity, AMD_FMT_MOD |
                    AMD_FMT_MOD_SET(TILE, AMD_FMT_MOD_TILE_GFX9_64K_R_X) |
                    AMD_FMT_MOD_SET(DCC_CONSTANT_ENCODE, 1) |
                    AMD_FMT_MOD_SET(DCC_INDEPENDENT_64B, 1) |
                    AMD_FMT_MOD_SET(DCC_INDEPENDENT_128B, 1) |
-                   AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_128B));
+                   AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, AMD_FMT_MOD_DCC_BLOCK_64B));
  
        add_modifier(mods, size, capacity, AMD_FMT_MOD |
                    AMD_FMT_MOD_SET(TILE, AMD_FMT_MOD_TILE_GFX9_64K_R_X) |
@@@ -6275,6 -6308,25 +6308,6 @@@ static int fill_hdr_info_packet(const s
        return 0;
  }
  
 -static bool
 -is_hdr_metadata_different(const struct drm_connector_state *old_state,
 -                        const struct drm_connector_state *new_state)
 -{
 -      struct drm_property_blob *old_blob = old_state->hdr_output_metadata;
 -      struct drm_property_blob *new_blob = new_state->hdr_output_metadata;
 -
 -      if (old_blob != new_blob) {
 -              if (old_blob && new_blob &&
 -                  old_blob->length == new_blob->length)
 -                      return memcmp(old_blob->data, new_blob->data,
 -                                    old_blob->length);
 -
 -              return true;
 -      }
 -
 -      return false;
 -}
 -
  static int
  amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
                                 struct drm_atomic_state *state)
        if (!crtc)
                return 0;
  
 -      if (is_hdr_metadata_different(old_con_state, new_con_state)) {
 +      if (!drm_connector_atomic_hdr_metadata_equal(old_con_state, new_con_state)) {
                struct dc_info_packet hdr_infopacket;
  
                ret = fill_hdr_info_packet(new_con_state, &hdr_infopacket);
@@@ -7479,7 -7531,9 +7512,7 @@@ void amdgpu_dm_connector_init_helper(st
        if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
            connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
            connector_type == DRM_MODE_CONNECTOR_eDP) {
 -              drm_object_attach_property(
 -                      &aconnector->base.base,
 -                      dm->ddev->mode_config.hdr_output_metadata_property, 0);
 +              drm_connector_attach_hdr_output_metadata_property(&aconnector->base);
  
                if (!aconnector->mst_port)
                        drm_connector_attach_vrr_capable_property(&aconnector->base);
@@@ -8784,7 -8838,7 +8817,7 @@@ static void amdgpu_dm_atomic_commit_tai
                              dm_old_crtc_state->abm_level;
  
                hdr_changed =
 -                      is_hdr_metadata_different(old_con_state, new_con_state);
 +                      !drm_connector_atomic_hdr_metadata_equal(old_con_state, new_con_state);
  
                if (!scaling_changed && !abm_changed && !hdr_changed)
                        continue;
@@@ -9832,6 -9886,53 +9865,53 @@@ static int add_affected_mst_dsc_crtcs(s
  }
  #endif
  
+ static int validate_overlay(struct drm_atomic_state *state)
+ {
+       int i;
+       struct drm_plane *plane;
+       struct drm_plane_state *old_plane_state, *new_plane_state;
+       struct drm_plane_state *primary_state, *overlay_state = NULL;
+       /* Check if primary plane is contained inside overlay */
+       for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, new_plane_state, i) {
+               if (plane->type == DRM_PLANE_TYPE_OVERLAY) {
+                       if (drm_atomic_plane_disabling(plane->state, new_plane_state))
+                               return 0;
+                       overlay_state = new_plane_state;
+                       continue;
+               }
+       }
+       /* check if we're making changes to the overlay plane */
+       if (!overlay_state)
+               return 0;
+       /* check if overlay plane is enabled */
+       if (!overlay_state->crtc)
+               return 0;
+       /* find the primary plane for the CRTC that the overlay is enabled on */
+       primary_state = drm_atomic_get_plane_state(state, overlay_state->crtc->primary);
+       if (IS_ERR(primary_state))
+               return PTR_ERR(primary_state);
+       /* check if primary plane is enabled */
+       if (!primary_state->crtc)
+               return 0;
+       /* Perform the bounds check to ensure the overlay plane covers the primary */
+       if (primary_state->crtc_x < overlay_state->crtc_x ||
+           primary_state->crtc_y < overlay_state->crtc_y ||
+           primary_state->crtc_x + primary_state->crtc_w > overlay_state->crtc_x + overlay_state->crtc_w ||
+           primary_state->crtc_y + primary_state->crtc_h > overlay_state->crtc_y + overlay_state->crtc_h) {
+               DRM_DEBUG_ATOMIC("Overlay plane is enabled with hardware cursor but does not fully cover primary plane\n");
+               return -EINVAL;
+       }
+       return 0;
+ }
  /**
   * amdgpu_dm_atomic_check() - Atomic check implementation for AMDgpu DM.
   * @dev: The DRM device
@@@ -10006,6 -10107,10 +10086,10 @@@ static int amdgpu_dm_atomic_check(struc
                        goto fail;
        }
  
+       ret = validate_overlay(state);
+       if (ret)
+               goto fail;
        /* Add new/modified planes */
        for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, new_plane_state, i) {
                ret = dm_update_plane_state(dc, state, plane,
index ef8d53e24c4755eba84402b9ba8031bda506660a,9b221db526dc924c11ddf901e001d548e669ea5b..4a0c24ce5f7d8fde678f1b61fb67a93c873f28f1
@@@ -229,6 -229,11 +229,11 @@@ static int dm_dp_mst_get_modes(struct d
                        (aconnector->edid->extensions + 1) * EDID_LENGTH,
                        &init_params);
  
+               if (!dc_sink) {
+                       DRM_ERROR("Unable to add a remote sink\n");
+                       return 0;
+               }
                dc_sink->priv = aconnector;
                /* dc_link_add_remote_sink returns a new reference */
                aconnector->dc_sink = dc_sink;
@@@ -429,13 -434,10 +434,13 @@@ void amdgpu_dm_initialize_dp_connector(
                                       struct amdgpu_dm_connector *aconnector,
                                       int link_index)
  {
 +      struct dc_link_settings max_link_enc_cap = {0};
 +
        aconnector->dm_dp_aux.aux.name =
                kasprintf(GFP_KERNEL, "AMDGPU DM aux hw bus %d",
                          link_index);
        aconnector->dm_dp_aux.aux.transfer = dm_dp_aux_transfer;
 +      aconnector->dm_dp_aux.aux.drm_dev = dm->ddev;
        aconnector->dm_dp_aux.ddc_service = aconnector->dc_link->ddc;
  
        drm_dp_aux_init(&aconnector->dm_dp_aux.aux);
        if (aconnector->base.connector_type == DRM_MODE_CONNECTOR_eDP)
                return;
  
 +      dc_link_dp_get_max_link_enc_cap(aconnector->dc_link, &max_link_enc_cap);
        aconnector->mst_mgr.cbs = &dm_mst_cbs;
        drm_dp_mst_topology_mgr_init(
                &aconnector->mst_mgr,
                &aconnector->dm_dp_aux.aux,
                16,
                4,
 +              (u8)max_link_enc_cap.lane_count,
 +              (u8)max_link_enc_cap.link_rate,
                aconnector->connector_id);
  
        drm_connector_attach_dp_subconnector_property(&aconnector->base);
@@@ -751,8 -750,8 +756,8 @@@ static bool compute_mst_dsc_configs_for
                if (!dc_dsc_compute_bandwidth_range(
                                stream->sink->ctx->dc->res_pool->dscs[0],
                                stream->sink->ctx->dc->debug.dsc_min_slice_height_override,
-                               dsc_policy.min_target_bpp,
-                               dsc_policy.max_target_bpp,
+                               dsc_policy.min_target_bpp * 16,
+                               dsc_policy.max_target_bpp * 16,
                                &stream->sink->dsc_caps.dsc_dec_caps,
                                &stream->timing, &params[count].bw_range))
                        params[count].bw_range.stream_kbps = dc_bandwidth_in_kbps_from_timing(&stream->timing);
index 6fe66b7ee53ecc22c4a7129b17901efe923a5066,3ff3d9e9098370a198dbe983c8a6c597441b87d0..afa43181dec6870f64af7651bc1281fe7d06eb88
@@@ -1132,11 -1132,6 +1132,6 @@@ static inline enum link_training_resul
        enum link_training_result status)
  {
        union lane_count_set lane_count_set = { {0} };
-       union dpcd_training_pattern dpcd_pattern = { {0} };
-       /* 3. set training not in progress*/
-       dpcd_pattern.v1_4.TRAINING_PATTERN_SET = DPCD_TRAINING_PATTERN_VIDEOIDLE;
-       dpcd_set_training_pattern(link, dpcd_pattern);
  
        /* 4. mainlink output idle pattern*/
        dp_set_hw_test_pattern(link, DP_TEST_PATTERN_VIDEO_MODE, NULL, 0);
@@@ -1560,6 -1555,7 +1555,7 @@@ enum link_training_result dc_link_dp_pe
  {
        enum link_training_result status = LINK_TRAINING_SUCCESS;
        struct link_training_settings lt_settings;
+       union dpcd_training_pattern dpcd_pattern = { { 0 } };
  
        bool fec_enable;
        uint8_t repeater_cnt;
                }
        }
  
+       /* 3. set training not in progress*/
+       dpcd_pattern.v1_4.TRAINING_PATTERN_SET = DPCD_TRAINING_PATTERN_VIDEOIDLE;
+       dpcd_set_training_pattern(link, dpcd_pattern);
        if ((status == LINK_TRAINING_SUCCESS) || !skip_video_pattern) {
                status = perform_link_training_int(link,
                                &lt_settings,
@@@ -1894,24 -1893,6 +1893,24 @@@ bool dc_link_dp_sync_lt_end(struct dc_l
        return true;
  }
  
 +bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link, struct dc_link_settings *max_link_enc_cap)
 +{
 +      if (!max_link_enc_cap) {
 +              DC_LOG_ERROR("%s: Could not return max link encoder caps", __func__);
 +              return false;
 +      }
 +
 +      if (link->link_enc->funcs->get_max_link_cap) {
 +              link->link_enc->funcs->get_max_link_cap(link->link_enc, max_link_enc_cap);
 +              return true;
 +      }
 +
 +      DC_LOG_ERROR("%s: Max link encoder caps unknown", __func__);
 +      max_link_enc_cap->lane_count = 1;
 +      max_link_enc_cap->link_rate = 6;
 +      return false;
 +}
 +
  static struct dc_link_settings get_max_link_cap(struct dc_link *link)
  {
        struct dc_link_settings max_link_cap = {0};
@@@ -2508,7 -2489,7 +2507,7 @@@ static bool decide_dp_link_settings(str
        return false;
  }
  
static bool decide_edp_link_settings(struct dc_link *link, struct dc_link_settings *link_setting, uint32_t req_bw)
+ bool decide_edp_link_settings(struct dc_link *link, struct dc_link_settings *link_setting, uint32_t req_bw)
  {
        struct dc_link_settings initial_link_setting;
        struct dc_link_settings current_link_setting;
@@@ -3600,6 -3581,8 +3599,8 @@@ static bool retrieve_link_cap(struct dc
                                link->dpcd_caps.lttpr_caps.revision.raw >= 0x14);
                if (is_lttpr_present)
                        CONN_DATA_DETECT(link, lttpr_dpcd_data, sizeof(lttpr_dpcd_data), "LTTPR Caps: ");
+               else
+                       link->lttpr_mode = LTTPR_MODE_NON_LTTPR;
        }
  
        if (!is_lttpr_present)
@@@ -3910,7 -3893,7 +3911,7 @@@ void detect_edp_sink_caps(struct dc_lin
        memset(supported_link_rates, 0, sizeof(supported_link_rates));
  
        if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_14 &&
-                       (link->dc->config.optimize_edp_link_rate ||
+                       (link->dc->debug.optimize_edp_link_rate ||
                        link->reported_link_cap.link_rate == LINK_RATE_UNKNOWN)) {
                // Read DPCD 00010h - 0001Fh 16 bytes at one shot
                core_link_read_dpcd(link, DP_SUPPORTED_LINK_RATES,
@@@ -4736,3 -4719,51 +4737,51 @@@ bool dc_link_set_default_brightness_aux
        }
        return false;
  }
+ bool is_edp_ilr_optimization_required(struct dc_link *link, struct dc_crtc_timing *crtc_timing)
+ {
+       struct dc_link_settings link_setting;
+       uint8_t link_bw_set;
+       uint8_t link_rate_set;
+       uint32_t req_bw;
+       union lane_count_set lane_count_set = { {0} };
+       ASSERT(link || crtc_timing); // invalid input
+       if (link->dpcd_caps.edp_supported_link_rates_count == 0 ||
+                       !link->dc->debug.optimize_edp_link_rate)
+               return false;
+       // Read DPCD 00100h to find if standard link rates are set
+       core_link_read_dpcd(link, DP_LINK_BW_SET,
+                               &link_bw_set, sizeof(link_bw_set));
+       if (link_bw_set) {
+               DC_LOG_EVENT_LINK_TRAINING("eDP ILR: Optimization required, VBIOS used link_bw_set\n");
+               return true;
+       }
+       // Read DPCD 00115h to find the edp link rate set used
+       core_link_read_dpcd(link, DP_LINK_RATE_SET,
+                           &link_rate_set, sizeof(link_rate_set));
+       // Read DPCD 00101h to find out the number of lanes currently set
+       core_link_read_dpcd(link, DP_LANE_COUNT_SET,
+                               &lane_count_set.raw, sizeof(lane_count_set));
+       req_bw = dc_bandwidth_in_kbps_from_timing(crtc_timing);
+       decide_edp_link_settings(link, &link_setting, req_bw);
+       if (link->dpcd_caps.edp_supported_link_rates[link_rate_set] != link_setting.link_rate ||
+                       lane_count_set.bits.LANE_COUNT_SET != link_setting.lane_count) {
+               DC_LOG_EVENT_LINK_TRAINING("eDP ILR: Optimization required, VBIOS link_rate_set not optimal\n");
+               return true;
+       }
+       DC_LOG_EVENT_LINK_TRAINING("eDP ILR: No optimization required, VBIOS set optimal link_rate_set\n");
+       return false;
+ }
index cb6d0543d839b74c1f859bd0852e8ef26539ce3e,054bab45ee170867f1596e2fc504d000a62b2b35..fc5622ffec3debcc51a29f14d9e51b076530569f
@@@ -276,7 -276,6 +276,6 @@@ enum dc_detect_reason 
  bool dc_link_detect(struct dc_link *dc_link, enum dc_detect_reason reason);
  bool dc_link_get_hpd_state(struct dc_link *dc_link);
  enum dc_status dc_link_allocate_mst_payload(struct pipe_ctx *pipe_ctx);
- enum dc_status dc_link_reallocate_mst_payload(struct dc_link *link);
  
  /* Notify DC about DP RX Interrupt (aka Short Pulse Interrupt).
   * Return:
@@@ -346,8 -345,6 +345,8 @@@ bool dc_link_dp_set_test_pattern
        const unsigned char *p_custom_pattern,
        unsigned int cust_pattern_size);
  
 +bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link, struct dc_link_settings *max_link_enc_cap);
 +
  void dc_link_enable_hpd_filter(struct dc_link *link, bool enable);
  
  bool dc_link_is_dp_sink_present(struct dc_link *link);
index 12fcbb7ce1794ade5938ac3cd9324fce9d39185c,73e4de3c7f49a6c578bfd61908a20c853a1fa889..ae53ea624c737eafe5737431006afce3718f8df1
@@@ -1176,11 -1176,16 +1176,11 @@@ enum drm_mode_statu
  drm_mode_validate_ycbcr420(const struct drm_display_mode *mode,
                           struct drm_connector *connector)
  {
 -      u8 vic = drm_match_cea_mode(mode);
 -      enum drm_mode_status status = MODE_OK;
 -      struct drm_hdmi_info *hdmi = &connector->display_info.hdmi;
 +      if (!connector->ycbcr_420_allowed &&
 +          drm_mode_is_420_only(&connector->display_info, mode))
 +              return MODE_NO_420;
  
 -      if (test_bit(vic, hdmi->y420_vdb_modes)) {
 -              if (!connector->ycbcr_420_allowed)
 -                      status = MODE_NO_420;
 -      }
 -
 -      return status;
 +      return MODE_OK;
  }
  EXPORT_SYMBOL(drm_mode_validate_ycbcr420);
  
@@@ -1285,7 -1290,8 +1285,8 @@@ EXPORT_SYMBOL(drm_mode_prune_invalid)
   * Negative if @lh_a is better than @lh_b, zero if they're equivalent, or
   * positive if @lh_b is better than @lh_a.
   */
- static int drm_mode_compare(void *priv, struct list_head *lh_a, struct list_head *lh_b)
+ static int drm_mode_compare(void *priv, const struct list_head *lh_a,
+                           const struct list_head *lh_b)
  {
        struct drm_display_mode *a = list_entry(lh_a, struct drm_display_mode, head);
        struct drm_display_mode *b = list_entry(lh_b, struct drm_display_mode, head);
index 644cc8cb812eea3fb121acf4e4e5247737896a33,64e9107d70f7e51822f3e23897418cae2df3fb01..9b9b538b0cb60a811e2ad8dd56f5d5b94ef5026d
@@@ -1403,7 -1403,8 +1403,8 @@@ intel_fb_stride_alignment(const struct 
                 * require the entire fb to accommodate that to avoid
                 * potential runtime errors at plane configuration time.
                 */
-               if (IS_DISPLAY_VER(dev_priv, 9) && color_plane == 0 && fb->width > 3840)
+               if ((IS_DISPLAY_VER(dev_priv, 9) || IS_GEMINILAKE(dev_priv)) &&
+                   color_plane == 0 && fb->width > 3840)
                        tile_width *= 4;
                /*
                 * The main surface pitch must be padded to a multiple of four
@@@ -11704,6 -11705,8 +11705,6 @@@ static void intel_mode_config_init(stru
        mode_config->preferred_depth = 24;
        mode_config->prefer_shadow = 1;
  
 -      mode_config->allow_fb_modifiers = true;
 -
        mode_config->funcs = &intel_mode_funcs;
  
        mode_config->async_page_flip = has_async_flips(i915);
index dd7423d3c56261eda7969b90145c1857a0221aee,02a003fd48fb22533f0025cd8b64ca16270def35..59efa9be30151cae6aff845161b0930cd3a54ee0
@@@ -96,7 -96,7 +96,7 @@@ static bool intel_dp_read_lttpr_common_
         * Detecting LTTPRs must be avoided on platforms with an AUX timeout
         * period < 3.2ms. (see DP Standard v2.0, 2.11.2, 3.6.6.1).
         */
-       if (DISPLAY_VER(i915) < 10)
+       if (DISPLAY_VER(i915) < 10 || IS_GEMINILAKE(i915))
                return false;
  
        if (drm_dp_read_lttpr_common_caps(&intel_dp->aux,
@@@ -513,7 -513,7 +513,7 @@@ static void intel_dp_link_training_cloc
                                                        enum drm_dp_phy dp_phy)
  {
        if (dp_phy == DP_PHY_DPRX)
 -              drm_dp_link_train_clock_recovery_delay(intel_dp->dpcd);
 +              drm_dp_link_train_clock_recovery_delay(&intel_dp->aux, intel_dp->dpcd);
        else
                drm_dp_lttpr_link_train_clock_recovery_delay();
  }
@@@ -665,11 -665,11 +665,11 @@@ intel_dp_link_training_channel_equaliza
                                                  enum drm_dp_phy dp_phy)
  {
        if (dp_phy == DP_PHY_DPRX) {
 -              drm_dp_link_train_channel_eq_delay(intel_dp->dpcd);
 +              drm_dp_link_train_channel_eq_delay(&intel_dp->aux, intel_dp->dpcd);
        } else {
                const u8 *phy_caps = intel_dp_lttpr_phy_caps(intel_dp, dp_phy);
  
 -              drm_dp_lttpr_link_train_channel_eq_delay(phy_caps);
 +              drm_dp_lttpr_link_train_channel_eq_delay(&intel_dp->aux, phy_caps);
        }
  }
  
@@@ -882,7 -882,8 +882,8 @@@ void intel_dp_start_link_train(struct i
        int lttpr_count = intel_dp_init_lttpr_and_dprx_caps(intel_dp);
  
        if (lttpr_count < 0)
-               return;
+               /* Still continue with enabling the port and link training. */
+               lttpr_count = 0;
  
        if (!intel_dp_link_train_all_phys(intel_dp, crtc_state, lttpr_count))
                intel_dp_schedule_fallback_link_training(intel_dp, crtc_state);
index bba0fc39028cd7548360854f2e1d76e0ccb7f303,6754f578fed210209abd6ffcfe529495f67d3a07..854e6c5a563ffdf045f1017d625a7a5bf107ea1b
@@@ -1,4 -1,3 +1,3 @@@
- /* vim: set ts=8 sw=8 tw=78 ai noexpandtab */
  /* qxl_drv.c -- QXL driver -*- linux-c -*-
   *
   * Copyright 2011 Red Hat, Inc.
   */
  
  #include "qxl_drv.h"
 +
  #include <linux/console.h>
  #include <linux/module.h>
  #include <linux/pci.h>
 +#include <linux/vgaarb.h>
  
  #include <drm/drm.h>
 +#include <drm/drm_aperture.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_drv.h>
  #include <drm/drm_file.h>
 +#include <drm/drm_gem_ttm_helper.h>
  #include <drm/drm_modeset_helper.h>
  #include <drm/drm_prime.h>
  #include <drm/drm_probe_helper.h>
@@@ -96,7 -91,7 +95,7 @@@ qxl_pci_probe(struct pci_dev *pdev, con
        if (ret)
                return ret;
  
 -      ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev, "qxl");
 +      ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "qxl");
        if (ret)
                goto disable_pci;
  
@@@ -275,7 -270,7 +274,7 @@@ static struct drm_driver qxl_driver = 
        .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
  
        .dumb_create = qxl_mode_dumb_create,
 -      .dumb_map_offset = qxl_mode_dumb_mmap,
 +      .dumb_map_offset = drm_gem_ttm_dumb_map_offset,
  #if defined(CONFIG_DEBUG_FS)
        .debugfs_init = qxl_debugfs_init,
  #endif
index f9845a50f86632c3a161444b7ad939d7b860f8aa,f9120dc2468288acb4e0feefd990a97dbf7c5172..074563ca586c319a3cca056af3cb4561a2fd481f
@@@ -832,10 -832,14 +832,14 @@@ static struct drm_plane *tegra_primary_
        return &plane->base;
  }
  
- static const u32 tegra_cursor_plane_formats[] = {
+ static const u32 tegra_legacy_cursor_plane_formats[] = {
        DRM_FORMAT_RGBA8888,
  };
  
+ static const u32 tegra_cursor_plane_formats[] = {
+       DRM_FORMAT_ARGB8888,
+ };
  static int tegra_cursor_atomic_check(struct drm_plane *plane,
                                     struct drm_atomic_state *state)
  {
@@@ -875,12 -879,24 +879,24 @@@ static void tegra_cursor_atomic_update(
                                                                           plane);
        struct tegra_plane_state *tegra_plane_state = to_tegra_plane_state(new_state);
        struct tegra_dc *dc = to_tegra_dc(new_state->crtc);
-       u32 value = CURSOR_CLIP_DISPLAY;
+       struct tegra_drm *tegra = plane->dev->dev_private;
+ #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
+       u64 dma_mask = *dc->dev->dma_mask;
+ #endif
+       unsigned int x, y;
+       u32 value = 0;
  
        /* rien ne va plus */
        if (!new_state->crtc || !new_state->fb)
                return;
  
+       /*
+        * Legacy display supports hardware clipping of the cursor, but
+        * nvdisplay relies on software to clip the cursor to the screen.
+        */
+       if (!dc->soc->has_nvdisplay)
+               value |= CURSOR_CLIP_DISPLAY;
        switch (new_state->crtc_w) {
        case 32:
                value |= CURSOR_SIZE_32x32;
        tegra_dc_writel(dc, value, DC_DISP_CURSOR_START_ADDR);
  
  #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
-       value = (tegra_plane_state->iova[0] >> 32) & 0x3;
+       value = (tegra_plane_state->iova[0] >> 32) & (dma_mask >> 32);
        tegra_dc_writel(dc, value, DC_DISP_CURSOR_START_ADDR_HI);
  #endif
  
        value = tegra_dc_readl(dc, DC_DISP_BLEND_CURSOR_CONTROL);
        value &= ~CURSOR_DST_BLEND_MASK;
        value &= ~CURSOR_SRC_BLEND_MASK;
-       value |= CURSOR_MODE_NORMAL;
+       if (dc->soc->has_nvdisplay)
+               value &= ~CURSOR_COMPOSITION_MODE_XOR;
+       else
+               value |= CURSOR_MODE_NORMAL;
        value |= CURSOR_DST_BLEND_NEG_K1_TIMES_SRC;
        value |= CURSOR_SRC_BLEND_K1_TIMES_SRC;
        value |= CURSOR_ALPHA;
        tegra_dc_writel(dc, value, DC_DISP_BLEND_CURSOR_CONTROL);
  
+       /* nvdisplay relies on software for clipping */
+       if (dc->soc->has_nvdisplay) {
+               struct drm_rect src;
+               x = new_state->dst.x1;
+               y = new_state->dst.y1;
+               drm_rect_fp_to_int(&src, &new_state->src);
+               value = (src.y1 & tegra->vmask) << 16 | (src.x1 & tegra->hmask);
+               tegra_dc_writel(dc, value, DC_DISP_PCALC_HEAD_SET_CROPPED_POINT_IN_CURSOR);
+               value = (drm_rect_height(&src) & tegra->vmask) << 16 |
+                       (drm_rect_width(&src) & tegra->hmask);
+               tegra_dc_writel(dc, value, DC_DISP_PCALC_HEAD_SET_CROPPED_SIZE_IN_CURSOR);
+       } else {
+               x = new_state->crtc_x;
+               y = new_state->crtc_y;
+       }
        /* position the cursor */
-       value = (new_state->crtc_y & 0x3fff) << 16 |
-               (new_state->crtc_x & 0x3fff);
+       value = ((y & tegra->vmask) << 16) | (x & tegra->hmask);
        tegra_dc_writel(dc, value, DC_DISP_CURSOR_POSITION);
  }
  
@@@ -959,11 -999,6 +999,11 @@@ static const struct drm_plane_helper_fu
        .atomic_disable = tegra_cursor_atomic_disable,
  };
  
 +static const uint64_t linear_modifiers[] = {
 +      DRM_FORMAT_MOD_LINEAR,
 +      DRM_FORMAT_MOD_INVALID
 +};
 +
  static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm,
                                                      struct tegra_dc *dc)
  {
        plane->index = 6;
        plane->dc = dc;
  
-       num_formats = ARRAY_SIZE(tegra_cursor_plane_formats);
-       formats = tegra_cursor_plane_formats;
+       if (!dc->soc->has_nvdisplay) {
+               num_formats = ARRAY_SIZE(tegra_legacy_cursor_plane_formats);
+               formats = tegra_legacy_cursor_plane_formats;
+       } else {
+               num_formats = ARRAY_SIZE(tegra_cursor_plane_formats);
+               formats = tegra_cursor_plane_formats;
+       }
  
        err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
                                       &tegra_plane_funcs, formats,
 -                                     num_formats, NULL,
 +                                     num_formats, linear_modifiers,
                                       DRM_PLANE_TYPE_CURSOR, NULL);
        if (err < 0) {
                kfree(plane);
@@@ -1111,8 -1151,7 +1156,8 @@@ static struct drm_plane *tegra_dc_overl
  
        err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
                                       &tegra_plane_funcs, formats,
 -                                     num_formats, NULL, type, NULL);
 +                                     num_formats, linear_modifiers,
 +                                     type, NULL);
        if (err < 0) {
                kfree(plane);
                return ERR_PTR(err);
@@@ -2041,6 -2080,16 +2086,16 @@@ static bool tegra_dc_has_window_groups(
        return false;
  }
  
+ static int tegra_dc_early_init(struct host1x_client *client)
+ {
+       struct drm_device *drm = dev_get_drvdata(client->host);
+       struct tegra_drm *tegra = drm->dev_private;
+       tegra->num_crtcs++;
+       return 0;
+ }
  static int tegra_dc_init(struct host1x_client *client)
  {
        struct drm_device *drm = dev_get_drvdata(client->host);
        struct drm_plane *cursor = NULL;
        int err;
  
+       /*
+        * DC has been reset by now, so VBLANK syncpoint can be released
+        * for general use.
+        */
+       host1x_syncpt_release_vblank_reservation(client, 26 + dc->pipe);
        /*
         * XXX do not register DCs with no window groups because we cannot
         * assign a primary plane to them, which in turn will cause KMS to
        if (dc->soc->pitch_align > tegra->pitch_align)
                tegra->pitch_align = dc->soc->pitch_align;
  
+       /* track maximum resolution */
+       if (dc->soc->has_nvdisplay)
+               drm->mode_config.max_width = drm->mode_config.max_height = 16384;
+       else
+               drm->mode_config.max_width = drm->mode_config.max_height = 4096;
        err = tegra_dc_rgb_init(drm, dc);
        if (err < 0 && err != -ENODEV) {
                dev_err(dc->dev, "failed to initialize RGB output: %d\n", err);
@@@ -2147,7 -2208,7 +2214,7 @@@ cleanup
                drm_plane_cleanup(primary);
  
        host1x_client_iommu_detach(client);
-       host1x_syncpt_free(dc->syncpt);
+       host1x_syncpt_put(dc->syncpt);
  
        return err;
  }
@@@ -2172,7 -2233,17 +2239,17 @@@ static int tegra_dc_exit(struct host1x_
        }
  
        host1x_client_iommu_detach(client);
-       host1x_syncpt_free(dc->syncpt);
+       host1x_syncpt_put(dc->syncpt);
+       return 0;
+ }
+ static int tegra_dc_late_exit(struct host1x_client *client)
+ {
+       struct drm_device *drm = dev_get_drvdata(client->host);
+       struct tegra_drm *tegra = drm->dev_private;
+       tegra->num_crtcs--;
  
        return 0;
  }
@@@ -2241,8 -2312,10 +2318,10 @@@ put_rpm
  }
  
  static const struct host1x_client_ops dc_client_ops = {
+       .early_init = tegra_dc_early_init,
        .init = tegra_dc_init,
        .exit = tegra_dc_exit,
+       .late_exit = tegra_dc_late_exit,
        .suspend = tegra_dc_runtime_suspend,
        .resume = tegra_dc_runtime_resume,
  };
@@@ -2252,6 -2325,7 +2331,7 @@@ static const struct tegra_dc_soc_info t
        .supports_interlacing = false,
        .supports_cursor = false,
        .supports_block_linear = false,
+       .supports_sector_layout = false,
        .has_legacy_blending = true,
        .pitch_align = 8,
        .has_powergate = false,
@@@ -2271,6 -2345,7 +2351,7 @@@ static const struct tegra_dc_soc_info t
        .supports_interlacing = false,
        .supports_cursor = false,
        .supports_block_linear = false,
+       .supports_sector_layout = false,
        .has_legacy_blending = true,
        .pitch_align = 8,
        .has_powergate = false,
@@@ -2290,6 -2365,7 +2371,7 @@@ static const struct tegra_dc_soc_info t
        .supports_interlacing = false,
        .supports_cursor = false,
        .supports_block_linear = false,
+       .supports_sector_layout = false,
        .has_legacy_blending = true,
        .pitch_align = 64,
        .has_powergate = true,
@@@ -2309,6 -2385,7 +2391,7 @@@ static const struct tegra_dc_soc_info t
        .supports_interlacing = true,
        .supports_cursor = true,
        .supports_block_linear = true,
+       .supports_sector_layout = false,
        .has_legacy_blending = false,
        .pitch_align = 64,
        .has_powergate = true,
@@@ -2328,6 -2405,7 +2411,7 @@@ static const struct tegra_dc_soc_info t
        .supports_interlacing = true,
        .supports_cursor = true,
        .supports_block_linear = true,
+       .supports_sector_layout = false,
        .has_legacy_blending = false,
        .pitch_align = 64,
        .has_powergate = true,
@@@ -2381,6 -2459,7 +2465,7 @@@ static const struct tegra_dc_soc_info t
        .supports_interlacing = true,
        .supports_cursor = true,
        .supports_block_linear = true,
+       .supports_sector_layout = false,
        .has_legacy_blending = false,
        .pitch_align = 64,
        .has_powergate = false,
@@@ -2429,6 -2508,7 +2514,7 @@@ static const struct tegra_dc_soc_info t
        .supports_interlacing = true,
        .supports_cursor = true,
        .supports_block_linear = true,
+       .supports_sector_layout = true,
        .has_legacy_blending = false,
        .pitch_align = 64,
        .has_powergate = false,
@@@ -2538,9 -2618,16 +2624,16 @@@ static int tegra_dc_couple(struct tegra
  
  static int tegra_dc_probe(struct platform_device *pdev)
  {
+       u64 dma_mask = dma_get_mask(pdev->dev.parent);
        struct tegra_dc *dc;
        int err;
  
+       err = dma_coerce_mask_and_coherent(&pdev->dev, dma_mask);
+       if (err < 0) {
+               dev_err(&pdev->dev, "failed to set DMA mask: %d\n", err);
+               return err;
+       }
        dc = devm_kzalloc(&pdev->dev, sizeof(*dc), GFP_KERNEL);
        if (!dc)
                return -ENOMEM;
index b2dc3c6fefcbe0a2398360b37f2a2e8d300e7059,0c350b0daab47f29d9cdda8da307a20aaa070fe5..f96c237b22426c11bd6638ab14b0eddc07d253bf
@@@ -11,7 -11,6 +11,7 @@@
  #include <linux/module.h>
  #include <linux/platform_device.h>
  
 +#include <drm/drm_aperture.h>
  #include <drm/drm_atomic.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_debugfs.h>
@@@ -175,7 -174,7 +175,7 @@@ int tegra_drm_submit(struct tegra_drm_c
        struct drm_tegra_syncpt syncpt;
        struct host1x *host1x = dev_get_drvdata(drm->dev->parent);
        struct drm_gem_object **refs;
-       struct host1x_syncpt *sp;
+       struct host1x_syncpt *sp = NULL;
        struct host1x_job *job;
        unsigned int num_refs;
        int err;
                goto fail;
        }
  
-       /* check whether syncpoint ID is valid */
-       sp = host1x_syncpt_get(host1x, syncpt.id);
+       /* Syncpoint ref will be dropped on job release. */
+       sp = host1x_syncpt_get_by_id(host1x, syncpt.id);
        if (!sp) {
                err = -ENOENT;
                goto fail;
        job->is_addr_reg = context->client->ops->is_addr_reg;
        job->is_valid_class = context->client->ops->is_valid_class;
        job->syncpt_incrs = syncpt.incrs;
-       job->syncpt_id = syncpt.id;
+       job->syncpt = sp;
        job->timeout = 10000;
  
        if (args->timeout && args->timeout < 10000)
@@@ -384,7 -383,7 +384,7 @@@ static int tegra_syncpt_read(struct drm
        struct drm_tegra_syncpt_read *args = data;
        struct host1x_syncpt *sp;
  
-       sp = host1x_syncpt_get(host, args->id);
+       sp = host1x_syncpt_get_by_id_noref(host, args->id);
        if (!sp)
                return -EINVAL;
  
@@@ -399,7 -398,7 +399,7 @@@ static int tegra_syncpt_incr(struct drm
        struct drm_tegra_syncpt_incr *args = data;
        struct host1x_syncpt *sp;
  
-       sp = host1x_syncpt_get(host1x, args->id);
+       sp = host1x_syncpt_get_by_id_noref(host1x, args->id);
        if (!sp)
                return -EINVAL;
  
@@@ -413,7 -412,7 +413,7 @@@ static int tegra_syncpt_wait(struct drm
        struct drm_tegra_syncpt_wait *args = data;
        struct host1x_syncpt *sp;
  
-       sp = host1x_syncpt_get(host1x, args->id);
+       sp = host1x_syncpt_get_by_id_noref(host1x, args->id);
        if (!sp)
                return -EINVAL;
  
@@@ -1122,10 -1121,11 +1122,9 @@@ static int host1x_drm_probe(struct host
  
        drm->mode_config.min_width = 0;
        drm->mode_config.min_height = 0;
-       drm->mode_config.max_width = 4096;
-       drm->mode_config.max_height = 4096;
+       drm->mode_config.max_width = 0;
+       drm->mode_config.max_height = 0;
  
 -      drm->mode_config.allow_fb_modifiers = true;
 -
        drm->mode_config.normalize_zpos = true;
  
        drm->mode_config.funcs = &tegra_drm_mode_config_funcs;
        if (err < 0)
                goto fbdev;
  
+       /*
+        * Now that all display controller have been initialized, the maximum
+        * supported resolution is known and the bitmask for horizontal and
+        * vertical bitfields can be computed.
+        */
+       tegra->hmask = drm->mode_config.max_width - 1;
+       tegra->vmask = drm->mode_config.max_height - 1;
        if (tegra->use_explicit_iommu) {
                u64 carveout_start, carveout_end, gem_start, gem_end;
                u64 dma_mask = dma_get_mask(&dev->dev);
  
        drm_mode_config_reset(drm);
  
 -      err = drm_fb_helper_remove_conflicting_framebuffers(NULL, "tegradrmfb",
 -                                                          false);
 +      err = drm_aperture_remove_framebuffers(false, "tegradrmfb");
        if (err < 0)
                goto hub;
  
index e9ea971682888c2ac899014c4902cdf7f7975f8d,399f70d340eb5beb22e4676e92a953ba40c112d3..7805ba0e1c49095f7f1a9596b1470d9adfee95d6
@@@ -31,8 -31,8 +31,8 @@@
  #include <linux/pci.h>
  #include <linux/mem_encrypt.h>
  
 +#include <drm/drm_aperture.h>
  #include <drm/drm_drv.h>
 -#include <drm/drm_fb_helper.h>
  #include <drm/drm_ioctl.h>
  #include <drm/drm_sysfs.h>
  #include <drm/ttm/ttm_bo_driver.h>
@@@ -706,17 -706,8 +706,8 @@@ static int vmw_driver_load(struct vmw_p
        dev_priv->last_read_seqno = (uint32_t) -100;
        dev_priv->drm.dev_private = dev_priv;
  
-       ret = vmw_setup_pci_resources(dev_priv, pci_id);
-       if (ret)
-               return ret;
-       ret = vmw_detect_version(dev_priv);
-       if (ret)
-               goto out_no_pci_or_version;
        mutex_init(&dev_priv->cmdbuf_mutex);
-       mutex_init(&dev_priv->release_mutex);
        mutex_init(&dev_priv->binding_mutex);
-       mutex_init(&dev_priv->global_kms_state_mutex);
        ttm_lock_init(&dev_priv->reservation_sem);
        spin_lock_init(&dev_priv->resource_lock);
        spin_lock_init(&dev_priv->hw_lock);
        spin_lock_init(&dev_priv->cap_lock);
        spin_lock_init(&dev_priv->cursor_lock);
  
+       ret = vmw_setup_pci_resources(dev_priv, pci_id);
+       if (ret)
+               return ret;
+       ret = vmw_detect_version(dev_priv);
+       if (ret)
+               goto out_no_pci_or_version;
        for (i = vmw_res_context; i < vmw_res_max; ++i) {
 -              idr_init(&dev_priv->res_idr[i]);
 +              idr_init_base(&dev_priv->res_idr[i], 1);
                INIT_LIST_HEAD(&dev_priv->res_lru[i]);
        }
  
@@@ -1491,7 -1490,7 +1490,7 @@@ static int vmw_probe(struct pci_dev *pd
        struct vmw_private *vmw;
        int ret;
  
 -      ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev, "svgadrmfb");
 +      ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "svgadrmfb");
        if (ret)
                return ret;
  
index e7836da190c46faef5b8155ec4875ac8e2f9582f,c6b1eb5952bccc5bc84e739901bff156e7597127..ffddccff867b623208a28b4308c13fbdba5785db
@@@ -529,7 -529,6 +529,6 @@@ struct vmw_private 
        struct vmw_overlay *overlay_priv;
        struct drm_property *hotplug_mode_update_property;
        struct drm_property *implicit_placement_property;
-       struct mutex global_kms_state_mutex;
        spinlock_t cursor_lock;
        struct drm_atomic_state *suspend_state;
  
        bool refuse_hibernation;
        bool suspend_locked;
  
-       struct mutex release_mutex;
        atomic_t num_fifo_resources;
  
        /*
@@@ -1116,29 -1114,10 +1114,29 @@@ extern void vmw_generic_waiter_remove(s
   * Kernel framebuffer - vmwgfx_fb.c
   */
  
 +#ifdef CONFIG_DRM_FBDEV_EMULATION
  int vmw_fb_init(struct vmw_private *vmw_priv);
  int vmw_fb_close(struct vmw_private *dev_priv);
  int vmw_fb_off(struct vmw_private *vmw_priv);
  int vmw_fb_on(struct vmw_private *vmw_priv);
 +#else
 +static inline int vmw_fb_init(struct vmw_private *vmw_priv)
 +{
 +      return 0;
 +}
 +static inline int vmw_fb_close(struct vmw_private *dev_priv)
 +{
 +      return 0;
 +}
 +static inline int vmw_fb_off(struct vmw_private *vmw_priv)
 +{
 +      return 0;
 +}
 +static inline int vmw_fb_on(struct vmw_private *vmw_priv)
 +{
 +      return 0;
 +}
 +#endif
  
  /**
   * Kernel modesetting - vmwgfx_kms.c
@@@ -1544,11 -1523,8 +1542,8 @@@ static inline void vmw_bo_unreference(s
        struct vmw_buffer_object *tmp_buf = *buf;
  
        *buf = NULL;
-       if (tmp_buf != NULL) {
-               if (tmp_buf->base.pin_count > 0)
-                       ttm_bo_unpin(&tmp_buf->base);
+       if (tmp_buf != NULL)
                ttm_bo_put(&tmp_buf->base);
-       }
  }
  
  static inline struct vmw_buffer_object *