]> Git Repo - linux.git/commitdiff
Merge tag 'arm-soc-drivers-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <[email protected]>
Thu, 17 Dec 2020 00:38:41 +0000 (16:38 -0800)
committerLinus Torvalds <[email protected]>
Thu, 17 Dec 2020 00:38:41 +0000 (16:38 -0800)
Pull ARM SoC driver updates from Arnd Bergmann:
 "There are a couple of subsystems maintained by other people that merge
  their drivers through the SoC tree, those changes include:

   - The SCMI firmware framework gains support for sensor notifications
     and for controlling voltage domains.

   - A large update for the Tegra memory controller driver, integrating
     it better with the interconnect framework

   - The memory controller subsystem gains support for Mediatek MT8192

   - The reset controller framework gains support for sharing pulsed
     resets

  For Soc specific drivers in drivers/soc, the main changes are

   - The Allwinner/sunxi MBUS gets a rework for the way it handles
     dma_map_ops and offsets between physical and dma address spaces.

   - An errata fix plus some cleanups for Freescale Layerscape SoCs

   - A cleanup for renesas drivers regarding MMIO accesses.

   - New SoC specific drivers for Mediatek MT8192 and MT8183 power
     domains

   - New SoC specific drivers for Aspeed AST2600 LPC bus control and SoC
     identification.

   - Core Power Domain support for Qualcomm MSM8916, MSM8939, SDM660 and
     SDX55.

   - A rework of the TI AM33xx 'genpd' power domain support to use
     information from DT instead of platform data

   - Support for TI AM64x SoCs

   - Allow building some Amlogic drivers as modules instead of built-in

  Finally, there are numerous cleanups and smaller bug fixes for
  Mediatek, Tegra, Samsung, Qualcomm, TI OMAP, Amlogic, Rockchips,
  Renesas, and Xilinx SoCs"

* tag 'arm-soc-drivers-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (222 commits)
  soc: mediatek: mmsys: Specify HAS_IOMEM dependency for MTK_MMSYS
  firmware: xilinx: Properly align function parameter
  firmware: xilinx: Add a blank line after function declaration
  firmware: xilinx: Remove additional newline
  firmware: xilinx: Fix kernel-doc warnings
  firmware: xlnx-zynqmp: fix compilation warning
  soc: xilinx: vcu: add missing register NUM_CORE
  soc: xilinx: vcu: use vcu-settings syscon registers
  dt-bindings: soc: xlnx: extract xlnx, vcu-settings to separate binding
  soc: xilinx: vcu: drop useless success message
  clk: samsung: mark PM functions as __maybe_unused
  soc: samsung: exynos-chipid: initialize later - with arch_initcall
  soc: samsung: exynos-chipid: order list of SoCs by name
  memory: jz4780_nemc: Fix potential NULL dereference in jz4780_nemc_probe()
  memory: ti-emif-sram: only build for ARMv7
  memory: tegra30: Support interconnect framework
  memory: tegra20: Support hardware versioning and clean up OPP table initialization
  dt-bindings: memory: tegra20-emc: Document opp-supported-hw property
  soc: rockchip: io-domain: Fix error return code in rockchip_iodomain_probe()
  reset-controller: ti: force the write operation when assert or deassert
  ...

14 files changed:
1  2 
Documentation/admin-guide/kernel-parameters.txt
MAINTAINERS
arch/arm/boot/dts/aspeed-g6.dtsi
drivers/bus/ti-sysc.c
drivers/firmware/xilinx/zynqmp.c
drivers/gpu/drm/mediatek/mtk_drm_crtc.c
drivers/reset/Kconfig
drivers/soc/fsl/qbman/qman.c
drivers/staging/media/sunxi/cedrus/cedrus.c
drivers/staging/media/sunxi/cedrus/cedrus.h
drivers/staging/media/sunxi/cedrus/cedrus_hw.c
include/linux/dma-mapping.h
include/linux/firmware/xlnx-zynqmp.h
include/linux/scmi_protocol.h

index a28982dfee6ef6ab110b714d54ed3624de25cfb5,bd512b70286d60b22a30775036514a09098bb0d5..d24336109c2e6bf1dee39075f34572667b992b38
                        Note that using this option lowers the security
                        provided by tboot because it makes the system
                        vulnerable to DMA attacks.
 -              nobounce [Default off]
 -                      Disable bounce buffer for untrusted devices such as
 -                      the Thunderbolt devices. This will treat the untrusted
 -                      devices as the trusted ones, hence might expose security
 -                      risks of DMA attacks.
  
        intel_idle.max_cstate=  [KNL,HW,ACPI,X86]
                        0       disables intel_idle and fall back on acpi_idle.
                        option description.
  
        memmap=nn[KMG]@ss[KMG]
 -                      [KNL] Force usage of a specific region of memory.
 +                      [KNL, X86, MIPS, XTENSA] Force usage of a specific region of memory.
                        Region of memory to be used is from ss to ss+nn.
                        If @ss[KMG] is omitted, it is equivalent to mem=nn[KMG],
                        which limits max address to nn[KMG].
                                               mds=off [X86]
                                               tsx_async_abort=off [X86]
                                               kvm.nx_huge_pages=off [X86]
 +                                             no_entry_flush [PPC]
 +                                             no_uaccess_flush [PPC]
  
                                Exceptions:
                                               This does not have any effect on
        mtdset=         [ARM]
                        ARM/S3C2412 JIVE boot control
  
