]> Git Repo - linux.git/commitdiff
Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <[email protected]>
Sat, 24 Oct 2020 17:39:22 +0000 (10:39 -0700)
committerLinus Torvalds <[email protected]>
Sat, 24 Oct 2020 17:39:22 +0000 (10:39 -0700)
Pull ARM SoC-related driver updates from Olof Johansson:
 "Various driver updates for platforms. A bulk of this is smaller fixes
  or cleanups, but some of the new material this time around is:

   - Support for Nvidia Tegra234 SoC

   - Ring accelerator support for TI AM65x

   - PRUSS driver for TI platforms

   - Renesas support for R-Car V3U SoC

   - Reset support for Cortex-M4 processor on i.MX8MQ

  There are also new socinfo entries for a handful of different SoCs and
  platforms"

* tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (131 commits)
  drm/mediatek: reduce clear event
  soc: mediatek: cmdq: add clear option in cmdq_pkt_wfe api
  soc: mediatek: cmdq: add jump function
  soc: mediatek: cmdq: add write_s_mask value function
  soc: mediatek: cmdq: add write_s value function
  soc: mediatek: cmdq: add read_s function
  soc: mediatek: cmdq: add write_s_mask function
  soc: mediatek: cmdq: add write_s function
  soc: mediatek: cmdq: add address shift in jump
  soc: mediatek: mtk-infracfg: Fix kerneldoc
  soc: amlogic: pm-domains: use always-on flag
  reset: sti: reset-syscfg: fix struct description warnings
  reset: imx7: add the cm4 reset for i.MX8MQ
  dt-bindings: reset: imx8mq: add m4 reset
  reset: Fix and extend kerneldoc
  reset: reset-zynqmp: Added support for Versal platform
  dt-bindings: reset: Updated binding for Versal reset driver
  reset: imx7: Support module build
  soc: fsl: qe: Remove unnessesary check in ucc_set_tdm_rxtx_clk
  soc: fsl: qman: convert to use be32_add_cpu()
  ...

15 files changed:
1  2 
MAINTAINERS
drivers/cpufreq/scmi-cpufreq.c
drivers/dma/ti/k3-udma-glue.c
drivers/firmware/Kconfig
drivers/firmware/ti_sci.c
drivers/gpu/drm/mediatek/mtk_drm_crtc.c
drivers/memory/omap-gpmc.c
drivers/memory/samsung/exynos5422-dmc.c
drivers/memory/tegra/tegra210.c
drivers/reset/Kconfig
drivers/reset/reset-imx7.c
drivers/soc/qcom/socinfo.c
drivers/soc/tegra/pmc.c
drivers/soc/ti/Makefile
include/linux/qcom-geni-se.h

diff --combined MAINTAINERS
index 0b2423a3349ea04ae886206fbc950bf68898da10,c742864ab69975a89c2e020bc04da4399dafbda3..bfa9054a8c341f72a95f30702437fcd3b3ec1e13
@@@ -405,7 -405,7 +405,7 @@@ F: drivers/platform/x86/i2c-multi-insta
  ACPI PMIC DRIVERS
  M:    "Rafael J. Wysocki" <[email protected]>
  M:    Len Brown <[email protected]>
 -R:    Andy Shevchenko <and[email protected]>
 +R:    Andy Shevchenko <and[email protected]>
  R:    Mika Westerberg <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -802,13 -802,6 +802,13 @@@ S:       Maintaine
  F:    Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.txt
  F:    drivers/irqchip/irq-al-fic.c
  
 +AMAZON ANNAPURNA LABS MEMORY CONTROLLER EDAC
 +M:    Talel Shenhar <[email protected]>
 +M:    Talel Shenhar <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/edac/amazon,al-mc-edac.yaml
 +F:    drivers/edac/al_mc_edac.c
 +
  AMAZON ANNAPURNA LABS THERMAL MMIO DRIVER
  M:    Talel Shenhar <[email protected]>
  S:    Maintained
@@@ -950,12 -943,37 +950,12 @@@ S:      Supporte
  F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
  F:    drivers/net/ethernet/amd/xgbe/
  
 -ANALOG DEVICES INC AD5686 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    drivers/iio/dac/ad5686*
 -F:    drivers/iio/dac/ad5696*
 -
 -ANALOG DEVICES INC AD5758 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/dac/ad5758.txt
 -F:    drivers/iio/dac/ad5758.c
 -
 -ANALOG DEVICES INC AD7091R5 DRIVER
 -M:    Beniamin Bia <[email protected]>
 +AMS AS73211 DRIVER
 +M:    Christian Eggers <[email protected]>
  L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7091r5.yaml
 -F:    drivers/iio/adc/ad7091r5.c
 -
 -ANALOG DEVICES INC AD7124 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
 -F:    drivers/iio/adc/ad7124.c
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/light/ams,as73211.yaml
 +F:    drivers/iio/light/as73211.c
  
  ANALOG DEVICES INC AD7192 DRIVER
  M:    Alexandru Tachici <[email protected]>
@@@ -973,6 -991,15 +973,6 @@@ W:        http://ez.analog.com/community/linux
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
  F:    drivers/iio/adc/ad7292.c
  
 -ANALOG DEVICES INC AD7606 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -M:    Beniamin Bia <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
 -F:    drivers/iio/adc/ad7606.c
 -
  ANALOG DEVICES INC AD7768-1 DRIVER
  M:    Michael Hennerich <[email protected]>
  L:    [email protected]
@@@ -1034,6 -1061,7 +1034,6 @@@ F:      drivers/iio/imu/adis16475.
  F:    Documentation/devicetree/bindings/iio/imu/adi,adis16475.yaml
  
  ANALOG DEVICES INC ADM1177 DRIVER
 -M:    Beniamin Bia <[email protected]>
  M:    Michael Hennerich <[email protected]>
  L:    [email protected]
  S:    Supported
  S:    Maintained
  F:    drivers/media/i2c/adv7842*
  
 +ANALOG DEVICES INC ADXRS290 DRIVER
 +M:    Nishant Malpani <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/iio/gyro/adxrs290.c
 +F:    Documentation/devicetree/bindings/iio/gyroscope/adi,adxrs290.yaml
 +
  ANALOG DEVICES INC ASOC CODEC DRIVERS
  M:    Lars-Peter Clausen <[email protected]>
  M:    Nuno Sá <[email protected]>
@@@ -1107,6 -1128,15 +1107,6 @@@ S:     Supporte
  W:    http://ez.analog.com/community/linux-device-drivers
  F:    drivers/dma/dma-axi-dmac.c
  
 -ANALOG DEVICES INC HMC425A DRIVER
 -M:    Beniamin Bia <[email protected]>
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/amplifiers/adi,hmc425a.yaml
 -F:    drivers/iio/amplifiers/hmc425a.c
 -
  ANALOG DEVICES INC IIO DRIVERS
  M:    Lars-Peter Clausen <[email protected]>
  M:    Michael Hennerich <[email protected]>
@@@ -1115,11 -1145,8 +1115,11 @@@ W:    http://wiki.analog.com
  W:    http://ez.analog.com/community/linux-device-drivers
  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:    drivers/iio/*/ad*
  F:    drivers/iio/adc/ltc249*
 +F:    drivers/iio/amplifiers/hmc425a.c
  F:    drivers/staging/iio/*/ad*
  X:    drivers/iio/*/adjd*
  
@@@ -1259,7 -1286,7 +1259,7 @@@ S:      Supporte
  F:    Documentation/devicetree/bindings/net/apm-xgene-enet.txt
  F:    Documentation/devicetree/bindings/net/apm-xgene-mdio.txt
  F:    drivers/net/ethernet/apm/xgene/
 -F:    drivers/net/phy/mdio-xgene.c
 +F:    drivers/net/mdio/mdio-xgene.c
  
  APPLIED MICRO (APM) X-GENE SOC PMU
  M:    Khuong Dinh <[email protected]>
@@@ -1433,11 -1460,6 +1433,11 @@@ S:    Odd Fixe
  F:    drivers/amba/
  F:    include/linux/amba/bus.h
  
 +ARM PRIMECELL CLCD PL110 DRIVER
 +M:    Russell King <[email protected]>
 +S:    Odd Fixes
 +F:    drivers/video/fbdev/amba-clcd.*
 +
  ARM PRIMECELL KMI PL050 DRIVER
  M:    Russell King <[email protected]>
  S:    Odd Fixes
@@@ -1484,7 -1506,8 +1484,7 @@@ L:      [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/iommu/arm,smmu*
  F:    drivers/iommu/arm/
 -F:    drivers/iommu/io-pgtable-arm-v7s.c
 -F:    drivers/iommu/io-pgtable-arm.c
 +F:    drivers/iommu/io-pgtable-arm*
  
  ARM SUB-ARCHITECTURES
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/actions.yaml
  F:    Documentation/devicetree/bindings/clock/actions,owl-cmu.txt
 -F:    Documentation/devicetree/bindings/dma/owl-dma.txt
 +F:    Documentation/devicetree/bindings/dma/owl-dma.yaml
  F:    Documentation/devicetree/bindings/i2c/i2c-owl.txt
 +F:    Documentation/devicetree/bindings/interrupt-controller/actions,owl-sirq.yaml
  F:    Documentation/devicetree/bindings/mmc/owl-mmc.yaml
 -F:    Documentation/devicetree/bindings/pinctrl/actions,s900-pinctrl.txt
 +F:    Documentation/devicetree/bindings/pinctrl/actions,*
  F:    Documentation/devicetree/bindings/power/actions,owl-sps.txt
  F:    Documentation/devicetree/bindings/timer/actions,owl-timer.txt
  F:    arch/arm/boot/dts/owl-*
@@@ -1514,7 -1536,6 +1514,7 @@@ F:      drivers/clk/actions
  F:    drivers/clocksource/timer-owl*
  F:    drivers/dma/owl-dma.c
  F:    drivers/i2c/busses/i2c-owl.c
 +F:    drivers/irqchip/irq-owl-sirq.c
  F:    drivers/mmc/host/owl-mmc.c
  F:    drivers/pinctrl/actions/*
  F:    drivers/soc/actions/
@@@ -1602,7 -1623,7 +1602,7 @@@ N:      meso
  
  ARM/Annapurna Labs ALPINE ARCHITECTURE
  M:    Tsahee Zidenberg <[email protected]>
 -M:    Antoine Tenart <a[email protected]>
 +M:    Antoine Tenart <a[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/alpine*
@@@ -1673,6 -1694,7 +1673,6 @@@ F:      arch/arm/mach-cns3xxx
  
  ARM/CAVIUM THUNDER NETWORK DRIVER
  M:    Sunil Goutham <[email protected]>
 -M:    Robert Richter <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    drivers/net/ethernet/cavium/thunder/
@@@ -1725,7 -1747,6 +1725,7 @@@ ARM/CORESIGHT FRAMEWORK AND DRIVER
  M:    Mathieu Poirier <[email protected]>
  R:    Suzuki K Poulose <[email protected]>
  R:    Mike Leach <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
@@@ -2199,8 -2220,8 +2199,8 @@@ ARM/OPENMOKO NEO FREERUNNER (GTA02) MAC
  L:    [email protected] (subscribers-only)
  S:    Orphan
  W:    http://wiki.openmoko.org/wiki/Neo_FreeRunner
 -F:    arch/arm/mach-s3c24xx/gta02.h
 -F:    arch/arm/mach-s3c24xx/mach-gta02.c
 +F:    arch/arm/mach-s3c/gta02.h
 +F:    arch/arm/mach-s3c/mach-gta02.c
  
  ARM/Orion SoC/Technologic Systems TS-78xx platform support
  M:    Alexander Clouter <[email protected]>
@@@ -2379,7 -2400,7 +2379,7 @@@ ARM/SAMSUNG EXYNOS ARM ARCHITECTURE
  M:    Kukjin Kim <[email protected]>
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
  F:    Documentation/arm/samsung/
@@@ -2389,8 -2410,10 +2389,8 @@@ F:     arch/arm/boot/dts/exynos
  F:    arch/arm/boot/dts/s3c*
  F:    arch/arm/boot/dts/s5p*
  F:    arch/arm/mach-exynos*/
 -F:    arch/arm/mach-s3c24*/
 -F:    arch/arm/mach-s3c64xx/
 +F:    arch/arm/mach-s3c/
  F:    arch/arm/mach-s5p*/
 -F:    arch/arm/plat-samsung/
  F:    arch/arm64/boot/dts/exynos/
  F:    drivers/*/*/*s3c24*
  F:    drivers/*/*s3c24*
@@@ -2401,9 -2424,6 +2401,9 @@@ F:      drivers/soc/samsung
  F:    drivers/tty/serial/samsung*
  F:    include/linux/soc/samsung/
  N:    exynos
 +N:    s3c2410
 +N:    s3c64xx
 +N:    s5pv210
  
  ARM/SAMSUNG MOBILE MACHINE SUPPORT
  M:    Kyungmin Park <[email protected]>
@@@ -2422,11 -2442,11 +2422,11 @@@ F:   drivers/media/platform/s5p-g2d
  
  ARM/SAMSUNG S5P SERIES HDMI CEC SUBSYSTEM SUPPORT
  M:    Marek Szyprowski <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/s5p-cec.txt
 -F:    drivers/media/platform/s5p-cec/
 +F:    drivers/media/cec/platform/s5p/
  
  ARM/SAMSUNG S5P SERIES JPEG CODEC SUPPORT
  M:    Andrzej Pietrasiewicz <[email protected]>
@@@ -2485,7 -2505,7 +2485,7 @@@ S:      Maintaine
  F:    drivers/clk/socfpga/
  
  ARM/SOCFPGA EDAC SUPPORT
 -M:    Thor Thayer <[email protected]>
 +M:    Dinh Nguyen <[email protected]>
  S:    Maintained
  F:    drivers/edac/altera_edac.
  
@@@ -2571,7 -2591,7 +2571,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/tegra-cec.txt
 -F:    drivers/media/platform/tegra-cec/
 +F:    drivers/media/cec/platform/tegra/
  
  ARM/TETON BGA MACHINE SUPPORT
  M:    "Mark F. Brown" <[email protected]>
@@@ -3185,7 -3205,6 +3185,7 @@@ S:      Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  F:    block/
  F:    drivers/block/
 +F:    include/linux/blk*
  F:    kernel/trace/blktrace.c
  F:    lib/sbitmap.c
  
@@@ -3239,14 -3258,13 +3239,14 @@@ M:   Daniel Borkmann <[email protected]
  R:    Martin KaFai Lau <[email protected]>
  R:    Song Liu <[email protected]>
  R:    Yonghong Song <[email protected]>
 -R:    Andrii Nakryiko <andrii[email protected]>
 +R:    Andrii Nakryiko <andrii@kernel.org>
  R:    John Fastabend <[email protected]>
  R:    KP Singh <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -Q:    https://patchwork.ozlabs.org/project/netdev/list/?delegate=77147
 +W:    https://bpf.io/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/?delegate=121173
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
  F:    Documentation/bpf/
@@@ -3370,7 -3388,6 +3370,7 @@@ M:      Florian Fainelli <[email protected]
  L:    [email protected]
  L:    [email protected] (subscribers-only)
  S:    Supported
 +F:    Documentation/devicetree/bindings/net/dsa/b53.txt
  F:    drivers/net/dsa/b53/*
  F:    include/linux/platform_data/b53.h
  
@@@ -3416,7 -3433,7 +3416,7 @@@ M:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/arm/boot/dts/bcm470*
 -F:    arch/arm/boot/dts/bcm5301x*.dtsi
 +F:    arch/arm/boot/dts/bcm5301*
  F:    arch/arm/boot/dts/bcm953012*
  F:    arch/arm/mach-bcm/bcm_5301x.c
  
@@@ -3457,14 -3474,6 +3457,14 @@@ F:    drivers/bus/brcmstb_gisb.
  F:    drivers/pci/controller/pcie-brcmstb.c
  N:    brcmstb
  
 +BROADCOM BDC DRIVER
 +M:    Al Cooper <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/usb/brcm,bdc.txt
 +F:    drivers/usb/gadget/udc/bdc/
 +
  BROADCOM BMIPS CPUFREQ DRIVER
  M:    Markus Mayer <[email protected]>
  M:    [email protected]
@@@ -3482,6 -3491,7 +3482,7 @@@ F:      arch/mips/bmips/
  F:    arch/mips/boot/dts/brcm/bcm*.dts*
  F:    arch/mips/include/asm/mach-bmips/*
  F:    arch/mips/kernel/*bmips*
+ F:    drivers/soc/bcm/bcm63xx
  F:    drivers/irqchip/irq-bcm63*
  F:    drivers/irqchip/irq-bcm7*
  F:    drivers/irqchip/irq-brcmstb*
@@@ -3497,17 -3507,13 +3498,17 @@@ F:   drivers/net/ethernet/broadcom/bnx2.
  F:    drivers/net/ethernet/broadcom/bnx2_*
  
  BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER
 -M:    [email protected]
 +M:    Saurav Kashyap <[email protected]>
 +M:    Javed Hasan <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/bnx2fc/
  
  BROADCOM BNX2I 1/10 GIGABIT iSCSI DRIVER
 -M:    [email protected]
 +M:    Nilesh Javali <[email protected]>
 +M:    Manish Rangankar <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/bnx2i/
  S:    Maintained
  F:    drivers/phy/broadcom/phy-brcm-usb*
  
 +BROADCOM ETHERNET PHY DRIVERS
 +M:    Florian Fainelli <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt
 +F:    drivers/net/phy/bcm*.[ch]
 +F:    drivers/net/phy/broadcom.c
 +F:    include/linux/brcmphy.h
 +
  BROADCOM GENET ETHERNET DRIVER
  M:    Doug Berger <[email protected]>
  M:    Florian Fainelli <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 +F:    Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
 +F:    Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt
  F:    drivers/net/ethernet/broadcom/genet/
 +F:    drivers/net/mdio/mdio-bcm-unimac.c
 +F:    include/linux/platform_data/bcmgenet.h
 +F:    include/linux/platform_data/mdio-bcm-unimac.h
  
  BROADCOM IPROC ARM ARCHITECTURE
  M:    Ray Jui <[email protected]>
@@@ -3842,16 -3833,6 +3843,16 @@@ S:    Orpha
  F:    Documentation/devicetree/bindings/mtd/cadence-nand-controller.txt
  F:    drivers/mtd/nand/raw/cadence-nand-controller.c
  
 +CADENCE USB3 DRD IP DRIVER
 +M:    Peter Chen <[email protected]>
 +M:    Pawel Laszczak <[email protected]>
 +M:    Roger Quadros <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
 +F:    Documentation/devicetree/bindings/usb/cdns-usb3.txt
 +F:    drivers/usb/cdns3/
 +
  CADET FM/AM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -3916,7 -3897,6 +3917,7 @@@ F:      include/net/netns/can.
  F:    include/uapi/linux/can.h
  F:    include/uapi/linux/can/bcm.h
  F:    include/uapi/linux/can/gw.h
 +F:    include/uapi/linux/can/isotp.h
  F:    include/uapi/linux/can/raw.h
  F:    net/can/
  
@@@ -3952,8 -3932,8 +3953,8 @@@ W:      https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/ath/carl9170/
  
  CAVIUM I2C DRIVER
 -M:    Robert Richter <rric[email protected]>
 -S:    Supported
 +M:    Robert Richter <rric@kernel.org>
 +S:    Odd Fixes
  W:    http://www.marvell.com
  F:    drivers/i2c/busses/i2c-octeon*
  F:    drivers/i2c/busses/i2c-thunderx*
@@@ -3968,8 -3948,8 +3969,8 @@@ W:      http://www.marvell.co
  F:    drivers/net/ethernet/cavium/liquidio/
  
  CAVIUM MMC DRIVER
 -M:    Robert Richter <rric[email protected]>
 -S:    Supported
 +M:    Robert Richter <rric@kernel.org>
 +S:    Odd Fixes
  W:    http://www.marvell.com
  F:    drivers/mmc/host/cavium*
  
@@@ -3981,9 -3961,9 +3982,9 @@@ W:      http://www.marvell.co
  F:    drivers/crypto/cavium/cpt/
  
  CAVIUM THUNDERX2 ARM64 SOC
 -M:    Robert Richter <rric[email protected]>
 +M:    Robert Richter <rric@kernel.org>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 +S:    Odd Fixes
  F:    Documentation/devicetree/bindings/arm/cavium-thunder2.txt
  F:    arch/arm64/boot/dts/cavium/thunder2-99xx*
  
@@@ -4035,7 -4015,7 +4036,7 @@@ S:      Supporte
  W:    http://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/cec-gpio.txt
 -F:    drivers/media/platform/cec-gpio/
 +F:    drivers/media/cec/platform/cec-gpio/
  
  CELL BROADBAND ENGINE ARCHITECTURE
  M:    Arnd Bergmann <[email protected]>
@@@ -4105,11 -4085,6 +4106,11 @@@ T:    git git://git.kernel.org/pub/scm/lin
  F:    drivers/char/
  F:    drivers/misc/
  F:    include/linux/miscdevice.h
 +X:    drivers/char/agp/
 +X:    drivers/char/hw_random/
 +X:    drivers/char/ipmi/
 +X:    drivers/char/random.c
 +X:    drivers/char/tpm/
  
  CHECKPATCH
  M:    Andy Whitcroft <[email protected]>
@@@ -4180,7 -4155,6 +4181,7 @@@ CIRRUS LOGIC AUDIO CODEC DRIVER
  M:    James Schulman <[email protected]>
  M:    David Rhodes <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  F:    sound/soc/codecs/cs*
  
@@@ -4258,6 -4232,7 +4259,6 @@@ F:      drivers/net/ethernet/cisco/enic
  CISCO VIC LOW LATENCY NIC DRIVER
  M:    Christian Benvenuti <[email protected]>
  M:    Nelson Escobar <[email protected]>
 -M:    Parvi Kaustubhi <[email protected]>
  S:    Supported
  F:    drivers/infiniband/hw/usnic/
  
@@@ -4267,15 -4242,12 +4268,15 @@@ S:   Maintaine
  F:    .clang-format
  
  CLANG/LLVM BUILD SUPPORT
 +M:    Nathan Chancellor <[email protected]>
 +M:    Nick Desaulniers <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://clangbuiltlinux.github.io/
  B:    https://github.com/ClangBuiltLinux/linux/issues
  C:    irc://chat.freenode.net/clangbuiltlinux
  F:    Documentation/kbuild/llvm.rst
 +F:    scripts/clang-tools/
  K:    \b(?i:clang|llvm)\b
  
  CLEANCACHE API
@@@ -4418,7 -4390,12 +4419,7 @@@ S:     Supporte
  T:    git git://git.infradead.org/users/hch/configfs.git
  F:    fs/configfs/
  F:    include/linux/configfs.h
 -
 -CONNECTOR
 -M:    Evgeniy Polyakov <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/connector/
 +F:    samples/configfs/
  
  CONSOLE SUBSYSTEM
  M:    Greg Kroah-Hartman <[email protected]>
  S:    Supported
  F:    drivers/cpuidle/cpuidle-psci.c
  
 +CPUIDLE DRIVER - ARM PSCI PM DOMAIN
 +M:    Ulf Hansson <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/cpuidle/cpuidle-psci.h
 +F:    drivers/cpuidle/cpuidle-psci-domain.c
 +
  CRAMFS FILESYSTEM
  M:    Nicolas Pitre <[email protected]>
  S:    Maintained
@@@ -4724,15 -4693,6 +4725,15 @@@ S:    Supporte
  W:    http://www.chelsio.com
  F:    drivers/crypto/chelsio
  
 +CXGB4 INLINE CRYPTO DRIVER
 +M:    Ayush Sawal <[email protected]>
 +M:    Vinay Kumar Yadav <[email protected]>
 +M:    Rohit Maheshwari <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    http://www.chelsio.com
 +F:    drivers/net/ethernet/chelsio/inline_crypto/
 +
  CXGB4 ETHERNET DRIVER (CXGB4)
  M:    Vishal Kulkarni <[email protected]>
  L:    [email protected]
@@@ -5035,12 -4995,6 +5036,12 @@@ S:    Maintaine
  F:    drivers/base/devcoredump.c
  F:    include/linux/devcoredump.h
  
 +DEVICE DEPENDENCY HELPER SCRIPT
 +M:    Saravana Kannan <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    scripts/dev-needs.sh
 +
  DEVICE DIRECT ACCESS (DAX)
  M:    Dan Williams <[email protected]>
  M:    Vishal Verma <[email protected]>
@@@ -5097,7 -5051,7 +5098,7 @@@ F:      include/linux/dm-*.
  F:    include/uapi/linux/dm-*.h
  
  DEVLINK
 -M:    Jiri Pirko <jiri@mellanox.com>
 +M:    Jiri Pirko <jiri@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    Documentation/networking/devlink
@@@ -5237,11 -5191,12 +5238,11 @@@ T:   git git://git.infradead.org/users/hc
  F:    include/asm-generic/dma-mapping.h
  F:    include/linux/dma-direct.h
  F:    include/linux/dma-mapping.h
 -F:    include/linux/dma-noncoherent.h
 +F:    include/linux/dma-map-ops.h
  F:    kernel/dma/
  
  DMA-BUF HEAPS FRAMEWORK
  M:    Sumit Semwal <[email protected]>
 -R:    Andrew F. Davis <[email protected]>
  R:    Benjamin Gaignard <[email protected]>
  R:    Liam Mark <[email protected]>
  R:    Laura Abbott <[email protected]>
@@@ -5285,7 -5240,6 +5286,7 @@@ DOCUMENTATIO
  M:    Jonathan Corbet <[email protected]>
  L:    [email protected]
  S:    Maintained
 +P:    Documentation/doc-guide/maintainer-profile.rst
  T:    git git://git.lwn.net/linux.git docs-next
  F:    Documentation/
  F:    scripts/documentation-file-ref-check
@@@ -5407,11 -5361,12 +5408,11 @@@ F:   include/linux/debugfs.
  F:    include/linux/kobj*
  F:    lib/kobj*
  
 -DRIVERS FOR ADAPTIVE VOLTAGE SCALING (AVS)
 -M:    Kevin Hilman <[email protected]>
 +DRIVERS FOR OMAP ADAPTIVE VOLTAGE SCALING (AVS)
  M:    Nishanth Menon <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/power/avs/
 +F:    drivers/soc/ti/smartreflex.c
  F:    include/linux/power/smartreflex.h
  
  DRM DRIVER FOR ALLWINNER DE2 AND DE3 ENGINE
@@@ -5438,7 -5393,7 +5439,7 @@@ F:      drivers/gpu/drm/panel/panel-arm-vers
  
  DRM DRIVER FOR ASPEED BMC GFX
  M:    Joel Stanley <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
@@@ -5446,10 -5401,7 +5447,10 @@@ F:    drivers/gpu/drm/aspeed
  
  DRM DRIVER FOR AST SERVER GRAPHICS CHIPS
  M:    Dave Airlie <[email protected]>
 -S:    Odd Fixes
 +R:    Thomas Zimmermann <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/ast/
  
  DRM DRIVER FOR BOCHS VIRTUAL GPU
@@@ -5523,24 -5475,14 +5524,24 @@@ S:   Maintaine
  F:    drivers/gpu/drm/panel/panel-lvds.c
  F:    Documentation/devicetree/bindings/display/panel/lvds.yaml
  
 +DRM DRIVER FOR MANTIX MLAF057WE51 PANELS
 +M:    Guido Günther <[email protected]>
 +R:    Purism Kernel Team <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/mantix,mlaf057we51-x.yaml
 +F:    drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c
 +
  DRM DRIVER FOR MATROX G200/G400 GRAPHICS CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/mga/
  F:    include/uapi/drm/mga_drm.h
  
 -DRM DRIVER FOR MGA G200 SERVER GRAPHICS CHIPS
 +DRM DRIVER FOR MGA G200 GRAPHICS CHIPS
  M:    Dave Airlie <[email protected]>
 -S:    Odd Fixes
 +R:    Thomas Zimmermann <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/mgag200/
  
  DRM DRIVER FOR MI0283QT
@@@ -5621,13 -5563,12 +5622,13 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/display/panel/raydium,rm67191.yaml
  F:    drivers/gpu/drm/panel/panel-raydium-rm67191.c
  
 -DRM DRIVER FOR ROCKTECH JH057N00900 PANELS
 +DRM DRIVER FOR SITRONIX ST7703 PANELS
  M:    Guido Günther <[email protected]>
  R:    Purism Kernel Team <[email protected]>
 +R:    Ondrej Jirman <[email protected]>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
 -F:    drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
 +F:    Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
 +F:    drivers/gpu/drm/panel/panel-sitronix-st7703.c
  
  DRM DRIVER FOR SAVAGE VIDEO CARDS
  S:    Orphan / Obsolete
@@@ -5686,15 -5627,13 +5687,15 @@@ F:   drivers/gpu/drm/panel/panel-tpo-tpg1
  DRM DRIVER FOR USB DISPLAYLINK VIDEO ADAPTERS
  M:    Dave Airlie <[email protected]>
  R:    Sean Paul <[email protected]>
 +R:    Thomas Zimmermann <[email protected]>
  L:    [email protected]
 -S:    Odd Fixes
 +S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/udl/
  
  DRM DRIVER FOR VIRTUAL KERNEL MODESETTING (VKMS)
  M:    Rodrigo Siqueira <[email protected]>
 +M:    Melissa Wen <[email protected]>
  R:    Haneen Mohammed <[email protected]>
  R:    Daniel Vetter <[email protected]>
  L:    [email protected]
@@@ -5829,7 -5768,7 +5830,7 @@@ F:      drivers/gpu/drm/gma500
  
  DRM DRIVERS FOR HISILICON
  M:    Xinliang Liu <[email protected]>
 -M:    Rongrong Zou <zourongrong@gmail.com>
 +M:    Tian Tao  <tiantao6@hisilicon.com>
  R:    John Stultz <[email protected]>
  R:    Xinwei Kong <[email protected]>
  R:    Chen Feng <[email protected]>
@@@ -5855,7 -5794,6 +5856,7 @@@ L:      [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/display/mediatek/
  F:    drivers/gpu/drm/mediatek/
 +F:    drivers/phy/mediatek/phy-mtk-hdmi*
  
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <[email protected]>
@@@ -5877,7 -5815,7 +5878,7 @@@ L:      [email protected]
  S:    Supported
  T:    git git://linuxtv.org/pinchartl/media drm/du/next
  F:    Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
 -F:    Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
 +F:    Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
  F:    Documentation/devicetree/bindings/display/renesas,du.txt
  F:    drivers/gpu/drm/rcar-du/
  F:    drivers/gpu/drm/shmobile/
@@@ -6144,7 -6082,7 +6145,7 @@@ F:      include/linux/dynamic_debug.
  F:    lib/dynamic_debug.c
  
  DYNAMIC INTERRUPT MODERATION
 -M:    Tal Gilboa <talgi@mellanox.com>
 +M:    Tal Gilboa <talgi@nvidia.com>
  S:    Maintained
  F:    Documentation/networking/net_dim.rst
  F:    include/linux/dim.h
@@@ -6224,27 -6162,28 +6225,27 @@@ F:   Documentation/devicetree/bindings/ed
  F:    drivers/edac/aspeed_edac.c
  
  EDAC-BLUEFIELD
 -M:    Shravan Kumar Ramani <sramani@mellanox.com>
 +M:    Shravan Kumar Ramani <shravankr@nvidia.com>
  S:    Supported
  F:    drivers/edac/bluefield_edac.c
  
  EDAC-CALXEDA
 -M:    Robert Richter <[email protected]>
 +M:    Andre Przywara <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/edac/highbank*
  
  EDAC-CAVIUM OCTEON
  M:    Ralf Baechle <[email protected]>
 -M:    Robert Richter <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/edac/octeon_edac*
  
  EDAC-CAVIUM THUNDERX
 -M:    Robert Richter <rric[email protected]>
 +M:    Robert Richter <rric@kernel.org>
  L:    [email protected]
 -S:    Supported
 +S:    Odd Fixes
  F:    drivers/edac/thunderx_edac*
  
  EDAC-CORE
@@@ -6252,7 -6191,7 +6253,7 @@@ M:      Borislav Petkov <[email protected]
  M:    Mauro Carvalho Chehab <[email protected]>
  M:    Tony Luck <[email protected]>
  R:    James Morse <[email protected]>
 -R:    Robert Richter <rric[email protected]>
 +R:    Robert Richter <rric@kernel.org>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git edac-for-next
@@@ -6545,8 -6484,8 +6546,8 @@@ S:      Odd Fixe
  F:    drivers/net/ethernet/agere/
  
  ETHERNET BRIDGE
 -M:    Roopa Prabhu <roopa@cumulusnetworks.com>
 -M:    Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
 +M:    Roopa Prabhu <roopa@nvidia.com>
 +M:    Nikolay Aleksandrov <nikolay@nvidia.com>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
@@@ -6556,6 -6495,7 +6557,6 @@@ F:      net/bridge
  
  ETHERNET PHY LIBRARY
  M:    Andrew Lunn <[email protected]>
 -M:    Florian Fainelli <[email protected]>
  M:    Heiner Kallweit <[email protected]>
  R:    Russell King <[email protected]>
  L:    [email protected]
@@@ -6565,14 -6505,11 +6566,14 @@@ F:   Documentation/devicetree/bindings/ne
  F:    Documentation/devicetree/bindings/net/mdio*
  F:    Documentation/devicetree/bindings/net/qca,ar803x.yaml
  F:    Documentation/networking/phy.rst
 +F:    drivers/net/mdio/
 +F:    drivers/net/mdio/of_mdio.c
 +F:    drivers/net/pcs/
  F:    drivers/net/phy/
 -F:    drivers/of/of_mdio.c
  F:    drivers/of/of_net.c
  F:    include/dt-bindings/net/qca-ar803x.h
  F:    include/linux/*mdio*.h
 +F:    include/linux/mdio/*.h
  F:    include/linux/of_net.h
  F:    include/linux/phy.h
  F:    include/linux/phy_fixed.h
@@@ -6648,7 -6585,6 +6649,7 @@@ F:      fs/proc/bootconfig.
  F:    include/linux/bootconfig.h
  F:    lib/bootconfig.c
  F:    tools/bootconfig/*
 +F:    tools/bootconfig/scripts/*
  
  EXYNOS DP DRIVER
  M:    Jingoo Han <[email protected]>
  S:    Maintained
  F:    drivers/iommu/exynos-iommu.c
  
 -EZchip NPS platform support
 -M:    Vineet Gupta <[email protected]>
 -M:    Ofer Levi <[email protected]>
 -S:    Supported
 -F:    arch/arc/boot/dts/eznps.dts
 -F:    arch/arc/plat-eznps
 -
  F2FS FILE SYSTEM
  M:    Jaegeuk Kim <[email protected]>
  M:    Chao Yu <[email protected]>
@@@ -6869,17 -6812,14 +6870,17 @@@ F:   drivers/net/ethernet/nvidia/
  
  FPGA DFL DRIVERS
  M:    Wu Hao <[email protected]>
 +R:    Tom Rix <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-dfl
  F:    Documentation/fpga/dfl.rst
  F:    drivers/fpga/dfl*
  F:    include/uapi/linux/fpga-dfl.h
  
  FPGA MANAGER FRAMEWORK
  M:    Moritz Fischer <[email protected]>
 +R:    Tom Rix <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.rocketboards.org
  S:    Maintained
  F:    drivers/dma/fsldma.*
  
 +FREESCALE DSPI DRIVER
 +M:    Vladimir Oltean <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
 +F:    drivers/spi/spi-fsl-dspi.c
 +F:    include/linux/spi/spi-fsl-dspi.h
 +
  FREESCALE ENETC ETHERNET DRIVERS
  M:    Claudiu Manoil <[email protected]>
  L:    [email protected]
@@@ -7002,7 -6934,7 +7003,7 @@@ M:      Frank Li <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/admin-guide/perf/imx-ddr.rst
 -F:    Documentation/devicetree/bindings/perf/fsl-imx-ddr.txt
 +F:    Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
  F:    drivers/perf/fsl_imx8_ddr_perf.c
  
  FREESCALE IMX I2C DRIVER
@@@ -7010,7 -6942,7 +7011,7 @@@ M:      Oleksij Rempel <o.rempel@pengutronix
  R:    Pengutronix Kernel Team <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-imx.txt
 +F:    Documentation/devicetree/bindings/i2c/i2c-imx.yaml
  F:    drivers/i2c/busses/i2c-imx.c
  
  FREESCALE IMX LPI2C DRIVER
@@@ -7018,7 -6950,7 +7019,7 @@@ M:      Dong Aisheng <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.txt
 +F:    Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml
  F:    drivers/i2c/busses/i2c-imx-lpi2c.c
  
  FREESCALE QORIQ DPAA ETHERNET DRIVER
@@@ -7241,7 -7173,7 +7242,7 @@@ FUSE: FILESYSTEM IN USERSPAC
  M:    Miklos Szeredi <[email protected]>
  L:    [email protected]
  S:    Maintained
 -W:    http://fuse.sourceforge.net/
 +W:    https://github.com/libfuse/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git
  F:    Documentation/filesystems/fuse.rst
  F:    fs/fuse/
@@@ -7285,7 -7217,7 +7286,7 @@@ F:      drivers/staging/gasket
  GCC PLUGINS
  M:    Kees Cook <[email protected]>
  R:    Emese Revfy <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/kbuild/gcc-plugins.rst
  F:    scripts/Makefile.gcc-plugins
@@@ -7785,8 -7717,8 +7786,8 @@@ F:      Documentation/watchdog/hpwdt.rs
  F:    drivers/watchdog/hpwdt.c
  
  HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
 -M:    Don Brace <don.brace@microsemi.com>
 -L:    esc.storagedev@microsemi.com
 +M:    Don Brace <don.brace@microchip.com>
 +L:    storagedev@microchip.com
  L:    [email protected]
  S:    Supported
  F:    Documentation/scsi/hpsa.rst
@@@ -7795,8 -7727,8 +7796,8 @@@ F:      include/linux/cciss*.
  F:    include/uapi/linux/cciss*.h
  
  HFI1 DRIVER
 -M:    Mike Marciniszyn <mike.marciniszyn@intel.com>
 -M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
 +M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
 +M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/infiniband/hw/hfi1
@@@ -7929,13 -7861,6 +7930,13 @@@ W:    http://www.hisilicon.co
  F:    Documentation/devicetree/bindings/net/hisilicon*.txt
  F:    drivers/net/ethernet/hisilicon/
  
 +HIKEY960 ONBOARD USB GPIO HUB DRIVER
 +M:    John Stultz <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/misc/hisi_hikey_usb.c
 +F:    Documentation/devicetree/bindings/misc/hisilicon-hikey-usb.yaml
 +
  HISILICON PMU DRIVER
  M:    Shaokun Zhang <[email protected]>
  S:    Supported
@@@ -7979,12 -7904,6 +7980,12 @@@ F:    drivers/crypto/hisilicon/sec2/sec_cr
  F:    drivers/crypto/hisilicon/sec2/sec_crypto.h
  F:    drivers/crypto/hisilicon/sec2/sec_main.c
  
 +HISILICON STAGING DRIVERS FOR HIKEY 960/970
 +M:    Mauro Carvalho Chehab <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/staging/hikey9xx/
 +
  HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
  M:    Zaibo Xu <[email protected]>
  S:    Maintained
@@@ -8337,7 -8256,7 +8338,7 @@@ IA64 (Itanium) PLATFOR
  M:    Tony Luck <[email protected]>
  M:    Fenghua Yu <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
  F:    Documentation/ia64/
  F:    arch/ia64/
@@@ -8386,9 -8305,8 +8387,9 @@@ S:      Supporte
  F:    drivers/pci/hotplug/rpaphp*
  
  IBM Power SRIOV Virtual NIC Device Driver
 -M:    Thomas Falcon <[email protected]>
 -M:    John Allen <[email protected]>
 +M:    Dany Madden <[email protected]>
 +M:    Lijun Pan <[email protected]>
 +M:    Sukadev Bhattiprolu <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmvnic.*
@@@ -8402,7 -8320,7 +8403,7 @@@ F:      arch/powerpc/platforms/powernv/copy-
  F:    arch/powerpc/platforms/powernv/vas*
  
  IBM Power Virtual Ethernet Device Driver
 -M:    Thomas Falcon <tlfalcon@linux.ibm.com>
 +M:    Cristobal Forno <cforno12@linux.ibm.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmveth.*
@@@ -8562,6 -8480,7 +8563,6 @@@ F:      drivers/iio/multiplexer/iio-mux.
  
  IIO SUBSYSTEM AND DRIVERS
  M:    Jonathan Cameron <[email protected]>
 -R:    Hartmut Knaack <[email protected]>
  R:    Lars-Peter Clausen <[email protected]>
  R:    Peter Meerwald-Stadler <[email protected]>
  L:    [email protected]
@@@ -8645,7 -8564,7 +8646,7 @@@ F:      drivers/iio/pressure/dps310.
  
  INFINIBAND SUBSYSTEM
  M:    Doug Ledford <[email protected]>
 -M:    Jason Gunthorpe <jgg@mellanox.com>
 +M:    Jason Gunthorpe <jgg@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    https://github.com/linux-rdma/rdma-core
@@@ -8677,9 -8596,8 +8678,9 @@@ INGENIC JZ47xx SoC
  M:    Paul Cercueil <[email protected]>
  S:    Maintained
  F:    arch/mips/boot/dts/ingenic/
 -F:    arch/mips/include/asm/mach-jz4740/
 -F:    arch/mips/jz4740/
 +F:    arch/mips/generic/board-ingenic.c
 +F:    arch/mips/include/asm/mach-ingenic/
 +F:    arch/mips/ingenic/Kconfig
  F:    drivers/clk/ingenic/
  F:    drivers/dma/dma-jz4780.c
  F:    drivers/gpu/drm/ingenic/
@@@ -8736,7 -8654,7 +8737,7 @@@ F:      drivers/input/input-mt.
  K:    \b(ABS|SYN)_MT_
  
  INSIDE SECURE CRYPTO DRIVER
 -M:    Antoine Tenart <a[email protected]>
 +M:    Antoine Tenart <a[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/crypto/inside-secure/
@@@ -8815,8 -8733,7 +8816,8 @@@ F:      include/drm/i915
  F:    include/uapi/drm/i915_drm.h
  
  INTEL ETHERNET DRIVERS
 -M:    Jeff Kirsher <[email protected]>
 +M:    Jesse Brandeburg <[email protected]>
 +M:    Tony Nguyen <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  W:    http://www.intel.com/support/feedback.htm
@@@ -8915,7 -8832,7 +8916,7 @@@ INTEL IPU3 CSI-2 CIO2 DRIVE
  M:    Yong Zhi <[email protected]>
  M:    Sakari Ailus <[email protected]>
  M:    Bingbu Cao <[email protected]>
 -R:    Tian Shu Qiu <[email protected]>
 +R:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/userspace-api/media/v4l/pixfmt-srggb10-ipu3.rst
@@@ -8924,7 -8841,7 +8925,7 @@@ F:      drivers/media/pci/intel/ipu3
  INTEL IPU3 CSI-2 IMGU DRIVER
  M:    Sakari Ailus <[email protected]>
  R:    Bingbu Cao <[email protected]>
 -R:    Tian Shu Qiu <[email protected]>
 +R:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/admin-guide/media/ipu3.rst
@@@ -8989,8 -8906,8 +8990,8 @@@ F:      arch/x86/include/asm/intel_punit_ipc
  F:    drivers/platform/x86/intel_punit_ipc.c
  
  INTEL PMC CORE DRIVER
 -M:    Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
 -M:    Vishwanath Somayaji <vishwanath.somayaji@intel.com>
 +M:    Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
 +M:    David E Box <david.e.box@intel.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/platform/x86/intel_pmc_core*
@@@ -9003,7 -8920,7 +9004,7 @@@ F:      drivers/gpio/gpio-*cove.
  F:    drivers/gpio/gpio-msic.c
  
  INTEL PMIC MULTIFUNCTION DEVICE DRIVERS
 -R:    Andy Shevchenko <[email protected]>
 +M:    Andy Shevchenko <[email protected]>
  S:    Maintained
  F:    drivers/mfd/intel_msic.c
  F:    drivers/mfd/intel_soc_pmic*
@@@ -9184,7 -9101,6 +9185,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    Documentation/devicetree/bindings/iommu/
 +F:    Documentation/userspace-api/iommu.rst
  F:    drivers/iommu/
  F:    include/linux/iommu.h
  F:    include/linux/iova.h
@@@ -9311,7 -9227,7 +9312,7 @@@ F:      drivers/firmware/iscsi_ibft
  
  ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
  M:    Sagi Grimberg <[email protected]>
 -M:    Max Gurtovoy <maxg@mellanox.com>
 +M:    Max Gurtovoy <mgurtovoy@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.openfabrics.org
@@@ -9567,7 -9483,6 +9568,7 @@@ F:      include/linux/sunrpc
  F:    include/uapi/linux/nfsd/
  F:    include/uapi/linux/sunrpc/
  F:    net/sunrpc/
 +F:    Documentation/filesystems/nfs/
  
  KERNEL SELFTEST FRAMEWORK
  M:    Shuah Khan <[email protected]>
@@@ -9719,7 -9634,7 +9720,7 @@@ F:      security/keys/encrypted-keys
  
  KEYS-TRUSTED
  M:    James Bottomley <[email protected]>
 -M:    Jarkko Sakkinen <jarkko[email protected]>
 +M:    Jarkko Sakkinen <jarkko@kernel.org>
  M:    Mimi Zohar <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -9731,7 -9646,7 +9732,7 @@@ F:      security/keys/trusted-keys
  
  KEYS/KEYRINGS
  M:    David Howells <[email protected]>
 -M:    Jarkko Sakkinen <jarkko[email protected]>
 +M:    Jarkko Sakkinen <jarkko@kernel.org>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/security/keys/core.rst
@@@ -9778,8 -9693,8 +9779,8 @@@ M:      Catalin Marinas <catalin.marinas@arm
  S:    Maintained
  F:    Documentation/dev-tools/kmemleak.rst
  F:    include/linux/kmemleak.h
 -F:    mm/kmemleak-test.c
  F:    mm/kmemleak.c
 +F:    samples/kmemleak/kmemleak-test.c
  
  KMOD KERNEL MODULE LOADER - USERMODE HELPER
  M:    Luis Chamberlain <[email protected]>
@@@ -9808,12 -9723,6 +9809,12 @@@ F:    Documentation/admin-guide/auxdisplay
  F:    drivers/auxdisplay/ks0108.c
  F:    include/linux/ks0108.h
  
 +KTD253 BACKLIGHT DRIVER
 +M:    Linus Walleij <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/leds/backlight/kinetic,ktd253.yaml
 +F:    drivers/video/backlight/ktd253-backlight.c
 +
  L3MDEV
  M:    David Ahern <[email protected]>
  L:    [email protected]
@@@ -9867,8 -9776,8 +9868,8 @@@ F:      drivers/scsi/53c700
  
  LEAKING_ADDRESSES
  M:    Tobin C. Harding <[email protected]>
 -M:    Tycho Andersen <tycho@tycho.ws>
 -L:    [email protected]
 +M:    Tycho Andersen <tycho@tycho.pizza>
 +L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tobin/leaks.git
  F:    scripts/leaking_addresses.pl
@@@ -9939,6 -9848,15 +9940,6 @@@ T:     git git://git.kernel.org/pub/scm/lin
  F:    drivers/ata/pata_arasan_cf.c
  F:    include/linux/pata_arasan_cf_data.h
  
 -LIBATA PATA DRIVERS
 -M:    Bartlomiej Zolnierkiewicz <[email protected]>
 -M:    Jens Axboe <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
 -F:    drivers/ata/ata_generic.c
 -F:    drivers/ata/pata_*.c
 -
  LIBATA PATA FARADAY FTIDE010 AND GEMINI SATA BRIDGE DRIVERS
  M:    Linus Walleij <[email protected]>
  L:    [email protected]
@@@ -10364,13 -10282,6 +10365,13 @@@ S: Maintaine
  W:    http://linux-test-project.github.io/
  T:    git git://github.com/linux-test-project/ltp.git
  
 +LYNX PCS MODULE
 +M:    Ioana Ciornei <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/net/pcs/pcs-lynx.c
 +F:    include/linux/pcs-lynx.h
 +
  M68K ARCHITECTURE
  M:    Geert Uytterhoeven <[email protected]>
  L:    [email protected]
@@@ -10578,7 -10489,7 +10579,7 @@@ M:   Tobias Waldekranz <tobias@waldekranz
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/marvell,mvusb.yaml
 -F:    drivers/net/phy/mdio-mvusb.c
 +F:    drivers/net/mdio/mdio-mvusb.c
  
  MARVELL XENON MMC/SD/SDIO HOST CONTROLLER DRIVER
  M:    Hu Ziji <[email protected]>
  S:    Maintained
  F:    drivers/hid/hid-mcp2221.c
  
 +MCP251XFD SPI-CAN NETWORK DRIVER
 +M:    Marc Kleine-Budde <[email protected]>
 +M:    Manivannan Sadhasivam <[email protected]>
 +R:    Thomas Kopp <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/can/microchip,mcp251xfd.yaml
 +F:    drivers/net/can/spi/mcp251xfd/
 +
  MCP4018 AND MCP4531 MICROCHIP DIGITAL POTENTIOMETER DRIVERS
  M:    Peter Rosin <[email protected]>
  L:    [email protected]
@@@ -11116,7 -11018,6 +11117,7 @@@ F:   drivers/char/hw_random/mtk-rng.
  
  MEDIATEK SWITCH DRIVER
  M:    Sean Wang <[email protected]>
 +M:    Landen Chao <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/dsa/mt7530.*
@@@ -11124,7 -11025,7 +11125,7 @@@ F:   net/dsa/tag_mtk.
  
  MEDIATEK USB3 DRD IP DRIVER
  M:    Chunfeng Yun <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -11171,14 -11072,8 +11172,14 @@@ W: http://www.melfas.co
  F:    Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt
  F:    drivers/input/touchscreen/melfas_mip4.c
  
 +MELLANOX BLUEFIELD I2C DRIVER
 +M:    Khalil Blaiech <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/i2c/busses/i2c-mlxbf.c
 +
  MELLANOX ETHERNET DRIVER (mlx4_en)
 -M:    Tariq Toukan <tariqt@mellanox.com>
 +M:    Tariq Toukan <tariqt@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
@@@ -11186,7 -11081,7 +11187,7 @@@ Q:   http://patchwork.ozlabs.org/project/
  F:    drivers/net/ethernet/mellanox/mlx4/en_*
  
  MELLANOX ETHERNET DRIVER (mlx5e)
 -M:    Saeed Mahameed <saeedm@mellanox.com>
 +M:    Saeed Mahameed <saeedm@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
@@@ -11194,7 -11089,7 +11195,7 @@@ Q:   http://patchwork.ozlabs.org/project/
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_*
  
  MELLANOX ETHERNET INNOVA DRIVERS
 -R:    Boris Pismenny <borisp@mellanox.com>
 +R:    Boris Pismenny <borisp@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
@@@ -11205,8 -11100,8 +11206,8 @@@ F:   drivers/net/ethernet/mellanox/mlx5/c
  F:    include/linux/mlx5/mlx5_ifc_fpga.h
  
  MELLANOX ETHERNET SWITCH DRIVERS
 -M:    Jiri Pirko <jiri@mellanox.com>
 -M:    Ido Schimmel <idosch@mellanox.com>
 +M:    Jiri Pirko <jiri@nvidia.com>
 +M:    Ido Schimmel <idosch@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
@@@ -11215,7 -11110,7 +11216,7 @@@ F:   drivers/net/ethernet/mellanox/mlxsw
  F:    tools/testing/selftests/drivers/net/mlxsw/
  
  MELLANOX FIRMWARE FLASH LIBRARY (mlxfw)
 -M:    mlxsw@mellanox.com
 +M:    mlxsw@nvidia.com
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
@@@ -11225,7 -11120,7 +11226,7 @@@ F:   drivers/net/ethernet/mellanox/mlxfw
  MELLANOX HARDWARE PLATFORM SUPPORT
  M:    Andy Shevchenko <[email protected]>
  M:    Darren Hart <[email protected]>
 -M:    Vadim Pasternak <vadimp@mellanox.com>
 +M:    Vadim Pasternak <vadimp@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    Documentation/ABI/testing/sysfs-platform-mellanox-bootctl
@@@ -11233,7 -11128,7 +11234,7 @@@ F:   drivers/platform/mellanox
  F:    include/linux/platform_data/mlxreg.h
  
  MELLANOX MLX4 core VPI driver
 -M:    Tariq Toukan <tariqt@mellanox.com>
 +M:    Tariq Toukan <tariqt@nvidia.com>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -11243,7 -11138,7 +11244,7 @@@ F:   drivers/net/ethernet/mellanox/mlx4
  F:    include/linux/mlx4/
  
  MELLANOX MLX4 IB driver
 -M:    Yishai Hadas <yishaih@mellanox.com>
 +M:    Yishai Hadas <yishaih@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
@@@ -11253,8 -11148,8 +11254,8 @@@ F:   include/linux/mlx4
  F:    include/uapi/rdma/mlx4-abi.h
  
  MELLANOX MLX5 core VPI driver
 -M:    Saeed Mahameed <saeedm@mellanox.com>
 -M:    Leon Romanovsky <leonro@mellanox.com>
 +M:    Saeed Mahameed <saeedm@nvidia.com>
 +M:    Leon Romanovsky <leonro@nvidia.com>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -11265,7 -11160,7 +11266,7 @@@ F:   drivers/net/ethernet/mellanox/mlx5/c
  F:    include/linux/mlx5/
  
  MELLANOX MLX5 IB driver
 -M:    Leon Romanovsky <leonro@mellanox.com>
 +M:    Leon Romanovsky <leonro@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
@@@ -11275,8 -11170,8 +11276,8 @@@ F:   include/linux/mlx5
  F:    include/uapi/rdma/mlx5-abi.h
  
  MELLANOX MLXCPLD I2C AND MUX DRIVER
 -M:    Vadim Pasternak <vadimp@mellanox.com>
 -M:    Michael Shych <michaelsh@mellanox.com>
 +M:    Vadim Pasternak <vadimp@nvidia.com>
 +M:    Michael Shych <michaelsh@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    Documentation/i2c/busses/i2c-mlxcpld.rst
@@@ -11284,7 -11179,7 +11285,7 @@@ F:   drivers/i2c/busses/i2c-mlxcpld.
  F:    drivers/i2c/muxes/i2c-mux-mlxcpld.c
  
  MELLANOX MLXCPLD LED DRIVER
 -M:    Vadim Pasternak <vadimp@mellanox.com>
 +M:    Vadim Pasternak <vadimp@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    Documentation/leds/leds-mlxcpld.rst
@@@ -11292,7 -11187,7 +11293,7 @@@ F:   drivers/leds/leds-mlxcpld.
  F:    drivers/leds/leds-mlxreg.c
  
  MELLANOX PLATFORM DRIVER
 -M:    Vadim Pasternak <vadimp@mellanox.com>
 +M:    Vadim Pasternak <vadimp@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/platform/x86/mlx-platform.c
@@@ -11398,8 -11293,8 +11399,8 @@@ S:   Supporte
  W:    http://linux-meson.com/
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/amlogic,meson-gx-ao-cec.yaml
 -F:    drivers/media/platform/meson/ao-cec-g12a.c
 -F:    drivers/media/platform/meson/ao-cec.c
 +F:    drivers/media/cec/platform/meson/ao-cec-g12a.c
 +F:    drivers/media/cec/platform/meson/ao-cec.c
  
  MESON NAND CONTROLLER DRIVER FOR AMLOGIC SOCS
  M:    Liang Yang <[email protected]>
@@@ -11409,6 -11304,7 +11410,6 @@@ F:   Documentation/devicetree/bindings/mt
  F:    drivers/mtd/nand/raw/meson_*
  
  MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS
 -M:    Maxime Jourdan <[email protected]>
  M:    Neil Armstrong <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -11428,7 -11324,6 +11429,7 @@@ M:   Hemant Kumar <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi.git
 +F:    Documentation/ABI/stable/sysfs-bus-mhi
  F:    Documentation/mhi/
  F:    drivers/bus/mhi/
  F:    include/linux/mhi.h
@@@ -11622,14 -11517,13 +11623,14 @@@ M:        Microchip Linux Driver Support <UNGL
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/mips/mscc.txt
 +F:    Documentation/devicetree/bindings/power/reset/ocelot-reset.txt
  F:    arch/mips/boot/dts/mscc/
  F:    arch/mips/configs/generic/board-ocelot.config
  F:    arch/mips/generic/board-ocelot.c
  
  MICROSEMI SMART ARRAY SMARTPQI DRIVER (smartpqi)
 -M:    Don Brace <don.brace@microsemi.com>
 -L:    esc.storagedev@microsemi.com
 +M:    Don Brace <don.brace@microchip.com>
 +L:    storagedev@microchip.com
  L:    [email protected]
  S:    Supported
  F:    Documentation/scsi/smartpqi.rst
@@@ -11687,7 -11581,7 +11688,7 @@@ MIPS GENERIC PLATFOR
  M:    Paul Burton <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/power/mti,mips-cpc.txt
 +F:    Documentation/devicetree/bindings/power/mti,mips-cpc.yaml
  F:    arch/mips/generic/
  F:    arch/mips/tools/generic-board-config.sh
  
@@@ -11743,7 -11637,7 +11744,7 @@@ S:   Odd Fixe
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lkundrak/linux-mmp.git
  F:    arch/arm/boot/dts/mmp*
  F:    arch/arm/mach-mmp/
 -F:    linux/soc/mmp/
 +F:    include/linux/soc/mmp/
  
  MMP USB PHY DRIVERS
  R:    Lubomir Rintel <[email protected]>
@@@ -11861,13 -11755,6 +11862,13 @@@ Q: http://patchwork.linuxtv.org/project
  T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/msi2500/
  
 +MSTAR INTERRUPT CONTROLLER DRIVER
 +M:    Mark-PK Tsai <[email protected]>
 +M:    Daniel Palmer <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/interrupt-controller/mstar,mst-intc.yaml
 +F:    drivers/irqchip/irq-mst-intc.c
 +
  MSYSTEMS DISKONCHIP G3 MTD DRIVER
  M:    Robert Jarzmik <[email protected]>
  L:    [email protected]
@@@ -12130,6 -12017,7 +12131,6 @@@ M:   Neil Horman <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://fedorahosted.org/dropwatch/
 -F:    include/net/drop_monitor.h
  F:    include/uapi/linux/net_dropmon.h
  F:    net/core/drop_monitor.c
  
@@@ -12143,7 -12031,6 +12144,7 @@@ Q:   http://patchwork.ozlabs.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  F:    Documentation/devicetree/bindings/net/
 +F:    drivers/connector/
  F:    drivers/net/
  F:    include/linux/etherdevice.h
  F:    include/linux/fcdevice.h
@@@ -12169,7 -12056,6 +12170,7 @@@ NETWORKING [DSA
  M:    Andrew Lunn <[email protected]>
  M:    Vivien Didelot <[email protected]>
  M:    Florian Fainelli <[email protected]>
 +M:    Vladimir Oltean <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/dsa/
  F:    drivers/net/dsa/
@@@ -12224,7 -12110,6 +12225,7 @@@ F:   net/ipv6/ipcomp6.
  F:    net/ipv6/xfrm*
  F:    net/key/
  F:    net/xfrm/
 +F:    tools/testing/selftests/net/ipsec.c
  
  NETWORKING [IPv4/IPv6]
  M:    "David S. Miller" <[email protected]>
@@@ -12283,8 -12168,8 +12284,8 @@@ F:   net/ipv6/syncookies.
  F:    net/ipv6/tcp*.c
  
  NETWORKING [TLS]
 -M:    Boris Pismenny <borisp@mellanox.com>
 -M:    Aviad Yehezkel <aviadye@mellanox.com>
 +M:    Boris Pismenny <borisp@nvidia.com>
 +M:    Aviad Yehezkel <aviadye@nvidia.com>
  M:    John Fastabend <[email protected]>
  M:    Daniel Borkmann <[email protected]>
  M:    Jakub Kicinski <[email protected]>
@@@ -12349,7 -12234,6 +12350,7 @@@ F:   include/linux/sunrpc
  F:    include/uapi/linux/nfs*
  F:    include/uapi/linux/sunrpc/
  F:    net/sunrpc/
 +F:    Documentation/filesystems/nfs/
  
  NILFS2 FILESYSTEM
  M:    Ryusuke Konishi <[email protected]>
@@@ -12385,19 -12269,6 +12386,19 @@@ S: Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2.git
  F:    arch/nios2/
  
 +NITRO ENCLAVES (NE)
 +M:    Andra Paraschiv <[email protected]>
 +M:    Alexandru Vasile <[email protected]>
 +M:    Alexandru Ciobotaru <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://aws.amazon.com/ec2/nitro/nitro-enclaves/
 +F:    Documentation/virt/ne_overview.rst
 +F:    drivers/virt/nitro_enclaves/
 +F:    include/linux/nitro_enclaves.h
 +F:    include/uapi/linux/nitro_enclaves.h
 +F:    samples/nitro_enclaves/
 +
  NOHZ, DYNTICKS SUPPORT
  M:    Frederic Weisbecker <[email protected]>
  M:    Thomas Gleixner <[email protected]>
@@@ -12560,26 -12431,11 +12561,26 @@@ F:        drivers/iio/gyro/fxas21002c_core.
  F:    drivers/iio/gyro/fxas21002c_i2c.c
  F:    drivers/iio/gyro/fxas21002c_spi.c
  
 +NXP i.MX 8MQ DCSS DRIVER
 +M:    Laurentiu Palcu <[email protected]>
 +R:    Lucas Stach <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
 +F:    drivers/gpu/drm/imx/dcss/
 +
 +NXP PTN5150A CC LOGIC AND EXTCON DRIVER
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/extcon/extcon-ptn5150.yaml
 +F:    drivers/extcon/extcon-ptn5150.c
 +
  NXP SGTL5000 DRIVER
  M:    Fabio Estevam <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/sound/sgtl5000.txt
 +F:    Documentation/devicetree/bindings/sound/sgtl5000.yaml
  F:    sound/soc/codecs/sgtl5000*
  
  NXP SJA1105 ETHERNET SWITCH DRIVER
@@@ -12613,7 -12469,7 +12614,7 @@@ S:   Supporte
  F:    drivers/nfc/nxp-nci
  
  OBJAGG
 -M:    Jiri Pirko <jiri@mellanox.com>
 +M:    Jiri Pirko <jiri@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    include/linux/objagg.h
@@@ -12625,7 -12481,6 +12626,7 @@@ M:   Josh Poimboeuf <[email protected]
  M:    Peter Zijlstra <[email protected]>
  S:    Supported
  F:    tools/objtool/
 +F:    include/linux/objtool.h
  
  OCELOT ETHERNET SWITCH DRIVER
  M:    Microchip Linux Driver Support <[email protected]>
@@@ -12638,7 -12493,6 +12639,7 @@@ F:   drivers/net/dsa/ocelot/
  F:    drivers/net/ethernet/mscc/
  F:    include/soc/mscc/ocelot*
  F:    net/dsa/tag_ocelot.c
 +F:    tools/testing/selftests/drivers/net/ocelot/*
  
  OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER
  M:    Frederic Barrat <[email protected]>
@@@ -12888,7 -12742,7 +12889,7 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/ov2685.c
  
  OMNIVISION OV2740 SENSOR DRIVER
 -M:    Tianshu Qiu <tian.shu.qiua@intel.com>
 +M:    Tianshu Qiu <[email protected]>
  R:    Shawn Tu <[email protected]>
  R:    Bingbu Cao <[email protected]>
  L:    [email protected]
@@@ -12904,12 -12758,10 +12905,12 @@@ T:        git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/ov5640.c
  
  OMNIVISION OV5647 SENSOR DRIVER
 -M:    Luis Oliveira <[email protected]>
 +M:    Dave Stevenson <[email protected]>
 +M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ov5647.yaml
  F:    drivers/media/i2c/ov5647.c
  
  OMNIVISION OV5670 SENSOR DRIVER
@@@ -13010,8 -12862,8 +13011,8 @@@ S:   Maintaine
  F:    drivers/char/hw_random/optee-rng.c
  
  OPA-VNIC DRIVER
 -M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
 -M:    Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
 +M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
 +M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/infiniband/ulp/opa_vnic
@@@ -13172,9 -13024,7 +13173,9 @@@ F:   lib/packing.
  
  PADATA PARALLEL EXECUTION MECHANISM
  M:    Steffen Klassert <[email protected]>
 +M:    Daniel Jordan <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/core-api/padata.rst
  F:    include/linux/padata.h
@@@ -13261,7 -13111,7 +13262,7 @@@ F:   drivers/video/logo/logo_parisc
  F:    include/linux/hp_sdc.h
  
  PARMAN
 -M:    Jiri Pirko <jiri@mellanox.com>
 +M:    Jiri Pirko <jiri@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    include/linux/parman.h
@@@ -13311,7 -13161,6 +13312,7 @@@ F:   drivers/firmware/pcdp.
  
  PCI DRIVER FOR AARDVARK (Marvell Armada 3700)
  M:    Thomas Petazzoni <[email protected]>
 +M:    Pali Rohár <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -13448,7 -13297,7 +13449,7 @@@ PCI DRIVER FOR SAMSUNG EXYNO
  M:    Jingoo Han <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  F:    drivers/pci/controller/dwc/pci-exynos.c
  
@@@ -13581,10 -13430,10 +13582,10 @@@ F:        Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/dwc/*artpec*
  
  PCIE DRIVER FOR CAVIUM THUNDERX
 -M:    Robert Richter <rric[email protected]>
 +M:    Robert Richter <rric@kernel.org>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 +S:    Odd Fixes
  F:    drivers/pci/controller/pci-thunder-*
  
  PCIE DRIVER FOR HISILICON
@@@ -13721,18 -13570,12 +13722,18 @@@ F:        kernel/events/
  F:    tools/lib/perf/
  F:    tools/perf/
  
 -PERFORMANCE EVENTS SUBSYSTEM ARM64 PMU EVENTS
 +PERFORMANCE EVENTS TOOLING ARM64
  R:    John Garry <[email protected]>
  R:    Will Deacon <[email protected]>
 +R:    Mathieu Poirier <[email protected]>
 +R:    Leo Yan <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
 +F:    tools/build/feature/test-libopencsd.c
 +F:    tools/perf/arch/arm*/
  F:    tools/perf/pmu-events/arch/arm64/
 +F:    tools/perf/util/arm-spe*
 +F:    tools/perf/util/cs-etm*
  
  PERSONALITY HANDLING
  M:    Christoph Hellwig <[email protected]>