-                       See arch/arm/mach-s3c2412/mach-jive.c
+                       See arch/arm/mach-s3c/mach-jive.c
  
        mtouchusb.raw_coordinates=
                        [HW] Make the MicroTouch USB driver use raw coordinates
  
        noefi           Disable EFI runtime services support.
  
 +      no_entry_flush  [PPC] Don't flush the L1-D cache when entering the kernel.
 +
        noexec          [IA-64]
  
        noexec          [X86]
        nospec_store_bypass_disable
                        [HW] Disable all mitigations for the Speculative Store Bypass vulnerability
  
 +      no_uaccess_flush
 +                      [PPC] Don't flush the L1-D cache after accessing user data.
 +
        noxsave         [BUGS=X86] Disables x86 extended register state save
                        and restore using xsave. The kernel will fallback to
                        enabling legacy floating-point and sse state.
  
        nosep           [BUGS=X86-32] Disables x86 SYSENTER/SYSEXIT support.
  
 +      nosgx           [X86-64,SGX] Disables Intel SGX kernel support.
 +
        nosmp           [SMP] Tells an SMP kernel to act as a UP kernel,
                        and disable the IO APIC.  legacy for "maxcpus=0".
  
                                        device);
                                j = NO_REPORT_LUNS (don't use report luns
                                        command, uas only);
 +                              k = NO_SAME (do not use WRITE_SAME, uas only)
                                l = NOT_LOCKABLE (don't try to lock and
                                        unlock ejectable media, not on uas);
                                m = MAX_SECTORS_64 (don't transfer more
diff --combined MAINTAINERS
index 4ae724ec404a007b8a37c128b92a73210aab371c,211f41435cc0f7693a7c8c635dd73b86975ba42d..f59ebd1eda3de212913e4364da13d03bae8d67e5
@@@ -929,18 -929,12 +929,18 @@@ L:      [email protected]
  S:    Maintained
  F:    drivers/i2c/busses/i2c-amd-mp2*
  
 +AMD PMC DRIVER
 +M:    Shyam Sundar S K <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/amd-pmc.*
 +
  AMD POWERPLAY
  M:    Evan Quan <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://people.freedesktop.org/~agd5f/linux
 -F:    drivers/gpu/drm/amd/powerplay/
 +F:    drivers/gpu/drm/amd/pm/powerplay/
  
  AMD SEATTLE DEVICE TREE SUPPORT
  M:    Brijesh Singh <[email protected]>
@@@ -956,14 -950,6 +956,14 @@@ S:       Supporte
  F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
  F:    drivers/net/ethernet/amd/xgbe/
  
 +AMD SENSOR FUSION HUB DRIVER
 +M:    Nehal Shah <[email protected]>
 +M:    Sandeep Singh <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hid/amd-sfh*
 +F:    drivers/hid/amd-sfh-hid/
 +
  AMS AS73211 DRIVER
  M:    Christian Eggers <[email protected]>
  L:    [email protected]
@@@ -992,7 -978,7 +992,7 @@@ M: Michael Hennerich <Michael.Hennerich
  L:    [email protected]
  S:    Supported
  W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.txt
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.yaml
  F:    drivers/iio/adc/ad7768-1.c
  
  ANALOG DEVICES INC AD7780 DRIVER
@@@ -1087,7 -1073,6 +1087,7 @@@ M:      Hans Verkuil <hverkuil-cisco@xs4all.
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/i2c/adv7604*
 +F:    Documentation/devicetree/bindings/media/i2c/adv7604.yaml
  
  ANALOG DEVICES INC ADV7842 DRIVER
  M:    Hans Verkuil <[email protected]>
@@@ -1188,6 -1173,16 +1188,6 @@@ S:     Supporte
  F:    Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt
  F:    drivers/rtc/rtc-goldfish.c
  
 -ANDROID ION DRIVER
 -M:    Laura Abbott <[email protected]>
 -M:    Sumit Semwal <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 -F:    drivers/staging/android/ion
 -F:    drivers/staging/android/uapi/ion.h
 -
  AOA (Apple Onboard Audio) ALSA DRIVER
  M:    Johannes Berg <[email protected]>
  L:    [email protected]
@@@ -1284,7 -1279,7 +1284,7 @@@ M:      Igor Russkikh <[email protected]
  L:    [email protected]
  S:    Supported
  W:    https://www.marvell.com/
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    Documentation/networking/device_drivers/ethernet/aquantia/atlantic.rst
  F:    drivers/net/ethernet/aquantia/atlantic/
  
@@@ -1491,20 -1486,10 +1491,20 @@@ F:   Documentation/devicetree/bindings/io
  F:    drivers/iommu/arm/
  F:    drivers/iommu/io-pgtable-arm*
  
 +ARM AND ARM64 SoC SUB-ARCHITECTURES (COMMON PARTS)
 +M:    Arnd Bergmann <[email protected]>
 +M:    Olof Johansson <[email protected]>
 +M:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
 +F:    arch/arm/boot/dts/Makefile
 +F:    arch/arm64/boot/dts/Makefile
 +
  ARM SUB-ARCHITECTURES
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
  F:    arch/arm/mach-*/
  F:    arch/arm/plat-*/
  
@@@ -1516,7 -1501,7 +1516,7 @@@ S:      Maintaine
  F:    Documentation/devicetree/bindings/arm/actions.yaml
  F:    Documentation/devicetree/bindings/clock/actions,owl-cmu.txt
  F:    Documentation/devicetree/bindings/dma/owl-dma.yaml
 -F:    Documentation/devicetree/bindings/i2c/i2c-owl.txt
 +F:    Documentation/devicetree/bindings/i2c/i2c-owl.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/actions,owl-sirq.yaml
  F:    Documentation/devicetree/bindings/mmc/owl-mmc.yaml
  F:    Documentation/devicetree/bindings/pinctrl/actions,*
@@@ -1561,7 -1546,6 +1561,7 @@@ F:      drivers/clk/sunxi
  ARM/Allwinner sunXi SoC support
  M:    Maxime Ripard <[email protected]>
  M:    Chen-Yu Tsai <[email protected]>
 +R:    Jernej Skrabec <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git
@@@ -1739,13 -1723,11 +1739,13 @@@ F:   arch/arm/mach-ep93xx/micro9.
  
  ARM/CORESIGHT FRAMEWORK AND DRIVERS
  M:    Mathieu Poirier <[email protected]>
 -R:    Suzuki K Poulose <[email protected]>
 +M:    Suzuki K Poulose <[email protected]>
  R:    Mike Leach <[email protected]>
 +R:    Leo Yan <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
  F:    Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
  F:    Documentation/devicetree/bindings/arm/coresight-cti.yaml
@@@ -1807,6 -1789,14 +1807,6 @@@ F:     drivers/firmware/turris-mox-rwtm.
  F:    drivers/gpio/gpio-moxtet.c
  F:    include/linux/moxtet.h
  
 -ARM/EBSA110 MACHINE SUPPORT
 -M:    Russell King <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -W:    http://www.armlinux.org.uk/
 -F:    arch/arm/mach-ebsa110/
 -F:    drivers/net/ethernet/amd/am79c961a.*
 -
  ARM/ENERGY MICRO (SILICON LABS) EFM32 SUPPORT
  M:    Uwe Kleine-König <[email protected]>
  R:    Pengutronix Kernel Team <[email protected]>
@@@ -2004,6 -1994,7 +2004,6 @@@ N:      lpc18x
  
  ARM/LPC32XX SOC SUPPORT
  M:    Vladimir Zapolskiy <[email protected]>
 -M:    Sylvain Lemieux <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/vzapolskiy/linux-lpc32xx.git
@@@ -2021,12 -2012,13 +2021,12 @@@ M:   Philipp Zabel <[email protected]
  S:    Maintained
  
  ARM/Marvell Dove/MV78xx0/Orion SOC support
 -M:    Jason Cooper <[email protected]>
  M:    Andrew Lunn <[email protected]>
  M:    Sebastian Hesselbarth <[email protected]>
  M:    Gregory Clement <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.infradead.org/linux-mvebu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu.git
  F:    Documentation/devicetree/bindings/soc/dove/
  F:    arch/arm/boot/dts/dove*
  F:    arch/arm/boot/dts/orion5x*
@@@ -2037,12 -2029,13 +2037,12 @@@ F:   arch/arm/plat-orion
  F:    drivers/soc/dove/
  
  ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K, CN9130 SOC support
 -M:    Jason Cooper <[email protected]>
  M:    Andrew Lunn <[email protected]>
  M:    Gregory Clement <[email protected]>
  M:    Sebastian Hesselbarth <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.infradead.org/linux-mvebu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu.git
  F:    arch/arm/boot/dts/armada*
  F:    arch/arm/boot/dts/kirkwood*
  F:    arch/arm/configs/mvebu_*_defconfig
@@@ -2074,7 -2067,7 +2074,7 @@@ M:      Matthias Brugger <matthias.bgg@gmail
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
- W:    https://mtk.bcnfs.org/
+ W:    https://mtk.wiki.kernel.org/
  C:    irc://chat.freenode.net/linux-mediatek
  F:    arch/arm/boot/dts/mt6*
  F:    arch/arm/boot/dts/mt7*
  S:    Supported
  T:    git git://github.com/microchip-ung/linux-upstream.git
  F:    arch/arm64/boot/dts/microchip/
 +F:    drivers/pinctrl/pinctrl-microchip-sgpio.c
  N:    sparx5
  
 +Microchip Timer Counter Block (TCB) Capture Driver
 +M:    Kamel Bouhara <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/counter/microchip-tcb-capture.c
 +
  ARM/MIOA701 MACHINE SUPPORT
  M:    Robert Jarzmik <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -2148,7 -2133,6 +2148,7 @@@ W:      http://linux-chenxing.org
  F:    Documentation/devicetree/bindings/arm/mstar/*
  F:    arch/arm/boot/dts/mstar-*
  F:    arch/arm/mach-mstar/
 +F:    include/dt-bindings/gpio/msc313-gpio.h
  
  ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
  M:    Michael Petchkovsky <[email protected]>
@@@ -2390,7 -2374,7 +2390,7 @@@ F:      drivers/i2c/busses/i2c-rk3x.
  F:    sound/soc/rockchip/
  N:    rockchip
  
 -ARM/SAMSUNG EXYNOS ARM ARCHITECTURES
 +ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
@@@ -2419,7 -2403,15 +2419,7 @@@ N:     s3c241
  N:    s3c64xx
  N:    s5pv210
  
 -ARM/SAMSUNG MOBILE MACHINE SUPPORT
 -M:    Kyungmin Park <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -F:    arch/arm/mach-s5pv210/
 -
  ARM/SAMSUNG S5P SERIES 2D GRAPHICS ACCELERATION (G2D) SUPPORT
 -M:    Kyungmin Park <[email protected]>
 -M:    Kamil Debski <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -2444,6 -2436,9 +2444,6 @@@ S:      Maintaine
  F:    drivers/media/platform/s5p-jpeg/
  
  ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
 -M:    Kyungmin Park <[email protected]>
 -M:    Kamil Debski <[email protected]>
 -M:    Jeongtae Park <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -2490,7 -2485,7 +2490,7 @@@ F:      drivers/clk/socfpga
  ARM/SOCFPGA EDAC SUPPORT
  M:    Dinh Nguyen <[email protected]>
  S:    Maintained
 -F:    drivers/edac/altera_edac.
 +F:    drivers/edac/altera_edac.[ch]
  
  ARM/SPREADTRUM SoC SUPPORT
  M:    Orson Zhai <[email protected]>
@@@ -2968,7 -2963,7 +2968,7 @@@ ATMEL MAXTOUCH DRIVE
  M:    Nick Dyer <[email protected]>
  S:    Maintained
  T:    git git://github.com/ndyer/linux.git
 -F:    Documentation/devicetree/bindings/input/atmel,maxtouch.txt
 +F:    Documentation/devicetree/bindings/input/atmel,maxtouch.yaml
  F:    drivers/input/touchscreen/atmel_mxt_ts.c
  
  ATMEL WIRELESS DRIVER
@@@ -2987,8 -2982,6 +2987,8 @@@ L:      [email protected]
  S:    Maintained
  F:    arch/*/include/asm/atomic*.h
  F:    include/*/atomic*.h
 +F:    include/linux/refcount.h
 +F:    Documentation/atomic_*.txt
  F:    scripts/atomic/
  
  ATTO EXPRESSSAS SAS/SATA RAID SCSI DRIVER
@@@ -3127,6 -3120,8 +3127,6 @@@ Q:      https://patchwork.open-mesh.org/proj
  B:    https://www.open-mesh.org/projects/batman-adv/issues
  C:    irc://chat.freenode.net/batman
  T:    git https://git.open-mesh.org/linux-merge.git
 -F:    Documentation/ABI/obsolete/sysfs-class-net-batman-adv
 -F:    Documentation/ABI/obsolete/sysfs-class-net-mesh
  F:    Documentation/networking/batman-adv.rst
  F:    include/uapi/linux/batadv_packet.h
  F:    include/uapi/linux/batman_adv.h
@@@ -3210,9 -3205,8 +3210,9 @@@ F:      drivers/mtd/devices/block2mtd.
  BLUETOOTH DRIVERS
  M:    Marcel Holtmann <[email protected]>
  M:    Johan Hedberg <[email protected]>
 +M:    Luiz Augusto von Dentz <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  W:    http://www.bluez.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
@@@ -3221,9 -3215,8 +3221,9 @@@ F:      drivers/bluetooth
  BLUETOOTH SUBSYSTEM
  M:    Marcel Holtmann <[email protected]>
  M:    Johan Hedberg <[email protected]>
 +M:    Luiz Augusto von Dentz <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  W:    http://www.bluez.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
@@@ -3250,12 -3243,12 +3250,12 @@@ F:   drivers/iio/accel/bma400
  BPF (Safe dynamic programs and tools)
  M:    Alexei Starovoitov <[email protected]>
  M:    Daniel Borkmann <[email protected]>
 +M:    Andrii Nakryiko <[email protected]>
  R:    Martin KaFai Lau <[email protected]>
  R:    Song Liu <[email protected]>
  R:    Yonghong Song <[email protected]>
 -R:    Andrii Nakryiko <[email protected]>
  R:    John Fastabend <[email protected]>
 -R:    KP Singh <kpsingh@chromium.org>
 +R:    KP Singh <kpsingh@kernel.org>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -3373,17 -3366,6 +3373,17 @@@ S:    Supporte
  F:    arch/x86/net/
  X:    arch/x86/net/bpf_jit_comp32.c
  
 +BPF LSM (Security Audit and Enforcement using BPF)
 +M:    KP Singh <[email protected]>
 +R:    Florent Revest <[email protected]>
 +R:    Brendan Jackman <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/bpf/bpf_lsm.rst
 +F:    include/linux/bpf_lsm.h
 +F:    kernel/bpf/bpf_lsm.c
 +F:    security/bpf/
 +
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <[email protected]>
  L:    [email protected]
@@@ -3395,7 -3377,7 +3395,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:    Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
  F:    drivers/net/dsa/b53/*
  F:    include/linux/platform_data/b53.h
  
@@@ -3556,12 -3538,11 +3556,12 @@@ BROADCOM BRCM80211 IEEE802.11n WIRELES
  M:    Arend van Spriel <[email protected]>
  M:    Franky Lin <[email protected]>
  M:    Hante Meuleman <[email protected]>
 -M:    Chi-Hsien Lin <[email protected]>
 -M:    Wright Feng <[email protected]>
 +M:    Chi-hsien Lin <[email protected]>
 +M:    Wright Feng <[email protected]>
 +M:    Chung-hsien Hsu <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -L:    brcm80211-dev-list@cypress.com
 +L:    SHA-cyfmac-dev-list@infineon.com
  S:    Supported
  F:    drivers/net/wireless/broadcom/brcm80211/
  
@@@ -3588,14 -3569,6 +3588,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml
  F:    drivers/usb/host/ehci-brcm.*
  
 +BROADCOM BRCMSTB USB PIN MAP DRIVER
 +M:    Al Cooper <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/usb/brcm,usb-pinmap.yaml
 +F:    drivers/usb/misc/brcmstb-usb-pinmap.c
 +
  BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER
  M:    Al Cooper <[email protected]>
  L:    [email protected]
@@@ -3881,11 -3854,10 +3881,11 @@@ CADENCE USB3 DRD IP DRIVE
  M:    Peter Chen <[email protected]>
  M:    Pawel Laszczak <[email protected]>
  M:    Roger Quadros <[email protected]>
 +R:    Aswath Govindraju <[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:    Documentation/devicetree/bindings/usb/cdns,usb3.yaml
  F:    drivers/usb/cdns3/
  
  CADET FM/AM RADIO RECEIVER DRIVER
@@@ -3897,8 -3869,9 +3897,8 @@@ T:      git git://linuxtv.org/media_tree.gi
  F:    drivers/media/radio/radio-cadet*
  
  CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
 -M:    Jonathan Corbet <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/admin-guide/media/cafe_ccic*
  F:    drivers/media/platform/marvell-ccic/
@@@ -4311,7 -4284,6 +4311,7 @@@ B:      https://github.com/ClangBuiltLinux/l
  C:    irc://chat.freenode.net/clangbuiltlinux
  F:    Documentation/kbuild/llvm.rst
  F:    scripts/clang-tools/
 +F:    scripts/lld-version.sh
  K:    \b(?i:clang|llvm)\b
  
  CLEANCACHE API
@@@ -4379,7 -4351,7 +4379,7 @@@ CODA V4L2 MEM2MEM DRIVE
  M:    Philipp Zabel <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/media/coda.txt
 +F:    Documentation/devicetree/bindings/media/coda.yaml
  F:    drivers/media/platform/coda/
  
  CODE OF CONDUCT
  S:    Maintained
  F:    drivers/hwmon/corsair-cpro.c
  
 +CORSAIR-PSU HARDWARE MONITOR DRIVER
 +M:    Wilken Gottwalt <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/corsair-psu.rst
 +F:    drivers/hwmon/corsair-psu.c
 +
  COSA/SRP SYNC SERIAL DRIVER
  M:    Jan "Yenya" Kasprzak <[email protected]>
  S:    Maintained
@@@ -4745,7 -4710,7 +4745,7 @@@ T:      git git://linuxtv.org/anttip/media_t
  F:    drivers/media/dvb-frontends/cxd2820r*
  
  CXGB3 ETHERNET DRIVER (CXGB3)
 -M:    Vishal Kulkarni <vishal@chelsio.com>
 +M:    Raju Rangoju <rajur@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -4777,7 -4742,7 +4777,7 @@@ W:      http://www.chelsio.co
  F:    drivers/net/ethernet/chelsio/inline_crypto/
  
  CXGB4 ETHERNET DRIVER (CXGB4)
 -M:    Vishal Kulkarni <vishal@chelsio.com>
 +M:    Raju Rangoju <rajur@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -4799,7 -4764,7 +4799,7 @@@ F:      drivers/infiniband/hw/cxgb4
  F:    include/uapi/rdma/cxgb4-abi.h
  
  CXGB4VF ETHERNET DRIVER (CXGB4VF)
 -M:    Vishal Kulkarni <vishal@gmail.com>
 +M:    Raju Rangoju <rajur@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -5023,15 -4988,6 +5023,15 @@@ M:    Mario Limonciello <mario.limonciello
  S:    Maintained
  F:    drivers/platform/x86/dell-wmi-descriptor.c
  
 +DELL WMI SYSMAN DRIVER
 +M:    Divya Bharathi <[email protected]>
 +M:    Mario Limonciello <[email protected]>
 +M:    Prasanth Ksr <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-class-firmware-attributes
 +F:    drivers/platform/x86/dell-wmi-sysman/
 +
  DELL WMI NOTIFICATIONS DRIVER
  M:    Matthew Garrett <[email protected]>
  M:    Pali Rohár <[email protected]>
@@@ -5161,9 -5117,7 +5161,9 @@@ M:      Support Opensource <support.opensour
  S:    Supported
  W:    http://www.dialog-semiconductor.com/products
  F:    Documentation/devicetree/bindings/input/da90??-onkey.txt
 +F:    Documentation/devicetree/bindings/input/dlg,da72??.txt
  F:    Documentation/devicetree/bindings/mfd/da90*.txt
 +F:    Documentation/devicetree/bindings/regulator/dlg,da9*.yaml
  F:    Documentation/devicetree/bindings/regulator/da92*.txt
  F:    Documentation/devicetree/bindings/regulator/slg51000.txt
  F:    Documentation/devicetree/bindings/sound/da[79]*.txt
@@@ -5173,7 -5127,6 +5173,7 @@@ F:      Documentation/hwmon/da90??.rs
  F:    drivers/gpio/gpio-da90??.c
  F:    drivers/hwmon/da90??-hwmon.c
  F:    drivers/iio/adc/da91??-*.c
 +F:    drivers/input/misc/da72??.[ch]
  F:    drivers/input/misc/da90??_onkey.c
  F:    drivers/input/touchscreen/da9052_tsi.c
  F:    drivers/leds/leds-da90??.c
@@@ -5189,7 -5142,6 +5189,7 @@@ F:      drivers/rtc/rtc-da90??.
  F:    drivers/thermal/da90??-thermal.c
  F:    drivers/video/backlight/da90??_bl.c
  F:    drivers/watchdog/da90??_wdt.c
 +F:    include/dt-bindings/regulator/dlg,da9*-regulator.h
  F:    include/linux/mfd/da903x.h
  F:    include/linux/mfd/da9052/
  F:    include/linux/mfd/da9055/
@@@ -5624,13 -5576,6 +5624,13 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/panel/novatek,nt35510.yaml
  F:    drivers/gpu/drm/panel/panel-novatek-nt35510.c
  
 +DRM DRIVER FOR NOVATEK NT36672A PANELS
 +M:    Sumit Semwal <[email protected]>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml
 +F:    drivers/gpu/drm/panel/panel-novatek-nt36672a.c
 +
  DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS
  M:    Ben Skeggs <[email protected]>
  L:    [email protected]
@@@ -5918,7 -5863,6 +5918,7 @@@ S:      Supporte
  F:    Documentation/devicetree/bindings/display/mediatek/
  F:    drivers/gpu/drm/mediatek/
  F:    drivers/phy/mediatek/phy-mtk-hdmi*
 +F:    drivers/phy/mediatek/phy-mtk-mipi*
  
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <[email protected]>
@@@ -6011,7 -5955,6 +6011,7 @@@ F:      include/uapi/drm/v3d_drm.
  
  DRM DRIVERS FOR VC4
  M:    Eric Anholt <[email protected]>
 +M:    Maxime Ripard <[email protected]>
  S:    Supported
  T:    git git://github.com/anholt/linux
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/edac/ie31200_edac.c
  
 +EDAC-IGEN6
 +M:    Tony Luck <[email protected]>
 +R:    Qiuxu Zhuo <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/edac/igen6_edac.c
 +
  EDAC-MPC85XX
  M:    Johannes Thumshirn <[email protected]>
  L:    [email protected]
@@@ -6462,7 -6398,7 +6462,7 @@@ EDAC-SKYLAK
  M:    Tony Luck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/edac/skx_*.c
 +F:    drivers/edac/skx_*.[ch]
  
  EDAC-TI
  M:    Tero Kristo <[email protected]>
@@@ -6678,7 -6614,6 +6678,7 @@@ Q:      http://patchwork.ozlabs.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git
  F:    Documentation/filesystems/ext4/
  F:    fs/ext4/
 +F:    include/trace/events/ext4.h
  
  Extended Verification Module (EVM)
  M:    Mimi Zohar <[email protected]>
@@@ -6969,10 -6904,17 +6969,10 @@@ S:   Maintaine
  W:    http://floatingpoint.sourceforge.net/emulator/index.html
  F:    arch/x86/math-emu/
  
 -FRAME RELAY DLCI/FRAD (Sangoma drivers too)
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/net/wan/dlci.c
 -F:    drivers/net/wan/sdla.c
 -
  FRAMEBUFFER LAYER
 -M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  Q:    http://patchwork.kernel.org/project/linux-fbdev/list/
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/fb/
@@@ -7349,6 -7291,7 +7349,6 @@@ F:      drivers/staging/gasket
  
  GCC PLUGINS
  M:    Kees Cook <[email protected]>
 -R:    Emese Revfy <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/kbuild/gcc-plugins.rst
@@@ -7390,17 -7333,6 +7390,17 @@@ S:    Maintaine
  F:    drivers/base/arch_topology.c
  F:    include/linux/arch_topology.h
  
 +GENERIC ENTRY CODE
 +M:    Thomas Gleixner <[email protected]>
 +M:    Peter Zijlstra <[email protected]>
 +M:    Andy Lutomirski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/entry
 +F:    include/linux/entry-common.h
 +F:    include/linux/entry-kvm.h
 +F:    kernel/entry/
 +
  GENERIC GPIO I2C DRIVER
  M:    Wolfram Sang <[email protected]>
  S:    Supported
@@@ -7765,9 -7697,9 +7765,9 @@@ F:      drivers/clocksource/h8300_*.
  F:    drivers/irqchip/irq-renesas-h8*.c
  
  HABANALABS PCI DRIVER
 -M:    Oded Gabbay <o[email protected]>
 +M:    Oded Gabbay <o[email protected]>
  S:    Supported
 -T:    git https://github.com/HabanaAI/linux.git
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git
  F:    Documentation/ABI/testing/debugfs-driver-habanalabs
  F:    Documentation/ABI/testing/sysfs-driver-habanalabs
  F:    drivers/misc/habanalabs/
@@@ -7965,15 -7897,6 +7965,15 @@@ F:    include/linux/hippidevice.
  F:    include/uapi/linux/if_hippi.h
  F:    net/802/hippi.c
  
 +HIRSCHMANN HELLCREEK ETHERNET SWITCH DRIVER
 +M:    Kurt Kanzenbach <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
 +F:    drivers/net/dsa/hirschmann/*
 +F:    include/linux/platform_data/hirschmann-hellcreek.h
 +F:    net/dsa/tag_hellcreek.c
 +
  HISILICON DMA DRIVER
  M:    Zhou Wang <[email protected]>
  L:    [email protected]
@@@ -7993,7 -7916,7 +7993,7 @@@ HISILICON LPC BUS DRIVE
  M:    [email protected]
  S:    Maintained
  W:    http://www.hisilicon.com
 -F:    Documentation/devicetree/bindings/arm/hisilicon/hisilicon-low-pin-count.txt
 +F:    Documentation/devicetree/bindings/arm/hisilicon/low-pin-count.yaml
  F:    drivers/bus/hisi_lpc.c
  
  HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
@@@ -8072,7 -7995,7 +8072,7 @@@ F:      drivers/staging/hikey9xx
  HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
  M:    Zaibo Xu <[email protected]>
  S:    Maintained
 -F:    drivers/char/hw_random/hisi-trng-v2.c
 +F:    drivers/crypto/hisilicon/trng/trng.c
  
  HISILICON V3XX SPI NOR FLASH Controller Driver
  M:    John Garry <[email protected]>
@@@ -8700,7 -8623,7 +8700,7 @@@ INA209 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/hwmon/ina2xx.txt
 +F:    Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml
  F:    Documentation/hwmon/ina209.rst
  F:    drivers/hwmon/ina209.c
  
@@@ -8746,16 -8669,19 +8746,16 @@@ F:   include/uapi/rdma
  F:    samples/bpf/ibumad_kern.c
  F:    samples/bpf/ibumad_user.c
  
 -INGENIC JZ4780 DMA Driver
 -M:    Zubair Lutfullah Kakakhel <[email protected]>
 -S:    Maintained
 -F:    drivers/dma/dma-jz4780.c
 -
  INGENIC JZ4780 NAND DRIVER
  M:    Harvey Hunt <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    drivers/mtd/nand/raw/ingenic/
  
  INGENIC JZ47xx SoCs
  M:    Paul Cercueil <[email protected]>
 +L:    [email protected]
  S:    Maintained
  F:    arch/mips/boot/dts/ingenic/
  F:    arch/mips/generic/board-ingenic.c
@@@ -8903,8 -8829,8 +8903,8 @@@ S:      Supporte
  W:    http://www.intel.com/support/feedback.htm
  W:    http://e1000.sourceforge.net/
  Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git
  F:    Documentation/networking/device_drivers/ethernet/intel/
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
@@@ -9028,23 -8954,6 +9028,23 @@@ M:    Deepak Saxena <[email protected]
  S:    Maintained
  F:    drivers/char/hw_random/ixp4xx-rng.c
  
 +INTEL KEEM BAY DRM DRIVER
 +M:    Anitha Chrisanthus <[email protected]>
 +M:    Edmund Dea <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/intel,kmb_display.yaml
 +F:    drivers/gpu/drm/kmb/
 +
 +INTEL KEEM BAY OCS AES/SM4 CRYPTO DRIVER
 +M:    Daniele Alessandrelli <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/crypto/intel,keembay-ocs-aes.yaml
 +F:    drivers/crypto/keembay/Kconfig
 +F:    drivers/crypto/keembay/Makefile
 +F:    drivers/crypto/keembay/keembay-ocs-aes-core.c
 +F:    drivers/crypto/keembay/ocs-aes.c
 +F:    drivers/crypto/keembay/ocs-aes.h
 +
  INTEL MANAGEMENT ENGINE (mei)
  M:    Tomas Winkler <[email protected]>
  L:    [email protected]
@@@ -9092,12 -9001,6 +9092,12 @@@ F:    drivers/mfd/intel_soc_pmic
  F:    include/linux/mfd/intel_msic.h
  F:    include/linux/mfd/intel_soc_pmic*
  
 +INTEL PMT DRIVER
 +M:    "David E. Box" <[email protected]>
 +S:    Maintained
 +F:    drivers/mfd/intel_pmt.c
 +F:    drivers/platform/x86/intel_pmt_*
 +
  INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
  M:    Stanislav Yakovlev <[email protected]>
  L:    [email protected]
@@@ -9173,13 -9076,26 +9173,13 @@@ S:   Supporte
  F:    drivers/net/wireless/intel/iwlegacy/
  
  INTEL WIRELESS WIFI LINK (iwlwifi)
 -M:    Johannes Berg <[email protected]>
 -M:    Emmanuel Grumbach <[email protected]>
  M:    Luca Coelho <[email protected]>
 -M:    Intel Linux Wireless <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git
  F:    drivers/net/wireless/intel/iwlwifi/
  
 -INTEL WIRELESS WIMAX CONNECTION 2400
 -M:    Inaky Perez-Gonzalez <[email protected]>
 -M:    [email protected]
 -L:    [email protected] (subscribers-only)
 -S:    Supported
 -W:    http://linuxwimax.org
 -F:    Documentation/admin-guide/wimax/i2400m.rst
 -F:    drivers/net/wimax/i2400m/
 -F:    include/uapi/linux/wimax/i2400m.h
 -
  INTEL WMI SLIM BOOTLOADER (SBL) FIRMWARE UPDATE DRIVER
  M:    Jithu Joseph <[email protected]>
  R:    Maurice Ma <[email protected]>
@@@ -9209,19 -9125,6 +9209,19 @@@ F:    Documentation/x86/intel_txt.rs
  F:    arch/x86/kernel/tboot.c
  F:    include/linux/tboot.h
  
 +INTEL SGX
 +M:    Jarkko Sakkinen <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +Q:    https://patchwork.kernel.org/project/intel-sgx/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-sgx.git
 +F:    Documentation/x86/sgx.rst
 +F:    arch/x86/entry/vdso/vsgx.S
 +F:    arch/x86/include/uapi/asm/sgx.h
 +F:    arch/x86/kernel/cpu/sgx/*
 +F:    tools/testing/selftests/sgx/*
 +K:    \bSGX_
 +
  INTERCONNECT API
  M:    Georgi Djakov <[email protected]>
  L:    [email protected]
@@@ -9237,7 -9140,7 +9237,7 @@@ INVENSENSE ICM-426xx IMU DRIVE
  M:    Jean-Baptiste Maneyrol <[email protected]>
  L:    [email protected]
  S:    Maintained
 -W     https://invensense.tdk.com/
 +W:    https://invensense.tdk.com/
  F:    Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
  F:    drivers/iio/imu/inv_icm42600/
  
@@@ -9268,7 -9171,6 +9268,7 @@@ F:      include/linux/iomap.
  
  IOMMU DRIVERS
  M:    Joerg Roedel <[email protected]>
 +M:    Will Deacon <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
@@@ -9352,6 -9254,7 +9352,6 @@@ F:      kernel/irq
  
  IRQCHIP DRIVERS
  M:    Thomas Gleixner <[email protected]>
 -M:    Jason Cooper <[email protected]>
  M:    Marc Zyngier <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9717,7 -9620,7 +9717,7 @@@ F:      arch/arm64/kvm
  F:    include/kvm/arm_*
  
  KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
 -M:    Huacai Chen <chenh[email protected]>
 +M:    Huacai Chen <chenh[email protected]>
  M:    Aleksandar Markovic <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -9751,7 -9654,6 +9751,7 @@@ F:      Documentation/virt/kvm/s390
  F:    arch/s390/include/asm/gmap.h
  F:    arch/s390/include/asm/kvm*
  F:    arch/s390/include/uapi/asm/kvm*
 +F:    arch/s390/kernel/uv.c
  F:    arch/s390/kvm/
  F:    arch/s390/mm/gmap.c
  F:    tools/testing/selftests/kvm/*/s390x/
@@@ -9940,6 -9842,13 +9940,6 @@@ S:     Maintaine
  F:    arch/mips/lantiq
  F:    drivers/soc/lantiq
  
 -LAPB module
 -L:    [email protected]
 -S:    Orphan
 -F:    Documentation/networking/lapb-module.rst
 -F:    include/*/lapb.h
 -F:    net/lapb/
 -
  LASI 53c700 driver for PARISC
  M:    "James E.J. Bottomley" <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.mac.linux-m68k.org/
  F:    arch/m68k/mac/
 +F:    drivers/macintosh/adb-iop.c
 +F:    drivers/macintosh/via-macii.c
  
  M68K ON HP9000/300
  M:    Philip Blundell <[email protected]>
@@@ -10569,7 -10476,6 +10569,7 @@@ M:   Srujana Challa <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/crypto/marvell/
 +F:    include/linux/soc/marvell/octeontx2/
  
  MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
  M:    Mirko Lindner <[email protected]>
  S:    Maintained
  F:    drivers/net/ethernet/marvell/mvneta.*
  
 +MARVELL MVPP2 ETHERNET DRIVER
 +M:    Marcin Wojtas <[email protected]>
 +M:    Russell King <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/marvell-pp2.txt
 +F:    drivers/net/ethernet/marvell/mvpp2/
 +
  MARVELL MWIFIEX WIRELESS DRIVER
  M:    Amitkumar Karwar <[email protected]>
  M:    Ganapathi Bhat <[email protected]>
@@@ -10650,7 -10548,6 +10650,7 @@@ M:   hariprasad <[email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/marvell/octeontx2/nic/
 +F:    include/linux/soc/marvell/octeontx2/
  
  MARVELL OCTEONTX2 RVU ADMIN FUNCTION DRIVER
  M:    Sunil Goutham <[email protected]>
@@@ -10662,13 -10559,6 +10662,13 @@@ S: Supporte
  F:    Documentation/networking/device_drivers/ethernet/marvell/octeontx2.rst
  F:    drivers/net/ethernet/marvell/octeontx2/af/
  
 +MARVELL PRESTERA ETHERNET SWITCH DRIVER
 +M:    Vadym Kochan <[email protected]>
 +M:    Taras Chornyi <[email protected]>
 +S:    Supported
 +W:    https://github.com/Marvell-switching/switchdev-prestera
 +F:    drivers/net/ethernet/marvell/prestera/
 +
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
  M:    Nicolas Pitre <[email protected]>
  S:    Odd Fixes
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/admin-guide/media/imx7.rst
 -F:    Documentation/devicetree/bindings/media/imx7-csi.txt
 -F:    Documentation/devicetree/bindings/media/imx7-mipi-csi2.txt
 +F:    Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
 +F:    Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml
  F:    drivers/staging/media/imx/imx7-media-csi.c
  F:    drivers/staging/media/imx/imx7-mipi-csis.c
  
@@@ -11198,12 -11088,6 +11198,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/i2c/i2c-mt7621.txt
  F:    drivers/i2c/busses/i2c-mt7621.c
  
 +MEDIATEK MT7621 PHY PCI DRIVER
 +M:    Sergio Paracuellos <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/phy/mediatek,mt7621-pci-phy.yaml
 +F:    drivers/phy/ralink/phy-mt7621-pci.c
 +
  MEDIATEK NAND CONTROLLER DRIVER
  L:    [email protected]
  S:    Orphan
@@@ -11279,10 -11163,9 +11279,10 @@@ F: Documentation/devicetree/bindings/in
  F:    drivers/input/touchscreen/melfas_mip4.c
  
  MELLANOX BLUEFIELD I2C DRIVER
 -M:    Khalil Blaiech <kblaiech@mellanox.com>
 +M:    Khalil Blaiech <kblaiech@nvidia.com>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
  F:    drivers/i2c/busses/i2c-mlxbf.c
  
  MELLANOX ETHERNET DRIVER (mlx4_en)
@@@ -11290,7 -11173,7 +11290,7 @@@ M:   Tariq Toukan <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx4/en_*
  
  MELLANOX ETHERNET DRIVER (mlx5e)
@@@ -11298,7 -11181,7 +11298,7 @@@ M:   Saeed Mahameed <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_*
  
  MELLANOX ETHERNET INNOVA DRIVERS
@@@ -11306,7 -11189,7 +11306,7 @@@ R:   Boris Pismenny <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx5/core/accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/fpga/*
@@@ -11318,7 -11201,7 +11318,7 @@@ M:   Ido Schimmel <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlxsw/
  F:    tools/testing/selftests/drivers/net/mlxsw/
  
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlxfw/
  
  MELLANOX HARDWARE PLATFORM SUPPORT
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx4/
  F:    include/linux/mlx4/
  
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    Documentation/networking/device_drivers/ethernet/mellanox/
  F:    drivers/net/ethernet/mellanox/mlx5/core/
  F:    include/linux/mlx5/
@@@ -11429,6 -11312,7 +11429,7 @@@ S:   Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl.git
  F:    Documentation/devicetree/bindings/memory-controllers/
  F:    drivers/memory/
+ F:    include/dt-bindings/memory/
  
  MEMORY FREQUENCY SCALING DRIVERS FOR NVIDIA TEGRA
  M:    Dmitry Osipenko <[email protected]>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
  S:    Maintained
 -F:    drivers/devfreq/tegra20-devfreq.c
  F:    drivers/devfreq/tegra30-devfreq.c
  
  MEMORY MANAGEMENT
@@@ -11508,15 -11393,6 +11509,15 @@@ F: Documentation/devicetree/bindings/me
  F:    drivers/media/cec/platform/meson/ao-cec-g12a.c
  F:    drivers/media/cec/platform/meson/ao-cec.c
  
 +MESON GE2D DRIVER FOR AMLOGIC SOCS
 +M:    Neil Armstrong <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/amlogic,axg-ge2d.yaml
 +F:    drivers/media/meson/ge2d/
 +
  MESON NAND CONTROLLER DRIVER FOR AMLOGIC SOCS
  M:    Liang Yang <[email protected]>
  L:    [email protected]
@@@ -11633,7 -11509,7 +11634,7 @@@ M:   Woojung Huh <[email protected]
  M:    Microchip Linux Driver Support <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/dsa/ksz.txt
 +F:    Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
  F:    drivers/net/dsa/microchip/*
  F:    include/linux/platform_data/microchip-ksz.h
  F:    net/dsa/tag_ksz.c
@@@ -11755,54 -11631,17 +11756,54 @@@ F:        drivers/scsi/smartpqi/smartpqi*.[ch
  F:    include/linux/cciss*.h
  F:    include/uapi/linux/cciss*.h
  
 +MICROSOFT SURFACE GPE LID SUPPORT DRIVER
 +M:    Maximilian Luz <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/surface/surface_gpe.c
 +
 +MICROSOFT SURFACE HARDWARE PLATFORM SUPPORT
 +M:    Hans de Goede <[email protected]>
 +M:    Mark Gross <[email protected]>
 +M:    Maximilian Luz <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
 +F:    drivers/platform/surface/
 +
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/platform/x86/surfacepro3_button.c
 +F:    drivers/platform/surface/surfacepro3_button.c
  
  MICROTEK X6 SCANNER
  M:    Oliver Neukum <[email protected]>
  S:    Maintained
  F:    drivers/usb/image/microtek.*
  
 +MIKROTIK CRS3XX 98DX3236 BOARD SUPPORT
 +M:    Luka Kovacic <[email protected]>
 +M:    Luka Perkov <[email protected]>
 +S:    Maintained
 +F:    arch/arm/boot/dts/armada-xp-crs305-1g-4s-bit.dts
 +F:    arch/arm/boot/dts/armada-xp-crs305-1g-4s.dts
 +F:    arch/arm/boot/dts/armada-xp-crs326-24g-2s-bit.dts
 +F:    arch/arm/boot/dts/armada-xp-crs326-24g-2s.dts
 +F:    arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s-bit.dts
 +F:    arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s.dts
 +
 +MIPI CCS, SMIA AND SMIA++ IMAGE SENSOR DRIVER
 +M:    Sakari Ailus <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
 +F:    Documentation/driver-api/media/drivers/ccs/
 +F:    drivers/media/i2c/ccs-pll.c
 +F:    drivers/media/i2c/ccs-pll.h
 +F:    drivers/media/i2c/ccs/
 +F:    include/uapi/linux/smiapp.h
 +
  MIPS
  M:    Thomas Bogendoerfer <[email protected]>
  L:    [email protected]
@@@ -11870,7 -11709,7 +11871,7 @@@ F:   drivers/*/*/*loongson2
  F:    drivers/*/*loongson2*
  
  MIPS/LOONGSON64 ARCHITECTURE
 -M:    Huacai Chen <chenh[email protected]>
 +M:    Huacai Chen <chenh[email protected]>
  M:    Jiaxun Yang <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -12073,7 -11912,7 +12074,7 @@@ M:   Jacopo Mondi <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
 +F:    Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
  F:    drivers/media/i2c/mt9v111.c
  
  MULTIFUNCTION DEVICES (MFD)
@@@ -12292,7 -12131,7 +12293,7 @@@ M:   Jakub Kicinski <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    http://www.linuxfoundation.org/en/Net
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  F:    Documentation/devicetree/bindings/net/
@@@ -12337,7 -12176,7 +12338,7 @@@ M:   Jakub Kicinski <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    http://www.linuxfoundation.org/en/Net
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  B:    mailto:[email protected]
  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
  S:    Maintained
  W:    https://github.com/multipath-tcp/mptcp_net-next/wiki
  B:    https://github.com/multipath-tcp/mptcp_net-next/issues
 +F:    Documentation/networking/mptcp-sysctl.rst
  F:    include/net/mptcp.h
  F:    include/uapi/linux/mptcp.h
  F:    net/mptcp/
@@@ -12708,7 -12546,7 +12709,7 @@@ NXP FXAS21002C DRIVE
  M:    Rui Miguel Silva <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/iio/gyroscope/nxp,fxas21002c.txt
 +F:    Documentation/devicetree/bindings/iio/gyroscope/nxp,fxas21002c.yaml
  F:    drivers/iio/gyro/fxas21002c.h
  F:    drivers/iio/gyro/fxas21002c_core.c
  F:    drivers/iio/gyro/fxas21002c_i2c.c
@@@ -12722,12 -12560,6 +12723,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
  F:    drivers/gpu/drm/imx/dcss/
  
 +NXP PF8100/PF8121A/PF8200 PMIC REGULATOR DEVICE DRIVER
 +M:    Jagan Teki <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/regulator/nxp,pf8x00-regulator.yaml
 +F:    drivers/regulator/pf8x00-regulator.c
 +
  NXP PTN5150A CC LOGIC AND EXTCON DRIVER
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
@@@ -13025,14 -12857,6 +13026,14 @@@ M: Harald Welte <[email protected]
  S:    Maintained
  F:    drivers/char/pcmcia/cm4040_cs.*
  
 +OMNIVISION OV02A10 SENSOR DRIVER
 +M:    Dongchun Zhu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
 +F:    drivers/media/i2c/ov02a10.c
 +
  OMNIVISION OV13858 SENSOR DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
@@@ -13045,7 -12869,7 +13046,7 @@@ M:   Rui Miguel Silva <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/ov2680.txt
 +F:    Documentation/devicetree/bindings/media/i2c/ov2680.yaml
  F:    drivers/media/i2c/ov2680.c
  
  OMNIVISION OV2685 SENSOR DRIVER
@@@ -13103,8 -12927,9 +13104,8 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/ov5695.c
  
  OMNIVISION OV7670 SENSOR DRIVER
 -M:    Jonathan Corbet <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/i2c/ov7670.txt
  F:    drivers/media/i2c/ov7670.c
@@@ -13114,7 -12939,7 +13115,7 @@@ M:   Jacopo Mondi <[email protected]
  L:    [email protected]
  S:    Odd fixes
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/ov772x.txt
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
  F:    drivers/media/i2c/ov772x.c
  F:    include/media/i2c/ov772x.h
  
@@@ -13150,14 -12975,6 +13151,14 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/i2c/ov9650.txt
  F:    drivers/media/i2c/ov9650.c
  
 +OMNIVISION OV9734 SENSOR DRIVER
 +M:    Tianshu Qiu <[email protected]>
 +R:    Bingbu Cao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/ov9734.c
 +
  ONENAND FLASH DRIVER
  M:    Kyungmin Park <[email protected]>
  L:    [email protected]
@@@ -13360,13 -13177,11 +13361,13 @@@ M:        Jesper Dangaard Brouer <hawk@kernel.
  M:    Ilias Apalodimas <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/networking/page_pool.rst
  F:    include/net/page_pool.h
 +F:    include/trace/events/page_pool.h
  F:    net/core/page_pool.c
  
  PANASONIC LAPTOP ACPI EXTRAS DRIVER
 -M:    Harald Welte <[email protected]>
 +M:    Kenneth Chan <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/platform/x86/panasonic-laptop.c
@@@ -13590,6 -13405,7 +13591,6 @@@ F:   drivers/pci/controller/mobiveil/pcie
  
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <[email protected]>
 -M:    Jason Cooper <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -13665,8 -13481,6 +13666,8 @@@ M:   Kishon Vijay Abraham I <[email protected]
  M:    Lorenzo Pieralisi <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/PCI/endpoint/*
 +F:    Documentation/misc-devices/pci-endpoint-test.rst
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/pci-endpoint.git
  F:    drivers/misc/pci_endpoint_test.c
  F:    drivers/pci/endpoint/
@@@ -14090,13 -13904,6 +14091,13 @@@ M: Logan Gunthorpe <[email protected]
  S:    Maintained
  F:    drivers/dma/plx_dma.c
  
 +PM6764TR DRIVER
 +M:    Charles Hsu     <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/pm6764tr.rst
 +F:    drivers/hwmon/pmbus/pm6764tr.c
 +
  PM-GRAPH UTILITY
  M:    "Todd E Brandt" <[email protected]>
  L:    [email protected]
@@@ -14404,6 -14211,7 +14405,6 @@@ F:   drivers/media/usb/pwc/
  F:    include/trace/events/pwc.h
  
  PWM FAN DRIVER
 -M:    Kamil Debski <[email protected]>
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -14639,7 -14447,6 +14640,7 @@@ W:   https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/ath/ath9k/
  
  QUALCOMM CAMERA SUBSYSTEM DRIVER
 +M:    Robert Foss <[email protected]>
  M:    Todor Tomov <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14721,22 -14528,6 +14722,22 @@@ F: Documentation/devicetree/bindings/ma
  F:    drivers/mailbox/qcom-ipcc.c
  F:    include/dt-bindings/mailbox/qcom-ipcc.h
  
 +QUALCOMM IPQ4019 USB PHY DRIVER
 +M:    Robert Marko <[email protected]>
 +M:    Luka Perkov <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/phy/qcom-usb-ipq4019-phy.yaml
 +F:    drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c
 +
 +QUALCOMM IPQ4019 VQMMC REGULATOR DRIVER
 +M:    Robert Marko <[email protected]>
 +M:    Luka Perkov <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/regulator/vqmmc-ipq4019-regulator.yaml
 +F:    drivers/regulator/vqmmc-ipq4019-regulator.c
 +
  QUALCOMM RMNET DRIVER
  M:    Subash Abhinov Kasiviswanathan <[email protected]>
  M:    Sean Tranchetti <[email protected]>
@@@ -15021,7 -14812,7 +15022,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    drivers/net/wireless/realtek/rtlwifi/
  
  REALTEK WIRELESS DRIVER (rtw88)
 -M:    Yan-Hsuan Chuang <yhchuang@realtek.com>
 +M:    Yan-Hsuan Chuang <tony0620emma@gmail.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/wireless/realtek/rtw88/
@@@ -15092,6 -14883,7 +15093,6 @@@ RENESAS ETHERNET DRIVER
  R:    Sergei Shtylyov <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -F:    Documentation/devicetree/bindings/net/renesas,*.txt
  F:    Documentation/devicetree/bindings/net/renesas,*.yaml
  F:    drivers/net/ethernet/renesas/
  F:    include/linux/sh_eth.h
@@@ -15137,7 -14929,6 +15138,7 @@@ M:   Philipp Zabel <[email protected]
  S:    Maintained
  T:    git git://git.pengutronix.de/git/pza/linux
  F:    Documentation/devicetree/bindings/reset/
 +F:    Documentation/driver-api/reset.rst
  F:    drivers/reset/
  F:    include/dt-bindings/reset/
  F:    include/linux/reset-controller.h
@@@ -15222,13 -15013,10 +15223,13 @@@ ROCKCHIP ISP V1 DRIVE
  M:    Helen Koike <[email protected]>
  M:    Dafna Hirschfeld <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/admin-guide/media/rkisp1.rst
 +F:    Documentation/devicetree/bindings/media/rockchip-isp1.yaml
  F:    Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
 -F:    drivers/staging/media/rkisp1/
 +F:    drivers/media/platform/rockchip/rkisp1
 +F:    include/uapi/linux/rkisp1-config.h
  
  ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
  M:    Jacob Chen <[email protected]>
@@@ -15452,6 -15240,7 +15453,6 @@@ F:   drivers/iommu/s390-iommu.
  S390 IUCV NETWORK LAYER
  M:    Julian Wiedmann <[email protected]>
  M:    Karsten Graul <[email protected]>
 -M:    Ursula Braun <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -15462,6 -15251,7 +15463,6 @@@ F:   net/iucv
  S390 NETWORK DRIVERS
  M:    Julian Wiedmann <[email protected]>
  M:    Karsten Graul <[email protected]>
 -M:    Ursula Braun <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
  S:    Maintained
  F:    drivers/video/fbdev/s3c-fb.c
  
 +SAMSUNG INTERCONNECT DRIVERS
 +M:    Sylwester Nawrocki <[email protected]>
 +M:    Artur ÅšwigoÅ„ <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/interconnect/samsung/
 +
  SAMSUNG LAPTOP DRIVER
  M:    Corentin Chary <[email protected]>
  L:    [email protected]
@@@ -15638,12 -15420,14 +15639,12 @@@ F:        Documentation/devicetree/bindings/ne
  F:    drivers/nfc/s3fwrn5
  
  SAMSUNG S5C73M3 CAMERA DRIVER
 -M:    Kyungmin Park <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/media/i2c/s5c73m3/*
  
  SAMSUNG S5K5BAF CAMERA DRIVER
 -M:    Kyungmin Park <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -15661,6 -15445,7 +15662,6 @@@ F:   Documentation/devicetree/bindings/cr
  F:    drivers/crypto/s5p-sss.c
  
  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
 -M:    Kyungmin Park <[email protected]>
  M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -15708,6 -15493,7 +15709,6 @@@ T:   git https://github.com/lmajewski/lin
  F:    drivers/thermal/samsung/
  
  SAMSUNG USB2 PHY DRIVER
 -M:    Kamil Debski <[email protected]>
  M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -15801,15 -15587,6 +15802,15 @@@ F: Documentation/scsi/st.rs
  F:    drivers/scsi/st.*
  F:    drivers/scsi/st_*.h
  
 +SCSI TARGET CORE USER DRIVER
 +M:    Bodo Stroesser <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/target/tcmu-design.rst
 +F:    drivers/target/target_core_user.c
 +F:    include/uapi/linux/target_core_user.h
 +
  SCSI TARGET SUBSYSTEM
  M:    "Martin K. Petersen" <[email protected]>
  L:    [email protected]
@@@ -16015,8 -15792,9 +16016,8 @@@ F:   drivers/slimbus
  F:    include/linux/slimbus.h
  
  SFC NETWORK DRIVER
 -M:    Solarflare linux maintainers <[email protected]>
 -M:    Edward Cree <[email protected]>
 -M:    Martin Habets <[email protected]>
 +M:    Edward Cree <[email protected]>
 +M:    Martin Habets <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/sfc/
@@@ -16033,18 -15811,18 +16034,18 @@@ F:        include/linux/sfp.
  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)
  
  SGI GRU DRIVER
 -M:    Dimitri Sivanich <sivanich@sgi.com>
 +M:    Dimitri Sivanich <dimitri.sivanich@hpe.com>
  S:    Maintained
  F:    drivers/misc/sgi-gru/
  
  SGI XP/XPC/XPNET DRIVER
 -M:    Cliff Whickman <[email protected]>
  M:    Robin Holt <[email protected]>
 +M:    Steve Wahl <[email protected]>
 +R:    Mike Travis <[email protected]>
  S:    Maintained
  F:    drivers/misc/sgi-xp/
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
 -M:    Ursula Braun <[email protected]>
  M:    Karsten Graul <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -16325,6 -16103,16 +16326,6 @@@ S:  Maintaine
  F:    drivers/firmware/smccc/
  F:    include/linux/arm-smccc.h
  
 -SMIA AND SMIA++ IMAGE SENSOR DRIVER
 -M:    Sakari Ailus <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/media/i2c/nokia,smia.txt
 -F:    drivers/media/i2c/smiapp-pll.c
 -F:    drivers/media/i2c/smiapp-pll.h
 -F:    drivers/media/i2c/smiapp/
 -F:    include/uapi/linux/smiapp.h
 -
  SMM665 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
@@@ -16420,7 -16208,7 +16421,7 @@@ F:   drivers/infiniband/sw/siw
  F:    include/uapi/rdma/siw-abi.h
  
  SOFT-ROCE DRIVER (rxe)
 -M:    Zhu Yanjun <yanjunz@nvidia.com>
 +M:    Zhu Yanjun <zyjzyj2000@gmail.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/infiniband/sw/rxe/
@@@ -16487,7 -16275,7 +16488,7 @@@ M:   Ricardo Ribalda <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
  F:    drivers/media/i2c/imx214.c
  
  SONY IMX219 SENSOR DRIVER
@@@ -16723,10 -16511,8 +16724,10 @@@ F: Documentation/networking/device_driv
  F:    drivers/net/ethernet/toshiba/spider_net*
  
  SPMI SUBSYSTEM
 -R:    Stephen Boyd <[email protected]>
 -L:    [email protected]
 +M:    Stephen Boyd <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git
  F:    Documentation/devicetree/bindings/spmi/
  F:    drivers/spmi/
  F:    include/dt-bindings/spmi/spmi.h
@@@ -17586,12 -17372,6 +17587,12 @@@ W: http://thinkwiki.org/wiki/Ibm-acp
  T:    git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
  F:    drivers/platform/x86/thinkpad_acpi.c
  
 +THUNDERBOLT DMA TRAFFIC TEST DRIVER
 +M:    Isaac Hazan <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/thunderbolt/dma_test.c
 +
  THUNDERBOLT DRIVER
  M:    Andreas Noever <[email protected]>
  M:    Michael Jamet <[email protected]>
@@@ -18304,7 -18084,7 +18305,7 @@@ M:   Yu Chen <[email protected]
  M:    Binghui Wang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/phy/phy-hi3660-usb3.txt
 +F:    Documentation/devicetree/bindings/phy/hisilicon,hi3660-usb3.yaml
  F:    drivers/phy/hisilicon/phy-hi3660-usb3.c
  
  USB ISP116X DRIVER
  S:    Supported
  F:    drivers/usb/class/usblp.c
  
 +USB RAW GADGET DRIVER
 +R:    Andrey Konovalov <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/usb/raw-gadget.rst
 +F:    drivers/usb/gadget/legacy/raw_gadget.c
 +F:    include/uapi/linux/usb/raw_gadget.h
 +
  USB QMI WWAN NETWORK DRIVER
  M:    Bjørn Mork <[email protected]>
  L:    [email protected]
@@@ -18591,12 -18363,6 +18592,12 @@@ F: include/uapi/linux/uuid.
  F:    lib/test_uuid.c
  F:    lib/uuid.c
  
 +UV SYSFS DRIVER
 +M:    Justin Ernst <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/uv_sysfs.c
 +
  UVESAFB DRIVER
  M:    Michal Januszewski <[email protected]>
  L:    [email protected]
@@@ -19119,6 -18885,18 +19120,6 @@@ S:  Supporte
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
  F:    drivers/net/wireless/ath/wil6210/
  
 -WIMAX STACK
 -M:    Inaky Perez-Gonzalez <[email protected]>
 -M:    [email protected]
 -L:    [email protected] (subscribers-only)
 -S:    Supported
 -W:    http://linuxwimax.org
 -F:    Documentation/admin-guide/wimax/wimax.rst
 -F:    include/linux/wimax/debug.h
 -F:    include/net/wimax.h
 -F:    include/uapi/linux/wimax.h
 -F:    net/wimax/
 -
  WINBOND CIR DRIVER
  M:    David Härdeman <[email protected]>
  S:    Maintained
@@@ -19216,18 -18994,12 +19217,18 @@@ L:        [email protected]
  S:    Maintained
  N:    axp[128]
  
 -X.25 NETWORK LAYER
 -M:    Andrew Hendry <[email protected]>
 +X.25 STACK
 +M:    Martin Schiller <[email protected]>
  L:    [email protected]
 -S:    Odd Fixes
 +S:    Maintained
 +F:    Documentation/networking/lapb-module.rst
  F:    Documentation/networking/x25*
 +F:    drivers/net/wan/hdlc_x25.c
 +F:    drivers/net/wan/lapbether.c
 +F:    include/*/lapb.h
  F:    include/net/x25*
 +F:    include/uapi/linux/x25.h
 +F:    net/lapb/
  F:    net/x25/
  
  X86 ARCHITECTURE (32-BIT AND 64-BIT)
@@@ -19291,7 -19063,6 +19292,7 @@@ F:   arch/x86/platfor
  
  X86 PLATFORM UV HPE SUPERDOME FLEX
  M:    Steve Wahl <[email protected]>
 +R:    Mike Travis <[email protected]>
  R:    Dimitri Sivanich <[email protected]>
  R:    Russ Anderson <[email protected]>
  S:    Supported
@@@ -19342,17 -19113,12 +19343,17 @@@ L:        [email protected]
  L:    [email protected]
  S:    Supported
  F:    include/net/xdp.h
 +F:    include/net/xdp_priv.h
  F:    include/trace/events/xdp.h
  F:    kernel/bpf/cpumap.c
  F:    kernel/bpf/devmap.c
  F:    net/core/xdp.c
 -N:    xdp
 -K:    xdp
 +F:    samples/bpf/xdp*
 +F:    tools/testing/selftests/bpf/*xdp*
 +F:    tools/testing/selftests/bpf/*/*xdp*
 +F:    drivers/net/ethernet/*/*/*/*/*xdp*
 +F:    drivers/net/ethernet/*/*/*xdp*
 +K:    (?:\b|_)xdp(?:\b|_)
  
  XDP SOCKETS (AF_XDP)
  M:    Björn Töpel <[email protected]>
@@@ -19361,12 -19127,9 +19362,12 @@@ R: Jonathan Lemon <jonathan.lemon@gmail
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/networking/af_xdp.rst
  F:    include/net/xdp_sock*
  F:    include/net/xsk_buff_pool.h
  F:    include/uapi/linux/if_xdp.h
 +F:    include/uapi/linux/xdp_diag.h
 +F:    include/net/netns/xdp.h
  F:    net/xdp/
  F:    samples/bpf/xdpsock*
  F:    tools/lib/bpf/xsk*
@@@ -19634,13 -19397,6 +19635,13 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/filesystems/zonefs.rst
  F:    fs/zonefs/
  
 +ZPOOL COMPRESSED PAGE STORAGE API
 +M:    Dan Streetman <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    include/linux/zpool.h
 +F:    mm/zpool.c
 +
  ZR36067 VIDEO FOR LINUX DRIVER
  M:    Corentin Labbe <[email protected]>
  L:    [email protected]
@@@ -19651,6 -19407,13 +19652,6 @@@ Q:  https://patchwork.linuxtv.org/projec
  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]
 -S:    Maintained
 -F:    include/linux/zpool.h
 -F:    mm/zpool.c
 -
  ZRAM COMPRESSED RAM BLOCK DEVICE DRVIER
  M:    Minchan Kim <[email protected]>
  M:    Nitin Gupta <[email protected]>
index b87b034ff39ea37b36ed2f4df1adef62215e4f7f,1ce3a1f06f7f53efef72b4136755f67759b1ef4e..810b0676ab03370687bdf5cb096ae7459f18c1c2
                always-on;
        };
  
 +      edac: sdram@1e6e0000 {
 +              compatible = "aspeed,ast2600-sdram-edac", "syscon";
 +              reg = <0x1e6e0000 0x174>;
 +              interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
 +      };
 +
        ahb {
                compatible = "simple-bus";
                #address-cells = <1>;
                                        compatible = "aspeed,ast2600-pinctrl";
                                };
  
+                               silicon-id@14 {
+                                       compatible = "aspeed,ast2600-silicon-id", "aspeed,silicon-id";
+                                       reg = <0x14 0x4 0x5b0 0x8>;
+                               };
                                smp-memram@180 {
                                        compatible = "aspeed,ast2600-smpmem";
                                        reg = <0x180 0x40>;
                                #gpio-cells = <2>;
                                gpio-controller;
                                compatible = "aspeed,ast2600-gpio";
 -                              reg = <0x1e780000 0x800>;
 +                              reg = <0x1e780000 0x400>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                gpio-ranges = <&pinctrl 0 0 208>;
                                ngpios = <208>;
diff --combined drivers/bus/ti-sysc.c
index 92ecf1a78ec73e4ab382273a9bfab47916385da4,691cc39bfc5c8115f1e3a079deaab25c9a0b1ffb..a27d751cf219d7215216b41577c19ed4331885c7
@@@ -853,8 -853,12 +853,12 @@@ static int sysc_ioremap(struct sysc *dd
   */
  static int sysc_map_and_check_registers(struct sysc *ddata)
  {
+       struct device_node *np = ddata->dev->of_node;
        int error;
  
+       if (!of_get_property(np, "reg", NULL))
+               return 0;
        error = sysc_parse_and_check_child_range(ddata);
        if (error)
                return error;
@@@ -1222,10 -1226,10 +1226,10 @@@ static int __maybe_unused sysc_runtime_
        ddata->enabled = false;
  
  err_allow_idle:
-       reset_control_assert(ddata->rsts);
        sysc_clkdm_allow_idle(ddata);
  
+       reset_control_assert(ddata->rsts);
        return error;
  }
  
@@@ -1379,6 -1383,8 +1383,8 @@@ static const struct sysc_revision_quir
                   SYSC_QUIRK_CLKDM_NOAUTO),
        SYSC_QUIRK("dwc3", 0x488c0000, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff,
                   SYSC_QUIRK_CLKDM_NOAUTO),
+       SYSC_QUIRK("gpmc", 0, 0, 0x10, 0x14, 0x00000060, 0xffffffff,
+                  SYSC_QUIRK_GPMC_DEBUG),
        SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50030200, 0xffffffff,
                   SYSC_QUIRK_OPT_CLKS_NEEDED),
        SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x00000006, 0xffffffff,
@@@ -1814,6 -1820,14 +1820,14 @@@ static void sysc_init_module_quirks(str
                return;
        }
  
+ #ifdef CONFIG_OMAP_GPMC_DEBUG
+       if (ddata->cfg.quirks & SYSC_QUIRK_GPMC_DEBUG) {
+               ddata->cfg.quirks |= SYSC_QUIRK_NO_RESET_ON_INIT;
+               return;
+       }
+ #endif
        if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_I2C) {
                ddata->pre_reset_quirk = sysc_pre_reset_quirk_i2c;
                ddata->post_reset_quirk = sysc_post_reset_quirk_i2c;
@@@ -1945,6 -1959,7 +1959,7 @@@ static int sysc_reset(struct sysc *ddat
   */
  static int sysc_init_module(struct sysc *ddata)
  {
+       bool rstctrl_deasserted = false;
        int error = 0;
  
        error = sysc_clockdomain_init(ddata);
                error = reset_control_deassert(ddata->rsts);
                if (error)
                        goto err_main_clocks;
+               rstctrl_deasserted = true;
        }
  
        ddata->revision = sysc_read_revision(ddata);
        if (ddata->legacy_mode) {
                error = sysc_legacy_init(ddata);
                if (error)
-                       goto err_reset;
+                       goto err_main_clocks;
        }
  
        if (!ddata->legacy_mode) {
                error = sysc_enable_module(ddata->dev);
                if (error)
-                       goto err_reset;
+                       goto err_main_clocks;
        }
  
        error = sysc_reset(ddata);
        if (error && !ddata->legacy_mode)
                sysc_disable_module(ddata->dev);
  
- err_reset:
-       if (error && !(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT))
-               reset_control_assert(ddata->rsts);
  err_main_clocks:
        if (error)
                sysc_disable_main_clocks(ddata);
@@@ -2008,6 -2020,10 +2020,10 @@@ err_opt_clocks
                sysc_clkdm_allow_idle(ddata);
        }
  
+       if (error && rstctrl_deasserted &&
+           !(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT))
+               reset_control_assert(ddata->rsts);
        return error;
  }
  