@@@ -13846,16 -13689,17 +13847,16 @@@ PIN CONTROLLER - RENESA
  M:    Geert Uytterhoeven <[email protected]>
  L:    [email protected]
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git sh-pfc
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git renesas-pinctrl
  F:    Documentation/devicetree/bindings/pinctrl/renesas,*
 -F:    drivers/pinctrl/pinctrl-rz*
 -F:    drivers/pinctrl/sh-pfc/
 +F:    drivers/pinctrl/renesas/
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <[email protected]>
  M:    Krzysztof Kozlowski <[email protected]>
  M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung.git
@@@ -14081,7 -13925,6 +14082,7 @@@ PRINT
  M:    Petr Mladek <[email protected]>
  M:    Sergey Senozhatsky <[email protected]>
  R:    Steven Rostedt <[email protected]>
 +R:    John Ogness <[email protected]>
  S:    Maintained
  F:    include/linux/printk.h
  F:    kernel/printk/
@@@ -14312,24 -14155,20 +14313,24 @@@ F:        drivers/firmware/qemu_fw_cfg.
  F:    include/uapi/linux/qemu_fw_cfg.h
  
  QIB DRIVER
 -M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
 -M:    Mike Marciniszyn <mike.marciniszyn@intel.com>
 +M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
 +M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/infiniband/hw/qib/
  
  QLOGIC QL41xxx FCOE DRIVER
 -M:    [email protected]
 +M:    Saurav Kashyap <[email protected]>
 +M:    Javed Hasan <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/qedf/
  
  QLOGIC QL41xxx ISCSI DRIVER
 -M:    [email protected]
 +M:    Nilesh Javali <[email protected]>
 +M:    Manish Rangankar <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/qedi/
@@@ -14362,20 -14201,21 +14363,20 @@@ M:        Nilesh Javali <[email protected]
  M:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/scsi/LICENSE.qla2xxx
  F:    drivers/scsi/qla2xxx/
  
  QLOGIC QLA3XXX NETWORK DRIVER
  M:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/networking/device_drivers/ethernet/qlogic/LICENSE.qla3xxx
  F:    drivers/net/ethernet/qlogic/qla3xxx.*
  
  QLOGIC QLA4XXX iSCSI DRIVER
 -M:    [email protected]
 +M:    Nilesh Javali <[email protected]>
 +M:    Manish Rangankar <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/scsi/LICENSE.qla4xxx
  F:    drivers/scsi/qla4xxx/
  
  QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
 -F:    drivers/power/avs/qcom-cpr.c
 +F:    drivers/soc/qcom/cpr.c
  
  QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096
  M:    Ilia Lin <[email protected]>
@@@ -14526,7 -14366,7 +14527,7 @@@ M:   Rob Clark <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    drivers/iommu/qcom_iommu.c
 +F:    drivers/iommu/arm/arm-smmu/qcom_iommu.c
  
  QUALCOMM IPCC MAILBOX DRIVER
  M:    Manivannan Sadhasivam <[email protected]>
@@@ -14723,9 -14563,9 +14724,9 @@@ M:   Niklas Söderlund <niklas.soderlund+
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml
 -F:    drivers/media/i2c/rdacm20.c
  F:    drivers/media/i2c/max9271.c
  F:    drivers/media/i2c/max9271.h
 +F:    drivers/media/i2c/rdacm20.c
  
  RDC R-321X SoC
  M:    Florian Fainelli <[email protected]>
@@@ -14738,8 -14578,8 +14739,8 @@@ S:   Maintaine
  F:    drivers/net/ethernet/rdc/r6040.c
  
  RDMAVT - RDMA verbs software
 -M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
 -M:    Mike Marciniszyn <mike.marciniszyn@intel.com>
 +M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
 +M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/infiniband/sw/rdmavt
@@@ -15019,11 -14859,8 +15020,11 @@@ F: include/linux/hid-roccat
  
  ROCKCHIP ISP V1 DRIVER
  M:    Helen Koike <[email protected]>
 +M:    Dafna Hirschfeld <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/admin-guide/media/rkisp1.rst
 +F:    Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
  F:    drivers/staging/media/rkisp1/
  
  ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
@@@ -15298,14 -15135,6 +15299,14 @@@ F: Documentation/s390/vfio-ccw.rs
  F:    drivers/s390/cio/vfio_ccw*
  F:    include/uapi/linux/vfio_ccw.h
  
 +S390 VFIO-PCI DRIVER
 +M:    Matthew Rosato <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/vfio/pci/vfio_pci_zdev.c
 +F:    include/uapi/linux/vfio_zdev.h
 +
  S390 ZCRYPT DRIVER
  M:    Harald Freudenberger <[email protected]>
  L:    [email protected]
@@@ -15416,17 -15245,16 +15417,17 @@@ F:        include/linux/mfd/samsung
  SAMSUNG S3C24XX/S3C64XX SOC SERIES CAMIF DRIVER
  M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected]
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  F:    drivers/media/platform/s3c-camif/
  F:    include/media/drv-intf/s3c_camif.h
  
  SAMSUNG S3FWRN5 NFC DRIVER
 -M:    Robert Baldyga <[email protected]>
 +M:    Krzysztof Kozlowski <[email protected]>
  M:    Krzysztof Opasiak <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/nfc/samsung,s3fwrn5.yaml
  F:    drivers/nfc/s3fwrn5
  
  SAMSUNG S5C73M3 CAMERA DRIVER
@@@ -15466,7 -15294,7 +15467,7 @@@ SAMSUNG SOC CLOCK DRIVER
  M:    Sylwester Nawrocki <[email protected]>
  M:    Tomasz Figa <[email protected]>
  M:    Chanwoo Choi <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk.git
  F:    Documentation/devicetree/bindings/clock/exynos*.txt
@@@ -15474,20 -15302,17 +15475,20 @@@ F:        Documentation/devicetree/bindings/cl
  F:    Documentation/devicetree/bindings/clock/samsung,s5p*
  F:    drivers/clk/samsung/
  F:    include/dt-bindings/clock/exynos*.h
 +F:    include/linux/clk/samsung.h
 +F:    include/linux/platform_data/clk-s3c2410.h
  
  SAMSUNG SPI DRIVERS
  M:    Kukjin Kim <[email protected]>
  M:    Krzysztof Kozlowski <[email protected]>
  M:    Andi Shyti <[email protected]>
  L:    [email protected]
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/spi/spi-samsung.txt
  F:    drivers/spi/spi-s3c*
  F:    include/linux/platform_data/spi-s3c64xx.h
 +F:    include/linux/spi/s3c24xx-fiq.h
  
  SAMSUNG SXGBE DRIVERS
  M:    Byungho An <[email protected]>
@@@ -15531,7 -15356,6 +15532,7 @@@ R:   Dietmar Eggemann <dietmar.eggemann@a
  R:    Steven Rostedt <[email protected]> (SCHED_FIFO/SCHED_RR)
  R:    Ben Segall <[email protected]> (CONFIG_CFS_BANDWIDTH)
  R:    Mel Gorman <[email protected]> (CONFIG_NUMA_BALANCING)
 +R:    Daniel Bristot de Oliveira <[email protected]> (SCHED_DEADLINE)
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
@@@ -15653,8 -15477,8 +15654,8 @@@ F:   drivers/mmc/host/sdricoh_cs.
  SECO BOARDS CEC DRIVER
  M:    Ettore Chimenti <[email protected]>
  S:    Maintained
 -F:    drivers/media/platform/seco-cec/seco-cec.c
 -F:    drivers/media/platform/seco-cec/seco-cec.h
 +F:    drivers/media/cec/platform/seco/seco-cec.c
 +F:    drivers/media/cec/platform/seco/seco-cec.h
  
  SECURE COMPUTING
  M:    Kees Cook <[email protected]>
@@@ -15723,7 -15547,6 +15724,7 @@@ F:   include/uapi/linux/sed
  SECURITY CONTACT
  M:    Security Officers <[email protected]>
  S:    Supported
 +F:    Documentation/admin-guide/security-bugs.rst
  
  SECURITY SUBSYSTEM
  M:    James Morris <[email protected]>
@@@ -15747,7 -15570,6 +15748,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/ABI/obsolete/sysfs-selinux-checkreqprot
  F:    Documentation/ABI/obsolete/sysfs-selinux-disable
  F:    Documentation/admin-guide/LSM/SELinux.rst
 +F:    include/trace/events/avc.h
  F:    include/uapi/linux/selinux_netlink.h
  F:    scripts/selinux/
  F:    security/selinux/
  S:    Maintained
  F:    drivers/net/phy/phylink.c
  F:    drivers/net/phy/sfp*
 +F:    include/linux/mdio/mdio-i2c.h
  F:    include/linux/phylink.h
  F:    include/linux/sfp.h
  K:    phylink\.h|struct\s+phylink|\.phylink|>phylink_|phylink_(autoneg|clear|connect|create|destroy|disconnect|ethtool|helper|mac|mii|of|set|start|stop|test|validate)
@@@ -16005,17 -15826,19 +16006,17 @@@ F:        drivers/video/fbdev/simplefb.
  F:    include/linux/platform_data/simplefb.h
  
  SIMTEC EB110ATX (Chalice CATS)
 -M:    Vincent Sanders <[email protected]>
  M:    Simtec Linux Team <[email protected]>
  S:    Supported
  W:    http://www.simtec.co.uk/products/EB110ATX/
  
  SIMTEC EB2410ITX (BAST)
 -M:    Vincent Sanders <[email protected]>
  M:    Simtec Linux Team <[email protected]>
  S:    Supported
  W:    http://www.simtec.co.uk/products/EB2410ITX/
 -F:    arch/arm/mach-s3c24xx/bast-ide.c
 -F:    arch/arm/mach-s3c24xx/bast-irq.c
 -F:    arch/arm/mach-s3c24xx/mach-bast.c
 +F:    arch/arm/mach-s3c/bast-ide.c
 +F:    arch/arm/mach-s3c/bast-irq.c
 +F:    arch/arm/mach-s3c/mach-bast.c
  
  SIOX
  M:    Thorsten Scherer <[email protected]>
@@@ -16054,13 -15877,6 +16055,13 @@@ F: Documentation/fb/sisfb.rs
  F:    drivers/video/fbdev/sis/
  F:    include/video/sisfb.h
  
 +SIS I2C TOUCHSCREEN DRIVER
 +M:    Mika Penttilä <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/input/touchscreen/sis_i2c.txt
 +F:    drivers/input/touchscreen/sis_i2c.c
 +
  SIS USB2VGA DRIVER
  M:    Thomas Winischhofer <[email protected]>
  S:    Maintained
@@@ -16219,7 -16035,7 +16220,7 @@@ F:   drivers/infiniband/sw/siw
  F:    include/uapi/rdma/siw-abi.h
  
  SOFT-ROCE DRIVER (rxe)
 -M:    Zhu Yanjun <yanjunz@mellanox.com>
 +M:    Zhu Yanjun <yanjunz@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/infiniband/sw/rxe/
@@@ -16228,6 -16044,7 +16229,6 @@@ F:   include/uapi/rdma/rdma_user_rxe.
  SOFTLOGIC 6x10 MPEG CODEC
  M:    Bluecherry Maintainers <[email protected]>
  M:    Anton Sviridenko <[email protected]>
 -M:    Andrey Utkin <[email protected]>
  M:    Andrey Utkin <[email protected]>
  M:    Ismael Luceno <[email protected]>
  L:    [email protected]
@@@ -16309,7 -16126,7 +16310,7 @@@ M:   Leon Luo <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/imx274.txt
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
  F:    drivers/media/i2c/imx274.c
  
  SONY IMX290 SENSOR DRIVER
@@@ -16647,6 -16464,7 +16648,6 @@@ F:   drivers/staging/rtl8712
  
  STAGING - SEPS525 LCD CONTROLLER DRIVERS
  M:    Michael Hennerich <[email protected]>
 -M:    Beniamin Bia <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
@@@ -16694,7 -16512,7 +16695,7 @@@ STI CEC DRIVE
  M:    Benjamin Gaignard <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/stih-cec.txt
 -F:    drivers/media/platform/sti/cec/
 +F:    drivers/media/cec/platform/sti/
  
  STK1160 USB VIDEO CAPTURE DRIVER
  M:    Ezequiel Garcia <[email protected]>
@@@ -16878,13 -16696,6 +16879,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
  F:    drivers/gpio/gpio-dwapb.c
  
 +SYNOPSYS DESIGNWARE APB SSI DRIVER
 +M:    Serge Semin <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
 +F:    drivers/spi/spi-dw*
 +
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Maintained
@@@ -16895,7 -16706,7 +16896,7 @@@ SYNOPSYS DESIGNWARE DMAC DRIVE
  M:    Viresh Kumar <[email protected]>
  R:    Andy Shevchenko <[email protected]>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/dma/snps-dma.txt
 +F:    Documentation/devicetree/bindings/dma/snps,dma-spear1340.yaml
  F:    drivers/dma/dw/
  F:    include/dt-bindings/dma/dw-dmac.h
  F:    include/linux/dma/dw.h
@@@ -16911,8 -16722,8 +16912,8 @@@ SYNOPSYS DESIGNWARE ETHERNET XPCS DRIVE
  M:    Jose Abreu <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/net/phy/mdio-xpcs.c
 -F:    include/linux/mdio-xpcs.h
 +F:    drivers/net/pcs/pcs-xpcs.c
 +F:    include/linux/pcs/pcs-xpcs.h
  
  SYNOPSYS DESIGNWARE I2C DRIVER
  M:    Jarkko Nikula <[email protected]>
@@@ -17306,8 -17117,8 +17307,8 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
  F:    Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
  F:    Documentation/devicetree/bindings/clock/ti,sci-clk.txt
 -F:    Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
 -F:    Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
 +F:    Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
 +F:    Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
  F:    Documentation/devicetree/bindings/reset/ti,sci-reset.txt
  F:    Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
  F:    drivers/clk/keystone/sci-clk.c