@@@ -2889,7 -2905,7 +2905,7 @@@ static int sysc_check_active_timer(stru
  
        if ((ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT) &&
            (ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE))
 -              return -EBUSY;
 +              return -ENXIO;
  
        return 0;
  }
@@@ -2909,6 -2925,9 +2925,9 @@@ static int sysc_probe(struct platform_d
        if (!ddata)
                return -ENOMEM;
  
+       ddata->offsets[SYSC_REVISION] = -ENODEV;
+       ddata->offsets[SYSC_SYSCONFIG] = -ENODEV;
+       ddata->offsets[SYSC_SYSSTATUS] = -ENODEV;
        ddata->dev = &pdev->dev;
        platform_set_drvdata(pdev, ddata);
  
        }
  
        /* Balance use counts as PM runtime should have enabled these all */
-       if (!(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT))
-               reset_control_assert(ddata->rsts);
        if (!(ddata->cfg.quirks &
              (SYSC_QUIRK_NO_IDLE | SYSC_QUIRK_NO_IDLE_ON_INIT))) {
                sysc_disable_main_clocks(ddata);
                sysc_clkdm_allow_idle(ddata);
        }
  
+       if (!(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT))
+               reset_control_assert(ddata->rsts);
        sysc_show_registers(ddata);
  
        ddata->dev->type = &sysc_device_type;