@@@ -17404,8 -17215,8 +17405,8 @@@ S:   Maintaine
  F:    drivers/net/thunderbolt.c
  
  THUNDERX GPIO DRIVER
 -M:    Robert Richter <rric[email protected]>
 -S:    Maintained
 +M:    Robert Richter <rric@kernel.org>
 +S:    Odd Fixes
  F:    drivers/gpio/gpio-thunderx.c
  
  TI AM437X VPFE DRIVER
@@@ -17426,7 -17237,7 +17427,7 @@@ S:   Maintaine
  F:    drivers/thermal/ti-soc-thermal/
  
  TI BQ27XXX POWER SUPPLY DRIVER
 -R:    Andrew F. Davis <afd@ti.com>
 +R:    Dan Murphy <dmurphy@ti.com>
  F:    drivers/power/supply/bq27xxx_battery.c
  F:    drivers/power/supply/bq27xxx_battery_i2c.c
  F:    include/linux/power/bq27xxx_battery.h
@@@ -17700,9 -17511,8 +17701,9 @@@ S:   Supporte
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    Documentation/RCU/torture.rst
  F:    kernel/locking/locktorture.c
 -F:    kernel/rcu/rcuperf.c
 +F:    kernel/rcu/rcuscale.c
  F:    kernel/rcu/rcutorture.c
 +F:    kernel/rcu/refscale.c
  F:    kernel/torture.c
  
  TOSHIBA ACPI EXTRAS DRIVER
@@@ -17746,13 -17556,13 +17747,13 @@@ F:        drivers/platform/x86/toshiba-wmi.
  
  TPM DEVICE DRIVER
  M:    Peter Huewe <[email protected]>
 -M:    Jarkko Sakkinen <jarkko[email protected]>
 +M:    Jarkko Sakkinen <jarkko@kernel.org>
  R:    Jason Gunthorpe <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    https://kernsec.org/wiki/index.php/Linux_Kernel_Integrity
  Q:    https://patchwork.kernel.org/project/linux-integrity/list/
 -T:    git git://git.infradead.org/users/jjs/linux-tpmdd.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git
  F:    drivers/char/tpm/
  
  TRACING
@@@ -17889,7 -17699,6 +17890,7 @@@ S:   Supporte
  W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git next
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git fixes
 +F:    Documentation/filesystems/ubifs-authentication.rst
  F:    Documentation/filesystems/ubifs.rst
  F:    fs/ubifs/
  
@@@ -18283,6 -18092,14 +18284,6 @@@ T:  git git://linuxtv.org/media_tree.gi
  F:    drivers/media/usb/uvc/
  F:    include/uapi/linux/uvcvideo.h
  
 -USB VISION DRIVER
 -M:    Hans Verkuil <[email protected]>
 -L:    [email protected]
 -S:    Odd Fixes
 -W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/staging/media/usbvision/
 -
  USB WEBCAM GADGET
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
@@@ -18412,12 -18229,6 +18413,12 @@@ F: drivers/vfio
  F:    include/linux/vfio.h
  F:    include/uapi/linux/vfio.h
  
 +VFIO FSL-MC DRIVER
 +M:    Diana Craciun <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/vfio/fsl-mc/
 +
  VFIO MEDIATED DEVICE DRIVERS
  M:    Kirti Wankhede <[email protected]>
  L:    [email protected]
@@@ -18442,8 -18253,7 +18443,8 @@@ F:   drivers/gpu/vga/vga_switcheroo.
  F:    include/linux/vga_switcheroo.h
  
  VIA RHINE NETWORK DRIVER
 -S:    Orphan
 +S:    Maintained
 +M:    Kevin Brace <[email protected]>
  F:    drivers/net/ethernet/via/via-rhine.c
  
  VIA SD/MMC CARD CONTROLLER DRIVER
@@@ -18488,8 -18298,10 +18489,8 @@@ S:  Maintaine
  F:    drivers/media/platform/video-mux.c
  
  VIDEOBUF2 FRAMEWORK
 -M:    Pawel Osciak <[email protected]>
 +M:    Tomasz Figa <[email protected]>
  M:    Marek Szyprowski <[email protected]>
 -M:    Kyungmin Park <[email protected]>
 -R:    Tomasz Figa <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/common/videobuf2/*
@@@ -18647,7 -18459,6 +18648,7 @@@ VIRTIO MEM DRIVE
  M:    David Hildenbrand <[email protected]>
  L:    [email protected]
  S:    Maintained
 +W:    https://virtio-mem.gitlab.io/
  F:    drivers/virtio/virtio_mem.c
  F:    include/uapi/linux/virtio_mem.h
  
@@@ -18680,14 -18491,6 +18681,14 @@@ W: https://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/test-drivers/vivid/*
  
 +VIDTV VIRTUAL DIGITAL TV DRIVER
 +M:    Daniel W. S. Almeida <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +W:    https://linuxtv.org
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/test-drivers/vidtv/*
 +
  VLYNQ BUS
  M:    Florian Fainelli <[email protected]>
  L:    [email protected] (subscribers-only)
@@@ -18954,7 -18757,7 +18955,7 @@@ F:   Documentation/devicetree/bindings/mf
  F:    Documentation/devicetree/bindings/regulator/wlf,arizona.yaml
  F:    Documentation/devicetree/bindings/sound/wlf,arizona.yaml
  F:    Documentation/hwmon/wm83??.rst
 -F:    arch/arm/mach-s3c64xx/mach-crag6410*
 +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
@@@ -19055,11 -18858,11 +19056,11 @@@ T:        git git://git.kernel.org/pub/scm/lin
  F:    arch/x86/mm/
  
  X86 PLATFORM DRIVERS
 -M:    Darren Hart <[email protected]>
 -M:    Andy Shevchenko <[email protected]>
 +M:    Hans de Goede <[email protected]>
 +M:    Mark Gross <[email protected]>
  L:    [email protected]
 -S:    Odd Fixes
 -T:    git git://git.infradead.org/linux-platform-drivers-x86.git
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
  F:    drivers/platform/olpc/
  F:    drivers/platform/x86/
  
@@@ -19072,15 -18875,6 +19073,15 @@@ S: Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
  F:    arch/x86/platform
  
 +X86 PLATFORM UV HPE SUPERDOME FLEX
 +M:    Steve Wahl <[email protected]>
 +R:    Dimitri Sivanich <[email protected]>
 +R:    Russ Anderson <[email protected]>
 +S:    Supported
 +F:    arch/x86/include/asm/uv/
 +F:    arch/x86/kernel/apic/x2apic_uv_x.c
 +F:    arch/x86/platform/uv/
 +
  X86 VDSO
  M:    Andy Lutomirski <[email protected]>
  L:    [email protected]
@@@ -19408,16 -19202,6 +19409,16 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/filesystems/zonefs.rst
  F:    fs/zonefs/
  
 +ZR36067 VIDEO FOR LINUX DRIVER
 +M:    Corentin Labbe <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +W:    http://mjpeg.sourceforge.net/driver-zoran/
 +Q:    https://patchwork.linuxtv.org/project/linux-media/list/
 +F:    Documentation/driver-api/media/drivers/zoran.rst
 +F:    drivers/staging/media/zoran/
 +
  ZPOOL COMPRESSED PAGE STORAGE API
  M:    Dan Streetman <[email protected]>
  L:    [email protected]
index 6dd1311660b561122c7e4516698756b240c3bc83,46b268095421573cee6530fb7dd85d89d68a2c82..e855e8612a67d4ea3b094e2a56cec4c29c7a41d4
@@@ -29,7 -29,7 +29,7 @@@ static const struct scmi_handle *handle
  static unsigned int scmi_cpufreq_get_rate(unsigned int cpu)
  {
        struct cpufreq_policy *policy = cpufreq_cpu_get_raw(cpu);
-       struct scmi_perf_ops *perf_ops = handle->perf_ops;
+       const struct scmi_perf_ops *perf_ops = handle->perf_ops;
        struct scmi_data *priv = policy->driver_data;
        unsigned long rate;
        int ret;
  static int
  scmi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index)
  {
 -      int ret;
        struct scmi_data *priv = policy->driver_data;
-       struct scmi_perf_ops *perf_ops = handle->perf_ops;
+       const struct scmi_perf_ops *perf_ops = handle->perf_ops;
        u64 freq = policy->freq_table[index].frequency;
  
 -      ret = perf_ops->freq_set(handle, priv->domain_id, freq * 1000, false);
 -      if (!ret)
 -              arch_set_freq_scale(policy->related_cpus, freq,
 -                                  policy->cpuinfo.max_freq);
 -      return ret;
 +      return perf_ops->freq_set(handle, priv->domain_id, freq * 1000, false);
  }
  
  static unsigned int scmi_cpufreq_fast_switch(struct cpufreq_policy *policy,
                                             unsigned int target_freq)
  {
        struct scmi_data *priv = policy->driver_data;
-       struct scmi_perf_ops *perf_ops = handle->perf_ops;
+       const struct scmi_perf_ops *perf_ops = handle->perf_ops;
  
        if (!perf_ops->freq_set(handle, priv->domain_id,
 -                              target_freq * 1000, true)) {
 -              arch_set_freq_scale(policy->related_cpus, target_freq,
 -                                  policy->cpuinfo.max_freq);
 +                              target_freq * 1000, true))
                return target_freq;
 -      }
  
        return 0;
  }
index 42c8ad10d75ebfca8cbd5e61b768cc2c1bc585e5,12da38a9221848afa2e78fdc1a622b2e4d40f39c..a367584f0d7b3add40a8b4fae712f94bdf5e6f34
@@@ -378,11 -378,17 +378,11 @@@ EXPORT_SYMBOL_GPL(k3_udma_glue_pop_tx_c
  
  int k3_udma_glue_enable_tx_chn(struct k3_udma_glue_tx_channel *tx_chn)
  {
 -      u32 txrt_ctl;
 -
 -      txrt_ctl = UDMA_PEER_RT_EN_ENABLE;
        xudma_tchanrt_write(tx_chn->udma_tchanx, UDMA_CHAN_RT_PEER_RT_EN_REG,
 -                          txrt_ctl);
 +                          UDMA_PEER_RT_EN_ENABLE);
  
 -      txrt_ctl = xudma_tchanrt_read(tx_chn->udma_tchanx,
 -                                    UDMA_CHAN_RT_CTL_REG);
 -      txrt_ctl |= UDMA_CHAN_RT_CTL_EN;
        xudma_tchanrt_write(tx_chn->udma_tchanx, UDMA_CHAN_RT_CTL_REG,
 -                          txrt_ctl);
 +                          UDMA_CHAN_RT_CTL_EN);
  
        k3_udma_glue_dump_tx_rt_chn(tx_chn, "txchn en");
        return 0;
@@@ -573,8 -579,8 +573,8 @@@ static int k3_udma_glue_cfg_rx_flow(str
  
        /* request and cfg rings */
        ret =  k3_ringacc_request_rings_pair(rx_chn->common.ringacc,
-                                            flow_cfg->ring_rxq_id,
                                             flow_cfg->ring_rxfdq0_id,
+                                            flow_cfg->ring_rxq_id,
                                             &flow->ringrxfdq,
                                             &flow->ringrx);
        if (ret) {
@@@ -1052,14 -1058,19 +1052,14 @@@ EXPORT_SYMBOL_GPL(k3_udma_glue_rx_flow_
  
  int k3_udma_glue_enable_rx_chn(struct k3_udma_glue_rx_channel *rx_chn)
  {
 -      u32 rxrt_ctl;
 -
        if (rx_chn->remote)
                return -EINVAL;
  
        if (rx_chn->flows_ready < rx_chn->flow_num)
                return -EINVAL;
  
 -      rxrt_ctl = xudma_rchanrt_read(rx_chn->udma_rchanx,
 -                                    UDMA_CHAN_RT_CTL_REG);
 -      rxrt_ctl |= UDMA_CHAN_RT_CTL_EN;
        xudma_rchanrt_write(rx_chn->udma_rchanx, UDMA_CHAN_RT_CTL_REG,
 -                          rxrt_ctl);
 +                          UDMA_CHAN_RT_CTL_EN);
  
        xudma_rchanrt_write(rx_chn->udma_rchanx, UDMA_CHAN_RT_PEER_RT_EN_REG,
                            UDMA_PEER_RT_EN_ENABLE);
diff --combined drivers/firmware/Kconfig
index d78dd3c82e9d66be0de5c07e4c7a3bce2722442f,afdbebba628a8e63c2290faaacbb03453bf48df4..3315e3c215864c24b10b2b447bfac1db15d08fa6
@@@ -7,7 -7,7 +7,7 @@@
  menu "Firmware Drivers"
  
  config ARM_SCMI_PROTOCOL
-       bool "ARM System Control and Management Interface (SCMI) Message Protocol"
+       tristate "ARM System Control and Management Interface (SCMI) Message Protocol"
        depends on ARM || ARM64 || COMPILE_TEST
        depends on MAILBOX
        help
@@@ -178,15 -178,16 +178,15 @@@ config ISCSI_IBF
          Otherwise, say N.
  
  config RASPBERRYPI_FIRMWARE
 -      bool "Raspberry Pi Firmware Driver"
 +      tristate "Raspberry Pi Firmware Driver"
        depends on BCM2835_MBOX
 -      default USB_PCI
        help
          This option enables support for communicating with the firmware on the
          Raspberry Pi.
  
  config FW_CFG_SYSFS
        tristate "QEMU fw_cfg device support in sysfs"
 -      depends on SYSFS && (ARM || ARM64 || PPC_PMAC || SPARC || X86)
 +      depends on SYSFS && (ARM || ARM64 || PARISC || PPC_PMAC || SPARC || X86)
        depends on HAS_IOPORT_MAP
        default n
        help
index 722af9ee53d65d26fd72a059cc661536d5a0a97a,39890665a9755fd21ef6e10d9740df8ab241ea01..896f53ec785718f73325d26b5ae036ed3bd9611d
@@@ -64,6 -64,22 +64,6 @@@ struct ti_sci_xfers_info 
        spinlock_t xfer_lock;
  };
  
 -/**
 - * struct ti_sci_rm_type_map - Structure representing TISCI Resource
 - *                            management representation of dev_ids.
 - * @dev_id:   TISCI device ID
 - * @type:     Corresponding id as identified by TISCI RM.
 - *
 - * Note: This is used only as a work around for using RM range apis
 - *    for AM654 SoC. For future SoCs dev_id will be used as type
 - *    for RM range APIs. In order to maintain ABI backward compatibility
 - *    type is not being changed for AM654 SoC.
 - */
 -struct ti_sci_rm_type_map {
 -      u32 dev_id;
 -      u16 type;
 -};
 -
  /**
   * struct ti_sci_desc - Description of SoC integration
   * @default_host_id:  Host identifier representing the compute entity
   * @max_msgs: Maximum number of messages that can be pending
   *              simultaneously in the system
   * @max_msg_size: Maximum size of data per message that can be handled.
 - * @rm_type_map: RM resource type mapping structure.
   */
  struct ti_sci_desc {
        u8 default_host_id;
        int max_rx_timeout_ms;
        int max_msgs;
        int max_msg_size;
 -      struct ti_sci_rm_type_map *rm_type_map;
  };
  
  /**
@@@ -1106,7 -1124,8 +1106,8 @@@ static int ti_sci_cmd_get_clock(const s
  static int ti_sci_cmd_idle_clock(const struct ti_sci_handle *handle,
                                 u32 dev_id, u32 clk_id)
  {
-       return ti_sci_set_clock_state(handle, dev_id, clk_id, 0,
+       return ti_sci_set_clock_state(handle, dev_id, clk_id,
+                                     MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE,
                                      MSG_CLOCK_SW_STATE_UNREQ);
  }
  
  static int ti_sci_cmd_put_clock(const struct ti_sci_handle *handle,
                                u32 dev_id, u32 clk_id)
  {
-       return ti_sci_set_clock_state(handle, dev_id, clk_id, 0,
+       return ti_sci_set_clock_state(handle, dev_id, clk_id,
+                                     MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE,
                                      MSG_CLOCK_SW_STATE_AUTO);
  }
  
@@@ -1692,6 -1712,33 +1694,6 @@@ fail
        return ret;
  }
  
 -static int ti_sci_get_resource_type(struct ti_sci_info *info, u16 dev_id,
 -                                  u16 *type)
 -{
 -      struct ti_sci_rm_type_map *rm_type_map = info->desc->rm_type_map;
 -      bool found = false;
 -      int i;
 -
 -      /* If map is not provided then assume dev_id is used as type */
 -      if (!rm_type_map) {
 -              *type = dev_id;
 -              return 0;
 -      }
 -
 -      for (i = 0; rm_type_map[i].dev_id; i++) {
 -              if (rm_type_map[i].dev_id == dev_id) {
 -                      *type = rm_type_map[i].type;
 -                      found = true;
 -                      break;
 -              }
 -      }
 -
 -      if (!found)
 -              return -EINVAL;
 -
 -      return 0;
 -}
 -
  /**
   * ti_sci_get_resource_range - Helper to get a range of resources assigned
   *                           to a host. Resource is uniquely identified by
@@@ -1715,6 -1762,7 +1717,6 @@@ static int ti_sci_get_resource_range(co
        struct ti_sci_xfer *xfer;
        struct ti_sci_info *info;
        struct device *dev;
 -      u16 type;
        int ret = 0;
  
        if (IS_ERR(handle))
                return ret;
        }
  
 -      ret = ti_sci_get_resource_type(info, dev_id, &type);
 -      if (ret) {
 -              dev_err(dev, "rm type lookup failed for %u\n", dev_id);
 -              goto fail;
 -      }
 -
        req = (struct ti_sci_msg_req_get_resource_range *)xfer->xfer_buf;
        req->secondary_host = s_host;
 -      req->type = type & MSG_RM_RESOURCE_TYPE_MASK;
 +      req->type = dev_id & MSG_RM_RESOURCE_TYPE_MASK;
        req->subtype = subtype & MSG_RM_RESOURCE_SUBTYPE_MASK;
  
        ret = ti_sci_do_xfer(info, xfer);
@@@ -3208,50 -3262,61 +3210,50 @@@ u32 ti_sci_get_num_resources(struct ti_
  EXPORT_SYMBOL_GPL(ti_sci_get_num_resources);
  
  /**
 - * devm_ti_sci_get_of_resource() - Get a TISCI resource assigned to a device
 + * devm_ti_sci_get_resource_sets() - Get a TISCI resources assigned to a device
   * @handle:   TISCI handle
   * @dev:      Device pointer to which the resource is assigned
   * @dev_id:   TISCI device id to which the resource is assigned
 - * @of_prop:  property name by which the resource are represented
 + * @sub_types:        Array of sub_types assigned corresponding to device
 + * @sets:     Number of sub_types
   *
   * Return: Pointer to ti_sci_resource if all went well else appropriate
   *       error pointer.
   */
 -struct ti_sci_resource *
 -devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
 -                          struct device *dev, u32 dev_id, char *of_prop)
 +static struct ti_sci_resource *
 +devm_ti_sci_get_resource_sets(const struct ti_sci_handle *handle,
 +                            struct device *dev, u32 dev_id, u32 *sub_types,
 +                            u32 sets)
  {
        struct ti_sci_resource *res;
        bool valid_set = false;
 -      u32 resource_subtype;
        int i, ret;
  
        res = devm_kzalloc(dev, sizeof(*res), GFP_KERNEL);
        if (!res)
                return ERR_PTR(-ENOMEM);
  
 -      ret = of_property_count_elems_of_size(dev_of_node(dev), of_prop,
 -                                            sizeof(u32));
 -      if (ret < 0) {
 -              dev_err(dev, "%s resource type ids not available\n", of_prop);
 -              return ERR_PTR(ret);
 -      }
 -      res->sets = ret;
 -
 +      res->sets = sets;
        res->desc = devm_kcalloc(dev, res->sets, sizeof(*res->desc),
                                 GFP_KERNEL);
        if (!res->desc)
                return ERR_PTR(-ENOMEM);
  
        for (i = 0; i < res->sets; i++) {
 -              ret = of_property_read_u32_index(dev_of_node(dev), of_prop, i,
 -                                               &resource_subtype);
 -              if (ret)
 -                      return ERR_PTR(-EINVAL);
 -
                ret = handle->ops.rm_core_ops.get_range(handle, dev_id,
 -                                                      resource_subtype,
 +                                                      sub_types[i],
                                                        &res->desc[i].start,
                                                        &res->desc[i].num);
                if (ret) {
                        dev_dbg(dev, "dev = %d subtype %d not allocated for this host\n",
 -                              dev_id, resource_subtype);
 +                              dev_id, sub_types[i]);
                        res->desc[i].start = 0;
                        res->desc[i].num = 0;
                        continue;
                }
  
                dev_dbg(dev, "dev = %d, subtype = %d, start = %d, num = %d\n",
 -                      dev_id, resource_subtype, res->desc[i].start,
 +                      dev_id, sub_types[i], res->desc[i].start,
                        res->desc[i].num);
  
                valid_set = true;
        return ERR_PTR(-EINVAL);
  }
  
 +/**
 + * devm_ti_sci_get_of_resource() - Get a TISCI resource assigned to a device
 + * @handle:   TISCI handle
 + * @dev:      Device pointer to which the resource is assigned
 + * @dev_id:   TISCI device id to which the resource is assigned
 + * @of_prop:  property name by which the resource are represented
 + *
 + * Return: Pointer to ti_sci_resource if all went well else appropriate
 + *       error pointer.
 + */
 +struct ti_sci_resource *
 +devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
 +                          struct device *dev, u32 dev_id, char *of_prop)
 +{
 +      struct ti_sci_resource *res;
 +      u32 *sub_types;
 +      int sets;
 +
 +      sets = of_property_count_elems_of_size(dev_of_node(dev), of_prop,
 +                                             sizeof(u32));
 +      if (sets < 0) {
 +              dev_err(dev, "%s resource type ids not available\n", of_prop);
 +              return ERR_PTR(sets);
 +      }
 +
 +      sub_types = kcalloc(sets, sizeof(*sub_types), GFP_KERNEL);
 +      if (!sub_types)
 +              return ERR_PTR(-ENOMEM);
 +
 +      of_property_read_u32_array(dev_of_node(dev), of_prop, sub_types, sets);
 +      res = devm_ti_sci_get_resource_sets(handle, dev, dev_id, sub_types,
 +                                          sets);
 +
 +      kfree(sub_types);
 +      return res;
 +}
 +EXPORT_SYMBOL_GPL(devm_ti_sci_get_of_resource);
 +
 +/**
 + * devm_ti_sci_get_resource() - Get a resource range assigned to the device
 + * @handle:   TISCI handle
 + * @dev:      Device pointer to which the resource is assigned
 + * @dev_id:   TISCI device id to which the resource is assigned
 + * @suub_type:        TISCI resource subytpe representing the resource.
 + *
 + * Return: Pointer to ti_sci_resource if all went well else appropriate
 + *       error pointer.
 + */
 +struct ti_sci_resource *
 +devm_ti_sci_get_resource(const struct ti_sci_handle *handle, struct device *dev,
 +                       u32 dev_id, u32 sub_type)
 +{
 +      return devm_ti_sci_get_resource_sets(handle, dev, dev_id, &sub_type, 1);
 +}
 +EXPORT_SYMBOL_GPL(devm_ti_sci_get_resource);
 +
  static int tisci_reboot_handler(struct notifier_block *nb, unsigned long mode,
                                void *cmd)
  {
@@@ -3345,6 -3354,17 +3347,6 @@@ static const struct ti_sci_desc ti_sci_
        /* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
        .max_msgs = 20,
        .max_msg_size = 64,
 -      .rm_type_map = NULL,
 -};
 -
 -static struct ti_sci_rm_type_map ti_sci_am654_rm_type_map[] = {
 -      {.dev_id = 56, .type = 0x00b}, /* GIC_IRQ */
 -      {.dev_id = 179, .type = 0x000}, /* MAIN_NAV_UDMASS_IA0 */
 -      {.dev_id = 187, .type = 0x009}, /* MAIN_NAV_RA */
 -      {.dev_id = 188, .type = 0x006}, /* MAIN_NAV_UDMAP */
 -      {.dev_id = 194, .type = 0x007}, /* MCU_NAV_UDMAP */
 -      {.dev_id = 195, .type = 0x00a}, /* MCU_NAV_RA */
 -      {.dev_id = 0, .type = 0x000}, /* end of table */
  };
  
  /* Description for AM654 */
@@@ -3355,6 -3375,7 +3357,6 @@@ static const struct ti_sci_desc ti_sci_
        /* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
        .max_msgs = 20,
        .max_msg_size = 60,
 -      .rm_type_map = ti_sci_am654_rm_type_map,
  };
  
  static const struct of_device_id ti_sci_of_match[] = {
index 4d29568be3f53ed88637efa83e6f386d312e5f1f,bd16874bf2dd5ceab3551bf72aeddb8467a98c30..ac038572164d3c961413af59dd35658a31c67a57
@@@ -481,7 -481,7 +481,7 @@@ static void mtk_drm_crtc_hw_config(stru
                mbox_flush(mtk_crtc->cmdq_client->chan, 2000);
                cmdq_handle = cmdq_pkt_create(mtk_crtc->cmdq_client, PAGE_SIZE);
                cmdq_pkt_clear_event(cmdq_handle, mtk_crtc->cmdq_event);
-               cmdq_pkt_wfe(cmdq_handle, mtk_crtc->cmdq_event);
+               cmdq_pkt_wfe(cmdq_handle, mtk_crtc->cmdq_event, false);
                mtk_crtc_ddp_config(crtc, cmdq_handle);
                cmdq_pkt_finalize(cmdq_handle);
                cmdq_pkt_flush_async(cmdq_handle, ddp_cmdq_cb, cmdq_handle);
@@@ -831,19 -831,13 +831,19 @@@ int mtk_drm_crtc_create(struct drm_devi
                        drm_crtc_index(&mtk_crtc->base));
                mtk_crtc->cmdq_client = NULL;
        }
 -      ret = of_property_read_u32_index(priv->mutex_node,
 -                                       "mediatek,gce-events",
 -                                       drm_crtc_index(&mtk_crtc->base),
 -                                       &mtk_crtc->cmdq_event);
 -      if (ret)
 -              dev_dbg(dev, "mtk_crtc %d failed to get mediatek,gce-events property\n",
 -                      drm_crtc_index(&mtk_crtc->base));
 +
 +      if (mtk_crtc->cmdq_client) {
 +              ret = of_property_read_u32_index(priv->mutex_node,
 +                                               "mediatek,gce-events",
 +                                               drm_crtc_index(&mtk_crtc->base),
 +                                               &mtk_crtc->cmdq_event);
 +              if (ret) {
 +                      dev_dbg(dev, "mtk_crtc %d failed to get mediatek,gce-events property\n",
 +                              drm_crtc_index(&mtk_crtc->base));
 +                      cmdq_mbox_destroy(mtk_crtc->cmdq_client);
 +                      mtk_crtc->cmdq_client = NULL;
 +              }
 +      }
  #endif
        return 0;
  }
index ca0097664b12506d8a4a59b1d7396731dd2b823e,bd989b8614b2b44b00c53e5e44d4aeb77955345c..cfa730cfd1453e932ec169d2cf9106a13ad07859
@@@ -33,8 -33,6 +33,6 @@@
  
  #include <linux/platform_data/mtd-nand-omap2.h>
  
- #include <asm/mach-types.h>
  #define       DEVICE_NAME             "omap-gpmc"
  
  /* GPMC register offsets */
@@@ -245,7 -243,6 +243,6 @@@ static DEFINE_SPINLOCK(gpmc_mem_lock)
  /* Define chip-selects as reserved by default until probe completes */
  static unsigned int gpmc_cs_num = GPMC_CS_NUM;
  static unsigned int gpmc_nr_waitpins;
- static resource_size_t phys_base, mem_size;
  static unsigned int gpmc_capability;
  static void __iomem *gpmc_base;
  
@@@ -313,6 -310,7 +310,6 @@@ static unsigned long gpmc_get_clk_perio
                tick_ps *= div;
                break;
        case GPMC_CD_FCLK:
 -              /* FALL-THROUGH */
        default:
                break;
        }
@@@ -634,14 -632,6 +631,6 @@@ static int set_gpmc_timing_reg(int cs, 
        return 0;
  }
  
- #define GPMC_SET_ONE_CD_MAX(reg, st, end, max, field, cd)  \
-       if (set_gpmc_timing_reg(cs, (reg), (st), (end), (max), \
-           t->field, (cd), #field) < 0)                       \
-               return -1
- #define GPMC_SET_ONE(reg, st, end, field) \
-       GPMC_SET_ONE_CD_MAX(reg, st, end, 0, field, GPMC_CD_FCLK)
  /**
   * gpmc_calc_waitmonitoring_divider - calculate proper GPMCFCLKDIVIDER based on WAITMONITORINGTIME
   * WAITMONITORINGTIME will be _at least_ as long as desired, i.e.
@@@ -700,12 -690,12 +689,12 @@@ int gpmc_calc_divider(unsigned int sync
  int gpmc_cs_set_timings(int cs, const struct gpmc_timings *t,
                        const struct gpmc_settings *s)
  {
-       int div;
+       int div, ret;
        u32 l;
  
        div = gpmc_calc_divider(t->sync_clk);
        if (div < 0)
-               return div;
+               return -EINVAL;
  
        /*
         * See if we need to change the divider for waitmonitoringtime.
                               __func__,
                               t->wait_monitoring
                               );
-                       return -1;
+                       return -ENXIO;
                }
        }
  
-       GPMC_SET_ONE(GPMC_CS_CONFIG2,  0,  3, cs_on);
-       GPMC_SET_ONE(GPMC_CS_CONFIG2,  8, 12, cs_rd_off);
-       GPMC_SET_ONE(GPMC_CS_CONFIG2, 16, 20, cs_wr_off);
+       ret = 0;
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG2, 0, 3, 0, t->cs_on,
+                                  GPMC_CD_FCLK, "cs_on");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG2, 8, 12, 0, t->cs_rd_off,
+                                  GPMC_CD_FCLK, "cs_rd_off");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG2, 16, 20, 0, t->cs_wr_off,
+                                  GPMC_CD_FCLK, "cs_wr_off");
+       if (ret)
+               return -ENXIO;
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG3, 0, 3, 0, t->adv_on,
+                                  GPMC_CD_FCLK, "adv_on");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG3, 8, 12, 0, t->adv_rd_off,
+                                  GPMC_CD_FCLK, "adv_rd_off");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG3, 16, 20, 0, t->adv_wr_off,
+                                  GPMC_CD_FCLK, "adv_wr_off");
+       if (ret)
+               return -ENXIO;
  
-       GPMC_SET_ONE(GPMC_CS_CONFIG3,  0,  3, adv_on);
-       GPMC_SET_ONE(GPMC_CS_CONFIG3,  8, 12, adv_rd_off);
-       GPMC_SET_ONE(GPMC_CS_CONFIG3, 16, 20, adv_wr_off);
        if (gpmc_capability & GPMC_HAS_MUX_AAD) {
-               GPMC_SET_ONE(GPMC_CS_CONFIG3,  4,  6, adv_aad_mux_on);
-               GPMC_SET_ONE(GPMC_CS_CONFIG3, 24, 26, adv_aad_mux_rd_off);
-               GPMC_SET_ONE(GPMC_CS_CONFIG3, 28, 30, adv_aad_mux_wr_off);
+               ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG3, 4, 6, 0,
+                                          t->adv_aad_mux_on, GPMC_CD_FCLK,
+                                          "adv_aad_mux_on");
+               ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG3, 24, 26, 0,
+                                          t->adv_aad_mux_rd_off, GPMC_CD_FCLK,
+                                          "adv_aad_mux_rd_off");
+               ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG3, 28, 30, 0,
+                                          t->adv_aad_mux_wr_off, GPMC_CD_FCLK,
+                                          "adv_aad_mux_wr_off");
+               if (ret)
+                       return -ENXIO;
        }
  
-       GPMC_SET_ONE(GPMC_CS_CONFIG4,  0,  3, oe_on);
-       GPMC_SET_ONE(GPMC_CS_CONFIG4,  8, 12, oe_off);
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG4, 0, 3, 0, t->oe_on,
+                                  GPMC_CD_FCLK, "oe_on");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG4, 8, 12, 0, t->oe_off,
+                                  GPMC_CD_FCLK, "oe_off");
        if (gpmc_capability & GPMC_HAS_MUX_AAD) {
-               GPMC_SET_ONE(GPMC_CS_CONFIG4,  4,  6, oe_aad_mux_on);
-               GPMC_SET_ONE(GPMC_CS_CONFIG4, 13, 15, oe_aad_mux_off);
+               ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG4, 4, 6, 0,
+                                          t->oe_aad_mux_on, GPMC_CD_FCLK,
+                                          "oe_aad_mux_on");
+               ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG4, 13, 15, 0,
+                                          t->oe_aad_mux_off, GPMC_CD_FCLK,
+                                          "oe_aad_mux_off");
+       }
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG4, 16, 19, 0, t->we_on,
+                                  GPMC_CD_FCLK, "we_on");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG4, 24, 28, 0, t->we_off,
+                                  GPMC_CD_FCLK, "we_off");
+       if (ret)
+               return -ENXIO;
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG5, 0, 4, 0, t->rd_cycle,
+                                  GPMC_CD_FCLK, "rd_cycle");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG5, 8, 12, 0, t->wr_cycle,
+                                  GPMC_CD_FCLK, "wr_cycle");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG5, 16, 20, 0, t->access,
+                                  GPMC_CD_FCLK, "access");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG5, 24, 27, 0,
+                                  t->page_burst_access, GPMC_CD_FCLK,
+                                  "page_burst_access");
+       if (ret)
+               return -ENXIO;
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG6, 0, 3, 0,
+                                  t->bus_turnaround, GPMC_CD_FCLK,
+                                  "bus_turnaround");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG6, 8, 11, 0,
+                                  t->cycle2cycle_delay, GPMC_CD_FCLK,
+                                  "cycle2cycle_delay");
+       if (ret)
+               return -ENXIO;
+       if (gpmc_capability & GPMC_HAS_WR_DATA_MUX_BUS) {
+               ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG6, 16, 19, 0,
+                                          t->wr_data_mux_bus, GPMC_CD_FCLK,
+                                          "wr_data_mux_bus");
+               if (ret)
+                       return -ENXIO;
+       }
+       if (gpmc_capability & GPMC_HAS_WR_ACCESS) {
+               ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG6, 24, 28, 0,
+                                          t->wr_access, GPMC_CD_FCLK,
+                                          "wr_access");
+               if (ret)
+                       return -ENXIO;
        }
-       GPMC_SET_ONE(GPMC_CS_CONFIG4, 16, 19, we_on);
-       GPMC_SET_ONE(GPMC_CS_CONFIG4, 24, 28, we_off);
-       GPMC_SET_ONE(GPMC_CS_CONFIG5,  0,  4, rd_cycle);
-       GPMC_SET_ONE(GPMC_CS_CONFIG5,  8, 12, wr_cycle);
-       GPMC_SET_ONE(GPMC_CS_CONFIG5, 16, 20, access);
-       GPMC_SET_ONE(GPMC_CS_CONFIG5, 24, 27, page_burst_access);
-       GPMC_SET_ONE(GPMC_CS_CONFIG6, 0, 3, bus_turnaround);
-       GPMC_SET_ONE(GPMC_CS_CONFIG6, 8, 11, cycle2cycle_delay);
-       if (gpmc_capability & GPMC_HAS_WR_DATA_MUX_BUS)
-               GPMC_SET_ONE(GPMC_CS_CONFIG6, 16, 19, wr_data_mux_bus);
-       if (gpmc_capability & GPMC_HAS_WR_ACCESS)
-               GPMC_SET_ONE(GPMC_CS_CONFIG6, 24, 28, wr_access);
  
        l = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
        l &= ~0x03;
        l |= (div - 1);
        gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, l);
  
-       GPMC_SET_ONE_CD_MAX(GPMC_CS_CONFIG1, 18, 19,
-                           GPMC_CONFIG1_WAITMONITORINGTIME_MAX,
-                           wait_monitoring, GPMC_CD_CLK);
-       GPMC_SET_ONE_CD_MAX(GPMC_CS_CONFIG1, 25, 26,
-                           GPMC_CONFIG1_CLKACTIVATIONTIME_MAX,
-                           clk_activation, GPMC_CD_FCLK);
+       ret = 0;
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG1, 18, 19,
+                                  GPMC_CONFIG1_WAITMONITORINGTIME_MAX,
+                                  t->wait_monitoring, GPMC_CD_CLK,
+                                  "wait_monitoring");
+       ret |= set_gpmc_timing_reg(cs, GPMC_CS_CONFIG1, 25, 26,
+                                  GPMC_CONFIG1_CLKACTIVATIONTIME_MAX,
+                                  t->clk_activation, GPMC_CD_FCLK,
+                                  "clk_activation");
+       if (ret)
+               return -ENXIO;
  
  #ifdef CONFIG_OMAP_GPMC_DEBUG
        pr_info("GPMC CS%d CLK period is %lu ns (div %d)\n",
@@@ -870,20 -917,6 +916,6 @@@ static bool gpmc_cs_reserved(int cs
        return gpmc->flags & GPMC_CS_RESERVED;
  }
  
- static void gpmc_cs_set_name(int cs, const char *name)
- {
-       struct gpmc_cs_data *gpmc = &gpmc_cs[cs];
-       gpmc->name = name;
- }
- static const char *gpmc_cs_get_name(int cs)
- {
-       struct gpmc_cs_data *gpmc = &gpmc_cs[cs];
-       return gpmc->name;
- }
  static unsigned long gpmc_mem_align(unsigned long size)
  {
        int order;
@@@ -929,56 -962,13 +961,13 @@@ static int gpmc_cs_delete_mem(int cs
        return r;
  }
  
- /**
-  * gpmc_cs_remap - remaps a chip-select physical base address
-  * @cs:               chip-select to remap
-  * @base:     physical base address to re-map chip-select to
-  *
-  * Re-maps a chip-select to a new physical base address specified by
-  * "base". Returns 0 on success and appropriate negative error code
-  * on failure.
-  */
- static int gpmc_cs_remap(int cs, u32 base)
- {
-       int ret;
-       u32 old_base, size;
-       if (cs > gpmc_cs_num) {
-               pr_err("%s: requested chip-select is disabled\n", __func__);
-               return -ENODEV;
-       }
-       /*
-        * Make sure we ignore any device offsets from the GPMC partition
-        * allocated for the chip select and that the new base confirms
-        * to the GPMC 16MB minimum granularity.
-        */
-       base &= ~(SZ_16M - 1);
-       gpmc_cs_get_memconf(cs, &old_base, &size);
-       if (base == old_base)
-               return 0;
-       ret = gpmc_cs_delete_mem(cs);
-       if (ret < 0)
-               return ret;
-       ret = gpmc_cs_insert_mem(cs, base, size);
-       if (ret < 0)
-               return ret;
-       ret = gpmc_cs_set_memconf(cs, base, size);
-       return ret;
- }
  int gpmc_cs_request(int cs, unsigned long size, unsigned long *base)
  {
        struct gpmc_cs_data *gpmc = &gpmc_cs[cs];
        struct resource *res = &gpmc->mem;
        int r = -1;
  
-       if (cs > gpmc_cs_num) {
+       if (cs >= gpmc_cs_num) {
                pr_err("%s: requested chip-select is disabled\n", __func__);
                return -ENODEV;
        }
@@@ -1025,8 -1015,7 +1014,7 @@@ void gpmc_cs_free(int cs
  
        spin_lock(&gpmc_mem_lock);
        if (cs >= gpmc_cs_num || cs < 0 || !gpmc_cs_reserved(cs)) {
-               printk(KERN_ERR "Trying to free non-reserved GPMC CS%d\n", cs);
-               BUG();
+               WARN(1, "Trying to free non-reserved GPMC CS%d\n", cs);
                spin_unlock(&gpmc_mem_lock);
                return;
        }
@@@ -1896,6 -1885,63 +1884,63 @@@ static const struct of_device_id gpmc_d
        { }
  };
  
+ static void gpmc_cs_set_name(int cs, const char *name)
+ {
+       struct gpmc_cs_data *gpmc = &gpmc_cs[cs];
+       gpmc->name = name;
+ }
+ static const char *gpmc_cs_get_name(int cs)
+ {
+       struct gpmc_cs_data *gpmc = &gpmc_cs[cs];
+       return gpmc->name;
+ }
+ /**
+  * gpmc_cs_remap - remaps a chip-select physical base address
+  * @cs:               chip-select to remap
+  * @base:     physical base address to re-map chip-select to
+  *
+  * Re-maps a chip-select to a new physical base address specified by
+  * "base". Returns 0 on success and appropriate negative error code
+  * on failure.
+  */
+ static int gpmc_cs_remap(int cs, u32 base)
+ {
+       int ret;
+       u32 old_base, size;
+       if (cs >= gpmc_cs_num) {
+               pr_err("%s: requested chip-select is disabled\n", __func__);
+               return -ENODEV;
+       }
+       /*
+        * Make sure we ignore any device offsets from the GPMC partition
+        * allocated for the chip select and that the new base confirms
+        * to the GPMC 16MB minimum granularity.
+        */
+       base &= ~(SZ_16M - 1);
+       gpmc_cs_get_memconf(cs, &old_base, &size);
+       if (base == old_base)
+               return 0;
+       ret = gpmc_cs_delete_mem(cs);
+       if (ret < 0)
+               return ret;
+       ret = gpmc_cs_insert_mem(cs, base, size);
+       if (ret < 0)
+               return ret;
+       ret = gpmc_cs_set_memconf(cs, base, size);
+       return ret;
+ }
  /**
   * gpmc_read_settings_dt - read gpmc settings from device-tree
   * @np:               pointer to device-tree node for a gpmc child device
@@@ -2265,6 -2311,10 +2310,10 @@@ static void gpmc_probe_dt_children(stru
        }
  }
  #else
+ void gpmc_read_settings_dt(struct device_node *np, struct gpmc_settings *p)
+ {
+       memset(p, 0, sizeof(*p));
+ }
  static int gpmc_probe_dt(struct platform_device *pdev)
  {
        return 0;
@@@ -2347,12 -2397,9 +2396,9 @@@ static int gpmc_probe(struct platform_d
        platform_set_drvdata(pdev, gpmc);
  
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (res == NULL)
+       if (!res)
                return -ENOENT;
  
-       phys_base = res->start;
-       mem_size = resource_size(res);
        gpmc_base = devm_ioremap_resource(&pdev->dev, res);
        if (IS_ERR(gpmc_base))
                return PTR_ERR(gpmc_base);
index 714d1f6f077c233933a3a467681a173304bb18c3,4961a565c4628562433647bc17ec33250e08aea1..c5ee4121a4d22cd3fc2c5f84f1178eb8dc38eab6
@@@ -98,6 -98,8 +98,8 @@@ MODULE_PARM_DESC(irqmode, "Enable IRQ m
  
  /**
   * struct dmc_opp_table - Operating level desciption
+  * @freq_hz:          target frequency in Hz
+  * @volt_uv:          target voltage in uV
   *
   * Covers frequency and voltage settings of the DMC operating mode.
   */
@@@ -108,6 -110,41 +110,41 @@@ struct dmc_opp_table 
  
  /**
   * struct exynos5_dmc - main structure describing DMC device
+  * @dev:              DMC device
+  * @df:                       devfreq device structure returned by devfreq framework
+  * @gov_data:         configuration of devfreq governor
+  * @base_drexi0:      DREX0 registers mapping
+  * @base_drexi1:      DREX1 registers mapping
+  * @clk_regmap:               regmap for clock controller registers
+  * @lock:             protects curr_rate and frequency/voltage setting section
+  * @curr_rate:                current frequency
+  * @curr_volt:                current voltage
+  * @opp:              OPP table
+  * @opp_count:                number of 'opp' elements
+  * @timings_arr_size: number of 'timings' elements
+  * @timing_row:               values for timing row register, for each OPP
+  * @timing_data:      values for timing data register, for each OPP
+  * @timing_power:     balues for timing power register, for each OPP
+  * @timings:          DDR memory timings, from device tree
+  * @min_tck:          DDR memory minimum timing values, from device tree
+  * @bypass_timing_row:        value for timing row register for bypass timings
+  * @bypass_timing_data:       value for timing data register for bypass timings
+  * @bypass_timing_power:      value for timing power register for bypass
+  *                            timings
+  * @vdd_mif:          Memory interface regulator
+  * @fout_spll:                clock: SPLL
+  * @fout_bpll:                clock: BPLL
+  * @mout_spll:                clock: mux SPLL
+  * @mout_bpll:                clock: mux BPLL
+  * @mout_mclk_cdrex:  clock: mux mclk_cdrex
+  * @mout_mx_mspll_ccore:      clock: mux mx_mspll_ccore
+  * @counter:          devfreq events
+  * @num_counters:     number of 'counter' elements
+  * @last_overflow_ts: time (in ns) of last overflow of each DREX
+  * @load:             utilization in percents
+  * @total:            total time between devfreq events
+  * @in_irq_mode:      whether running in interrupt mode (true)
+  *                    or polling (false)
   *
   * The main structure for the Dynamic Memory Controller which covers clocks,
   * memory regions, HW information, parameters and current operating mode.
@@@ -119,12 -156,11 +156,11 @@@ struct exynos5_dmc 
        void __iomem *base_drexi0;
        void __iomem *base_drexi1;
        struct regmap *clk_regmap;
+       /* Protects curr_rate and frequency/voltage setting section */
        struct mutex lock;
        unsigned long curr_rate;
        unsigned long curr_volt;
-       unsigned long bypass_rate;
        struct dmc_opp_table *opp;
-       struct dmc_opp_table opp_bypass;
        int opp_count;
        u32 timings_arr_size;
        u32 *timing_row;
        struct clk *mout_bpll;
        struct clk *mout_mclk_cdrex;
        struct clk *mout_mx_mspll_ccore;
-       struct clk *mx_mspll_ccore_phy;
-       struct clk *mout_mx_mspll_ccore_phy;
        struct devfreq_event_dev **counter;
        int num_counters;
        u64 last_overflow_ts[2];
@@@ -169,7 -203,7 +203,7 @@@ struct timing_reg 
        unsigned int val;
  };
  
- static const struct timing_reg timing_row[] = {
+ static const struct timing_reg timing_row_reg_fields[] = {
        TIMING_FIELD("tRFC", 24, 31),
        TIMING_FIELD("tRRD", 20, 23),
        TIMING_FIELD("tRP", 16, 19),
        TIMING_FIELD("tRAS", 0, 5),
  };
  
- static const struct timing_reg timing_data[] = {
+ static const struct timing_reg timing_data_reg_fields[] = {
        TIMING_FIELD("tWTR", 28, 31),
        TIMING_FIELD("tWR", 24, 27),
        TIMING_FIELD("tRTP", 20, 23),
        TIMING_FIELD("RL", 0, 3),
  };
  
- static const struct timing_reg timing_power[] = {
+ static const struct timing_reg timing_power_reg_fields[] = {
        TIMING_FIELD("tFAW", 26, 31),
        TIMING_FIELD("tXSR", 16, 25),
        TIMING_FIELD("tXP", 8, 15),
        TIMING_FIELD("tMRD", 0, 3),
  };
  
- #define TIMING_COUNT (ARRAY_SIZE(timing_row) + ARRAY_SIZE(timing_data) + \
-                     ARRAY_SIZE(timing_power))
+ #define TIMING_COUNT (ARRAY_SIZE(timing_row_reg_fields) + \
+                     ARRAY_SIZE(timing_data_reg_fields) + \
+                     ARRAY_SIZE(timing_power_reg_fields))
  
  static int exynos5_counters_set_event(struct exynos5_dmc *dmc)
  {
@@@ -346,7 -381,6 +381,6 @@@ err_opp
  /**
   * exynos5_set_bypass_dram_timings() - Low-level changes of the DRAM timings
   * @dmc:      device for which the new settings is going to be applied
-  * @param:    DRAM parameters which passes timing data
   *
   * Low-level function for changing timings for DRAM memory clocking from
   * 'bypass' clock source (fixed frequency @400MHz).
@@@ -453,9 -487,6 +487,6 @@@ static int exynos5_dmc_align_bypass_vol
                                            unsigned long target_volt)
  {
        int ret = 0;
-       unsigned long bypass_volt = dmc->opp_bypass.volt_uv;
-       target_volt = max(bypass_volt, target_volt);
  
        if (dmc->curr_volt >= target_volt)
                return 0;
@@@ -617,6 -648,7 +648,7 @@@ disable_clocks
   *                    requested
   * @target_volt:      returned voltage which corresponds to the returned
   *                    frequency
+  * @flags:    devfreq flags provided for this frequency change request
   *
   * Function gets requested frequency and checks OPP framework for needed
   * frequency and voltage. It populates the values 'target_rate' and
@@@ -908,7 -940,10 +940,10 @@@ static int exynos5_dmc_get_status(struc
        int ret;
  
        if (dmc->in_irq_mode) {
+               mutex_lock(&dmc->lock);
                stat->current_frequency = dmc->curr_rate;
+               mutex_unlock(&dmc->lock);
                stat->busy_time = dmc->load;
                stat->total_time = dmc->total;
        } else {
@@@ -950,7 -985,7 +985,7 @@@ static int exynos5_dmc_get_cur_freq(str
        return 0;
  }
  
- /**
+ /*
   * exynos5_dmc_df_profile - Devfreq governor's profile structure
   *
   * It provides to the devfreq framework needed functions and polling period.
@@@ -993,7 -1028,9 +1028,9 @@@ exynos5_dmc_align_init_freq(struct exyn
  /**
   * create_timings_aligned() - Create register values and align with standard
   * @dmc:      device for which the frequency is going to be set
-  * @idx:      speed bin in the OPP table
+  * @reg_timing_row:   array to fill with values for timing row register
+  * @reg_timing_data:  array to fill with values for timing data register
+  * @reg_timing_power: array to fill with values for timing power register
   * @clk_period_ps:    the period of the clock, known as tCK
   *
   * The function calculates timings and creates a register value ready for
@@@ -1018,117 -1055,117 +1055,117 @@@ static int create_timings_aligned(struc
        val = dmc->timings->tRFC / clk_period_ps;
        val += dmc->timings->tRFC % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRFC);
-       reg = &timing_row[0];
+       reg = &timing_row_reg_fields[0];
        *reg_timing_row |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tRRD / clk_period_ps;
        val += dmc->timings->tRRD % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRRD);
-       reg = &timing_row[1];
+       reg = &timing_row_reg_fields[1];
        *reg_timing_row |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tRPab / clk_period_ps;
        val += dmc->timings->tRPab % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRPab);
-       reg = &timing_row[2];
+       reg = &timing_row_reg_fields[2];
        *reg_timing_row |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tRCD / clk_period_ps;
        val += dmc->timings->tRCD % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRCD);
-       reg = &timing_row[3];
+       reg = &timing_row_reg_fields[3];
        *reg_timing_row |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tRC / clk_period_ps;
        val += dmc->timings->tRC % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRC);
-       reg = &timing_row[4];
+       reg = &timing_row_reg_fields[4];
        *reg_timing_row |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tRAS / clk_period_ps;
        val += dmc->timings->tRAS % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRAS);
-       reg = &timing_row[5];
+       reg = &timing_row_reg_fields[5];
        *reg_timing_row |= TIMING_VAL2REG(reg, val);
  
        /* data related timings */
        val = dmc->timings->tWTR / clk_period_ps;
        val += dmc->timings->tWTR % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tWTR);
-       reg = &timing_data[0];
+       reg = &timing_data_reg_fields[0];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tWR / clk_period_ps;
        val += dmc->timings->tWR % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tWR);
-       reg = &timing_data[1];
+       reg = &timing_data_reg_fields[1];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tRTP / clk_period_ps;
        val += dmc->timings->tRTP % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRTP);
-       reg = &timing_data[2];
+       reg = &timing_data_reg_fields[2];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tW2W_C2C / clk_period_ps;
        val += dmc->timings->tW2W_C2C % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tW2W_C2C);
-       reg = &timing_data[3];
+       reg = &timing_data_reg_fields[3];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tR2R_C2C / clk_period_ps;
        val += dmc->timings->tR2R_C2C % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tR2R_C2C);