index fd95edeb702b1fc0c8fbed3e85ec8a1fd4554433,e5ac3008a1d7e131eb4fef06fda8456106aaf1d4..7eb9958662dddddfc673da9b321d812b5ab7a169
  #include <linux/of_platform.h>
  #include <linux/slab.h>
  #include <linux/uaccess.h>
 +#include <linux/hashtable.h>
  
  #include <linux/firmware/xlnx-zynqmp.h>
  #include "zynqmp-debug.h"
  
 +/* Max HashMap Order for PM API feature check (1<<7 = 128) */
 +#define PM_API_FEATURE_CHECK_MAX_ORDER  7
 +
  static bool feature_check_enabled;
 -static u32 zynqmp_pm_features[PM_API_MAX];
 +static DEFINE_HASHTABLE(pm_api_features_map, PM_API_FEATURE_CHECK_MAX_ORDER);
 +
 +/**
 + * struct pm_api_feature_data - PM API Feature data
 + * @pm_api_id:                PM API Id, used as key to index into hashmap
 + * @feature_status:   status of PM API feature: valid, invalid
 + * @hentry:           hlist_node that hooks this entry into hashtable
 + */
 +struct pm_api_feature_data {
 +      u32 pm_api_id;
 +      int feature_status;
 +      struct hlist_node hentry;
 +};
  
  static const struct mfd_cell firmware_devs[] = {
        {
@@@ -158,37 -142,26 +158,37 @@@ static int zynqmp_pm_feature(u32 api_id
        int ret;
        u32 ret_payload[PAYLOAD_ARG_CNT];
        u64 smc_arg[2];
 +      struct pm_api_feature_data *feature_data;
  
        if (!feature_check_enabled)
                return 0;
  
 -      /* Return value if feature is already checked */
 -      if (zynqmp_pm_features[api_id] != PM_FEATURE_UNCHECKED)
 -              return zynqmp_pm_features[api_id];
 +      /* Check for existing entry in hash table for given api */
 +      hash_for_each_possible(pm_api_features_map, feature_data, hentry,
 +                             api_id) {
 +              if (feature_data->pm_api_id == api_id)
 +                      return feature_data->feature_status;
 +      }
 +
 +      /* Add new entry if not present */
 +      feature_data = kmalloc(sizeof(*feature_data), GFP_KERNEL);
 +      if (!feature_data)
 +              return -ENOMEM;
  
 +      feature_data->pm_api_id = api_id;
        smc_arg[0] = PM_SIP_SVC | PM_FEATURE_CHECK;
        smc_arg[1] = api_id;
  
        ret = do_fw_call(smc_arg[0], smc_arg[1], 0, ret_payload);
 -      if (ret) {
 -              zynqmp_pm_features[api_id] = PM_FEATURE_INVALID;
 -              return PM_FEATURE_INVALID;
 -      }
 +      if (ret)
 +              ret = -EOPNOTSUPP;
 +      else
 +              ret = ret_payload[1];
  
 -      zynqmp_pm_features[api_id] = ret_payload[1];
 +      feature_data->feature_status = ret;
 +      hash_add(pm_api_features_map, &feature_data->hentry, api_id);
  
 -      return zynqmp_pm_features[api_id];
 +      return ret;
  }
  
  /**
@@@ -224,12 -197,9 +224,12 @@@ int zynqmp_pm_invoke_fn(u32 pm_api_id, 
         * Make sure to stay in x0 register
         */
        u64 smc_arg[4];
 +      int ret;
  
 -      if (zynqmp_pm_feature(pm_api_id) == PM_FEATURE_INVALID)
 -              return -ENOTSUPP;
 +      /* Check if feature is supported or not */
 +      ret = zynqmp_pm_feature(pm_api_id);
 +      if (ret < 0)
 +              return ret;
  
        smc_arg[0] = PM_SIP_SVC | pm_api_id;
        smc_arg[1] = ((u64)arg1 << 32) | arg0;
@@@ -615,13 -585,13 +615,13 @@@ EXPORT_SYMBOL_GPL(zynqmp_pm_get_pll_fra
  /**
   * zynqmp_pm_set_sd_tapdelay() -  Set tap delay for the SD device
   *
-  * @node_id   Node ID of the device
-  * @type      Type of tap delay to set (input/output)
-  * @value     Value to set fot the tap delay
+  * @node_id:  Node ID of the device
+  * @type:     Type of tap delay to set (input/output)
+  * @value:    Value to set fot the tap delay
   *
   * This function sets input/output tap delay for the SD device.
   *
-  * @return    Returns status, either success or error+reason
+  * Return:    Returns status, either success or error+reason
   */
  int zynqmp_pm_set_sd_tapdelay(u32 node_id, u32 type, u32 value)
  {
@@@ -633,28 -603,28 +633,28 @@@ EXPORT_SYMBOL_GPL(zynqmp_pm_set_sd_tapd
  /**
   * zynqmp_pm_sd_dll_reset() - Reset DLL logic
   *
-  * @node_id   Node ID of the device
-  * @type      Reset type
+  * @node_id:  Node ID of the device
+  * @type:     Reset type
   *
   * This function resets DLL logic for the SD device.
   *
-  * @return    Returns status, either success or error+reason
+  * Return:    Returns status, either success or error+reason
   */
  int zynqmp_pm_sd_dll_reset(u32 node_id, u32 type)
  {
 -      return zynqmp_pm_invoke_fn(PM_IOCTL, node_id, IOCTL_SET_SD_TAPDELAY,
 +      return zynqmp_pm_invoke_fn(PM_IOCTL, node_id, IOCTL_SD_DLL_RESET,
                                   type, 0, NULL);
  }
  EXPORT_SYMBOL_GPL(zynqmp_pm_sd_dll_reset);
  
  /**
   * zynqmp_pm_write_ggs() - PM API for writing global general storage (ggs)
-  * @index     GGS register index
-  * @value     Register value to be written
+  * @index:    GGS register index
+  * @value:    Register value to be written
   *
   * This function writes value to GGS register.
   *
-  * @return      Returns status, either success or error+reason
+  * Return:      Returns status, either success or error+reason
   */
  int zynqmp_pm_write_ggs(u32 index, u32 value)
  {
@@@ -665,12 -635,12 +665,12 @@@ EXPORT_SYMBOL_GPL(zynqmp_pm_write_ggs)
  
  /**
   * zynqmp_pm_write_ggs() - PM API for reading global general storage (ggs)
-  * @index     GGS register index
-  * @value     Register value to be written
+  * @index:    GGS register index
+  * @value:    Register value to be written
   *
   * This function returns GGS register value.
   *
-  * @return      Returns status, either success or error+reason
+  * Return:    Returns status, either success or error+reason
   */
  int zynqmp_pm_read_ggs(u32 index, u32 *value)
  {
@@@ -682,12 -652,12 +682,12 @@@ EXPORT_SYMBOL_GPL(zynqmp_pm_read_ggs)
  /**
   * zynqmp_pm_write_pggs() - PM API for writing persistent global general
   *                         storage (pggs)
-  * @index     PGGS register index
-  * @value     Register value to be written
+  * @index:    PGGS register index
+  * @value:    Register value to be written
   *
   * This function writes value to PGGS register.
   *
-  * @return      Returns status, either success or error+reason
+  * Return:    Returns status, either success or error+reason
   */
  int zynqmp_pm_write_pggs(u32 index, u32 value)
  {
@@@ -699,12 -669,12 +699,12 @@@ EXPORT_SYMBOL_GPL(zynqmp_pm_write_pggs)
  /**
   * zynqmp_pm_write_pggs() - PM API for reading persistent global general
   *                         storage (pggs)
-  * @index     PGGS register index
-  * @value     Register value to be written
+  * @index:    PGGS register index
+  * @value:    Register value to be written
   *
   * This function returns PGGS register value.
   *
-  * @return      Returns status, either success or error+reason
+  * Return:    Returns status, either success or error+reason
   */
  int zynqmp_pm_read_pggs(u32 index, u32 *value)
  {
@@@ -715,12 -685,12 +715,12 @@@ EXPORT_SYMBOL_GPL(zynqmp_pm_read_pggs)
  
  /**
   * zynqmp_pm_set_boot_health_status() - PM API for setting healthy boot status
-  * @value     Status value to be written
+  * @value:    Status value to be written
   *
   * This function sets healthy bit value to indicate boot health status
   * to firmware.
   *
-  * @return      Returns status, either success or error+reason
+  * Return:    Returns status, either success or error+reason
   */
  int zynqmp_pm_set_boot_health_status(u32 value)
  {
@@@ -815,10 -785,10 +815,10 @@@ EXPORT_SYMBOL_GPL(zynqmp_pm_fpga_get_st
   * zynqmp_pm_init_finalize() - PM call to inform firmware that the caller
   *                           master has initialized its own power management
   *
+  * Return: Returns status, either success or error+reason
+  *
   * This API function is to be used for notify the power management controller
   * about the completed power management initialization.
-  *
-  * Return: Returns status, either success or error+reason
   */
  int zynqmp_pm_init_finalize(void)
  {
@@@ -1279,17 -1249,9 +1279,17 @@@ static int zynqmp_firmware_probe(struc
  
  static int zynqmp_firmware_remove(struct platform_device *pdev)
  {
 +      struct pm_api_feature_data *feature_data;
 +      int i;
 +
        mfd_remove_devices(&pdev->dev);
        zynqmp_pm_api_debugfs_exit();
  
 +      hash_for_each(pm_api_features_map, i, feature_data, hentry) {
 +              hash_del(&feature_data->hentry);
 +              kfree(feature_data);
 +      }
 +
        return 0;
  }
  
index bfe9942305435ee5e9f6b2580feaa56778dc3a23,4be5d1fccf2e7aeff7de6b375d096b4a6ef49b95..bdd37eadecd5eebfb982325a36cf626c7900dcdf
@@@ -11,7 -11,6 +11,7 @@@
  #include <asm/barrier.h>
  #include <soc/mediatek/smi.h>
  
 +#include <drm/drm_atomic.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_plane_helper.h>
  #include <drm/drm_probe_helper.h>
@@@ -24,7 -23,7 +24,7 @@@
  #include "mtk_drm_gem.h"
  #include "mtk_drm_plane.h"
  
 -/**
 +/*
   * struct mtk_drm_crtc - MediaTek specific crtc structure.
   * @base: crtc object.
   * @enabled: records whether crtc_enable succeeded
@@@ -34,8 -33,6 +34,8 @@@
   * @mutex: handle to one of the ten disp_mutex streams
   * @ddp_comp_nr: number of components in ddp_comp
   * @ddp_comp: array of pointers the mtk_ddp_comp structures used by this crtc
 + *
 + * TODO: Needs update: this header is missing a bunch of member descriptions.
   */
  struct mtk_drm_crtc {
        struct drm_crtc                 base;
@@@ -520,7 -517,7 +520,7 @@@ void mtk_drm_crtc_async_update(struct d
  }
  
  static void mtk_drm_crtc_atomic_enable(struct drm_crtc *crtc,
 -                                     struct drm_crtc_state *old_state)
 +                                     struct drm_atomic_state *state)
  {
        struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc);
        struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0];
  }
  
  static void mtk_drm_crtc_atomic_disable(struct drm_crtc *crtc,
 -                                      struct drm_crtc_state *old_state)
 +                                      struct drm_atomic_state *state)
  {
        struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc);
        struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0];
  }
  
  static void mtk_drm_crtc_atomic_begin(struct drm_crtc *crtc,
 -                                    struct drm_crtc_state *old_crtc_state)
 +                                    struct drm_atomic_state *state)
  {
 -      struct mtk_crtc_state *state = to_mtk_crtc_state(crtc->state);
 +      struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
 +                                                                        crtc);
 +      struct mtk_crtc_state *mtk_crtc_state = to_mtk_crtc_state(crtc_state);
        struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc);
  
 -      if (mtk_crtc->event && state->base.event)
 +      if (mtk_crtc->event && mtk_crtc_state->base.event)
                DRM_ERROR("new event while there is still a pending event\n");
  
 -      if (state->base.event) {
 -              state->base.event->pipe = drm_crtc_index(crtc);
 +      if (mtk_crtc_state->base.event) {
 +              mtk_crtc_state->base.event->pipe = drm_crtc_index(crtc);
                WARN_ON(drm_crtc_vblank_get(crtc) != 0);
 -              mtk_crtc->event = state->base.event;
 -              state->base.event = NULL;
 +              mtk_crtc->event = mtk_crtc_state->base.event;
 +              mtk_crtc_state->base.event = NULL;
        }
  }
  
  static void mtk_drm_crtc_atomic_flush(struct drm_crtc *crtc,
 -                                    struct drm_crtc_state *old_crtc_state)
 +                                    struct drm_atomic_state *state)
  {
        struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc);
        int i;
@@@ -829,8 -824,7 +829,7 @@@ int mtk_drm_crtc_create(struct drm_devi
  #if IS_REACHABLE(CONFIG_MTK_CMDQ)
        mtk_crtc->cmdq_client =
                        cmdq_mbox_create(mtk_crtc->mmsys_dev,
-                                        drm_crtc_index(&mtk_crtc->base),
-                                        2000);
+                                        drm_crtc_index(&mtk_crtc->base));
        if (IS_ERR(mtk_crtc->cmdq_client)) {
                dev_dbg(dev, "mtk_crtc %d failed to create mailbox client, writing register by CPU now\n",
                        drm_crtc_index(&mtk_crtc->base));
diff --combined drivers/reset/Kconfig
index dceec715e745853525d82535f7eaa6d1acc53633,84baec01aa30656c1ab811c2aef9334fe5452fb0..71ab75a464917a5c5146c89c44f94861f9892210
@@@ -35,13 -35,6 +35,13 @@@ config RESET_AXS10
        help
          This enables the reset controller driver for AXS10x.
  
 +config RESET_BCM6345
 +      bool "BCM6345 Reset Controller"
 +      depends on BMIPS_GENERIC || COMPILE_TEST
 +      default BMIPS_GENERIC
 +      help
 +        This enables the reset controller driver for BCM6345 SoCs.
 +
  config RESET_BERLIN
        bool "Berlin Reset Driver" if COMPILE_TEST
        default ARCH_BERLIN
@@@ -102,7 -95,8 +102,8 @@@ config RESET_LPC18X
          This enables the reset controller driver for NXP LPC18xx/43xx SoCs.
  
  config RESET_MESON
-       bool "Meson Reset Driver" if COMPILE_TEST
+       tristate "Meson Reset Driver"
+       depends on ARCH_MESON || COMPILE_TEST
        default ARCH_MESON
        help
          This enables the reset driver for Amlogic Meson SoCs.
index 101def7dc73d400917507d3131ea6e47fd90d129,62b182c3a8b04db4a2e9163164f06171c4c13f9d..a1b9be1d105a0b921e48de44d39558f90965c6dc
@@@ -1159,7 -1159,7 +1159,7 @@@ static u32 fq_to_tag(struct qman_fq *fq
  
  static u32 __poll_portal_slow(struct qman_portal *p, u32 is);
  static inline unsigned int __poll_portal_fast(struct qman_portal *p,
 -                                      unsigned int poll_limit);
 +                                      unsigned int poll_limit, bool sched_napi);
  static void qm_congestion_task(struct work_struct *work);
  static void qm_mr_process_task(struct work_struct *work);
  
@@@ -1174,7 -1174,7 +1174,7 @@@ static irqreturn_t portal_isr(int irq, 
  
        /* DQRR-handling if it's interrupt-driven */
        if (is & QM_PIRQ_DQRI) {
 -              __poll_portal_fast(p, QMAN_POLL_LIMIT);
 +              __poll_portal_fast(p, QMAN_POLL_LIMIT, true);
                clear = QM_DQAVAIL_MASK | QM_PIRQ_DQRI;
        }
        /* Handling of anything else that's interrupt-driven */
@@@ -1602,7 -1602,7 +1602,7 @@@ static noinline void clear_vdqcr(struc
   * user callbacks to call into any QMan API.
   */
  static inline unsigned int __poll_portal_fast(struct qman_portal *p,
 -                                      unsigned int poll_limit)
 +                                      unsigned int poll_limit, bool sched_napi)
  {
        const struct qm_dqrr_entry *dq;
        struct qman_fq *fq;
                         * and we don't want multiple if()s in the critical
                         * path (SDQCR).
                         */
 -                      res = fq->cb.dqrr(p, fq, dq);
 +                      res = fq->cb.dqrr(p, fq, dq, sched_napi);
                        if (res == qman_cb_dqrr_stop)
                                break;
                        /* Check for VDQCR completion */
                        /* SDQCR: context_b points to the FQ */
                        fq = tag_to_fq(be32_to_cpu(dq->context_b));
                        /* Now let the callback do its stuff */
 -                      res = fq->cb.dqrr(p, fq, dq);
 +                      res = fq->cb.dqrr(p, fq, dq, sched_napi);
                        /*
                         * The callback can request that we exit without
                         * consuming this entry nor advancing;
@@@ -1753,7 -1753,7 +1753,7 @@@ EXPORT_SYMBOL(qman_start_using_portal)
  
  int qman_p_poll_dqrr(struct qman_portal *p, unsigned int limit)
  {
 -      return __poll_portal_fast(p, limit);
 +      return __poll_portal_fast(p, limit, false);
  }
  EXPORT_SYMBOL(qman_p_poll_dqrr);
  
@@@ -2622,7 -2622,7 +2622,7 @@@ int qman_shutdown_fq(u32 fqid
        union qm_mc_command *mcc;
        union qm_mc_result *mcr;
        int orl_empty, drain = 0, ret = 0;
-       u32 channel, wq, res;
+       u32 channel, res;
        u8 state;
  
        p = get_affine_portal();
        DPAA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_QUERYFQ);
        /* Need to store these since the MCR gets reused */
        channel = qm_fqd_get_chan(&mcr->queryfq.fqd);
-       wq = qm_fqd_get_wq(&mcr->queryfq.fqd);
+       qm_fqd_get_wq(&mcr->queryfq.fqd);
  
        if (channel < qm_channel_pool1) {
                channel_portal = get_portal_for_channel(channel);
                         * to dequeue from the channel the FQ is scheduled on
                         */
                        int found_fqrn = 0;
-                       u16 dequeue_wq = 0;
  
                        /* Flag that we need to drain FQ */
                        drain = 1;
                        if (channel >= qm_channel_pool1 &&
                            channel < qm_channel_pool1 + 15) {
                                /* Pool channel, enable the bit in the portal */
-                               dequeue_wq = (channel -
-                                             qm_channel_pool1 + 1)<<4 | wq;
                        } else if (channel < qm_channel_pool1) {
                                /* Dedicated channel */
-                               dequeue_wq = wq;
                        } else {
                                dev_err(dev, "Can't recover FQ 0x%x, ch: 0x%x",
                                        fqid, channel);
index 18d54f9fd715d910f80018faa3c4731b6c3a4f1d,d5fca10ea5b4cf3eed58aa66e2770e2a32fcc0f4..ddad5d274ee81d5154b3e9131a2855a7599f1e3d
@@@ -45,79 -45,60 +45,79 @@@ static const struct cedrus_control cedr
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS,
 +                      .id     = V4L2_CID_STATELESS_H264_DECODE_PARAMS,
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = true,
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS,
 +                      .id     = V4L2_CID_STATELESS_H264_SLICE_PARAMS,
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = true,
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_SPS,
 +                      .id     = V4L2_CID_STATELESS_H264_SPS,
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = true,
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_PPS,
 +                      .id     = V4L2_CID_STATELESS_H264_PPS,
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = true,
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX,
 +                      .id     = V4L2_CID_STATELESS_H264_SCALING_MATRIX,
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = false,
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_PRED_WEIGHTS,
 +                      .id     = V4L2_CID_STATELESS_H264_PRED_WEIGHTS,
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = false,
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_DECODE_MODE,
 -                      .max    = V4L2_MPEG_VIDEO_H264_DECODE_MODE_SLICE_BASED,
 -                      .def    = V4L2_MPEG_VIDEO_H264_DECODE_MODE_SLICE_BASED,
 +                      .id     = V4L2_CID_STATELESS_H264_DECODE_MODE,
 +                      .max    = V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED,
 +                      .def    = V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED,
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = false,
        },
        {
                .cfg = {
 -                      .id     = V4L2_CID_MPEG_VIDEO_H264_START_CODE,
 -                      .max    = V4L2_MPEG_VIDEO_H264_START_CODE_NONE,
 -                      .def    = V4L2_MPEG_VIDEO_H264_START_CODE_NONE,
 +                      .id     = V4L2_CID_STATELESS_H264_START_CODE,
 +                      .max    = V4L2_STATELESS_H264_START_CODE_NONE,
 +                      .def    = V4L2_STATELESS_H264_START_CODE_NONE,
 +              },
 +              .codec          = CEDRUS_CODEC_H264,
 +              .required       = false,
 +      },
 +      /*
 +       * We only expose supported profiles information,
 +       * and not levels as it's not clear what is supported
 +       * for each hardware/core version.
 +       * In any case, TRY/S_FMT will clamp the format resolution
 +       * to the maximum supported.
 +       */
 +      {
 +              .cfg = {
 +                      .id     = V4L2_CID_MPEG_VIDEO_H264_PROFILE,
 +                      .min    = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
 +                      .def    = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN,
 +                      .max    = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
 +                      .menu_skip_mask =
 +                              BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED),
                },
                .codec          = CEDRUS_CODEC_H264,
                .required       = false,
                .codec          = CEDRUS_CODEC_H265,
                .required       = false,
        },
 +      {
 +              .cfg = {
 +                      .id             = V4L2_CID_MPEG_VIDEO_VP8_FRAME_HEADER,
 +              },
 +              .codec          = CEDRUS_CODEC_VP8,
 +              .required       = true,
 +      },
  };
  
  #define CEDRUS_CONTROLS_COUNT ARRAY_SIZE(cedrus_controls)
@@@ -419,7 -393,6 +419,7 @@@ static int cedrus_probe(struct platform
        dev->dec_ops[CEDRUS_CODEC_MPEG2] = &cedrus_dec_ops_mpeg2;
        dev->dec_ops[CEDRUS_CODEC_H264] = &cedrus_dec_ops_h264;
        dev->dec_ops[CEDRUS_CODEC_H265] = &cedrus_dec_ops_h265;
 +      dev->dec_ops[CEDRUS_CODEC_VP8] = &cedrus_dec_ops_vp8;
  
        mutex_init(&dev->dev_mutex);
  
@@@ -513,82 -486,43 +513,81 @@@ static int cedrus_remove(struct platfor
  }
  
  static const struct cedrus_variant sun4i_a10_cedrus_variant = {
 +      .capabilities   = CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
        .mod_rate       = 320000000,
  };
  
  static const struct cedrus_variant sun5i_a13_cedrus_variant = {
 +      .capabilities   = CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
        .mod_rate       = 320000000,
  };
  
  static const struct cedrus_variant sun7i_a20_cedrus_variant = {
 +      .capabilities   = CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
        .mod_rate       = 320000000,
  };
  
  static const struct cedrus_variant sun8i_a33_cedrus_variant = {
 -      .capabilities   = CEDRUS_CAPABILITY_UNTILED,
 +      .capabilities   = CEDRUS_CAPABILITY_UNTILED |
 +                        CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
        .mod_rate       = 320000000,
  };
  
  static const struct cedrus_variant sun8i_h3_cedrus_variant = {
        .capabilities   = CEDRUS_CAPABILITY_UNTILED |
 -                        CEDRUS_CAPABILITY_H265_DEC,
 +                        CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_H265_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
        .mod_rate       = 402000000,
  };
  
 +static const struct cedrus_variant sun8i_v3s_cedrus_variant = {
 +      .capabilities   = CEDRUS_CAPABILITY_UNTILED |
 +                        CEDRUS_CAPABILITY_H264_DEC,
 +      .mod_rate       = 297000000,
 +};
 +
 +static const struct cedrus_variant sun8i_r40_cedrus_variant = {
 +      .capabilities   = CEDRUS_CAPABILITY_UNTILED |
 +                        CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
 +      .mod_rate       = 297000000,
 +};
 +
  static const struct cedrus_variant sun50i_a64_cedrus_variant = {
        .capabilities   = CEDRUS_CAPABILITY_UNTILED |
 -                        CEDRUS_CAPABILITY_H265_DEC,
 +                        CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_H265_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
        .mod_rate       = 402000000,
  };
  
  static const struct cedrus_variant sun50i_h5_cedrus_variant = {
        .capabilities   = CEDRUS_CAPABILITY_UNTILED |
 -                        CEDRUS_CAPABILITY_H265_DEC,
 +                        CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_H265_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
        .mod_rate       = 402000000,
  };
  
  static const struct cedrus_variant sun50i_h6_cedrus_variant = {
        .capabilities   = CEDRUS_CAPABILITY_UNTILED |
 -                        CEDRUS_CAPABILITY_H265_DEC,
 +                        CEDRUS_CAPABILITY_MPEG2_DEC |
 +                        CEDRUS_CAPABILITY_H264_DEC |
 +                        CEDRUS_CAPABILITY_H265_DEC |
 +                        CEDRUS_CAPABILITY_VP8_DEC,
-       .quirks         = CEDRUS_QUIRK_NO_DMA_OFFSET,
        .mod_rate       = 600000000,
  };
  
@@@ -612,14 -546,6 +611,14 @@@ static const struct of_device_id cedrus
        {
                .compatible = "allwinner,sun8i-h3-video-engine",
                .data = &sun8i_h3_cedrus_variant,
 +      },
 +      {
 +              .compatible = "allwinner,sun8i-v3s-video-engine",
 +              .data = &sun8i_v3s_cedrus_variant,
 +      },
 +      {
 +              .compatible = "allwinner,sun8i-r40-video-engine",
 +              .data = &sun8i_r40_cedrus_variant,
        },
        {
                .compatible = "allwinner,sun50i-a64-video-engine",
index e61c41853ba2258822cee32d52532b7198990e1f,626090a5811c21b8035cbdf4218ce7d0f8829053..c96077aaef4930f93d6fda4b35615a1469b06aff
  #include <media/videobuf2-v4l2.h>
  #include <media/videobuf2-dma-contig.h>
  
 +#include <linux/iopoll.h>
  #include <linux/platform_device.h>
  
  #define CEDRUS_NAME                   "cedrus"
  
  #define CEDRUS_CAPABILITY_UNTILED     BIT(0)
  #define CEDRUS_CAPABILITY_H265_DEC    BIT(1)
 +#define CEDRUS_CAPABILITY_H264_DEC    BIT(2)
 +#define CEDRUS_CAPABILITY_MPEG2_DEC   BIT(3)
 +#define CEDRUS_CAPABILITY_VP8_DEC     BIT(4)
  
- #define CEDRUS_QUIRK_NO_DMA_OFFSET    BIT(0)
  enum cedrus_codec {
        CEDRUS_CODEC_MPEG2,
        CEDRUS_CODEC_H264,
        CEDRUS_CODEC_H265,
 +      CEDRUS_CODEC_VP8,
        CEDRUS_CODEC_LAST,
  };
  
@@@ -81,10 -74,6 +79,10 @@@ struct cedrus_h265_run 
        const struct v4l2_ctrl_hevc_slice_params        *slice_params;
  };
  
 +struct cedrus_vp8_run {
 +      const struct v4l2_ctrl_vp8_frame_header         *frame_params;
 +};
 +
  struct cedrus_run {
        struct vb2_v4l2_buffer  *src;
        struct vb2_v4l2_buffer  *dst;
@@@ -93,7 -82,6 +91,7 @@@
                struct cedrus_h264_run  h264;
                struct cedrus_mpeg2_run mpeg2;
                struct cedrus_h265_run  h265;
 +              struct cedrus_vp8_run   vp8;
        };
  };
  
@@@ -145,14 -133,6 +143,14 @@@ struct cedrus_ctx 
                        void            *neighbor_info_buf;
                        dma_addr_t      neighbor_info_buf_addr;
                } h265;
 +              struct {
 +                      unsigned int    last_frame_p_type;
 +                      unsigned int    last_filter_type;
 +                      unsigned int    last_sharpness_level;
 +
 +                      u8              *entropy_probs_buf;
 +                      dma_addr_t      entropy_probs_buf_dma;
 +              } vp8;
        } codec;
  };
  
@@@ -168,7 -148,6 +166,6 @@@ struct cedrus_dec_ops 
  
  struct cedrus_variant {
        unsigned int    capabilities;
-       unsigned int    quirks;
        unsigned int    mod_rate;
  };
  
@@@ -199,7 -178,6 +196,7 @@@ struct cedrus_dev 
  extern struct cedrus_dec_ops cedrus_dec_ops_mpeg2;
  extern struct cedrus_dec_ops cedrus_dec_ops_h264;
  extern struct cedrus_dec_ops cedrus_dec_ops_h265;
 +extern struct cedrus_dec_ops cedrus_dec_ops_vp8;
  
  static inline void cedrus_write(struct cedrus_dev *dev, u32 reg, u32 val)
  {
@@@ -211,14 -189,6 +208,14 @@@ static inline u32 cedrus_read(struct ce
        return readl(dev->base + reg);
  }
  
 +static inline u32 cedrus_wait_for(struct cedrus_dev *dev, u32 reg, u32 flag)
 +{
 +      u32 value;
 +
 +      return readl_poll_timeout_atomic(dev->base + reg, value,
 +                      (value & flag) == 0, 10, 1000);
 +}
 +
  static inline dma_addr_t cedrus_buf_addr(struct vb2_buffer *buf,
                                         struct v4l2_pix_format *pix_fmt,
                                         unsigned int plane)
index 111cb91f8fc2e16233f15b987b08321324f42ef8,286c7fe844c383b3c081c49765b189d35680e9d5..e2f2ff609c7e6326f6812851f44f924b60a73ca0
@@@ -47,9 -47,7 +47,9 @@@ int cedrus_engine_enable(struct cedrus_
                reg |= VE_MODE_DEC_MPEG;
                break;
  
 +      /* H.264 and VP8 both use the same decoding mode bit. */
        case CEDRUS_CODEC_H264:
 +      case CEDRUS_CODEC_VP8:
                reg |= VE_MODE_DEC_H264;
                break;
  
@@@ -224,24 -222,6 +224,6 @@@ int cedrus_hw_probe(struct cedrus_dev *
                return ret;
        }
  
-       /*
-        * The VPU is only able to handle bus addresses so we have to subtract
-        * the RAM offset to the physcal addresses.
-        *
-        * This information will eventually be obtained from device-tree.
-        *
-        * XXX(hch): this has no business in a driver and needs to move
-        * to the device tree.
-        */
- #ifdef PHYS_PFN_OFFSET
-       if (!(variant->quirks & CEDRUS_QUIRK_NO_DMA_OFFSET)) {
-               ret = dma_direct_set_offset(dev->dev, PHYS_OFFSET, 0, SZ_4G);
-               if (ret)
-                       return ret;
-       }
- #endif
        ret = of_reserved_mem_device_init(dev->dev);
        if (ret && ret != -ENODEV) {
                dev_err(dev->dev, "Failed to reserve memory\n");
index 2aaed35b556df47dfd0dc737784abeb780a18216,199d85285246054e5b0099abedfd7817c24eaa90..2e49996a8f391aef941563909c9cb1a05d9b9252
@@@ -558,11 -558,6 +558,4 @@@ static inline int dma_mmap_wc(struct de
  #define dma_unmap_len_set(PTR, LEN_NAME, VAL)    do { } while (0)
  #endif
  
- /*
-  * Legacy interface to set up the dma offset map.  Drivers really should not
-  * actually use it, but we have a few legacy cases left.
-  */
- int dma_direct_set_offset(struct device *dev, phys_addr_t cpu_start,
-               dma_addr_t dma_start, u64 size);
 -extern const struct dma_map_ops dma_virt_ops;
--
  #endif /* _LINUX_DMA_MAPPING_H */
index 41a1bab98b7e14a2bbf964a17103ab3d907e5f0e,edc2977b26d91392f086cf865d6fa388e4f72c36..2a0da841c942f6090a321d16c30c2dfa38670ce6
@@@ -13,6 -13,8 +13,8 @@@
  #ifndef __FIRMWARE_ZYNQMP_H__
  #define __FIRMWARE_ZYNQMP_H__
  
+ #include <linux/err.h>
  #define ZYNQMP_PM_VERSION_MAJOR       1
  #define ZYNQMP_PM_VERSION_MINOR       0
  
  #define       ZYNQMP_PM_CAPABILITY_WAKEUP     0x4U
  #define       ZYNQMP_PM_CAPABILITY_UNUSABLE   0x8U
  
 -/* Feature check status */
 -#define PM_FEATURE_INVALID            -1
 -#define PM_FEATURE_UNCHECKED          0
 -
  /*
   * Firmware FPGA Manager flags
   * XILINX_ZYNQMP_PM_FPGA_FULL:        FPGA full reconfiguration
@@@ -310,7 -316,6 +312,6 @@@ struct zynqmp_pm_query_data 
        u32 arg3;
  };
  
  int zynqmp_pm_invoke_fn(u32 pm_api_id, u32 arg0, u32 arg1,
                        u32 arg2, u32 arg3, u32 *ret_payload);
  
@@@ -358,147 -363,181 +359,181 @@@ static inline struct zynqmp_eemi_ops *z
  {
        return ERR_PTR(-ENODEV);
  }
  static inline int zynqmp_pm_get_api_version(u32 *version)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_get_chipid(u32 *idcode, u32 *version)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_query_data(struct zynqmp_pm_query_data qdata,
                                       u32 *out)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_enable(u32 clock_id)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_disable(u32 clock_id)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_getstate(u32 clock_id, u32 *state)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_setdivider(u32 clock_id, u32 divider)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_getdivider(u32 clock_id, u32 *divider)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_setrate(u32 clock_id, u64 rate)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_getrate(u32 clock_id, u64 *rate)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_setparent(u32 clock_id, u32 parent_id)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_set_pll_frac_mode(u32 clk_id, u32 mode)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_get_pll_frac_mode(u32 clk_id, u32 *mode)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_set_pll_frac_data(u32 clk_id, u32 data)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_get_pll_frac_data(u32 clk_id, u32 *data)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_set_sd_tapdelay(u32 node_id, u32 type, u32 value)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_sd_dll_reset(u32 node_id, u32 type)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_reset_assert(const enum zynqmp_pm_reset reset,
-                          const enum zynqmp_pm_reset_action assert_flag)
+                                        const enum zynqmp_pm_reset_action assert_flag)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset reset,
                                             u32 *status)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_init_finalize(void)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_set_suspend_mode(u32 mode)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_request_node(const u32 node, const u32 capabilities,
                                         const u32 qos,
                                         const enum zynqmp_pm_request_ack ack)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_release_node(const u32 node)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_set_requirement(const u32 node,
-                                       const u32 capabilities,
-                                       const u32 qos,
-                                       const enum zynqmp_pm_request_ack ack)
+                                           const u32 capabilities,
+                                           const u32 qos,
+                                           const enum zynqmp_pm_request_ack ack)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_aes_engine(const u64 address, u32 *out)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_fpga_load(const u64 address, const u32 size,
                                      const u32 flags)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_fpga_get_status(u32 *value)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_write_ggs(u32 index, u32 value)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_read_ggs(u32 index, u32 *value)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_write_pggs(u32 index, u32 value)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_read_pggs(u32 index, u32 *value)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_system_shutdown(const u32 type, const u32 subtype)
  {
        return -ENODEV;
  }
  static inline int zynqmp_pm_set_boot_health_status(u32 value)
  {
        return -ENODEV;
index c49c5888e854beb605b1581b25b83f0e60db9857,dd9e94849fc13573dc82f266765ae73ca508664f..ecb3aad1a9648e22234397886b4c44dba3aeab3f
@@@ -8,6 -8,7 +8,7 @@@
  #ifndef _LINUX_SCMI_PROTOCOL_H
  #define _LINUX_SCMI_PROTOCOL_H
  
+ #include <linux/bitfield.h>
  #include <linux/device.h>
  #include <linux/notifier.h>
  #include <linux/types.h>
@@@ -121,7 -122,6 +122,7 @@@ struct scmi_perf_ops 
                             unsigned long *rate, unsigned long *power);
        bool (*fast_switch_possible)(const struct scmi_handle *handle,
                                     struct device *dev);
 +      bool (*power_scale_mw_get)(const struct scmi_handle *handle);
  };
  
  /**
@@@ -149,13 -149,180 +150,180 @@@ struct scmi_power_ops 
                         u32 *state);
  };
  
+ /**
+  * scmi_sensor_reading  - represent a timestamped read
+  *
+  * Used by @reading_get_timestamped method.
+  *
+  * @value: The signed value sensor read.
+  * @timestamp: An unsigned timestamp for the sensor read, as provided by
+  *           SCMI platform. Set to zero when not available.
+  */
+ struct scmi_sensor_reading {
+       long long value;
+       unsigned long long timestamp;
+ };
+ /**
+  * scmi_range_attrs  - specifies a sensor or axis values' range
+  * @min_range: The minimum value which can be represented by the sensor/axis.
+  * @max_range: The maximum value which can be represented by the sensor/axis.
+  */
+ struct scmi_range_attrs {
+       long long min_range;
+       long long max_range;
+ };
+ /**
+  * scmi_sensor_axis_info  - describes one sensor axes
+  * @id: The axes ID.
+  * @type: Axes type. Chosen amongst one of @enum scmi_sensor_class.
+  * @scale: Power-of-10 multiplier applied to the axis unit.
+  * @name: NULL-terminated string representing axes name as advertised by
+  *      SCMI platform.
+  * @extended_attrs: Flag to indicate the presence of additional extended
+  *                attributes for this axes.
+  * @resolution: Extended attribute representing the resolution of the axes.
+  *            Set to 0 if not reported by this axes.
+  * @exponent: Extended attribute representing the power-of-10 multiplier that
+  *          is applied to the resolution field. Set to 0 if not reported by
+  *          this axes.
+  * @attrs: Extended attributes representing minimum and maximum values
+  *       measurable by this axes. Set to 0 if not reported by this sensor.
+  */
+ struct scmi_sensor_axis_info {
+       unsigned int id;
+       unsigned int type;
+       int scale;
+       char name[SCMI_MAX_STR_SIZE];
+       bool extended_attrs;
+       unsigned int resolution;
+       int exponent;
+       struct scmi_range_attrs attrs;
+ };
+ /**
+  * scmi_sensor_intervals_info  - describes number and type of available update
+  * intervals
+  * @segmented: Flag for segmented intervals' representation. When True there
+  *           will be exactly 3 intervals in @desc, with each entry
+  *           representing a member of a segment in this order:
+  *           {lowest update interval, highest update interval, step size}
+  * @count: Number of intervals described in @desc.
+  * @desc: Array of @count interval descriptor bitmask represented as detailed in
+  *      the SCMI specification: it can be accessed using the accompanying
+  *      macros.
+  * @prealloc_pool: A minimal preallocated pool of desc entries used to avoid
+  *               lesser-than-64-bytes dynamic allocation for small @count
+  *               values.
+  */
+ struct scmi_sensor_intervals_info {
+       bool segmented;
+       unsigned int count;
+ #define SCMI_SENS_INTVL_SEGMENT_LOW   0
+ #define SCMI_SENS_INTVL_SEGMENT_HIGH  1
+ #define SCMI_SENS_INTVL_SEGMENT_STEP  2
+       unsigned int *desc;
+ #define SCMI_SENS_INTVL_GET_SECS(x)           FIELD_GET(GENMASK(20, 5), (x))
+ #define SCMI_SENS_INTVL_GET_EXP(x)                                    \
+       ({                                                              \
+               int __signed_exp = FIELD_GET(GENMASK(4, 0), (x));       \
+                                                                       \
+               if (__signed_exp & BIT(4))                              \
+                       __signed_exp |= GENMASK(31, 5);                 \
+               __signed_exp;                                           \
+       })
+ #define SCMI_MAX_PREALLOC_POOL                        16
+       unsigned int prealloc_pool[SCMI_MAX_PREALLOC_POOL];
+ };
+ /**
+  * struct scmi_sensor_info - represents information related to one of the
+  * available sensors.
+  * @id: Sensor ID.
+  * @type: Sensor type. Chosen amongst one of @enum scmi_sensor_class.
+  * @scale: Power-of-10 multiplier applied to the sensor unit.
+  * @num_trip_points: Number of maximum configurable trip points.
+  * @async: Flag for asynchronous read support.
+  * @update: Flag for continuouos update notification support.
+  * @timestamped: Flag for timestamped read support.
+  * @tstamp_scale: Power-of-10 multiplier applied to the sensor timestamps to
+  *              represent it in seconds.
+  * @num_axis: Number of supported axis if any. Reported as 0 for scalar sensors.
+  * @axis: Pointer to an array of @num_axis descriptors.
+  * @intervals: Descriptor of available update intervals.
+  * @sensor_config: A bitmask reporting the current sensor configuration as
+  *               detailed in the SCMI specification: it can accessed and
+  *               modified through the accompanying macros.
+  * @name: NULL-terminated string representing sensor name as advertised by
+  *      SCMI platform.
+  * @extended_scalar_attrs: Flag to indicate the presence of additional extended
+  *                       attributes for this sensor.
+  * @sensor_power: Extended attribute representing the average power
+  *              consumed by the sensor in microwatts (uW) when it is active.
+  *              Reported here only for scalar sensors.
+  *              Set to 0 if not reported by this sensor.
+  * @resolution: Extended attribute representing the resolution of the sensor.
+  *            Reported here only for scalar sensors.
+  *            Set to 0 if not reported by this sensor.
+  * @exponent: Extended attribute representing the power-of-10 multiplier that is
+  *          applied to the resolution field.
+  *          Reported here only for scalar sensors.
+  *          Set to 0 if not reported by this sensor.
+  * @scalar_attrs: Extended attributes representing minimum and maximum
+  *              measurable values by this sensor.
+  *              Reported here only for scalar sensors.
+  *              Set to 0 if not reported by this sensor.
+  */
  struct scmi_sensor_info {
-       u32 id;
-       u8 type;
-       s8 scale;
-       u8 num_trip_points;
+       unsigned int id;
+       unsigned int type;
+       int scale;
+       unsigned int num_trip_points;
        bool async;
+       bool update;
+       bool timestamped;
+       int tstamp_scale;
+       unsigned int num_axis;
+       struct scmi_sensor_axis_info *axis;
+       struct scmi_sensor_intervals_info intervals;
+       unsigned int sensor_config;
+ #define SCMI_SENS_CFG_UPDATE_SECS_MASK                GENMASK(31, 16)
+ #define SCMI_SENS_CFG_GET_UPDATE_SECS(x)                              \
+       FIELD_GET(SCMI_SENS_CFG_UPDATE_SECS_MASK, (x))
+ #define SCMI_SENS_CFG_UPDATE_EXP_MASK         GENMASK(15, 11)
+ #define SCMI_SENS_CFG_GET_UPDATE_EXP(x)                                       \
+       ({                                                              \
+               int __signed_exp =                                      \
+                       FIELD_GET(SCMI_SENS_CFG_UPDATE_EXP_MASK, (x));  \
+                                                                       \
+               if (__signed_exp & BIT(4))                              \
+                       __signed_exp |= GENMASK(31, 5);                 \
+               __signed_exp;                                           \
+       })
+ #define SCMI_SENS_CFG_ROUND_MASK              GENMASK(10, 9)
+ #define SCMI_SENS_CFG_ROUND_AUTO              2
+ #define SCMI_SENS_CFG_ROUND_UP                        1
+ #define SCMI_SENS_CFG_ROUND_DOWN              0
+ #define SCMI_SENS_CFG_TSTAMP_ENABLED_MASK     BIT(1)
+ #define SCMI_SENS_CFG_TSTAMP_ENABLE           1
+ #define SCMI_SENS_CFG_TSTAMP_DISABLE          0
+ #define SCMI_SENS_CFG_IS_TSTAMP_ENABLED(x)                            \
+       FIELD_GET(SCMI_SENS_CFG_TSTAMP_ENABLED_MASK, (x))
+ #define SCMI_SENS_CFG_SENSOR_ENABLED_MASK     BIT(0)
+ #define SCMI_SENS_CFG_SENSOR_ENABLE           1
+ #define SCMI_SENS_CFG_SENSOR_DISABLE          0
        char name[SCMI_MAX_STR_SIZE];
+ #define SCMI_SENS_CFG_IS_ENABLED(x)           FIELD_GET(BIT(0), (x))
+       bool extended_scalar_attrs;
+       unsigned int sensor_power;
+       unsigned int resolution;
+       int exponent;
+       struct scmi_range_attrs scalar_attrs;
  };
  
  /*
   */
  enum scmi_sensor_class {
        NONE = 0x0,
+       UNSPEC = 0x1,
        TEMPERATURE_C = 0x2,
+       TEMPERATURE_F = 0x3,
+       TEMPERATURE_K = 0x4,
        VOLTAGE = 0x5,
        CURRENT = 0x6,
        POWER = 0x7,
        ENERGY = 0x8,
+       CHARGE = 0x9,
+       VOLTAMPERE = 0xA,
+       NITS = 0xB,
+       LUMENS = 0xC,
+       LUX = 0xD,
+       CANDELAS = 0xE,
+       KPA = 0xF,
+       PSI = 0x10,
+       NEWTON = 0x11,
+       CFM = 0x12,
+       RPM = 0x13,
+       HERTZ = 0x14,
+       SECS = 0x15,
+       MINS = 0x16,
+       HOURS = 0x17,
+       DAYS = 0x18,
+       WEEKS = 0x19,
+       MILS = 0x1A,
+       INCHES = 0x1B,
+       FEET = 0x1C,
+       CUBIC_INCHES = 0x1D,
+       CUBIC_FEET = 0x1E,
+       METERS = 0x1F,
+       CUBIC_CM = 0x20,
+       CUBIC_METERS = 0x21,
+       LITERS = 0x22,
+       FLUID_OUNCES = 0x23,
+       RADIANS = 0x24,
+       STERADIANS = 0x25,
+       REVOLUTIONS = 0x26,
+       CYCLES = 0x27,
+       GRAVITIES = 0x28,
+       OUNCES = 0x29,
+       POUNDS = 0x2A,
+       FOOT_POUNDS = 0x2B,
+       OUNCE_INCHES = 0x2C,
+       GAUSS = 0x2D,
+       GILBERTS = 0x2E,
+       HENRIES = 0x2F,
+       FARADS = 0x30,
+       OHMS = 0x31,
+       SIEMENS = 0x32,
+       MOLES = 0x33,
+       BECQUERELS = 0x34,
+       PPM = 0x35,
+       DECIBELS = 0x36,
+       DBA = 0x37,
+       DBC = 0x38,
+       GRAYS = 0x39,
+       SIEVERTS = 0x3A,
+       COLOR_TEMP_K = 0x3B,
+       BITS = 0x3C,
+       BYTES = 0x3D,
+       WORDS = 0x3E,
+       DWORDS = 0x3F,
+       QWORDS = 0x40,
+       PERCENTAGE = 0x41,
+       PASCALS = 0x42,
+       COUNTS = 0x43,
+       GRAMS = 0x44,
+       NEWTON_METERS = 0x45,
+       HITS = 0x46,
+       MISSES = 0x47,
+       RETRIES = 0x48,
+       OVERRUNS = 0x49,
+       UNDERRUNS = 0x4A,
+       COLLISIONS = 0x4B,
+       PACKETS = 0x4C,
+       MESSAGES = 0x4D,
+       CHARS = 0x4E,
+       ERRORS = 0x4F,
+       CORRECTED_ERRS = 0x50,
+       UNCORRECTABLE_ERRS = 0x51,
+       SQ_MILS = 0x52,
+       SQ_INCHES = 0x53,
+       SQ_FEET = 0x54,
+       SQ_CM = 0x55,
+       SQ_METERS = 0x56,
+       RADIANS_SEC = 0x57,
+       BPM = 0x58,
+       METERS_SEC_SQUARED = 0x59,
+       METERS_SEC = 0x5A,
+       CUBIC_METERS_SEC = 0x5B,
+       MM_MERCURY = 0x5C,
+       RADIANS_SEC_SQUARED = 0x5D,
+       OEM_UNIT = 0xFF
  };
  
  /**
   * @info_get: get the information of the specified sensor
   * @trip_point_config: selects and configures a trip-point of interest
   * @reading_get: gets the current value of the sensor
+  * @reading_get_timestamped: gets the current value and timestamp, when
+  *                         available, of the sensor. (as of v3.0 spec)
+  *                         Supports multi-axis sensors for sensors which
+  *                         supports it and if the @reading array size of
+  *                         @count entry equals the sensor num_axis
+  * @config_get: Get sensor current configuration
+  * @config_set: Set sensor current configuration
   */
  struct scmi_sensor_ops {
        int (*count_get)(const struct scmi_handle *handle);
                                 u32 sensor_id, u8 trip_id, u64 trip_value);
        int (*reading_get)(const struct scmi_handle *handle, u32 sensor_id,
                           u64 *value);
+       int (*reading_get_timestamped)(const struct scmi_handle *handle,
+                                      u32 sensor_id, u8 count,
+                                      struct scmi_sensor_reading *readings);
+       int (*config_get)(const struct scmi_handle *handle,
+                         u32 sensor_id, u32 *sensor_config);
+       int (*config_set)(const struct scmi_handle *handle,
+                         u32 sensor_id, u32 sensor_config);
  };
  
  /**
@@@ -451,6 -721,7 +722,7 @@@ enum scmi_notification_events 
        SCMI_EVENT_PERFORMANCE_LIMITS_CHANGED = 0x0,
        SCMI_EVENT_PERFORMANCE_LEVEL_CHANGED = 0x1,
        SCMI_EVENT_SENSOR_TRIP_POINT_EVENT = 0x0,
+       SCMI_EVENT_SENSOR_UPDATE = 0x1,
        SCMI_EVENT_RESET_ISSUED = 0x0,
        SCMI_EVENT_BASE_ERROR_EVENT = 0x0,
        SCMI_EVENT_SYSTEM_POWER_STATE_NOTIFIER = 0x0,
@@@ -492,6 -763,14 +764,14 @@@ struct scmi_sensor_trip_point_report 
        unsigned int    trip_point_desc;
  };
  
+ struct scmi_sensor_update_report {
+       ktime_t                         timestamp;
+       unsigned int                    agent_id;
+       unsigned int                    sensor_id;
+       unsigned int                    readings_count;
+       struct scmi_sensor_reading      readings[];
+ };
  struct scmi_reset_issued_report {
        ktime_t         timestamp;
        unsigned int    agent_id;
This page took 0.328101 seconds and 4 git commands to generate.