-       reg = &timing_data[4];
+       reg = &timing_data_reg_fields[4];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tWL / clk_period_ps;
        val += dmc->timings->tWL % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tWL);
-       reg = &timing_data[5];
+       reg = &timing_data_reg_fields[5];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tDQSCK / clk_period_ps;
        val += dmc->timings->tDQSCK % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tDQSCK);
-       reg = &timing_data[6];
+       reg = &timing_data_reg_fields[6];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tRL / clk_period_ps;
        val += dmc->timings->tRL % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tRL);
-       reg = &timing_data[7];
+       reg = &timing_data_reg_fields[7];
        *reg_timing_data |= TIMING_VAL2REG(reg, val);
  
        /* power related timings */
        val = dmc->timings->tFAW / clk_period_ps;
        val += dmc->timings->tFAW % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tFAW);
-       reg = &timing_power[0];
+       reg = &timing_power_reg_fields[0];
        *reg_timing_power |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tXSR / clk_period_ps;
        val += dmc->timings->tXSR % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tXSR);
-       reg = &timing_power[1];
+       reg = &timing_power_reg_fields[1];
        *reg_timing_power |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tXP / clk_period_ps;
        val += dmc->timings->tXP % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tXP);
-       reg = &timing_power[2];
+       reg = &timing_power_reg_fields[2];
        *reg_timing_power |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tCKE / clk_period_ps;
        val += dmc->timings->tCKE % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tCKE);
-       reg = &timing_power[3];
+       reg = &timing_power_reg_fields[3];
        *reg_timing_power |= TIMING_VAL2REG(reg, val);
  
        val = dmc->timings->tMRD / clk_period_ps;
        val += dmc->timings->tMRD % clk_period_ps ? 1 : 0;
        val = max(val, dmc->min_tck->tMRD);
-       reg = &timing_power[4];
+       reg = &timing_power_reg_fields[4];
        *reg_timing_power |= TIMING_VAL2REG(reg, val);
  
        return 0;
@@@ -1263,8 -1300,6 +1300,6 @@@ static int exynos5_dmc_init_clks(struc
  
        clk_set_parent(dmc->mout_mx_mspll_ccore, dmc->mout_spll);
  
-       dmc->bypass_rate = clk_get_rate(dmc->mout_mx_mspll_ccore);
        clk_prepare_enable(dmc->fout_bpll);
        clk_prepare_enable(dmc->mout_bpll);
  
@@@ -1293,8 -1328,7 +1328,8 @@@ static int exynos5_performance_counters
        int counters_size;
        int ret, i;
  
 -      dmc->num_counters = devfreq_event_get_edev_count(dmc->dev);
 +      dmc->num_counters = devfreq_event_get_edev_count(dmc->dev,
 +                                                      "devfreq-events");
        if (dmc->num_counters < 0) {
                dev_err(dmc->dev, "could not get devfreq-event counters\n");
                return dmc->num_counters;
  
        for (i = 0; i < dmc->num_counters; i++) {
                dmc->counter[i] =
 -                      devfreq_event_get_edev_by_phandle(dmc->dev, i);
 +                      devfreq_event_get_edev_by_phandle(dmc->dev,
 +                                              "devfreq-events", i);
                if (IS_ERR_OR_NULL(dmc->counter[i]))
                        return -EPROBE_DEFER;
        }
  /**
   * exynos5_dmc_set_pause_on_switching() - Controls a pause feature in DMC
   * @dmc:      device which is used for changing this feature
-  * @set:      a boolean state passing enable/disable request
   *
   * There is a need of pausing DREX DMC when divider or MUX in clock tree
   * changes its configuration. In such situation access to the memory is blocked
index 7212d1d7b348399122aa5c8972a70deb485cc9ac,3bdd7811efef61131ce8b4175f85738d9ef8bbd6..7fb8b5438bf45e63febcd8d92672370abfe52be5
@@@ -842,7 -842,7 +842,7 @@@ static const struct tegra_mc_client teg
                },
                .la = {
                        .reg = 0x3dc,
-                       .shift = 0,
+                       .shift = 16,
                        .mask = 0xff,
                        .def = 0x80,
                },
@@@ -1073,7 -1073,7 +1073,7 @@@ static const struct tegra_smmu_soc tegr
        .num_groups = ARRAY_SIZE(tegra210_groups),
        .supports_round_robin_arbitration = true,
        .supports_request_limit = true,
 -      .num_tlb_lines = 32,
 +      .num_tlb_lines = 48,
        .num_asids = 128,
  };
  
diff --combined drivers/reset/Kconfig
index 97e848740e134dbeedac01c9f0b954b94e414c29,19f9773133ddce534fb1180c1873d76f74a8dc94..07d162b179fce8c9a64836ce6641240b467476c4
@@@ -65,9 -65,10 +65,10 @@@ config RESET_HSD
          This enables the reset controller driver for HSDK board.
  
  config RESET_IMX7
-       bool "i.MX7/8 Reset Driver" if COMPILE_TEST
+       tristate "i.MX7/8 Reset Driver"
        depends on HAS_IOMEM
-       default SOC_IMX7D || (ARM64 && ARCH_MXC)
+       depends on SOC_IMX7D || (ARM64 && ARCH_MXC) || COMPILE_TEST
+       default y if SOC_IMX7D
        select MFD_SYSCON
        help
          This enables the reset controller driver for i.MX7 SoCs.
@@@ -140,17 -141,6 +141,17 @@@ config RESET_QCOM_PD
          to control reset signals provided by PDC for Modem, Compute,
          Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS.
  
 +config RESET_RASPBERRYPI
 +      tristate "Raspberry Pi 4 Firmware Reset Driver"
 +      depends on RASPBERRYPI_FIRMWARE || (RASPBERRYPI_FIRMWARE=n && COMPILE_TEST)
 +      default USB_XHCI_PCI
 +      help
 +        Raspberry Pi 4's co-processor controls some of the board's HW
 +        initialization process, but it's up to Linux to trigger it when
 +        relevant. This driver provides a reset controller capable of
 +        interfacing with RPi4's co-processor and model these firmware
 +        initialization routines as reset lines.
 +
  config RESET_SCMI
        tristate "Reset driver controlled via ARM SCMI interface"
        depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
index e8aa8691deb2dbc7bbd62153a5b82943a3c253cb,b60534a1e0efe782fd75c5ee29aec17c4913576c..185a333df66c55286cf69b329420db30956f7239
@@@ -8,7 -8,7 +8,7 @@@
   */
  
  #include <linux/mfd/syscon.h>
- #include <linux/mod_devicetable.h>
+ #include <linux/module.h>
  #include <linux/of_device.h>
  #include <linux/platform_device.h>
  #include <linux/reset-controller.h>
@@@ -178,6 -178,9 +178,9 @@@ static const struct imx7_src_signal imx
        [IMX8MQ_RESET_A53_SOC_DBG_RESET]        = { SRC_A53RCR0, BIT(20) },
        [IMX8MQ_RESET_A53_L2RESET]              = { SRC_A53RCR0, BIT(21) },
        [IMX8MQ_RESET_SW_NON_SCLR_M4C_RST]      = { SRC_M4RCR, BIT(0) },
+       [IMX8MQ_RESET_SW_M4C_RST]               = { SRC_M4RCR, BIT(1) },
+       [IMX8MQ_RESET_SW_M4P_RST]               = { SRC_M4RCR, BIT(2) },
+       [IMX8MQ_RESET_M4_ENABLE]                = { SRC_M4RCR, BIT(3) },
        [IMX8MQ_RESET_OTG1_PHY_RESET]           = { SRC_USBOPHY1_RCR, BIT(0) },
        [IMX8MQ_RESET_OTG2_PHY_RESET]           = { SRC_USBOPHY2_RCR, BIT(0) },
        [IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N]    = { SRC_MIPIPHY_RCR, BIT(1) },
@@@ -222,7 -225,7 +225,7 @@@ static int imx8mq_reset_set(struct rese
  
        switch (id) {
        case IMX8MQ_RESET_PCIEPHY:
 -      case IMX8MQ_RESET_PCIEPHY2: /* fallthrough */
 +      case IMX8MQ_RESET_PCIEPHY2:
                /*
                 * wait for more than 10us to release phy g_rst and
                 * btnrst
                break;
  
        case IMX8MQ_RESET_PCIE_CTRL_APPS_EN:
 -      case IMX8MQ_RESET_PCIE2_CTRL_APPS_EN:   /* fallthrough */
 -      case IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N:        /* fallthrough */
 -      case IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N: /* fallthrough */
 -      case IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N: /* fallthrough */
 -      case IMX8MQ_RESET_MIPI_DSI_RESET_N:     /* fallthrough */
 -      case IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N:        /* fallthrough */
 +      case IMX8MQ_RESET_PCIE2_CTRL_APPS_EN:
 +      case IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N:
 +      case IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N:
 +      case IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N:
 +      case IMX8MQ_RESET_MIPI_DSI_RESET_N:
 +      case IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N:
+       case IMX8MQ_RESET_M4_ENABLE:
                value = assert ? 0 : bit;
                break;
        }
@@@ -386,6 -390,7 +390,7 @@@ static const struct of_device_id imx7_r
        { .compatible = "fsl,imx8mp-src", .data = &variant_imx8mp },
        { /* sentinel */ },
  };
+ MODULE_DEVICE_TABLE(of, imx7_reset_dt_ids);
  
  static struct platform_driver imx7_reset_driver = {
        .probe  = imx7_reset_probe,
                .of_match_table = imx7_reset_dt_ids,
        },
  };
- builtin_platform_driver(imx7_reset_driver);
+ module_platform_driver(imx7_reset_driver);
+ MODULE_AUTHOR("Andrey Smirnov <[email protected]>");
+ MODULE_DESCRIPTION("NXP i.MX7 reset driver");
+ MODULE_LICENSE("GPL v2");
index b25d0f7dac9e8ad38914d445ec12f83f4ecb79ab,0102bf254a9e5654a3c54470f1c3a1da42e92431..b44ede48decc013c3edfca4b87f342d36a99c4bc
@@@ -194,6 -194,7 +194,7 @@@ static const struct soc_id soc_id[] = 
        { 186, "MSM8674" },
        { 194, "MSM8974PRO" },
        { 206, "MSM8916" },
+       { 207, "MSM8994" },
        { 208, "APQ8074-AA" },
        { 209, "APQ8074-AB" },
        { 210, "APQ8074PRO" },
        { 248, "MSM8216" },
        { 249, "MSM8116" },
        { 250, "MSM8616" },
+       { 251, "MSM8992" },
+       { 253, "APQ8094" },
        { 291, "APQ8096" },
        { 305, "MSM8996SG" },
        { 310, "MSM8996AU" },
        { 321, "SDM845" },
        { 341, "SDA845" },
        { 356, "SM8250" },
+       { 402, "IPQ6018" },
+       { 425, "SC7180" },
  };
  
  static const char *socinfo_machine(struct device *dev, unsigned int id)
@@@ -353,7 -358,7 +358,7 @@@ static void socinfo_debugfs_init(struc
  
                debugfs_create_u32("nmodem_supported", 0400, qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.nmodem_supported);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 14):
                qcom_socinfo->info.num_clusters = __le32_to_cpu(info->num_clusters);
                qcom_socinfo->info.ncluster_array_offset = __le32_to_cpu(info->ncluster_array_offset);
                                   &qcom_socinfo->info.num_defective_parts);
                debugfs_create_u32("ndefective_parts_array_offset", 0400, qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.ndefective_parts_array_offset);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 13):
                qcom_socinfo->info.nproduct_id = __le32_to_cpu(info->nproduct_id);
  
                debugfs_create_u32("nproduct_id", 0400, qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.nproduct_id);
                DEBUGFS_ADD(info, chip_id);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 12):
                qcom_socinfo->info.chip_family =
                        __le32_to_cpu(info->chip_family);
                debugfs_create_x32("raw_device_number", 0400,
                                   qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.raw_device_num);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 11):
        case SOCINFO_VERSION(0, 10):
        case SOCINFO_VERSION(0, 9):
  
                debugfs_create_u32("foundry_id", 0400, qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.foundry_id);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 8):
        case SOCINFO_VERSION(0, 7):
                DEBUGFS_ADD(info, pmic_model);
                DEBUGFS_ADD(info, pmic_die_rev);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 6):
                qcom_socinfo->info.hw_plat_subtype =
                        __le32_to_cpu(info->hw_plat_subtype);
                debugfs_create_u32("hardware_platform_subtype", 0400,
                                   qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.hw_plat_subtype);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 5):
                qcom_socinfo->info.accessory_chip =
                        __le32_to_cpu(info->accessory_chip);
                debugfs_create_u32("accessory_chip", 0400,
                                   qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.accessory_chip);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 4):
                qcom_socinfo->info.plat_ver = __le32_to_cpu(info->plat_ver);
  
                debugfs_create_u32("platform_version", 0400,
                                   qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.plat_ver);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 3):
                qcom_socinfo->info.hw_plat = __le32_to_cpu(info->hw_plat);
  
                debugfs_create_u32("hardware_platform", 0400,
                                   qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.hw_plat);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 2):
                qcom_socinfo->info.raw_ver  = __le32_to_cpu(info->raw_ver);
  
                debugfs_create_u32("raw_version", 0400, qcom_socinfo->dbg_root,
                                   &qcom_socinfo->info.raw_ver);
 -              /* Fall through */
 +              fallthrough;
        case SOCINFO_VERSION(0, 1):
                DEBUGFS_ADD(info, build_id);
                break;
diff --combined drivers/soc/tegra/pmc.c
index b0bba8ab75bb46e891c3238154bcc2602bfb1b74,9ed0c3b04c0a0ba610951d5096242ea90a5cfcdb..df9a5ca8c99c43799ff3d1670acf12f930eb4406
@@@ -336,45 -336,6 +336,6 @@@ struct tegra_pmc_soc 
        bool has_blink_output;
  };
  
- static const char * const tegra186_reset_sources[] = {
-       "SYS_RESET",
-       "AOWDT",
-       "MCCPLEXWDT",
-       "BPMPWDT",
-       "SCEWDT",
-       "SPEWDT",
-       "APEWDT",
-       "BCCPLEXWDT",
-       "SENSOR",
-       "AOTAG",
-       "VFSENSOR",
-       "SWREST",
-       "SC7",
-       "HSM",
-       "CORESIGHT"
- };
- static const char * const tegra186_reset_levels[] = {
-       "L0", "L1", "L2", "WARM"
- };
- static const char * const tegra30_reset_sources[] = {
-       "POWER_ON_RESET",
-       "WATCHDOG",
-       "SENSOR",
-       "SW_MAIN",
-       "LP0"
- };
- static const char * const tegra210_reset_sources[] = {
-       "POWER_ON_RESET",
-       "WATCHDOG",
-       "SENSOR",
-       "SW_MAIN",
-       "LP0",
-       "AOTAG"
- };
  /**
   * struct tegra_pmc - NVIDIA Tegra PMC
   * @dev: pointer to PMC device structure
@@@ -1990,17 -1951,44 +1951,17 @@@ static int tegra_pmc_irq_alloc(struct i
                                                            event->id,
                                                            &pmc->irq, pmc);
  
 -                      /*
 -                       * GPIOs don't have an equivalent interrupt in the
 -                       * parent controller (GIC). However some code, such
 -                       * as the one in irq_get_irqchip_state(), require a
 -                       * valid IRQ chip to be set. Make sure that's the
 -                       * case by passing NULL here, which will install a
 -                       * dummy IRQ chip for the interrupt in the parent
 -                       * domain.
 -                       */
 -                      if (domain->parent)
 -                              irq_domain_set_hwirq_and_chip(domain->parent,
 -                                                            virq, 0, NULL,
 -                                                            NULL);
 -
 +                      /* GPIO hierarchies stop at the PMC level */
 +                      if (!err && domain->parent)
 +                              err = irq_domain_disconnect_hierarchy(domain->parent,
 +                                                                    virq);
                        break;
                }
        }
  
 -      /*
 -       * For interrupts that don't have associated wake events, assign a
 -       * dummy hardware IRQ number. This is used in the ->irq_set_type()
 -       * and ->irq_set_wake() callbacks to return early for these IRQs.
 -       */
 -      if (i == soc->num_wake_events) {
 -              err = irq_domain_set_hwirq_and_chip(domain, virq, ULONG_MAX,
 -                                                  &pmc->irq, pmc);
 -
 -              /*
 -               * Interrupts without a wake event don't have a corresponding
 -               * interrupt in the parent controller (GIC). Pass NULL for the
 -               * chip here, which causes a dummy IRQ chip to be installed
 -               * for the interrupt in the parent domain, to make this
 -               * explicit.
 -               */
 -              if (domain->parent)
 -                      irq_domain_set_hwirq_and_chip(domain->parent, virq, 0,
 -                                                    NULL, NULL);
 -      }
 +      /* If there is no wake-up event, there is no PMC mapping */
 +      if (i == soc->num_wake_events)
 +              err = irq_domain_disconnect_hierarchy(domain, virq);
  
        return err;
  }
@@@ -2016,6 -2004,9 +1977,6 @@@ static int tegra210_pmc_irq_set_wake(st
        unsigned int offset, bit;
        u32 value;
  
 -      if (data->hwirq == ULONG_MAX)
 -              return 0;
 -
        offset = data->hwirq / 32;
        bit = data->hwirq % 32;
  
@@@ -2050,6 -2041,9 +2011,6 @@@ static int tegra210_pmc_irq_set_type(st
        unsigned int offset, bit;
        u32 value;
  
 -      if (data->hwirq == ULONG_MAX)
 -              return 0;
 -
        offset = data->hwirq / 32;
        bit = data->hwirq % 32;
  
@@@ -2090,6 -2084,10 +2051,6 @@@ static int tegra186_pmc_irq_set_wake(st
        unsigned int offset, bit;
        u32 value;
  
 -      /* nothing to do if there's no associated wake event */
 -      if (WARN_ON(data->hwirq == ULONG_MAX))
 -              return 0;
 -
        offset = data->hwirq / 32;
        bit = data->hwirq % 32;
  
@@@ -2117,6 -2115,10 +2078,6 @@@ static int tegra186_pmc_irq_set_type(st
        struct tegra_pmc *pmc = irq_data_get_irq_chip_data(data);
        u32 value;
  
 -      /* nothing to do if there's no associated wake event */
 -      if (data->hwirq == ULONG_MAX)
 -              return 0;
 -
        value = readl(pmc->wake + WAKE_AOWAKE_CNTRL(data->hwirq));
  
        switch (type) {
        return 0;
  }
  
 +static void tegra_irq_mask_parent(struct irq_data *data)
 +{
 +      if (data->parent_data)
 +              irq_chip_mask_parent(data);
 +}
 +
 +static void tegra_irq_unmask_parent(struct irq_data *data)
 +{
 +      if (data->parent_data)
 +              irq_chip_unmask_parent(data);
 +}
 +
 +static void tegra_irq_eoi_parent(struct irq_data *data)
 +{
 +      if (data->parent_data)
 +              irq_chip_eoi_parent(data);
 +}
 +
 +static int tegra_irq_set_affinity_parent(struct irq_data *data,
 +                                       const struct cpumask *dest,
 +                                       bool force)
 +{
 +      if (data->parent_data)
 +              return irq_chip_set_affinity_parent(data, dest, force);
 +
 +      return -EINVAL;
 +}
 +
  static int tegra_pmc_irq_init(struct tegra_pmc *pmc)
  {
        struct irq_domain *parent = NULL;
                return 0;
  
        pmc->irq.name = dev_name(pmc->dev);
 -      pmc->irq.irq_mask = irq_chip_mask_parent;
 -      pmc->irq.irq_unmask = irq_chip_unmask_parent;
 -      pmc->irq.irq_eoi = irq_chip_eoi_parent;
 -      pmc->irq.irq_set_affinity = irq_chip_set_affinity_parent;
 +      pmc->irq.irq_mask = tegra_irq_mask_parent;
 +      pmc->irq.irq_unmask = tegra_irq_unmask_parent;
 +      pmc->irq.irq_eoi = tegra_irq_eoi_parent;
 +      pmc->irq.irq_set_affinity = tegra_irq_set_affinity_parent;
        pmc->irq.irq_set_type = pmc->soc->irq_set_type;
        pmc->irq.irq_set_wake = pmc->soc->irq_set_wake;
  
@@@ -2216,7 -2190,7 +2177,7 @@@ static int tegra_pmc_clk_notify_cb(stru
  
        case POST_RATE_CHANGE:
                pmc->rate = data->new_rate;
 -              /* fall through */
 +              fallthrough;
  
        case ABORT_RATE_CHANGE:
                mutex_unlock(&pmc->powergates_lock);
@@@ -2771,6 -2745,14 +2732,14 @@@ static const u8 tegra30_cpu_powergates[
        TEGRA_POWERGATE_CPU3,
  };
  
+ static const char * const tegra30_reset_sources[] = {
+       "POWER_ON_RESET",
+       "WATCHDOG",
+       "SENSOR",
+       "SW_MAIN",
+       "LP0"
+ };
  static const struct tegra_pmc_soc tegra30_pmc_soc = {
        .num_powergates = ARRAY_SIZE(tegra30_powergates),
        .powergates = tegra30_powergates,
@@@ -3048,6 -3030,15 +3017,15 @@@ static const struct pinctrl_pin_desc te
        TEGRA210_IO_PAD_TABLE(TEGRA_IO_PIN_DESC)
  };
  
+ static const char * const tegra210_reset_sources[] = {
+       "POWER_ON_RESET",
+       "WATCHDOG",
+       "SENSOR",
+       "SW_MAIN",
+       "LP0",
+       "AOTAG"
+ };
  static const struct tegra_wake_event tegra210_wake_events[] = {
        TEGRA_WAKE_IRQ("rtc", 16, 2),
        TEGRA_WAKE_IRQ("pmu", 51, 86),
@@@ -3180,6 -3171,28 +3158,28 @@@ static void tegra186_pmc_setup_irq_pola
        iounmap(wake);
  }
  
+ static const char * const tegra186_reset_sources[] = {
+       "SYS_RESET",
+       "AOWDT",
+       "MCCPLEXWDT",
+       "BPMPWDT",
+       "SCEWDT",
+       "SPEWDT",
+       "APEWDT",
+       "BCCPLEXWDT",
+       "SENSOR",
+       "AOTAG",
+       "VFSENSOR",
+       "SWREST",
+       "SC7",
+       "HSM",
+       "CORESIGHT"
+ };
+ static const char * const tegra186_reset_levels[] = {
+       "L0", "L1", "L2", "WARM"
+ };
  static const struct tegra_wake_event tegra186_wake_events[] = {
        TEGRA_WAKE_IRQ("pmu", 24, 209),
        TEGRA_WAKE_GPIO("power", 29, 1, TEGRA186_AON_GPIO(FF, 0)),
@@@ -3349,7 -3362,75 +3349,75 @@@ static const struct tegra_pmc_soc tegra
        .has_blink_output = false,
  };
  
+ static const struct tegra_pmc_regs tegra234_pmc_regs = {
+       .scratch0 = 0x2000,
+       .dpd_req = 0,
+       .dpd_status = 0,
+       .dpd2_req = 0,
+       .dpd2_status = 0,
+       .rst_status = 0x70,
+       .rst_source_shift = 0x2,
+       .rst_source_mask = 0xfc,
+       .rst_level_shift = 0x0,
+       .rst_level_mask = 0x3,
+ };
+ static const char * const tegra234_reset_sources[] = {
+       "SYS_RESET_N",
+       "AOWDT",
+       "BCCPLEXWDT",
+       "BPMPWDT",
+       "SCEWDT",
+       "SPEWDT",
+       "APEWDT",
+       "LCCPLEXWDT",
+       "SENSOR",
+       "AOTAG",
+       "VFSENSOR",
+       "MAINSWRST",
+       "SC7",
+       "HSM",
+       "CSITE",
+       "RCEWDT",
+       "PVA0WDT",
+       "PVA1WDT",
+       "L1A_ASYNC",
+       "BPMPBOOT",
+       "FUSECRC",
+ };
+ static const struct tegra_pmc_soc tegra234_pmc_soc = {
+       .num_powergates = 0,
+       .powergates = NULL,
+       .num_cpu_powergates = 0,
+       .cpu_powergates = NULL,
+       .has_tsense_reset = false,
+       .has_gpu_clamps = false,
+       .needs_mbist_war = false,
+       .has_impl_33v_pwr = true,
+       .maybe_tz_only = false,
+       .num_io_pads = 0,
+       .io_pads = NULL,
+       .num_pin_descs = 0,
+       .pin_descs = NULL,
+       .regs = &tegra234_pmc_regs,
+       .init = NULL,
+       .setup_irq_polarity = tegra186_pmc_setup_irq_polarity,
+       .irq_set_wake = tegra186_pmc_irq_set_wake,
+       .irq_set_type = tegra186_pmc_irq_set_type,
+       .reset_sources = tegra234_reset_sources,
+       .num_reset_sources = ARRAY_SIZE(tegra234_reset_sources),
+       .reset_levels = tegra186_reset_levels,
+       .num_reset_levels = ARRAY_SIZE(tegra186_reset_levels),
+       .num_wake_events = 0,
+       .wake_events = NULL,
+       .pmc_clks_data = NULL,
+       .num_pmc_clks = 0,
+       .has_blink_output = false,
+ };
  static const struct of_device_id tegra_pmc_match[] = {
+       { .compatible = "nvidia,tegra234-pmc", .data = &tegra234_pmc_soc },
        { .compatible = "nvidia,tegra194-pmc", .data = &tegra194_pmc_soc },
        { .compatible = "nvidia,tegra186-pmc", .data = &tegra186_pmc_soc },
        { .compatible = "nvidia,tegra210-pmc", .data = &tegra210_pmc_soc },
diff --combined drivers/soc/ti/Makefile
index 5463431ec96c8a977a3493800e553b0b0da06aae,18129aa557df800d405d7339841ddcca9cdea7ea..cc3c972fad2edd1bd92886a6f1bf20b611f6bdfe
@@@ -12,4 -12,4 +12,5 @@@ obj-$(CONFIG_TI_SCI_PM_DOMAINS)               += ti_
  obj-$(CONFIG_TI_SCI_INTA_MSI_DOMAIN)  += ti_sci_inta_msi.o
  obj-$(CONFIG_TI_K3_RINGACC)           += k3-ringacc.o
  obj-$(CONFIG_TI_K3_SOCINFO)           += k3-socinfo.o
+ obj-$(CONFIG_TI_PRUSS)                        += pruss.o
 +obj-$(CONFIG_POWER_AVS_OMAP)          += smartreflex.o
index 1c31f26ccc7a5eada9a768c9c29cf61220bc0060,ae4a8a766b690182fd5150506416776ce21b2d94..f7bbea3f09ca9ed856f02d19bda22ef840a32eb2
@@@ -248,9 -248,6 +248,9 @@@ struct geni_se 
  #define GENI_SE_VERSION_MINOR(ver) ((ver & HW_VER_MINOR_MASK) >> HW_VER_MINOR_SHFT)
  #define GENI_SE_VERSION_STEP(ver) (ver & HW_VER_STEP_MASK)
  
 +/* QUP SE VERSION value for major number 2 and minor number 5 */
 +#define QUP_SE_VERSION_2_5                  0x20050000
 +
  /*
   * Define bandwidth thresholds that cause the underlying Core 2X interconnect
   * clock to run at the named frequency. These baseline values are recommended
@@@ -299,7 -296,7 +299,7 @@@ static inline void geni_se_setup_m_cmd(
        u32 m_cmd;
  
        m_cmd = (cmd << M_OPCODE_SHFT) | (params & M_PARAMS_MSK);
-       writel_relaxed(m_cmd, se->base + SE_GENI_M_CMD0);
+       writel(m_cmd, se->base + SE_GENI_M_CMD0);
  }
  
  /**
@@@ -319,7 -316,7 +319,7 @@@ static inline void geni_se_setup_s_cmd(
        s_cmd &= ~(S_OPCODE_MSK | S_PARAMS_MSK);
        s_cmd |= (cmd << S_OPCODE_SHFT);
        s_cmd |= (params & S_PARAMS_MSK);
-       writel_relaxed(s_cmd, se->base + SE_GENI_S_CMD0);
+       writel(s_cmd, se->base + SE_GENI_S_CMD0);
  }
  
  /**
This page took 0.329947 seconds and 4 git commands to generate.