]> Git Repo - J-linux.git/commitdiff
Merge tag 'pinctrl-v6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
authorLinus Torvalds <[email protected]>
Wed, 10 Aug 2022 18:01:44 +0000 (11:01 -0700)
committerLinus Torvalds <[email protected]>
Wed, 10 Aug 2022 18:01:44 +0000 (11:01 -0700)
Pull pin control updates from Linus Walleij:
 "Outside the pinctrl driver and DT bindings we hit some Arm DT files,
  patched by the maintainers.

  Other than that it is business as usual.

  Core changes:

   - Add PINCTRL_PINGROUP() helper macro (and use it in the AMD driver).

  New drivers:

   - Intel Meteor Lake support.

   - Reneasas RZ/V2M and r8a779g0 (R-Car V4H).

   - AXP209 variants AXP221, AXP223 and AXP809.

   - Qualcomm MSM8909, PM8226, PMP8074 and SM6375.

   - Allwinner D1.

  Improvements:

   - Proper pin multiplexing in the AMD driver.

   - Mediatek MT8192 can use generic drive strength and pin bias, then
     fixes on top plus some I2C pin group fixes.

   - Have the Allwinner Sunplus SP7021 use the generic DT schema and
     make interrupts optional.

   - Handle Qualcomm SC7280 ADSP.

   - Handle Qualcomm MSM8916 CAMSS GP clock muxing.

   - High impedance bias on ZynqMP.

   - Serialize StarFive access to MMIO.

   - Immutable gpiochip for BCM2835, Ingenic, Qualcomm SPMI GPIO"

* tag 'pinctrl-v6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (117 commits)
  dt-bindings: pinctrl: qcom,pmic-gpio: add PM8226 constraints
  pinctrl: qcom: Make PINCTRL_SM8450 depend on PINCTRL_MSM
  pinctrl: qcom: sm8250: Fix PDC map
  pinctrl: amd: Fix an unused variable
  dt-bindings: pinctrl: mt8186: Add and use drive-strength-microamp
  dt-bindings: pinctrl: mt8186: Add gpio-line-names property
  ARM: dts: imxrt1170-pinfunc: Add pinctrl binding header
  pinctrl: amd: Use unicode for debugfs output
  pinctrl: amd: Fix newline declaration in debugfs output
  pinctrl: at91: Fix typo 'the the' in comment
  dt-bindings: pinctrl: st,stm32: Correct 'resets' property name
  pinctrl: mvebu: Missing a blank line after declarations.
  pinctrl: qcom: Add SM6375 TLMM driver
  dt-bindings: pinctrl: Add DT schema for SM6375 TLMM
  dt-bindings: pinctrl: mt8195: Use drive-strength-microamp in examples
  Revert "pinctrl: qcom: spmi-gpio: make the irqchip immutable"
  pinctrl: imx93: Add MODULE_DEVICE_TABLE()
  pinctrl: sunxi: Add driver for Allwinner D1
  pinctrl: sunxi: Make some layout parameters dynamic
  pinctrl: sunxi: Refactor register/offset calculation
  ...

1  2 
MAINTAINERS
arch/arm/boot/dts/sun6i-a31.dtsi
arch/arm/boot/dts/sun8i-a23-a33.dtsi
drivers/pinctrl/Kconfig
drivers/pinctrl/freescale/pinctrl-imx93.c
drivers/pinctrl/intel/pinctrl-intel.c
drivers/pinctrl/pinctrl-ocelot.c
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
drivers/pinctrl/renesas/pinctrl-rzg2l.c
drivers/pinctrl/sunxi/pinctrl-sunxi.c
include/linux/firmware/xlnx-zynqmp.h

diff --combined MAINTAINERS
index 4b08856c0846b2066fc65736791abaa178065694,69e434713509338245d6f89c7cd6a18a5300d2cc..9b6c0f0bda1418421e074dae7a3e229f4ddf68f6
@@@ -171,6 -171,7 +171,6 @@@ F: drivers/scsi/53c700
  
  6LOWPAN GENERIC (BTLE/IEEE 802.15.4)
  M:    Alexander Aring <[email protected]>
 -M:    Jukka Rissanen <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -241,11 -242,6 +241,11 @@@ F:       include/trace/events/9p.
  F:    include/uapi/linux/virtio_9p.h
  F:    net/9p/
  
 +A64FX DIAG DRIVER
 +M:    Hitomi Hasegawa <[email protected]>
 +S:    Supported
 +F:    drivers/soc/fujitsu/a64fx-diag.c
 +
  A8293 MEDIA DRIVER
  M:    Antti Palosaari <[email protected]>
  L:    [email protected]
@@@ -284,37 -280,38 +284,37 @@@ S:      Maintaine
  F:    drivers/hwmon/abituguru3.c
  
  ACCES 104-DIO-48E GPIO DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-104-dio-48e.c
  
  ACCES 104-IDI-48 GPIO DRIVER
 -M:    "William Breathitt Gray" <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-104-idi-48.c
  
  ACCES 104-IDIO-16 GPIO DRIVER
 -M:    "William Breathitt Gray" <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-104-idio-16.c
  
  ACCES 104-QUAD-8 DRIVER
 -M:    William Breathitt Gray <[email protected]>
 -M:    Syed Nayyar Waris <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/counter/104-quad-8.c
  
  ACCES PCI-IDIO-16 GPIO DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-pci-idio-16.c
  
  ACCES PCIe-IDIO-24 GPIO DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-pcie-idio-24.c
@@@ -429,7 -426,7 +429,7 @@@ F: drivers/acpi/*thermal
  ACPI VIOT DRIVER
  M:    Jean-Philippe Brucker <[email protected]>
  L:    [email protected]
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Maintained
  F:    drivers/acpi/viot.c
  F:    include/linux/acpi_viot.h
@@@ -736,14 -733,6 +736,14 @@@ S:       Maintaine
  F:    Documentation/i2c/busses/i2c-ali1563.rst
  F:    drivers/i2c/busses/i2c-ali1563.c
  
 +ALIBABA ELASTIC RDMA DRIVER
 +M:    Cheng Xu <[email protected]>
 +M:    Kai Shen <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/infiniband/hw/erdma
 +F:    include/uapi/rdma/erdma-abi.h
 +
  ALIENWARE WMI DRIVER
  L:    [email protected]
  S:    Maintained
@@@ -773,14 -762,6 +773,14 @@@ T:       git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
  F:    drivers/media/platform/sunxi/sun4i-csi/
  
 +ALLWINNER A31 MIPI CSI-2 BRIDGE DRIVER
 +M:    Paul Kocialkowski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-mipi-csi2.yaml
 +F:    drivers/media/platform/sunxi/sun6i-mipi-csi2/
 +
  ALLWINNER CPUFREQ DRIVER
  M:    Yangtao Li <[email protected]>
  L:    [email protected]
@@@ -816,7 -797,7 +816,7 @@@ S: Maintaine
  F:    drivers/staging/media/sunxi/cedrus/
  
  ALPHA PORT
 -M:    Richard Henderson <r[email protected]>
 +M:    Richard Henderson <r[email protected]>
  M:    Ivan Kokshaysky <[email protected]>
  M:    Matt Turner <[email protected]>
  L:    [email protected]
@@@ -978,7 -959,7 +978,7 @@@ F: drivers/video/fbdev/geode
  AMD IOMMU (AMD-VI)
  M:    Joerg Roedel <[email protected]>
  R:    Suravee Suthikulpanit <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    drivers/iommu/amd/
@@@ -1015,7 -996,7 +1015,7 @@@ AMD PMC DRIVE
  M:    Shyam Sundar S K <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/platform/x86/amd-pmc.*
 +F:    drivers/platform/x86/amd/pmc.c
  
  AMD HSMP DRIVER
  M:    Naveen Krishna Chatradhi <[email protected]>
@@@ -1025,7 -1006,7 +1025,7 @@@ S:      Maintaine
  F:    Documentation/x86/amd_hsmp.rst
  F:    arch/x86/include/asm/amd_hsmp.h
  F:    arch/x86/include/uapi/asm/amd_hsmp.h
 -F:    drivers/platform/x86/amd_hsmp.c
 +F:    drivers/platform/x86/amd/hsmp.c
  
  AMD POWERPLAY AND SWSMU
  M:    Evan Quan <[email protected]>
@@@ -1057,7 -1038,6 +1057,7 @@@ F:      arch/arm64/boot/dts/amd
  
  AMD XGBE DRIVER
  M:    Tom Lendacky <[email protected]>
 +M:    "Shyam Sundar S K" <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
@@@ -1347,7 -1327,7 +1347,7 @@@ M:      Todd Kjos <[email protected]
  M:    Martijn Coenen <[email protected]>
  M:    Joel Fernandes <[email protected]>
  M:    Christian Brauner <[email protected]>
 -M:    Hridya Valsaraju <hridya@google.com>
 +M:    Carlos Llamas <cmllamas@google.com>
  M:    Suren Baghdasaryan <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -1374,7 -1354,7 +1374,7 @@@ S:      Maintaine
  F:    sound/aoa/
  
  APEX EMBEDDED SYSTEMS STX104 IIO DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/iio/adc/stx104.c
@@@ -1390,14 -1370,10 +1390,14 @@@ F:   include/uapi/linux/apm_bios.
  
  APPARMOR SECURITY MODULE
  M:    John Johansen <[email protected]>
 -L:    [email protected] (subscribers-only, general discussion)
 +M:    John Johansen <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
  S:    Supported
 -W:    wiki.apparmor.net
 +W:    apparmor.net
 +B:    https://gitlab.com/apparmor/apparmor-kernel
 +C:    irc://irc.oftc.net/apparmor
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
 +T:    https://gitlab.com/apparmor/apparmor-kernel.git
  F:    Documentation/admin-guide/LSM/apparmor.rst
  F:    security/apparmor/
  
@@@ -1492,13 -1468,6 +1492,13 @@@ S:    Supporte
  W:    http://www.aquantia.com
  F:    drivers/net/ethernet/aquantia/atlantic/aq_ptp*
  
 +AR0521 ON SEMICONDUCTOR CAMERA SENSOR DRIVER
 +M:    Krzysztof HaƂasa <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
 +F:    drivers/media/i2c/ar0521.c
 +
  ARASAN NAND CONTROLLER DRIVER
  M:    Miquel Raynal <[email protected]>
  M:    Naga Sureshkumar Relli <[email protected]>
@@@ -1538,7 -1507,7 +1538,7 @@@ F:      drivers/clocksource/arm_arch_timer.
  ARM HDLCD DRM DRIVER
  M:    Liviu Dudau <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/display/arm,hdlcd.txt
 +F:    Documentation/devicetree/bindings/display/arm,hdlcd.yaml
  F:    drivers/gpu/drm/arm/hdlcd_*
  
  ARM INTEGRATOR, VERSATILE AND REALVIEW SUPPORT
@@@ -1551,7 -1520,7 +1551,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
  F:    Documentation/devicetree/bindings/auxdisplay/arm,versatile-lcd.yaml
  F:    Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
 -F:    Documentation/devicetree/bindings/i2c/i2c-versatile.txt
 +F:    Documentation/devicetree/bindings/i2c/arm,i2c-versatile.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt
  F:    Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
  F:    arch/arm/boot/dts/arm-realview-*
@@@ -1573,7 -1542,7 +1573,7 @@@ M:      Mihail Atanassov <mihail.atanassov@a
  L:    Mali DP Maintainers <[email protected]>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    Documentation/devicetree/bindings/display/arm,komeda.txt
 +F:    Documentation/devicetree/bindings/display/arm,komeda.yaml
  F:    Documentation/gpu/komeda-kms.rst
  F:    drivers/gpu/drm/arm/display/include/
  F:    drivers/gpu/drm/arm/display/komeda/
@@@ -1595,7 -1564,7 +1595,7 @@@ M:      Brian Starkey <[email protected]
  L:    Mali DP Maintainers <[email protected]>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    Documentation/devicetree/bindings/display/arm,malidp.txt
 +F:    Documentation/devicetree/bindings/display/arm,malidp.yaml
  F:    Documentation/gpu/afbc.rst
  F:    drivers/gpu/drm/arm/
  
@@@ -1854,7 -1823,6 +1854,7 @@@ ARM/APPLE MACHINE SUPPOR
  M:    Hector Martin <[email protected]>
  M:    Sven Peter <[email protected]>
  R:    Alyssa Rosenzweig <[email protected]>
 +L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  W:    https://asahilinux.org
@@@ -1864,7 -1832,6 +1864,7 @@@ T:      git https://github.com/AsahiLinux/li
  F:    Documentation/devicetree/bindings/arm/apple.yaml
  F:    Documentation/devicetree/bindings/arm/apple/*
  F:    Documentation/devicetree/bindings/clock/apple,nco.yaml
 +F:    Documentation/devicetree/bindings/dma/apple,admac.yaml
  F:    Documentation/devicetree/bindings/i2c/apple,i2c.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/apple,*
  F:    Documentation/devicetree/bindings/iommu/apple,dart.yaml
@@@ -1878,7 -1845,6 +1878,7 @@@ F:      Documentation/devicetree/bindings/po
  F:    Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
  F:    arch/arm64/boot/dts/apple/
  F:    drivers/clk/clk-apple-nco.c
 +F:    drivers/dma/apple-admac.c
  F:    drivers/i2c/busses/i2c-pasemi-core.c
  F:    drivers/i2c/busses/i2c-pasemi-platform.c
  F:    drivers/iommu/apple-dart.c
@@@ -1927,7 -1893,6 +1927,7 @@@ L:      [email protected] (moder
  S:    Supported
  Q:    https://patchwork.ozlabs.org/project/linux-aspeed/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed.git
 +F:    Documentation/devicetree/bindings/arm/aspeed/
  F:    arch/arm/boot/dts/aspeed-*
  F:    arch/arm/mach-aspeed/
  N:    aspeed
  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
 -F:    Documentation/devicetree/bindings/arm/coresight.txt
 -F:    Documentation/devicetree/bindings/arm/ete.yaml
 -F:    Documentation/devicetree/bindings/arm/trbe.yaml
 +F:    Documentation/devicetree/bindings/arm/arm,coresight-*.yaml
 +F:    Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
 +F:    Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
  F:    Documentation/trace/coresight/*
  F:    drivers/hwtracing/coresight/*
  F:    include/dt-bindings/arm/coresight-cti-dt.h
@@@ -2042,7 -2009,7 +2042,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git git://github.com/ulli-kroll/linux.git
  F:    Documentation/devicetree/bindings/arm/gemini.yaml
 -F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.txt
 +F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.yaml
  F:    Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
  F:    Documentation/devicetree/bindings/rtc/faraday,ftrtc010.yaml
  F:    arch/arm/boot/dts/gemini*
@@@ -2173,13 -2140,11 +2173,13 @@@ M:   Jean-Marie Verdun <[email protected]
  M:    Nick Hawkins <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/hpe,gxp.yaml
 +F:    Documentation/devicetree/bindings/spi/hpe,gxp-spi.yaml
  F:    Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml
  F:    arch/arm/boot/dts/hpe-bmc*
  F:    arch/arm/boot/dts/hpe-gxp*
  F:    arch/arm/mach-hpe/
  F:    drivers/clocksource/timer-gxp.c
 +F:    drivers/spi/spi-gxp.c
  F:    drivers/watchdog/gxp-wdt.c
  
  ARM/IGEP MACHINE SUPPORT
@@@ -2451,7 -2416,7 +2451,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/arm/ste-*
  F:    Documentation/devicetree/bindings/arm/ux500.yaml
  F:    Documentation/devicetree/bindings/arm/ux500/
 -F:    Documentation/devicetree/bindings/i2c/i2c-nomadik.txt
 +F:    Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
  F:    arch/arm/boot/dts/ste-*
  F:    arch/arm/mach-nomadik/
  F:    arch/arm/mach-ux500/
@@@ -2483,11 -2448,9 +2483,11 @@@ F:    Documentation/devicetree/bindings/*/
  F:    Documentation/devicetree/bindings/arm/npcm/*
  F:    arch/arm/boot/dts/nuvoton-npcm*
  F:    arch/arm/mach-npcm/
 +F:    arch/arm64/boot/dts/nuvoton/
  F:    drivers/*/*npcm*
  F:    drivers/*/*/*npcm*
  F:    include/dt-bindings/clock/nuvoton,npcm7xx-clock.h
 +F:    include/dt-bindings/clock/nuvoton,npcm845-clk.h
  
  ARM/NUVOTON WPCM450 ARCHITECTURE
  M:    Jonathan NeuschĂ€fer <[email protected]>
@@@ -2504,7 -2467,6 +2504,7 @@@ ARM/NXP S32G ARCHITECTUR
  M:    Chester Lin <[email protected]>
  R:    Andreas FĂ€rber <[email protected]>
  R:    Matthias Brugger <[email protected]>
 +R:    NXP S32 Linux Team <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm64/boot/dts/freescale/s32g*.dts*
@@@ -2534,8 -2496,10 +2534,8 @@@ F:     drivers/power/reset/oxnas-restart.
  N:    oxnas
  
  ARM/PALM TREO SUPPORT
 -M:    Tomas Cech <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -W:    http://hackndev.com
 +S:    Orphan
  F:    arch/arm/mach-pxa/palmtreo.*
  
  ARM/PALMTX,PALMT5,PALMLD,PALMTE2,PALMTC SUPPORT
@@@ -2573,7 -2537,6 +2573,7 @@@ W:      http://www.armlinux.org.uk
  ARM/QUALCOMM SUPPORT
  M:    Andy Gross <[email protected]>
  M:    Bjorn Andersson <[email protected]>
 +R:    Konrad Dybcio <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
@@@ -2624,7 -2587,7 +2624,7 @@@ L:      [email protected] (mo
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/rda.yaml
  F:    Documentation/devicetree/bindings/gpio/gpio-rda.yaml
 -F:    Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.txt
 +F:    Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.yaml
  F:    Documentation/devicetree/bindings/serial/rda,8810pl-uart.yaml
  F:    Documentation/devicetree/bindings/timer/rda,8810pl-timer.yaml
  F:    arch/arm/boot/dts/rda8810pl-*
@@@ -2652,8 -2615,6 +2652,8 @@@ Q:      http://patchwork.kernel.org/project/
  C:    irc://irc.libera.chat/renesas-soc
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  F:    Documentation/devicetree/bindings/arm/renesas.yaml
 +F:    Documentation/devicetree/bindings/hwinfo/renesas,prr.yaml
 +F:    Documentation/devicetree/bindings/soc/renesas/
  F:    arch/arm64/boot/dts/renesas/
  F:    drivers/soc/renesas/
  F:    include/linux/soc/renesas/
@@@ -2704,7 -2665,6 +2704,7 @@@ B:      mailto:[email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git
  F:    Documentation/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
 +F:    Documentation/devicetree/bindings/hwinfo/samsung,*
  F:    Documentation/devicetree/bindings/power/pd-samsung.yaml
  F:    Documentation/devicetree/bindings/soc/samsung/
  F:    arch/arm/boot/dts/exynos*
@@@ -2754,7 -2714,6 +2754,7 @@@ M:      Sylwester Nawrocki <s.nawrocki@samsu
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/media/samsung,s5pv210-jpeg.yaml
  F:    drivers/media/platform/samsung/s5p-jpeg/
  
  ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
@@@ -2774,7 -2733,6 +2774,7 @@@ Q:      http://patchwork.kernel.org/project/
  C:    irc://irc.libera.chat/renesas-soc
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  F:    Documentation/devicetree/bindings/arm/renesas.yaml
 +F:    Documentation/devicetree/bindings/soc/renesas/
  F:    arch/arm/boot/dts/emev2*
  F:    arch/arm/boot/dts/gr-peach*
  F:    arch/arm/boot/dts/iwg20d-q7*
@@@ -2864,23 -2822,6 +2864,23 @@@ F:    drivers/clocksource/armv7m_systick.
  N:    stm32
  N:    stm
  
 +ARM/SUNPLUS SP7021 SOC SUPPORT
 +M:    Qin Jian <[email protected]>
 +L:    [email protected] (moderated for mon-subscribers)
 +S:    Maintained
 +W:    https://sunplus-tibbo.atlassian.net/wiki/spaces/doc/overview
 +F:    Documentation/devicetree/bindings/arm/sunplus,sp7021.yaml
 +F:    Documentation/devicetree/bindings/clock/sunplus,sp7021-clkc.yaml
 +F:    Documentation/devicetree/bindings/interrupt-controller/sunplus,sp7021-intc.yaml
 +F:    Documentation/devicetree/bindings/reset/sunplus,reset.yaml
 +F:    arch/arm/boot/dts/sunplus-sp7021*.dts*
 +F:    arch/arm/configs/sp7021_*defconfig
 +F:    arch/arm/mach-sunplus/
 +F:    drivers/irqchip/irq-sp7021-intc.c
 +F:    drivers/reset/reset-sunplus.c
 +F:    include/dt-bindings/clock/sunplus,sp7021-clkc.h
 +F:    include/dt-bindings/reset/sunplus,sp7021-reset.h
 +
  ARM/Synaptics SoC support
  M:    Jisheng Zhang <[email protected]>
  M:    Sebastian Hesselbarth <[email protected]>
@@@ -2957,7 -2898,6 +2957,7 @@@ M:      Tero Kristo <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/arm/ti/k3.yaml
 +F:    Documentation/devicetree/bindings/hwinfo/ti,k3-socinfo.yaml
  F:    arch/arm64/boot/dts/ti/Makefile
  F:    arch/arm64/boot/dts/ti/k3-*
  F:    include/dt-bindings/pinctrl/k3.h
@@@ -3196,13 -3136,6 +3196,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/media/aspeed-video.txt
  F:    drivers/media/platform/aspeed/
  
 +ASPEED USB UDC DRIVER
 +M:    Neal Liu <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/usb/aspeed,ast2600-udc.yaml
 +F:    drivers/usb/gadget/udc/aspeed_udc.c
 +
  ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
  M:    Corentin Chary <[email protected]>
  L:    [email protected]
@@@ -3505,7 -3438,7 +3505,7 @@@ W:      https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/broadcom/b43legacy/
  
  BACKLIGHT CLASS/SUBSYSTEM
 -M:    Lee Jones <lee.jones@linaro.org>
 +M:    Lee Jones <lee@kernel.org>
  M:    Daniel Thompson <[email protected]>
  M:    Jingoo Han <[email protected]>
  L:    [email protected]
@@@ -3607,6 -3540,7 +3607,6 @@@ F:      lib/bitmap.
  F:    lib/cpumask.c
  F:    lib/find_bit.c
  F:    lib/find_bit_benchmark.c
 -F:    lib/nodemask.c
  F:    lib/test_bitmap.c
  F:    tools/include/linux/bitmap.h
  F:    tools/include/linux/find.h
@@@ -3680,18 -3614,16 +3680,18 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/iio/accel/bosch,bma400.yaml
  F:    drivers/iio/accel/bma400*
  
 -BPF (Safe dynamic programs and tools)
 +BPF [GENERAL] (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 <song[email protected]>
 +R:    Martin KaFai Lau <[email protected]>
 +R:    Song Liu <song@kernel.org>
  R:    Yonghong Song <[email protected]>
  R:    John Fastabend <[email protected]>
  R:    KP Singh <[email protected]>
 -L:    [email protected]
 +R:    Stanislav Fomichev <[email protected]>
 +R:    Hao Luo <[email protected]>
 +R:    Jiri Olsa <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://bpf.io/
@@@ -3723,17 -3655,21 +3723,17 @@@ F:   scripts/pahole-version.s
  F:    tools/bpf/
  F:    tools/lib/bpf/
  F:    tools/testing/selftests/bpf/
 -N:    bpf
 -K:    bpf
  
  BPF JIT for ARM
  M:    Shubham Bansal <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/arm/net/
  
  BPF JIT for ARM64
  M:    Daniel Borkmann <[email protected]>
  M:    Alexei Starovoitov <[email protected]>
  M:    Zi Shen Lim <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    arch/arm64/net/
  BPF JIT for MIPS (32-BIT AND 64-BIT)
  M:    Johan Almbladh <[email protected]>
  M:    Paul Burton <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/mips/net/
  
  BPF JIT for NFP NICs
  M:    Jakub Kicinski <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Supported
 +S:    Odd Fixes
  F:    drivers/net/ethernet/netronome/nfp/bpf/
  
  BPF JIT for POWERPC (32-BIT AND 64-BIT)
  M:    Naveen N. Rao <[email protected]>
 -L:    [email protected]
 +M:    Michael Ellerman <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    arch/powerpc/net/
  
  BPF JIT for RISC-V (32-bit)
  M:    Luke Nelson <[email protected]>
  M:    Xi Wang <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/riscv/net/
@@@ -3768,6 -3707,7 +3768,6 @@@ X:      arch/riscv/net/bpf_jit_comp64.
  
  BPF JIT for RISC-V (64-bit)
  M:    Björn Töpel <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/riscv/net/
@@@ -3777,80 -3717,36 +3777,80 @@@ BPF JIT for S39
  M:    Ilya Leoshkevich <[email protected]>
  M:    Heiko Carstens <[email protected]>
  M:    Vasily Gorbik <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    arch/s390/net/
  X:    arch/s390/net/pnet.c
  
  BPF JIT for SPARC (32-BIT AND 64-BIT)
  M:    David S. Miller <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/sparc/net/
  
  BPF JIT for X86 32-BIT
  M:    Wang YanQing <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/x86/net/bpf_jit_comp32.c
  
  BPF JIT for X86 64-BIT
  M:    Alexei Starovoitov <[email protected]>
  M:    Daniel Borkmann <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    arch/x86/net/
  X:    arch/x86/net/bpf_jit_comp32.c
  
 -BPF LSM (Security Audit and Enforcement using BPF)
 +BPF [CORE]
 +M:    Alexei Starovoitov <[email protected]>
 +M:    Daniel Borkmann <[email protected]>
 +R:    John Fastabend <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/verifier.c
 +F:    kernel/bpf/tnum.c
 +F:    kernel/bpf/core.c
 +F:    kernel/bpf/syscall.c
 +F:    kernel/bpf/dispatcher.c
 +F:    kernel/bpf/trampoline.c
 +F:    include/linux/bpf*
 +F:    include/linux/filter.h
 +
 +BPF [BTF]
 +M:    Martin KaFai Lau <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/btf.c
 +F:    include/linux/btf*
 +
 +BPF [TRACING]
 +M:    Song Liu <[email protected]>
 +R:    Jiri Olsa <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/trace/bpf_trace.c
 +F:    kernel/bpf/stackmap.c
 +
 +BPF [NETWORKING] (tc BPF, sock_addr)
 +M:    Martin KaFai Lau <[email protected]>
 +M:    Daniel Borkmann <[email protected]>
 +R:    John Fastabend <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    net/core/filter.c
 +F:    net/sched/act_bpf.c
 +F:    net/sched/cls_bpf.c
 +
 +BPF [NETWORKING] (struct_ops, reuseport)
 +M:    Martin KaFai Lau <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/bpf_struct*
 +
 +BPF [SECURITY & LSM] (Security Audit and Enforcement using BPF)
  M:    KP Singh <[email protected]>
  R:    Florent Revest <[email protected]>
  R:    Brendan Jackman <[email protected]>
@@@ -3861,64 -3757,6 +3861,64 @@@ F:    include/linux/bpf_lsm.
  F:    kernel/bpf/bpf_lsm.c
  F:    security/bpf/
  
 +BPF [STORAGE & CGROUPS]
 +M:    Martin KaFai Lau <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/cgroup.c
 +F:    kernel/bpf/*storage.c
 +F:    kernel/bpf/bpf_lru*
 +
 +BPF [RINGBUF]
 +M:    Andrii Nakryiko <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/ringbuf.c
 +
 +BPF [ITERATOR]
 +M:    Yonghong Song <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/*iter.c
 +
 +BPF [L7 FRAMEWORK] (sockmap)
 +M:    John Fastabend <[email protected]>
 +M:    Jakub Sitnicki <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    include/linux/skmsg.h
 +F:    net/core/skmsg.c
 +F:    net/core/sock_map.c
 +F:    net/ipv4/tcp_bpf.c
 +F:    net/ipv4/udp_bpf.c
 +F:    net/unix/unix_bpf.c
 +
 +BPF [LIBRARY] (libbpf)
 +M:    Andrii Nakryiko <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    tools/lib/bpf/
 +
 +BPF [TOOLING] (bpftool)
 +M:    Quentin Monnet <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/disasm.*
 +F:    tools/bpf/bpftool/
 +
 +BPF [SELFTESTS] (Test Runners & Infrastructure)
 +M:    Andrii Nakryiko <[email protected]>
 +R:    Mykola Lysenko <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    tools/testing/selftests/bpf/
 +
 +BPF [MISC]
 +L:    [email protected]
 +S:    Odd Fixes
 +K:    (?:\b|_)bpf(?:\b|_)
 +
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <[email protected]>
  L:    [email protected]
@@@ -3940,36 -3778,23 +3940,36 @@@ BROADCOM BCMBCA ARM ARCHITECTUR
  M:    William Zhang <[email protected]>
  M:    Anand Gore <[email protected]>
  M:    Kursad Oney <[email protected]>
 +M:    Florian Fainelli <[email protected]>
  R:    Broadcom internal kernel review list <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
  F:    Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
 -F:    arch/arm/boot/dts/bcm47622.dtsi
 -F:    arch/arm/boot/dts/bcm947622.dts
 +F:    arch/arm64/boot/dts/broadcom/bcmbca/*
  N:    bcmbca
  N:    bcm[9]?47622
 +N:    bcm[9]?4912
 +N:    bcm[9]?63138
 +N:    bcm[9]?63146
 +N:    bcm[9]?63148
 +N:    bcm[9]?63158
 +N:    bcm[9]?63178
 +N:    bcm[9]?6756
 +N:    bcm[9]?6813
 +N:    bcm[9]?6846
 +N:    bcm[9]?6855
 +N:    bcm[9]?6856
 +N:    bcm[9]?6858
 +N:    bcm[9]?6878
  
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
 -M:    Nicolas Saenz Julienne <[email protected]>
 +M:    Florian Fainelli <[email protected]>
  R:    Broadcom internal kernel review list <[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/nsaenz/linux-rpi.git
 +T:    git git://github.com/broadcom/stblinux.git
  F:    Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
  F:    drivers/pci/controller/pcie-brcmstb.c
  F:    drivers/staging/vc04_services
@@@ -4037,6 -3862,14 +4037,6 @@@ S:     Maintaine
  F:    arch/arm/boot/dts/bcm47189*
  F:    arch/arm/boot/dts/bcm53573*
  
 -BROADCOM BCM63XX ARM ARCHITECTURE
 -M:    Florian Fainelli <[email protected]>
 -R:    Broadcom internal kernel review list <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -T:    git git://github.com/broadcom/stblinux.git
 -N:    bcm63xx
 -
  BROADCOM BCM63XX/BCM33XX UDC DRIVER
  M:    Kevin Cernekee <[email protected]>
  L:    [email protected]
@@@ -4443,7 -4276,7 +4443,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
 -F:    Documentation/devicetree/bindings/devfreq/exynos-bus.txt
 +F:    Documentation/devicetree/bindings/interconnect/samsung,exynos-bus.yaml
  F:    drivers/devfreq/exynos-bus.c
  
  BUSLOGIC SCSI DRIVER
@@@ -4787,6 -4620,7 +4787,6 @@@ L:      [email protected]
  S:    Maintained
  F:    Documentation/admin-guide/module-signing.rst
  F:    certs/
 -F:    scripts/check-blacklist-hashes.awk
  F:    scripts/sign-file.c
  F:    tools/certs/
  
@@@ -4914,7 -4748,6 +4914,7 @@@ S:      Maintaine
  F:    Documentation/devicetree/bindings/sound/cirrus,cs*
  F:    include/dt-bindings/sound/cs*
  F:    sound/pci/hda/cs*
 +F:    sound/pci/hda/hda_cs_dsp_ctl.*
  F:    sound/soc/codecs/cs*
  
  CIRRUS LOGIC DSP FIRMWARE DRIVER
@@@ -5033,7 -4866,7 +5033,7 @@@ R:      Nick Desaulniers <ndesaulniers@googl
  L:    [email protected]
  S:    Supported
  B:    https://github.com/ClangBuiltLinux/linux/issues
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/clang/features
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    include/linux/cfi.h
  F:    kernel/cfi.c
  
@@@ -5119,21 -4952,17 +5119,21 @@@ Q:   http://patchwork.kernel.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
  F:    Documentation/devicetree/bindings/clock/
  F:    drivers/clk/
 +F:    include/dt-bindings/clock/
  F:    include/linux/clk-pr*
  F:    include/linux/clk/
  F:    include/linux/of_clk.h
  X:    drivers/clk/clkdev.c
  
 -COMMON INTERNET FILE SYSTEM CLIENT (CIFS)
 +COMMON INTERNET FILE SYSTEM CLIENT (CIFS and SMB3)
  M:    Steve French <[email protected]>
 +R:    Paulo Alcantara <[email protected]> (DFS, global name space)
 +R:    Ronnie Sahlberg <[email protected]> (directory leases, sparse files)
 +R:    Shyam Prasad N <[email protected]> (multichannel)
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
 -W:    http://linux-cifs.samba.org/
 +W:    https://wiki.samba.org/index.php/LinuxCIFS
  T:    git git://git.samba.org/sfrench/cifs-2.6.git
  F:    Documentation/admin-guide/cifs/
  F:    fs/cifs/
@@@ -5173,7 -5002,7 +5173,7 @@@ COMPUTE EXPRESS LINK (CXL
  M:    Alison Schofield <[email protected]>
  M:    Vishal Verma <[email protected]>
  M:    Ira Weiny <[email protected]>
 -M:    Ben Widawsky <b[email protected]>
 +M:    Ben Widawsky <b[email protected]>
  M:    Dan Williams <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -5203,7 -5032,6 +5203,7 @@@ F:      include/linux/console
  
  CONTEXT TRACKING
  M:    Frederic Weisbecker <[email protected]>
 +M:    "Paul E. McKenney" <[email protected]>
  S:    Maintained
  F:    kernel/context_tracking.c
  F:    include/linux/context_tracking*
@@@ -5279,10 -5107,10 +5279,10 @@@ F:   Documentation/hwmon/corsair-psu.rs
  F:    drivers/hwmon/corsair-psu.c
  
  COUNTER SUBSYSTEM
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git [email protected]:vilhelmgray/counter.git
 +T:    git https://git.linaro.org/people/william.gray/counter.git
  F:    Documentation/ABI/testing/sysfs-bus-counter
  F:    Documentation/driver-api/generic-counter.rst
  F:    drivers/counter/
@@@ -5526,7 -5354,7 +5526,7 @@@ W:      http://www.chelsio.co
  F:    drivers/net/ethernet/chelsio/cxgb3/
  
  CXGB3 ISCSI DRIVER (CXGB3I)
 -M:    Karen Xie <kxie@chelsio.com>
 +M:    Varun Prakash <varun@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -5558,7 -5386,7 +5558,7 @@@ W:      http://www.chelsio.co
  F:    drivers/net/ethernet/chelsio/cxgb4/
  
  CXGB4 ISCSI DRIVER (CXGB4I)
 -M:    Karen Xie <kxie@chelsio.com>
 +M:    Varun Prakash <varun@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -5674,7 -5502,7 +5674,7 @@@ L:      [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-kernel-mm-damon
  F:    Documentation/admin-guide/mm/damon/
 -F:    Documentation/vm/damon/
 +F:    Documentation/mm/damon/
  F:    include/linux/damon.h
  F:    include/trace/events/damon.h
  F:    mm/damon/
@@@ -5929,7 -5757,6 +5929,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
  F:    Documentation/devicetree/bindings/devfreq/
 +F:    Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
  F:    drivers/devfreq/
  F:    include/linux/devfreq.h
  F:    include/trace/events/devfreq.h
@@@ -6004,7 -5831,6 +6004,7 @@@ W:      http://www.dialog-semiconductor.com/
  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/mfd/da90*.yaml
  F:    Documentation/devicetree/bindings/regulator/dlg,da9*.yaml
  F:    Documentation/devicetree/bindings/regulator/da92*.txt
  F:    Documentation/devicetree/bindings/regulator/slg51000.txt
@@@ -6043,7 -5869,7 +6043,7 @@@ F:      include/sound/da[79]*.
  F:    sound/soc/codecs/da[79]*.[ch]
  
  DIAMOND SYSTEMS GPIO-MM GPIO DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-gpio-mm.c
@@@ -6120,7 -5946,6 +6120,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/dma/
  F:    Documentation/driver-api/dmaengine/
  F:    drivers/dma/
 +F:    include/dt-bindings/dma/
  F:    include/linux/dma/
  F:    include/linux/dmaengine.h
  F:    include/linux/of_dma.h
@@@ -6129,7 -5954,7 +6129,7 @@@ DMA MAPPING HELPER
  M:    Christoph Hellwig <[email protected]>
  M:    Marek Szyprowski <[email protected]>
  R:    Robin Murphy <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  T:    git git://git.infradead.org/users/hch/dma-mapping.git
@@@ -6141,7 -5966,7 +6141,7 @@@ F:      kernel/dma
  
  DMA MAPPING BENCHMARK
  M:    Xiang Chen <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  F:    kernel/dma/map_benchmark.c
  F:    tools/testing/selftests/dma/
  
@@@ -6253,7 -6078,7 +6253,7 @@@ M:      Sakari Ailus <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.txt
 +F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
  F:    drivers/media/i2c/dw9807-vcm.c
  
  DOUBLETALK DRIVER
@@@ -6291,6 -6116,14 +6291,6 @@@ F:     Documentation/networking/device_driv
  F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-switch*
  F:    drivers/net/ethernet/freescale/dpaa2/dpsw*
  
 -DPT_I2O SCSI RAID DRIVER
 -M:    Adaptec OEM Raid Solutions <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -W:    http://www.adaptec.com/
 -F:    drivers/scsi/dpt*
 -F:    drivers/scsi/dpt/
 -
  DRBD DRIVER
  M:    Philipp Reisner <[email protected]>
  M:    Lars Ellenberg <[email protected]>
@@@ -6386,13 -6219,6 +6386,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml
  F:    drivers/gpu/drm/bridge/chipone-icn6211.c
  
 +DRM DRIVER FOR EBBG FT8719 PANEL
 +M:    Joel Selvaraj <[email protected]>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml
 +F:    drivers/gpu/drm/panel/panel-ebbg-ft8719.c
 +
  DRM DRIVER FOR FARADAY TVE200 TV ENCODER
  M:    Linus Walleij <[email protected]>
  S:    Maintained
@@@ -6451,12 -6277,6 +6451,12 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/i810/
  F:    include/uapi/drm/i810_drm.h
  
 +DRM DRIVER FOR LOGICVC DISPLAY CONTROLLER
 +M:    Paul Kocialkowski <[email protected]>
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/logicvc/
 +
  DRM DRIVER FOR LVDS PANELS
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
@@@ -6633,17 -6453,12 +6633,17 @@@ S:   Orphan / Obsolet
  F:    drivers/gpu/drm/savage/
  F:    include/uapi/drm/savage_drm.h
  
 -DRM DRIVER FOR SIMPLE FRAMEBUFFERS
 +DRM DRIVER FOR FIRMWARE FRAMEBUFFERS
  M:    Thomas Zimmermann <[email protected]>
 +M:    Javier Martinez Canillas <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/drm_aperture.c
  F:    drivers/gpu/drm/tiny/simpledrm.c
 +F:    drivers/video/aperture.c
 +F:    include/drm/drm_aperture.h
 +F:    include/linux/aperture.h
  
  DRM DRIVER FOR SIS VIDEO CARDS
  S:    Orphan / Obsolete
@@@ -6681,12 -6496,6 +6681,12 @@@ DRM DRIVER FOR TDFX VIDEO CARD
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/tdfx/
  
 +DRM DRIVER FOR TI DLPC3433 MIPI DSI TO DMD BRIDGE
 +M:    Jagan Teki <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/bridge/ti,dlpc3433.yaml
 +F:    drivers/gpu/drm/bridge/ti-dlpc3433.c
 +
  DRM DRIVER FOR TI SN65DSI86 BRIDGE CHIP
  R:    Douglas Anderson <[email protected]>
  F:    Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
@@@ -6816,6 -6625,7 +6816,6 @@@ F:      drivers/gpu/drm/bridge
  
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <[email protected]>
 -M:    Joonyoung Shim <[email protected]>
  M:    Seung-Woo Kim <[email protected]>
  M:    Kyungmin Park <[email protected]>
  L:    [email protected]
@@@ -6844,16 -6654,6 +6844,16 @@@ F:    Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/imx/
  F:    drivers/gpu/ipu-v3/
  
 +DRM DRIVERS FOR FREESCALE IMX BRIDGE
 +M:    Liu Ying <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-ldb.yaml
 +F:    Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-combiner.yaml
 +F:    Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-link.yaml
 +F:    Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pxl2dpi.yaml
 +F:    drivers/gpu/drm/bridge/imx/
 +
  DRM DRIVERS FOR GMA500 (Poulsbo, Moorestown and derivative chipsets)
  M:    Patrik Jakobsson <[email protected]>
  L:    [email protected]
@@@ -6898,7 -6698,6 +6898,7 @@@ L:      [email protected] (
  S:    Supported
  F:    Documentation/devicetree/bindings/display/mediatek/
  F:    drivers/gpu/drm/mediatek/
 +F:    drivers/phy/mediatek/phy-mtk-dp.c
  F:    drivers/phy/mediatek/phy-mtk-hdmi*
  F:    drivers/phy/mediatek/phy-mtk-mipi*
  
@@@ -6908,7 -6707,7 +6908,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Supported
  T:    git git://anongit.freedesktop.org/tegra/linux.git
 -F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
 +F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.yaml
  F:    Documentation/devicetree/bindings/gpu/host1x/
  F:    drivers/gpu/drm/tegra/
  F:    drivers/gpu/host1x/
@@@ -6985,7 -6784,6 +6985,7 @@@ F:      drivers/gpu/drm/omapdrm
  
  DRM DRIVERS FOR V3D
  M:    Emma Anholt <[email protected]>
 +M:    Melissa Wen <[email protected]>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
  S:    Maintained
  F:    drivers/net/ethernet/ibm/ehea/
  
 +ELM327 CAN NETWORK DRIVER
 +M:    Max Staudt <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/networking/device_drivers/can/can327.rst
 +F:    drivers/net/can/can327.c
 +
  EM28XX VIDEO4LINUX DRIVER
  M:    Mauro Carvalho Chehab <[email protected]>
  L:    [email protected]
@@@ -7514,7 -7305,7 +7514,7 @@@ F:      Documentation/admin-guide/media/em28
  F:    drivers/media/usb/em28xx/
  
  EMBEDDED LINUX
 -M:    Matt Mackall <mpm@selenic.com>
 +M:    Olivia Mackall <olivia@selenic.com>
  M:    David Woodhouse <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -7596,8 -7387,6 +7596,8 @@@ F:      include/video/s1d13xxxfb.
  EROFS FILE SYSTEM
  M:    Gao Xiang <[email protected]>
  M:    Chao Yu <[email protected]>
 +R:    Yue Hu <[email protected]>
 +R:    Jeffle Xu <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
@@@ -7611,13 -7400,6 +7611,13 @@@ S:    Maintaine
  F:    include/linux/errseq.h
  F:    lib/errseq.c
  
 +ESD CAN/USB DRIVERS
 +M:    Frank Jungclaus <[email protected]>
 +R:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/can/usb/esd_usb.c
 +
  ET131X NETWORK DRIVER
  M:    Mark Einon <[email protected]>
  S:    Odd Fixes
@@@ -7693,7 -7475,6 +7693,7 @@@ M:      Namjae Jeon <[email protected]
  M:    Sungjong Seo <[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git
  F:    fs/exfat/
  
  EXT2 FILE SYSTEM
@@@ -7769,7 -7550,7 +7769,7 @@@ F:      drivers/gpu/drm/exynos/exynos_dp
  
  EXYNOS SYSMMU (IOMMU) driver
  M:    Marek Szyprowski <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Maintained
  F:    drivers/iommu/exynos-iommu.c
  
@@@ -7866,7 -7647,6 +7866,7 @@@ F:      include/uapi/scsi/fc
  
  FILE LOCKING (flock() and fcntl()/lockf())
  M:    Jeff Layton <[email protected]>
 +M:    Chuck Lever <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    fs/fcntl.c
@@@ -7894,6 -7674,9 +7894,6 @@@ F:      include/linux/fs.
  F:    include/linux/fs_types.h
  F:    include/uapi/linux/fs.h
  F:    include/uapi/linux/openat2.h
 -X:    fs/io-wq.c
 -X:    fs/io-wq.h
 -X:    fs/io_uring.c
  
  FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    Riku Voipio <[email protected]>
@@@ -7992,7 -7775,6 +7992,7 @@@ FORTIFY_SOURC
  M:    Kees Cook <[email protected]>
  L:    [email protected]
  S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    include/linux/fortify-string.h
  F:    lib/test_fortify/*
  F:    scripts/test_fortify.sh
@@@ -8025,21 -7807,6 +8025,21 @@@ F:    Documentation/fpga
  F:    drivers/fpga/
  F:    include/linux/fpga/
  
 +INTEL MAX10 BMC SECURE UPDATES
 +M:    Russ Weight <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-driver-intel-m10-bmc-sec-update
 +F:    drivers/fpga/intel-m10-bmc-sec-update.c
 +
 +MICROCHIP POLARFIRE FPGA DRIVERS
 +M:    Conor Dooley <[email protected]>
 +R:    Ivan Bornyakov <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml
 +F:    drivers/fpga/microchip-spi.c
 +
  FPU EMULATOR
  M:    Bill Metzenthen <[email protected]>
  S:    Maintained
@@@ -8145,6 -7912,7 +8145,6 @@@ L:      [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/video/fbdev/imxfb.c
 -F:    include/linux/platform_data/video-imxfb.h
  
  FREESCALE IMX DDR PMU DRIVER
  M:    Frank Li <[email protected]>
@@@ -8449,7 -8217,6 +8449,7 @@@ GCC PLUGIN
  M:    Kees Cook <[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/kbuild/gcc-plugins.rst
  F:    scripts/Makefile.gcc-plugins
  F:    scripts/gcc-plugins/
@@@ -8541,7 -8308,6 +8541,7 @@@ Q:      https://patchwork.kernel.org/project
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git
  F:    Documentation/devicetree/bindings/phy/
  F:    drivers/phy/
 +F:    include/dt-bindings/phy/
  F:    include/linux/phy/
  
  GENERIC PINCTRL I2C DEMULTIPLEXER DRIVER
@@@ -8705,7 -8471,6 +8705,7 @@@ F:      Documentation/devicetree/bindings/gp
  F:    Documentation/driver-api/gpio/
  F:    drivers/gpio/
  F:    include/asm-generic/gpio.h
 +F:    include/dt-bindings/gpio/
  F:    include/linux/gpio.h
  F:    include/linux/gpio/
  F:    include/linux/of_gpio.h
@@@ -8895,7 -8660,6 +8895,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/nxp,imx8mq-vpu.yaml
 +F:    Documentation/devicetree/bindings/media/rockchip,rk3568-vepu.yaml
  F:    Documentation/devicetree/bindings/media/rockchip-vpu.yaml
  F:    drivers/staging/media/hantro/
  
@@@ -8922,7 -8686,7 +8922,7 @@@ F:      include/trace/events/hwmon*.
  K:    (devm_)?hwmon_device_(un)?register(|_with_groups|_with_info)
  
  HARDWARE RANDOM NUMBER GENERATOR CORE
 -M:    Matt Mackall <mpm@selenic.com>
 +M:    Olivia Mackall <olivia@selenic.com>
  M:    Herbert Xu <[email protected]>
  L:    [email protected]
  S:    Odd fixes
@@@ -9172,31 -8936,16 +9172,31 @@@ F:   Documentation/admin-guide/perf/hisi-
  F:    Documentation/admin-guide/perf/hisi-pmu.rst
  F:    drivers/perf/hisilicon
  
 -HISILICON QM AND ZIP Controller DRIVER
 +HISILICON HNS3 PMU DRIVER
 +M:    Guangbin Huang <[email protected]>
 +S:    Supported
 +F:    Documentation/admin-guide/perf/hns3-pmu.rst
 +F:    drivers/perf/hisilicon/hns3_pmu.c
 +
 +HISILICON QM DRIVER
 +M:    Weili Qian <[email protected]>
  M:    Zhou Wang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/ABI/testing/debugfs-hisi-zip
 +F:    drivers/crypto/hisilicon/Kconfig
 +F:    drivers/crypto/hisilicon/Makefile
  F:    drivers/crypto/hisilicon/qm.c
  F:    drivers/crypto/hisilicon/sgl.c
 -F:    drivers/crypto/hisilicon/zip/
  F:    include/linux/hisi_acc_qm.h
  
 +HISILICON ZIP Controller DRIVER
 +M:    Yang Shen <[email protected]>
 +M:    Zhou Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/debugfs-hisi-zip
 +F:    drivers/crypto/hisilicon/zip/
 +
  HISILICON ROCE DRIVER
  M:    Wenpeng Liang <[email protected]>
  M:    Weihang Li <[email protected]>
@@@ -9259,7 -9008,7 +9259,7 @@@ HMM - Heterogeneous Memory Managemen
  M:    JĂ©rĂŽme Glisse <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/vm/hmm.rst
 +F:    Documentation/mm/hmm.rst
  F:    include/linux/hmm*
  F:    lib/test_hmm*
  F:    mm/hmm*
@@@ -9332,7 -9081,7 +9332,7 @@@ HTE SUBSYSTE
  M:    Dipen Patel <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/timestamp/
 -F:    Documentation/hte/
 +F:    Documentation/driver-api/hte/
  F:    drivers/hte/
  F:    include/linux/hte.h
  
@@@ -9357,8 -9106,8 +9357,8 @@@ L:      [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-kernel-mm-hugepages
  F:    Documentation/admin-guide/mm/hugetlbpage.rst
 -F:    Documentation/vm/hugetlbfs_reserv.rst
 -F:    Documentation/vm/vmemmap_dedup.rst
 +F:    Documentation/mm/hugetlbfs_reserv.rst
 +F:    Documentation/mm/vmemmap_dedup.rst
  F:    fs/hugetlbfs/
  F:    include/linux/hugetlb.h
  F:    mm/hugetlb.c
@@@ -9375,7 -9124,6 +9375,7 @@@ F:      drivers/media/platform/st/sti/hv
  
  HWPOISON MEMORY FAILURE HANDLING
  M:    Naoya Horiguchi <[email protected]>
 +R:    Miaohe Lin <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    mm/hwpoison-inject.c
@@@ -9424,7 -9172,6 +9424,7 @@@ S:      Supporte
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  F:    Documentation/ABI/testing/debugfs-hyperv
 +F:    Documentation/virt/hyperv
  F:    Documentation/networking/device_drivers/ethernet/microsoft/netvsc.rst
  F:    arch/arm64/hyperv
  F:    arch/arm64/include/asm/hyperv-tlfs.h
@@@ -9521,7 -9268,6 +9521,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/i2c/i2c.txt
  F:    Documentation/i2c/
  F:    drivers/i2c/*
 +F:    include/dt-bindings/i2c/i2c.h
  F:    include/linux/i2c-dev.h
  F:    include/linux/i2c-smbus.h
  F:    include/linux/i2c.h
@@@ -9537,7 -9283,6 +9537,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/i2c/
  F:    drivers/i2c/algos/
  F:    drivers/i2c/busses/
 +F:    include/dt-bindings/i2c/
  
  I2C-TAOS-EVM DRIVER
  M:    Jean Delvare <[email protected]>
@@@ -9770,7 -9515,6 +9770,7 @@@ F:      drivers/input/misc/ideapad_slidebar.
  
  IDMAPPED MOUNTS
  M:    Christian Brauner <[email protected]>
 +M:    Seth Forshee <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git
@@@ -9863,7 -9607,6 +9863,7 @@@ F:      Documentation/ABI/testing/sysfs-bus-
  F:    Documentation/devicetree/bindings/iio/
  F:    drivers/iio/
  F:    drivers/staging/iio/
 +F:    include/dt-bindings/iio/
  F:    include/linux/iio/
  F:    tools/iio/
  
  S:    Maintained
  F:    drivers/video/fbdev/i810/
  
 +INTEL 8255 GPIO DRIVER
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/gpio/gpio-i8255.c
 +F:    drivers/gpio/gpio-i8255.h
 +
  INTEL ASoC DRIVERS
  M:    Cezary Rojewski <[email protected]>
  M:    Pierre-Louis Bossart <[email protected]>
  M:    Liam Girdwood <[email protected]>
 -M:    Jie Yang <[email protected]>
 +M:    Peter Ujfalusi <[email protected]>
 +M:    Bard Liao <[email protected]>
 +M:    Ranjani Sridharan <[email protected]>
 +M:    Kai Vehmanen <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/intel/
@@@ -10199,8 -9932,7 +10199,8 @@@ S:    Supporte
  Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
  F:    drivers/dma/ioat*
  
 -INTEL IADX DRIVER
 +INTEL IDXD DRIVER
 +M:    Fenghua Yu <[email protected]>
  M:    Dave Jiang <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -10234,10 -9966,11 +10234,10 @@@ F: drivers/hid/intel-ish-hid
  INTEL IOMMU (VT-d)
  M:    David Woodhouse <[email protected]>
  M:    Lu Baolu <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    drivers/iommu/intel/
 -F:    include/linux/intel-iommu.h
  F:    include/linux/intel-svm.h
  
  INTEL IOP-ADMA DMA DRIVER
@@@ -10393,7 -10126,7 +10393,7 @@@ F:   drivers/gpio/gpio-*cove.
  
  INTEL PMIC MULTIFUNCTION DEVICE DRIVERS
  M:    Andy Shevchenko <[email protected]>
 -S:    Maintained
 +S:    Supported
  F:    drivers/mfd/intel_soc_pmic*
  F:    include/linux/mfd/intel_soc_pmic*
  
@@@ -10609,21 -10342,10 +10609,21 @@@ T:        git git://git.kernel.org/pub/scm/fs/
  F:    fs/iomap/
  F:    include/linux/iomap.h
  
 -IOMMU DRIVERS
 +IOMMU DMA-API LAYER
 +M:    Robin Murphy <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
 +F:    drivers/iommu/dma-iommu.c
 +F:    drivers/iommu/iova.c
 +F:    include/linux/dma-iommu.h
 +F:    include/linux/iova.h
 +
 +IOMMU SUBSYSTEM
  M:    Joerg Roedel <[email protected]>
  M:    Will Deacon <[email protected]>
 -L:    [email protected]
 +R:    Robin Murphy <[email protected]>
 +L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    Documentation/devicetree/bindings/iommu/
  S:    Maintained
  T:    git git://git.kernel.dk/linux-block
  T:    git git://git.kernel.dk/liburing
 -F:    fs/io-wq.c
 -F:    fs/io-wq.h
 -F:    fs/io_uring.c
 +F:    io_uring/
  F:    include/linux/io_uring.h
  F:    include/uapi/linux/io_uring.h
  F:    tools/io_uring/
@@@ -10717,7 -10441,7 +10717,7 @@@ F:   Documentation/devicetree/bindings/in
  F:    drivers/irqchip/
  
  ISA
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  S:    Maintained
  F:    Documentation/driver-api/isa.rst
  F:    drivers/base/isa.c
@@@ -11008,17 -10732,6 +11008,17 @@@ F: scripts/mk
  F:    scripts/mod/
  F:    scripts/package/
  
 +KERNEL HARDENING (not covered by other areas)
 +M:    Kees Cook <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
 +F:    include/linux/overflow.h
 +F:    include/linux/randomize_kstack.h
 +F:    mm/usercopy.c
 +K:    \b(add|choose)_random_kstack_offset\b
 +K:    \b__check_(object_size|heap_object)\b
 +
  KERNEL JANITORS
  L:    [email protected]
  S:    Odd Fixes
@@@ -11026,7 -10739,6 +11026,7 @@@ W:   http://kernelnewbies.org/KernelJanit
  
  KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
  M:    Chuck Lever <[email protected]>
 +M:    Jeff Layton <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://nfs.sourceforge.net/
@@@ -11066,13 -10778,11 +11066,13 @@@ R:        Sergey Senozhatsky <senozhatsky@chro
  L:    [email protected]
  S:    Maintained
  T:    git git://git.samba.org/ksmbd.git
 +F:    Documentation/filesystems/cifs/ksmbd.rst
  F:    fs/ksmbd/
  F:    fs/smbfs_common/
  
  KERNEL UNIT TESTING FRAMEWORK (KUnit)
  M:    Brendan Higgins <[email protected]>
 +M:    David Gow <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -11111,7 -10821,6 +11111,7 @@@ M:   Marc Zyngier <[email protected]
  R:    James Morse <[email protected]>
  R:    Alexandru Elisei <[email protected]>
  R:    Suzuki K Poulose <[email protected]>
 +R:    Oliver Upton <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -11154,6 -10863,7 +11154,6 @@@ F:   arch/riscv/include/asm/kvm
  F:    arch/riscv/include/uapi/asm/kvm*
  F:    arch/riscv/kvm/
  F:    tools/testing/selftests/kvm/*/riscv/
 -F:    tools/testing/selftests/kvm/riscv/
  
  KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
  M:    Christian Borntraeger <[email protected]>
@@@ -11178,51 -10888,28 +11178,51 @@@ F:        tools/testing/selftests/kvm/*/s390x
  F:    tools/testing/selftests/kvm/s390x/
  
  KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
 +M:    Sean Christopherson <[email protected]>
  M:    Paolo Bonzini <[email protected]>
 -R:    Sean Christopherson <[email protected]>
 -R:    Vitaly Kuznetsov <[email protected]>
 -R:    Wanpeng Li <[email protected]>
 -R:    Jim Mattson <[email protected]>
 -R:    Joerg Roedel <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
  F:    arch/x86/include/asm/kvm*
 -F:    arch/x86/include/asm/pvclock-abi.h
  F:    arch/x86/include/asm/svm.h
  F:    arch/x86/include/asm/vmx*.h
  F:    arch/x86/include/uapi/asm/kvm*
  F:    arch/x86/include/uapi/asm/svm.h
  F:    arch/x86/include/uapi/asm/vmx.h
 -F:    arch/x86/kernel/kvm.c
 -F:    arch/x86/kernel/kvmclock.c
  F:    arch/x86/kvm/
  F:    arch/x86/kvm/*/
  
 +KVM PARAVIRT (KVM/paravirt)
 +M:    Paolo Bonzini <[email protected]>
 +R:    Wanpeng Li <[email protected]>
 +R:    Vitaly Kuznetsov <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
 +F:    arch/x86/kernel/kvm.c
 +F:    arch/x86/kernel/kvmclock.c
 +F:    arch/x86/include/asm/pvclock-abi.h
 +F:    include/linux/kvm_para.h
 +F:    include/uapi/linux/kvm_para.h
 +F:    include/uapi/asm-generic/kvm_para.h
 +F:    include/asm-generic/kvm_para.h
 +F:    arch/um/include/asm/kvm_para.h
 +F:    arch/x86/include/asm/kvm_para.h
 +F:    arch/x86/include/uapi/asm/kvm_para.h
 +
 +KVM X86 HYPER-V (KVM/hyper-v)
 +M:    Vitaly Kuznetsov <[email protected]>
 +M:    Sean Christopherson <[email protected]>
 +M:    Paolo Bonzini <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
 +F:    arch/x86/kvm/hyperv.*
 +F:    arch/x86/kvm/kvm_onhyperv.*
 +F:    arch/x86/kvm/svm/hyperv.*
 +F:    arch/x86/kvm/svm/svm_onhyperv.*
 +F:    arch/x86/kvm/vmx/evmcs.*
 +
  KERNFS
  M:    Greg Kroah-Hartman <[email protected]>
  M:    Tejun Heo <[email protected]>
@@@ -11401,6 -11088,20 +11401,6 @@@ S:  Maintaine
  F:    include/net/l3mdev.h
  F:    net/l3mdev
  
 -L7 BPF FRAMEWORK
 -M:    John Fastabend <[email protected]>
 -M:    Daniel Borkmann <[email protected]>
 -M:    Jakub Sitnicki <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 -S:    Maintained
 -F:    include/linux/skmsg.h
 -F:    net/core/skmsg.c
 -F:    net/core/sock_map.c
 -F:    net/ipv4/tcp_bpf.c
 -F:    net/ipv4/udp_bpf.c
 -F:    net/unix/unix_bpf.c
 -
  LANDLOCK SECURITY MODULE
  M:    MickaĂ«l SalaĂŒn <[email protected]>
  L:    [email protected]
@@@ -11556,7 -11257,6 +11556,7 @@@ M:   Damien Le Moal <damien.lemoal@openso
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata.git
 +F:    Documentation/ABI/testing/sysfs-ata
  F:    Documentation/devicetree/bindings/ata/
  F:    drivers/ata/
  F:    include/linux/ata.h
@@@ -11635,8 -11335,8 +11635,8 @@@ F:   drivers/macintosh
  
  LINUX FOR POWERPC (32-BIT AND 64-BIT)
  M:    Michael Ellerman <[email protected]>
 -R:    Benjamin Herrenschmidt <[email protected]>
 -R:    Paul Mackerras <[email protected]>
 +R:    Nicholas Piggin <[email protected]>
 +R:    Christophe Leroy <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://github.com/linuxppc/wiki/wiki
@@@ -11831,7 -11531,7 +11831,7 @@@ F:   drivers/media/usb/dvb-usb-v2/lmedm04
  LOADPIN SECURITY MODULE
  M:    Kees Cook <[email protected]>
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git lsm/loadpin
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/admin-guide/LSM/LoadPin.rst
  F:    security/loadpin/
  
@@@ -11880,7 -11580,6 +11880,7 @@@ F:   drivers/gpu/drm/bridge/lontium-lt891
  LOONGARCH
  M:    Huacai Chen <[email protected]>
  R:    WANG Xuerui <[email protected]>
 +L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git
  F:    arch/loongarch/
@@@ -12419,6 -12118,7 +12419,6 @@@ F:   Documentation/devicetree/bindings/*/
  F:    Documentation/devicetree/bindings/*/maxim,max77693.yaml
  F:    Documentation/devicetree/bindings/*/maxim,max77843.yaml
  F:    Documentation/devicetree/bindings/clock/maxim,max77686.txt
 -F:    Documentation/devicetree/bindings/mfd/max77693.txt
  F:    drivers/*/*max77843.c
  F:    drivers/*/max14577*.c
  F:    drivers/*/max77686*.c
@@@ -12494,7 -12194,7 +12494,7 @@@ F:   drivers/net/ieee802154/mcr20a.
  F:    drivers/net/ieee802154/mcr20a.h
  
  MEASUREMENT COMPUTING CIO-DAC IIO DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/iio/dac/cio-dac.c
@@@ -12735,7 -12435,6 +12735,7 @@@ F:   Documentation/driver-api/media
  F:    Documentation/userspace-api/media/
  F:    drivers/media/
  F:    drivers/staging/media/
 +F:    include/dt-bindings/media/
  F:    include/linux/platform_data/media/
  F:    include/media/
  F:    include/uapi/linux/dvb/
@@@ -12793,7 -12492,7 +12793,7 @@@ F:   drivers/i2c/busses/i2c-mt65xx.
  
  MEDIATEK IOMMU DRIVER
  M:    Yong Wu <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/iommu/mediatek*
@@@ -12818,7 -12517,6 +12818,7 @@@ F:   drivers/media/platform/mediatek/vpu
  MEDIATEK MEDIA DRIVER
  M:    Tiffany Lin <[email protected]>
  M:    Andrew-CT Chen <[email protected]>
 +M:    Yunfei Dong <[email protected]>
  S:    Supported
  F:    Documentation/devicetree/bindings/media/mediatek,vcodec*.yaml
  F:    Documentation/devicetree/bindings/media/mediatek-vpu.txt
  S:    Supported
  W:    http://www.mellanox.com
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
 -F:    drivers/net/ethernet/mellanox/mlx5/core/accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/fpga/*
  F:    include/linux/mlx5/mlx5_ifc_fpga.h
@@@ -13137,10 -12836,10 +13137,10 @@@ M:        Andrew Morton <akpm@linux-foundation
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mm.org
 -T:    quilt https://ozlabs.org/~akpm/mmotm/
 -T:    quilt https://ozlabs.org/~akpm/mmots/
 -T:    git git://github.com/hnaz/linux-mm.git
 +T:    git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
 +T:    quilt git://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new
  F:    include/linux/gfp.h
 +F:    include/linux/gfp_types.h
  F:    include/linux/memory_hotplug.h
  F:    include/linux/mm.h
  F:    include/linux/mmzone.h
@@@ -13149,18 -12848,6 +13149,18 @@@ F: include/linux/vmalloc.
  F:    mm/
  F:    tools/testing/selftests/vm/
  
 +MEMORY HOT(UN)PLUG
 +M:    David Hildenbrand <[email protected]>
 +M:    Oscar Salvador <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/admin-guide/mm/memory-hotplug.rst
 +F:    Documentation/core-api/memory-hotplug.rst
 +F:    drivers/base/memory.c
 +F:    include/linux/memory_hotplug.h
 +F:    mm/memory_hotplug.c
 +F:    tools/testing/selftests/memory-hotplug/
 +
  MEMORY TECHNOLOGY DEVICES (MTD)
  M:    Miquel Raynal <[email protected]>
  M:    Richard Weinberger <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
 +F:    Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
  F:    drivers/net/dsa/microchip/*
  F:    include/linux/platform_data/microchip-ksz.h
  F:    net/dsa/tag_ksz.c
@@@ -13414,14 -13100,6 +13414,14 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/mtd/atmel-nand.txt
  F:    drivers/mtd/nand/raw/atmel/*
  
 +MICROCHIP OTPC DRIVER
 +M:    Claudiu Beznea <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Supported
 +F:    Documentation/devicetree/bindings/nvmem/microchip,sama7g5-otpc.yaml
 +F:    drivers/nvmem/microchip-otpc.c
 +F:    include/dt-bindings/nvmem/microchip,sama7g5-otpc.h
 +
  MICROCHIP PWM DRIVER
  M:    Claudiu Beznea <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -13498,12 -13176,6 +13498,12 @@@ F: drivers/scsi/smartpqi/smartpqi*.[ch
  F:    include/linux/cciss*.h
  F:    include/uapi/linux/cciss*.h
  
 +MICROSOFT SURFACE AGGREGATOR TABLET-MODE SWITCH
 +M:    Maximilian Luz <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/surface/surface_aggregator_tabletsw.c
 +
  MICROSOFT SURFACE BATTERY AND AC DRIVERS
  M:    Maximilian Luz <[email protected]>
  L:    [email protected]
@@@ -13575,12 -13247,6 +13575,12 @@@ F: include/linux/surface_acpi_notify.
  F:    include/linux/surface_aggregator/
  F:    include/uapi/linux/surface_aggregator/
  
 +MICROSOFT SURFACE SYSTEM AGGREGATOR HUB DRIVER
 +M:    Maximilian Luz <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/surface/surface_aggregator_hub.c
 +
  MICROTEK X6 SCANNER
  M:    Oliver Neukum <[email protected]>
  S:    Maintained
@@@ -13621,7 -13287,6 +13621,7 @@@ F:   Documentation/devicetree/bindings/mi
  F:    Documentation/mips/
  F:    arch/mips/
  F:    drivers/platform/mips/
 +F:    include/dt-bindings/mips/
  
  MIPS BOSTON DEVELOPMENT BOARD
  M:    Paul Burton <[email protected]>
@@@ -13749,7 -13414,6 +13749,7 @@@ S:   Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
  F:    include/linux/module.h
  F:    kernel/module/
 +F:    scripts/module*
  
  MONOLITHIC POWER SYSTEM PMIC DRIVER
  M:    Saravanan Sekar <[email protected]>
@@@ -13892,7 -13556,7 +13892,7 @@@ F:   Documentation/devicetree/bindings/me
  F:    drivers/media/i2c/mt9v111.c
  
  MULTIFUNCTION DEVICES (MFD)
 -M:    Lee Jones <lee.jones@linaro.org>
 +M:    Lee Jones <lee@kernel.org>
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git
  F:    Documentation/devicetree/bindings/mfd/
@@@ -14040,11 -13704,12 +14040,11 @@@ L:        [email protected]
  S:    Maintained
  F:    net/sched/sch_netem.c
  
 -NETERION 10GbE DRIVERS (s2io/vxge)
 +NETERION 10GbE DRIVERS (s2io)
  M:    Jon Mason <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/networking/device_drivers/ethernet/neterion/s2io.rst
 -F:    Documentation/networking/device_drivers/ethernet/neterion/vxge.rst
  F:    drivers/net/ethernet/neterion/
  
  NETFILTER
@@@ -14127,7 -13792,6 +14127,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/net/
  F:    drivers/connector/
  F:    drivers/net/
 +F:    include/dt-bindings/net/
  F:    include/linux/etherdevice.h
  F:    include/linux/fcdevice.h
  F:    include/linux/fddidevice.h
@@@ -14279,6 -13943,7 +14279,6 @@@ F:   net/ipv6/tcp*.
  NETWORKING [TLS]
  M:    Boris Pismenny <[email protected]>
  M:    John Fastabend <[email protected]>
 -M:    Daniel Borkmann <[email protected]>
  M:    Jakub Kicinski <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14529,8 -14194,7 +14529,8 @@@ S:   Supporte
  W:    http://git.infradead.org/nvme.git
  T:    git://git.infradead.org/nvme.git
  F:    drivers/nvme/host/
 -F:    include/linux/nvme.h
 +F:    drivers/nvme/common/
 +F:    include/linux/nvme*
  F:    include/uapi/linux/nvme_ioctl.h
  
  NVM EXPRESS FC TRANSPORT DRIVERS
@@@ -14570,8 -14234,7 +14570,8 @@@ S:   Maintaine
  F:    drivers/net/phy/nxp-c45-tja11xx.c
  
  NXP FSPI DRIVER
 -M:    Ashish Kumar <[email protected]>
 +M:    Han Xu <[email protected]>
 +M:    Haibo Chen <[email protected]>
  R:    Yogesh Gaur <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14589,7 -14252,7 +14589,7 @@@ F:   drivers/iio/gyro/fxas21002c_i2c.
  F:    drivers/iio/gyro/fxas21002c_spi.c
  
  NXP i.MX CLOCK DRIVERS
 -M:    Abel Vesa <abel[email protected]>
 +M:    Abel Vesa <abel[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -14677,8 -14340,9 +14677,8 @@@ F:   Documentation/devicetree/bindings/so
  F:    sound/soc/codecs/tfa989x.c
  
  NXP-NCI NFC DRIVER
 -R:    Charles Gorand <[email protected]>
  L:    [email protected] (subscribers-only)
 -S:    Supported
 +S:    Orphan
  F:    Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
  F:    drivers/nfc/nxp-nci
  
@@@ -15046,7 -14710,6 +15046,7 @@@ M:   Daniel Scally <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov5693.yaml
  F:    drivers/media/i2c/ov5693.c
  
  OMNIVISION OV5695 SENSOR DRIVER
@@@ -15121,13 -14784,6 +15121,13 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/ov9734.c
  
 +ONBOARD USB HUB DRIVER
 +M:    Matthias Kaehlcke <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-platform-onboard-usb-hub
 +F:    drivers/usb/misc/onboard_usb_hub.c
 +
  ONENAND FLASH DRIVER
  M:    Kyungmin Park <[email protected]>
  L:    [email protected]
@@@ -15204,7 -14860,6 +15204,7 @@@ F:   include/dt-bindings
  
  OPENCOMPUTE PTP CLOCK DRIVER
  M:    Jonathan Lemon <[email protected]>
 +M:    Vadim Fedorenko <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/ptp/ptp_ocp.c
@@@ -15214,7 -14869,7 +15214,7 @@@ M:   Peter Korsgaard <[email protected]
  M:    Andrew Lunn <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-ocores.txt
 +F:    Documentation/devicetree/bindings/i2c/opencores,i2c-ocores.yaml
  F:    Documentation/i2c/busses/i2c-ocores.rst
  F:    drivers/i2c/busses/i2c-ocores.c
  F:    include/linux/platform_data/i2c-ocores.h
@@@ -15359,7 -15014,7 +15359,7 @@@ M:   Pasha Tatashin <pasha.tatashin@solee
  M:    Andrew Morton <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/vm/page_table_check.rst
 +F:    Documentation/mm/page_table_check.rst
  F:    include/linux/page_table_check.h
  F:    mm/page_table_check.c
  
  S:    Maintained
  F:    drivers/pci/controller/dwc/*spear*
  
 +PCI DRIVER FOR XILINX VERSAL CPM
 +M:    Bharat Kumar Gogada <[email protected]>
 +M:    Michal Simek <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
 +F:    drivers/pci/controller/pcie-xilinx-cpm.c
 +
  PCMCIA SUBSYSTEM
  M:    Dominik Brodowski <[email protected]>
  S:    Odd Fixes
@@@ -16061,6 -15708,7 +16061,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/pinctrl/
  F:    Documentation/driver-api/pin-control.rst
  F:    drivers/pinctrl/
+ F:    include/dt-bindings/pinctrl/
  F:    include/linux/pinctrl/
  
  PIN CONTROLLER - AMD
@@@ -16073,7 -15721,7 +16074,7 @@@ PIN CONTROLLER - FREESCAL
  M:    Dong Aisheng <[email protected]>
  M:    Fabio Estevam <[email protected]>
  M:    Shawn Guo <[email protected]>
 -M:    Stefan Agner <[email protected]>
 +M:    Jacky Bai <[email protected]>
  R:    Pengutronix Kernel Team <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -16541,17 -16189,17 +16542,17 @@@ F:        drivers/media/rc/pwm-ir-tx.
  PWM SUBSYSTEM
  M:    Thierry Reding <[email protected]>
  R:    Uwe Kleine-König <[email protected]>
 -M:    Lee Jones <[email protected]>
  L:    [email protected]
  S:    Maintained
  Q:    https://patchwork.ozlabs.org/project/linux-pwm/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm.git
 -F:    Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
 +F:    Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
  F:    Documentation/devicetree/bindings/pwm/
  F:    Documentation/driver-api/pwm.rst
  F:    drivers/gpio/gpio-mvebu.c
  F:    drivers/pwm/
  F:    drivers/video/backlight/pwm_bl.c
 +F:    include/dt-bindings/pwm/
  F:    include/linux/pwm.h
  F:    include/linux/pwm_backlight.h
  K:    pwm_(config|apply_state|ops)
@@@ -16597,12 -16245,9 +16598,12 @@@ F: drivers/crypto/qat
  
  QCOM AUDIO (ASoC) DRIVERS
  M:    Srinivas Kandagatla <[email protected]>
 -M:    Banajit Goswami <bgoswami@codeaurora.org>
 +M:    Banajit Goswami <bgoswami@quicinc.com>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
 +F:    include/dt-bindings/sound/qcom,wcd9335.h
 +F:    sound/soc/codecs/lpass-rx-macro.*
 +F:    sound/soc/codecs/lpass-tx-macro.*
  F:    sound/soc/codecs/lpass-va-macro.c
  F:    sound/soc/codecs/lpass-wsa-macro.*
  F:    sound/soc/codecs/msm8916-wcd-analog.c
@@@ -16610,9 -16255,7 +16611,9 @@@ F:   sound/soc/codecs/msm8916-wcd-digital
  F:    sound/soc/codecs/wcd9335.*
  F:    sound/soc/codecs/wcd934x.c
  F:    sound/soc/codecs/wcd-clsh-v2.*
 +F:    sound/soc/codecs/wcd-mbhc-v2.*
  F:    sound/soc/codecs/wsa881x.c
 +F:    sound/soc/codecs/wsa883x.c
  F:    sound/soc/qcom/
  
  QCOM EMBEDDED USB DEBUGGER (EUD)
@@@ -16829,7 -16472,7 +16830,7 @@@ F:   Documentation/devicetree/bindings/op
  F:    drivers/cpufreq/qcom-cpufreq-nvmem.c
  
  QUALCOMM CRYPTO DRIVERS
 -M:    Thara Gopinath <thara.gopinath@linaro.org>
 +M:    Thara Gopinath <thara.gopinath@gmail.com>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -16881,16 -16524,9 +16882,16 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
  F:    drivers/i2c/busses/i2c-qcom-cci.c
  
 +QUALCOMM INTERCONNECT BWMON DRIVER
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml
 +F:    drivers/soc/qcom/icc-bwmon.c
 +
  QUALCOMM IOMMU
  M:    Rob Clark <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  L:    [email protected]
  S:    Maintained
  F:    drivers/iommu/arm/arm-smmu/qcom_iommu.c
@@@ -16946,7 -16582,7 +16947,7 @@@ F:   include/linux/if_rmnet.
  
  QUALCOMM TSENS THERMAL DRIVER
  M:    Amit Kucheria <[email protected]>
 -M:    Thara Gopinath <thara.gopinath@linaro.org>
 +M:    Thara Gopinath <thara.gopinath@gmail.com>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -17403,19 -17039,6 +17404,19 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
  F:    drivers/iio/adc/rzg2l_adc.c
  
 +RENESAS RZ/N1 A5PSW SWITCH DRIVER
 +M:    ClĂ©ment LĂ©ger <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
 +F:    Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml
 +F:    drivers/net/dsa/rzn1_a5psw*
 +F:    drivers/net/pcs/pcs-rzn1-miic.c
 +F:    include/dt-bindings/net/pcs-rzn1-miic.h
 +F:    include/linux/pcs-rzn1-miic.h
 +F:    net/dsa/tag_rzn1_a5psw.c
 +
  RENESAS RZ/N1 RTC CONTROLLER DRIVER
  M:    Miquel Raynal <[email protected]>
  L:    [email protected]
@@@ -17514,18 -17137,13 +17515,18 @@@ N:        risc
  K:    riscv
  
  RISC-V/MICROCHIP POLARFIRE SOC SUPPORT
 -M:    Lewis Hanly <[email protected]>
  M:    Conor Dooley <[email protected]>
 +M:    Daire McNamara <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    arch/riscv/boot/dts/microchip/
 +F:    drivers/char/hw_random/mpfs-rng.c
 +F:    drivers/clk/microchip/clk-mpfs.c
  F:    drivers/mailbox/mailbox-mpfs.c
 +F:    drivers/pci/controller/pcie-microchip-host.c
  F:    drivers/soc/microchip/
 +F:    drivers/spi/spi-microchip-core.c
 +F:    drivers/usb/musb/mpfs.c
  F:    include/soc/microchip/mpfs.h
  
  RNBD BLOCK DRIVERS
@@@ -17817,7 -17435,7 +17818,7 @@@ M:   Jason Herne <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
 -F:    Documentation/s390/vfio-ap.rst
 +F:    Documentation/s390/vfio-ap*
  F:    drivers/s390/crypto/vfio_ap*
  
  S390 VFIO-CCW DRIVER
@@@ -17837,7 -17455,6 +17838,7 @@@ M:   Eric Farman <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 +F:    arch/s390/kvm/pci*
  F:    drivers/vfio/pci/vfio_pci_zdev.c
  F:    include/uapi/linux/vfio_zdev.h
  
@@@ -18222,7 -17839,7 +18223,7 @@@ M:   Kees Cook <[email protected]
  R:    Andy Lutomirski <[email protected]>
  R:    Will Drewry <[email protected]>
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git seccomp
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/seccomp
  F:    Documentation/userspace-api/seccomp_filter.rst
  F:    include/linux/seccomp.h
  F:    include/uapi/linux/seccomp.h
@@@ -18293,13 -17910,12 +18294,13 @@@ S:        Supporte
  F:    Documentation/admin-guide/security-bugs.rst
  
  SECURITY SUBSYSTEM
 +M:    Paul Moore <[email protected]>
  M:    James Morris <[email protected]>
  M:    "Serge E. Hallyn" <[email protected]>
  L:    [email protected] (suggested Cc:)
  S:    Supported
  W:    http://kernsec.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
  F:    security/
  X:    security/selinux/
  
@@@ -18402,7 -18018,6 +18403,7 @@@ SFF/SFP/SFP+ MODULE SUPPOR
  M:    Russell King <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/net/sff,sfp.yaml
  F:    drivers/net/phy/phylink.c
  F:    drivers/net/phy/sfp*
  F:    include/linux/mdio/mdio-i2c.h
@@@ -18424,7 -18039,6 +18425,7 @@@ F:   drivers/misc/sgi-xp
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
  M:    Karsten Graul <[email protected]>
 +M:    Wenjia Zhang <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -18689,12 -18303,6 +18690,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    include/linux/sl?b*.h
  F:    mm/sl?b*
  
 +SLCAN CAN NETWORK DRIVER
 +M:    Dario Binacchi <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/can/slcan/
 +
  SLEEPABLE READ-COPY UPDATE (SRCU)
  M:    Lai Jiangshan <[email protected]>
  M:    "Paul E. McKenney" <[email protected]>
@@@ -18866,7 -18474,6 +18867,7 @@@ SOFTWARE RAID (Multiple Disks) SUPPOR
  M:    Song Liu <[email protected]>
  L:    [email protected]
  S:    Supported
 +Q:    https://patchwork.kernel.org/project/linux-raid/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git
  F:    drivers/md/Kconfig
  F:    drivers/md/Makefile
@@@ -19064,10 -18671,8 +19065,10 @@@ F: sound/soc
  SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS
  M:    Pierre-Louis Bossart <[email protected]>
  M:    Liam Girdwood <[email protected]>
 +M:    Peter Ujfalusi <[email protected]>
 +M:    Bard Liao <[email protected]>
  M:    Ranjani Sridharan <[email protected]>
 -M:    Kai Vehmanen <[email protected]>
 +R:    Kai Vehmanen <[email protected]>
  M:    Daniel Baluta <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
@@@ -19156,7 -18761,7 +19157,7 @@@ F:   drivers/pinctrl/spear
  
  SPI NOR SUBSYSTEM
  M:    Tudor Ambarus <[email protected]>
 -M:    Pratyush Yadav <p[email protected]>
 +M:    Pratyush Yadav <p[email protected]>
  R:    Michael Walle <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -19316,7 -18921,6 +19317,7 @@@ F:   drivers/staging/olpc_dcon
  STAGING - REALTEK RTL8188EU DRIVERS
  M:    Larry Finger <[email protected]>
  M:    Phillip Potter <[email protected]>
 +R:    Pavel Skripkin <[email protected]>
  S:    Supported
  F:    drivers/staging/r8188eu/
  
@@@ -19547,7 -19151,7 +19548,7 @@@ F:   arch/x86/boot/video
  
  SWIOTLB SUBSYSTEM
  M:    Christoph Hellwig <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  T:    git git://git.infradead.org/users/hch/dma-mapping.git
@@@ -19617,7 -19221,7 +19618,7 @@@ F:   arch/arc/plat-axs10
  SYNOPSYS AXS10x RESET CONTROLLER DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
 +F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.yaml
  F:    drivers/reset/reset-axs10x.c
  
  SYNOPSYS CREG GPIO DRIVER
@@@ -19627,9 -19231,8 +19628,9 @@@ F:   Documentation/devicetree/bindings/gp
  F:    drivers/gpio/gpio-creg-snps.c
  
  SYNOPSYS DESIGNWARE 8250 UART DRIVER
 +M:    Ilpo JĂ€rvinen <[email protected]>
  R:    Andy Shevchenko <[email protected]>
 -S:    Maintained
 +S:    Supported
  F:    drivers/tty/serial/8250/8250_dw.c
  F:    drivers/tty/serial/8250/8250_dwlib.*
  F:    drivers/tty/serial/8250/8250_lpss.c
@@@ -19686,7 -19289,7 +19687,7 @@@ R:   Andy Shevchenko <andriy.shevchenko@l
  R:    Mika Westerberg <[email protected]>
  R:    Jan Dabros <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    drivers/i2c/busses/i2c-designware-*
  
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
@@@ -19710,7 -19313,7 +19711,7 @@@ S:   Maintaine
  F:    drivers/mmc/host/sdhci-pci-dwc-mshc.c
  
  SYSTEM CONFIGURATION (SYSCON)
 -M:    Lee Jones <lee.jones@linaro.org>
 +M:    Lee Jones <lee@kernel.org>
  M:    Arnd Bergmann <[email protected]>
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git
@@@ -20028,7 -19631,7 +20029,7 @@@ M:   Sowjanya Komatineni <skomatineni@nvi
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
 +F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.yaml
  F:    drivers/staging/media/tegra-video/
  
  TEGRA XUSB PADCTL DRIVER
@@@ -20151,7 -19754,6 +20152,7 @@@ F:   Documentation/ABI/testing/sysfs-clas
  F:    Documentation/devicetree/bindings/thermal/
  F:    Documentation/driver-api/thermal/
  F:    drivers/thermal/
 +F:    include/dt-bindings/thermal/
  F:    include/linux/cpu_cooling.h
  F:    include/linux/thermal.h
  F:    include/uapi/linux/thermal.h
@@@ -20626,7 -20228,7 +20627,7 @@@ F:   tools/tracing/rtla
  
  TRADITIONAL CHINESE DOCUMENTATION
  M:    Hu Haowen <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  W:    https://github.com/srcres258/linux-doc
  T:    git git://github.com/srcres258/linux-doc.git doc-zh-tw
@@@ -20746,13 -20348,6 +20747,13 @@@ F: Documentation/filesystems/ubifs-auth
  F:    Documentation/filesystems/ubifs.rst
  F:    fs/ubifs/
  
 +UBLK USERSPACE BLOCK DRIVER
 +M:    Ming Lei <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/block/ublk_drv.c
 +F:    include/uapi/linux/ublk_cmd.h
 +
  UCLINUX (M68KNOMMU AND COLDFIRE)
  M:    Greg Ungerer <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/ufs/host/ufs-mediatek*
  
 +UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER RENESAS HOOKS
 +M:    Yoshihiro Shimoda <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/ufs/host/ufs-renesas.c
 +
  UNSORTED BLOCK IMAGES (UBI)
  M:    Richard Weinberger <[email protected]>
  L:    [email protected]
@@@ -21108,7 -20696,6 +21109,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/usb/
  F:    Documentation/usb/
  F:    drivers/usb/
 +F:    include/dt-bindings/usb/
  F:    include/linux/usb.h
  F:    include/linux/usb/
  
@@@ -21288,7 -20875,6 +21289,7 @@@ M:   OGAWA Hirofumi <[email protected]
  S:    Maintained
  F:    Documentation/filesystems/vfat.rst
  F:    fs/fat/
 +F:    tools/testing/selftests/filesystems/fat/
  
  VFIO DRIVER
  M:    Alex Williamson <[email protected]>
@@@ -21464,7 -21050,6 +21465,7 @@@ M:   Jason Wang <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-vdpa
 +F:    Documentation/ABI/testing/sysfs-class-vduse
  F:    Documentation/devicetree/bindings/virtio/
  F:    drivers/block/virtio_blk.c
  F:    drivers/crypto/virtio/
@@@ -21645,10 -21230,12 +21646,10 @@@ M:        Martyn Welch <[email protected]
  M:    Manohar Vanga <[email protected]>
  M:    Greg Kroah-Hartman <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Odd fixes
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
  F:    Documentation/driver-api/vme.rst
  F:    drivers/staging/vme_user/
 -F:    drivers/vme/
 -F:    include/linux/vme*
  
  VM SOCKETS (AF_VSOCK)
  M:    Stefano Garzarella <[email protected]>
  S:    Maintained
  F:    drivers/input/tablet/wacom_serial4.c
  
 +WANGXUN ETHERNET DRIVER
 +M:    Jiawen Wu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/networking/device_drivers/ethernet/wangxun/txgbe.rst
 +F:    drivers/net/ethernet/wangxun/
 +
  WATCHDOG DEVICE DRIVERS
  M:    Wim Van Sebroeck <[email protected]>
  M:    Guenter Roeck <[email protected]>
@@@ -21881,13 -21461,13 +21882,13 @@@ S:        Maintaine
  F:    drivers/media/rc/winbond-cir.c
  
  WINSYSTEMS EBC-C384 WATCHDOG DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/watchdog/ebc-c384_wdt.c
  
  WINSYSTEMS WS16C48 GPIO DRIVER
 -M:    William Breathitt Gray <[email protected]>
 +M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-ws16c48.c
@@@ -22154,7 -21734,8 +22155,7 @@@ F:   include/uapi/linux/if_xdp.
  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*
 +F:    tools/testing/selftests/bpf/*xsk*
  
  XEN BLOCK SUBSYSTEM
  M:    Roger Pau MonnĂ© <[email protected]>
@@@ -22244,7 -21825,7 +22245,7 @@@ XEN SWIOTLB SUBSYSTE
  M:    Juergen Gross <[email protected]>
  M:    Stefano Stabellini <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  F:    arch/x86/xen/*swiotlb*
  F:    drivers/xen/*swiotlb*
@@@ -22394,7 -21975,7 +22395,7 @@@ F:   include/linux/yam.
  YAMA SECURITY MODULE
  M:    Kees Cook <[email protected]>
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git yama/tip
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/admin-guide/LSM/Yama.rst
  F:    security/yama/
  
@@@ -22508,7 -22089,7 +22509,7 @@@ M:   Nitin Gupta <[email protected]
  R:    Sergey Senozhatsky <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/vm/zsmalloc.rst
 +F:    Documentation/mm/zsmalloc.rst
  F:    include/linux/zsmalloc.h
  F:    mm/zsmalloc.c
  
index 70e634b37aae0a840d0f141bad83b17d07ba9761,df3330073687ae32ba2650d759eee176a00a8b1c..6cdadba6a3acf26c6293cd2f9d2c528c82051e3f
@@@ -46,7 -46,6 +46,7 @@@
  #include <dt-bindings/thermal/thermal.h>
  
  #include <dt-bindings/clock/sun6i-a31-ccu.h>
 +#include <dt-bindings/clock/sun6i-rtc.h>
  #include <dt-bindings/reset/sun6i-a31-ccu.h>
  
  / {
                ccu: clock@1c20000 {
                        compatible = "allwinner,sun6i-a31-ccu";
                        reg = <0x01c20000 0x400>;
 -                      clocks = <&osc24M>, <&rtc 0>;
 +                      clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                                     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
 -                      clocks = <&ccu CLK_APB1_PIO>, <&osc24M>, <&rtc 0>;
 +                      clocks = <&ccu CLK_APB1_PIO>, <&osc24M>,
 +                               <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        interrupt-controller;
                        ar100: ar100_clk {
                                compatible = "allwinner,sun6i-a31-ar100-clk";
                                #clock-cells = <0>;
 -                              clocks = <&rtc 0>, <&osc24M>,
 +                              clocks = <&rtc CLK_OSC32K>, <&osc24M>,
                                         <&ccu CLK_PLL_PERIPH>,
                                         <&ccu CLK_PLL_PERIPH>;
                                clock-output-names = "ar100";
                        ir_clk: ir_clk {
                                #clock-cells = <0>;
                                compatible = "allwinner,sun4i-a10-mod0-clk";
 -                              clocks = <&rtc 0>, <&osc24M>;
 +                              clocks = <&rtc CLK_OSC32K>, <&osc24M>;
                                clock-output-names = "ir";
                        };
  
                        interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
 -                      clocks = <&apb0_gates 0>, <&osc24M>, <&rtc 0>;
 +                      clocks = <&apb0_gates 0>, <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
-                       resets = <&apb0_rst 0>;
                        gpio-controller;
                        interrupt-controller;
                        #interrupt-cells = <3>;
index 1a262a05fdcb25c05781e925fb1005dbccc7a53c,8d3dd9e2b54e52966d2a2027127d567638f63dbd..f630ab55bb6ad3b91e38342795b8a14f8286462f
@@@ -44,7 -44,6 +44,7 @@@
  
  #include <dt-bindings/interrupt-controller/arm-gic.h>
  
 +#include <dt-bindings/clock/sun6i-rtc.h>
  #include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
  #include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
  
  
                ccu: clock@1c20000 {
                        reg = <0x01c20000 0x400>;
 -                      clocks = <&osc24M>, <&rtc 0>;
 +                      clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x01c20800 0x400>;
                        interrupt-parent = <&r_intc>;
                        /* interrupts get set in SoC specific dtsi file */
 -                      clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
 +                      clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
 +                               <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        interrupt-controller;
                        reg = <0x01f02c00 0x400>;
                        interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
 -                      clocks = <&apb0_gates 0>, <&osc24M>, <&rtc 0>;
 +                      clocks = <&apb0_gates 0>, <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
-                       resets = <&apb0_rst 0>;
                        gpio-controller;
                        interrupt-controller;
                        #interrupt-cells = <3>;
diff --combined drivers/pinctrl/Kconfig
index bff144c97e66ec9556a2565745560bbdb09853b4,257b067527478cd4ac966c0f32b27e2d8fdc33e5..1cf74b0c42e56f19fb690774eb06eb3bd644b8c8
@@@ -32,7 -32,7 +32,7 @@@ config DEBUG_PINCTR
          Say Y here to add some extra checks and diagnostics to PINCTRL calls.
  
  config PINCTRL_AMD
 -      tristate "AMD GPIO pin control"
 +      bool "AMD GPIO pin control"
        depends on HAS_IOMEM
        depends on ACPI || COMPILE_TEST
        select GPIOLIB
@@@ -311,7 -311,7 +311,7 @@@ config PINCTRL_MICROCHIP_SGPI
          LED controller.
  
  config PINCTRL_OCELOT
-       bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
+       tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
        depends on OF
        depends on HAS_IOMEM
        select GPIOLIB
index 417e41b37a6fd7ed078d506faed55194ac0ffc45,2b6cbf205ea1df67d83fb60120c01fa24c522a54..91b3ee1e6fa90affa3faf25ba7cad79195d2d7de
@@@ -239,7 -239,6 +239,7 @@@ static const struct pinctrl_pin_desc im
  static const struct imx_pinctrl_soc_info imx93_pinctrl_info = {
        .pins = imx93_pinctrl_pads,
        .npins = ARRAY_SIZE(imx93_pinctrl_pads),
 +      .flags = ZERO_OFFSET_VALID,
        .gpr_compatible = "fsl,imx93-iomuxc-gpr",
  };
  
@@@ -247,6 -246,7 +247,7 @@@ static const struct of_device_id imx93_
        { .compatible = "fsl,imx93-iomuxc", },
        { /* sentinel */ }
  };
+ MODULE_DEVICE_TABLE(of, imx93_pinctrl_of_match);
  
  static int imx93_pinctrl_probe(struct platform_device *pdev)
  {
index fd093e36c3a882b9fab2735472386d5d5efdd980,0e704f34156aa8e366dcdeb36b4bf3ed514d5d20..52ecd66ce357fceaabbd4e5980c6e9c36994af81
@@@ -279,7 -279,7 +279,7 @@@ static const char *intel_get_group_name
  {
        struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
  
-       return pctrl->soc->groups[group].name;
+       return pctrl->soc->groups[group].grp.name;
  }
  
  static int intel_get_group_pins(struct pinctrl_dev *pctldev, unsigned int group,
  {
        struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
  
-       *pins = pctrl->soc->groups[group].pins;
-       *npins = pctrl->soc->groups[group].npins;
+       *pins = pctrl->soc->groups[group].grp.pins;
+       *npins = pctrl->soc->groups[group].grp.npins;
        return 0;
  }
  
@@@ -391,19 -391,19 +391,19 @@@ static int intel_pinmux_set_mux(struct 
         * All pins in the groups needs to be accessible and writable
         * before we can enable the mux for this group.
         */
-       for (i = 0; i < grp->npins; i++) {
-               if (!intel_pad_usable(pctrl, grp->pins[i])) {
+       for (i = 0; i < grp->grp.npins; i++) {
+               if (!intel_pad_usable(pctrl, grp->grp.pins[i])) {
                        raw_spin_unlock_irqrestore(&pctrl->lock, flags);
                        return -EBUSY;
                }
        }
  
        /* Now enable the mux setting for each pin in the group */
-       for (i = 0; i < grp->npins; i++) {
+       for (i = 0; i < grp->grp.npins; i++) {
                void __iomem *padcfg0;
                u32 value;
  
-               padcfg0 = intel_get_padcfg(pctrl, grp->pins[i], PADCFG0);
+               padcfg0 = intel_get_padcfg(pctrl, grp->grp.pins[i], PADCFG0);
                value = readl(padcfg0);
  
                value &= ~PADCFG0_PMODE_MASK;
@@@ -1641,14 -1641,16 +1641,14 @@@ EXPORT_SYMBOL_GPL(intel_pinctrl_probe_b
  
  const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_device *pdev)
  {
 +      const struct intel_pinctrl_soc_data * const *table;
        const struct intel_pinctrl_soc_data *data = NULL;
 -      const struct intel_pinctrl_soc_data **table;
 -      struct acpi_device *adev;
 -      unsigned int i;
  
 -      adev = ACPI_COMPANION(&pdev->dev);
 -      if (adev) {
 -              const void *match = device_get_match_data(&pdev->dev);
 +      table = device_get_match_data(&pdev->dev);
 +      if (table) {
 +              struct acpi_device *adev = ACPI_COMPANION(&pdev->dev);
 +              unsigned int i;
  
 -              table = (const struct intel_pinctrl_soc_data **)match;
                for (i = 0; table[i]; i++) {
                        if (!strcmp(adev->pnp.unique_id, table[i]->uid)) {
                                data = table[i];
                if (!id)
                        return ERR_PTR(-ENODEV);
  
 -              table = (const struct intel_pinctrl_soc_data **)id->driver_data;
 +              table = (const struct intel_pinctrl_soc_data * const *)id->driver_data;
                data = table[pdev->id];
        }
  
index 771dd1f4fbe04858586368081469470540096cdc,349e063a04fac1cf014918277bc0b6ae4247b233..c5fd154990c8b4b61bd52ca5b733ad9a930738a8
  #define ocelot_clrsetbits(addr, clear, set) \
        writel((readl(addr) & ~(clear)) | (set), (addr))
  
 -/* PINCONFIG bits (sparx5 only) */
  enum {
        PINCONF_BIAS,
        PINCONF_SCHMITT,
        PINCONF_DRIVE_STRENGTH,
  };
  
 -#define BIAS_PD_BIT BIT(4)
 -#define BIAS_PU_BIT BIT(3)
 -#define BIAS_BITS   (BIAS_PD_BIT|BIAS_PU_BIT)
 -#define SCHMITT_BIT BIT(2)
 -#define DRIVE_BITS  GENMASK(1, 0)
 -
  /* GPIO standard registers */
  #define OCELOT_GPIO_OUT_SET   0x0
  #define OCELOT_GPIO_OUT_CLR   0x4
@@@ -314,13 -321,6 +314,13 @@@ struct ocelot_pin_caps 
        unsigned char a_functions[OCELOT_FUNC_PER_PIN]; /* Additional functions */
  };
  
 +struct ocelot_pincfg_data {
 +      u8 pd_bit;
 +      u8 pu_bit;
 +      u8 drive_bits;
 +      u8 schmitt_bit;
 +};
 +
  struct ocelot_pinctrl {
        struct device *dev;
        struct pinctrl_dev *pctl;
        struct regmap *map;
        struct regmap *pincfg;
        struct pinctrl_desc *desc;
 +      const struct ocelot_pincfg_data *pincfg_data;
        struct ocelot_pmx_func func[FUNC_MAX];
        u8 stride;
  };
  
 +struct ocelot_match_data {
 +      struct pinctrl_desc desc;
 +      struct ocelot_pincfg_data pincfg_data;
 +};
 +
  #define LUTON_P(p, f0, f1)                                            \
  static struct ocelot_pin_caps luton_pin_##p = {                               \
        .pin = p,                                                       \
@@@ -1331,27 -1325,24 +1331,27 @@@ static int ocelot_hw_get_value(struct o
        int ret = -EOPNOTSUPP;
  
        if (info->pincfg) {
 +              const struct ocelot_pincfg_data *opd = info->pincfg_data;
                u32 regcfg;
  
 -              ret = regmap_read(info->pincfg, pin, &regcfg);
 +              ret = regmap_read(info->pincfg,
 +                                pin * regmap_get_reg_stride(info->pincfg),
 +                                &regcfg);
                if (ret)
                        return ret;
  
                ret = 0;
                switch (reg) {
                case PINCONF_BIAS:
 -                      *val = regcfg & BIAS_BITS;
 +                      *val = regcfg & (opd->pd_bit | opd->pu_bit);
                        break;
  
                case PINCONF_SCHMITT:
 -                      *val = regcfg & SCHMITT_BIT;
 +                      *val = regcfg & opd->schmitt_bit;
                        break;
  
                case PINCONF_DRIVE_STRENGTH:
 -                      *val = regcfg & DRIVE_BITS;
 +                      *val = regcfg & opd->drive_bits;
                        break;
  
                default:
@@@ -1368,18 -1359,14 +1368,18 @@@ static int ocelot_pincfg_clrsetbits(str
        u32 val;
        int ret;
  
 -      ret = regmap_read(info->pincfg, regaddr, &val);
 +      ret = regmap_read(info->pincfg,
 +                        regaddr * regmap_get_reg_stride(info->pincfg),
 +                        &val);
        if (ret)
                return ret;
  
        val &= ~clrbits;
        val |= setbits;
  
 -      ret = regmap_write(info->pincfg, regaddr, val);
 +      ret = regmap_write(info->pincfg,
 +                         regaddr * regmap_get_reg_stride(info->pincfg),
 +                         val);
  
        return ret;
  }
@@@ -1392,27 -1379,23 +1392,27 @@@ static int ocelot_hw_set_value(struct o
        int ret = -EOPNOTSUPP;
  
        if (info->pincfg) {
 +              const struct ocelot_pincfg_data *opd = info->pincfg_data;
  
                ret = 0;
                switch (reg) {
                case PINCONF_BIAS:
 -                      ret = ocelot_pincfg_clrsetbits(info, pin, BIAS_BITS,
 +                      ret = ocelot_pincfg_clrsetbits(info, pin,
 +                                                     opd->pd_bit | opd->pu_bit,
                                                       val);
                        break;
  
                case PINCONF_SCHMITT:
 -                      ret = ocelot_pincfg_clrsetbits(info, pin, SCHMITT_BIT,
 +                      ret = ocelot_pincfg_clrsetbits(info, pin,
 +                                                     opd->schmitt_bit,
                                                       val);
                        break;
  
                case PINCONF_DRIVE_STRENGTH:
                        if (val <= 3)
                                ret = ocelot_pincfg_clrsetbits(info, pin,
 -                                                             DRIVE_BITS, val);
 +                                                             opd->drive_bits,
 +                                                             val);
                        else
                                ret = -EINVAL;
                        break;
@@@ -1442,20 -1425,17 +1442,20 @@@ static int ocelot_pinconf_get(struct pi
                if (param == PIN_CONFIG_BIAS_DISABLE)
                        val = (val == 0);
                else if (param == PIN_CONFIG_BIAS_PULL_DOWN)
 -                      val = (val & BIAS_PD_BIT ? true : false);
 +                      val = !!(val & info->pincfg_data->pd_bit);
                else    /* PIN_CONFIG_BIAS_PULL_UP */
 -                      val = (val & BIAS_PU_BIT ? true : false);
 +                      val = !!(val & info->pincfg_data->pu_bit);
                break;
  
        case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
 +              if (!info->pincfg_data->schmitt_bit)
 +                      return -EOPNOTSUPP;
 +
                err = ocelot_hw_get_value(info, pin, PINCONF_SCHMITT, &val);
                if (err)
                        return err;
  
 -              val = (val & SCHMITT_BIT ? true : false);
 +              val = !!(val & info->pincfg_data->schmitt_bit);
                break;
  
        case PIN_CONFIG_DRIVE_STRENGTH:
@@@ -1499,7 -1479,6 +1499,7 @@@ static int ocelot_pinconf_set(struct pi
                              unsigned long *configs, unsigned int num_configs)
  {
        struct ocelot_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
 +      const struct ocelot_pincfg_data *opd = info->pincfg_data;
        u32 param, arg, p;
        int cfg, err = 0;
  
                case PIN_CONFIG_BIAS_PULL_UP:
                case PIN_CONFIG_BIAS_PULL_DOWN:
                        arg = (param == PIN_CONFIG_BIAS_DISABLE) ? 0 :
 -                      (param == PIN_CONFIG_BIAS_PULL_UP) ? BIAS_PU_BIT :
 -                      BIAS_PD_BIT;
 +                            (param == PIN_CONFIG_BIAS_PULL_UP) ?
 +                              opd->pu_bit : opd->pd_bit;
  
                        err = ocelot_hw_set_value(info, pin, PINCONF_BIAS, arg);
                        if (err)
                        break;
  
                case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
 -                      arg = arg ? SCHMITT_BIT : 0;
 +                      if (!opd->schmitt_bit)
 +                              return -EOPNOTSUPP;
 +
 +                      arg = arg ? opd->schmitt_bit : 0;
                        err = ocelot_hw_set_value(info, pin, PINCONF_SCHMITT,
                                                  arg);
                        if (err)
@@@ -1586,94 -1562,69 +1586,94 @@@ static const struct pinctrl_ops ocelot_
        .dt_free_map = pinconf_generic_dt_free_map,
  };
  
 -static struct pinctrl_desc luton_desc = {
 -      .name = "luton-pinctrl",
 -      .pins = luton_pins,
 -      .npins = ARRAY_SIZE(luton_pins),
 -      .pctlops = &ocelot_pctl_ops,
 -      .pmxops = &ocelot_pmx_ops,
 -      .owner = THIS_MODULE,
 +static struct ocelot_match_data luton_desc = {
 +      .desc = {
 +              .name = "luton-pinctrl",
 +              .pins = luton_pins,
 +              .npins = ARRAY_SIZE(luton_pins),
 +              .pctlops = &ocelot_pctl_ops,
 +              .pmxops = &ocelot_pmx_ops,
 +              .owner = THIS_MODULE,
 +      },
  };
  
 -static struct pinctrl_desc serval_desc = {
 -      .name = "serval-pinctrl",
 -      .pins = serval_pins,
 -      .npins = ARRAY_SIZE(serval_pins),
 -      .pctlops = &ocelot_pctl_ops,
 -      .pmxops = &ocelot_pmx_ops,
 -      .owner = THIS_MODULE,
 +static struct ocelot_match_data serval_desc = {
 +      .desc = {
 +              .name = "serval-pinctrl",
 +              .pins = serval_pins,
 +              .npins = ARRAY_SIZE(serval_pins),
 +              .pctlops = &ocelot_pctl_ops,
 +              .pmxops = &ocelot_pmx_ops,
 +              .owner = THIS_MODULE,
 +      },
  };
  
 -static struct pinctrl_desc ocelot_desc = {
 -      .name = "ocelot-pinctrl",
 -      .pins = ocelot_pins,
 -      .npins = ARRAY_SIZE(ocelot_pins),
 -      .pctlops = &ocelot_pctl_ops,
 -      .pmxops = &ocelot_pmx_ops,
 -      .owner = THIS_MODULE,
 +static struct ocelot_match_data ocelot_desc = {
 +      .desc = {
 +              .name = "ocelot-pinctrl",
 +              .pins = ocelot_pins,
 +              .npins = ARRAY_SIZE(ocelot_pins),
 +              .pctlops = &ocelot_pctl_ops,
 +              .pmxops = &ocelot_pmx_ops,
 +              .owner = THIS_MODULE,
 +      },
  };
  
 -static struct pinctrl_desc jaguar2_desc = {
 -      .name = "jaguar2-pinctrl",
 -      .pins = jaguar2_pins,
 -      .npins = ARRAY_SIZE(jaguar2_pins),
 -      .pctlops = &ocelot_pctl_ops,
 -      .pmxops = &ocelot_pmx_ops,
 -      .owner = THIS_MODULE,
 +static struct ocelot_match_data jaguar2_desc = {
 +      .desc = {
 +              .name = "jaguar2-pinctrl",
 +              .pins = jaguar2_pins,
 +              .npins = ARRAY_SIZE(jaguar2_pins),
 +              .pctlops = &ocelot_pctl_ops,
 +              .pmxops = &ocelot_pmx_ops,
 +              .owner = THIS_MODULE,
 +      },
  };
  
 -static struct pinctrl_desc servalt_desc = {
 -      .name = "servalt-pinctrl",
 -      .pins = servalt_pins,
 -      .npins = ARRAY_SIZE(servalt_pins),
 -      .pctlops = &ocelot_pctl_ops,
 -      .pmxops = &ocelot_pmx_ops,
 -      .owner = THIS_MODULE,
 +static struct ocelot_match_data servalt_desc = {
 +      .desc = {
 +              .name = "servalt-pinctrl",
 +              .pins = servalt_pins,
 +              .npins = ARRAY_SIZE(servalt_pins),
 +              .pctlops = &ocelot_pctl_ops,
 +              .pmxops = &ocelot_pmx_ops,
 +              .owner = THIS_MODULE,
 +      },
  };
  
 -static struct pinctrl_desc sparx5_desc = {
 -      .name = "sparx5-pinctrl",
 -      .pins = sparx5_pins,
 -      .npins = ARRAY_SIZE(sparx5_pins),
 -      .pctlops = &ocelot_pctl_ops,
 -      .pmxops = &ocelot_pmx_ops,
 -      .confops = &ocelot_confops,
 -      .owner = THIS_MODULE,
 +static struct ocelot_match_data sparx5_desc = {
 +      .desc = {
 +              .name = "sparx5-pinctrl",
 +              .pins = sparx5_pins,
 +              .npins = ARRAY_SIZE(sparx5_pins),
 +              .pctlops = &ocelot_pctl_ops,
 +              .pmxops = &ocelot_pmx_ops,
 +              .confops = &ocelot_confops,
 +              .owner = THIS_MODULE,
 +      },
 +      .pincfg_data = {
 +              .pd_bit = BIT(4),
 +              .pu_bit = BIT(3),
 +              .drive_bits = GENMASK(1, 0),
 +              .schmitt_bit = BIT(2),
 +      },
  };
  
 -static struct pinctrl_desc lan966x_desc = {
 -      .name = "lan966x-pinctrl",
 -      .pins = lan966x_pins,
 -      .npins = ARRAY_SIZE(lan966x_pins),
 -      .pctlops = &ocelot_pctl_ops,
 -      .pmxops = &lan966x_pmx_ops,
 -      .confops = &ocelot_confops,
 -      .owner = THIS_MODULE,
 +static struct ocelot_match_data lan966x_desc = {
 +      .desc = {
 +              .name = "lan966x-pinctrl",
 +              .pins = lan966x_pins,
 +              .npins = ARRAY_SIZE(lan966x_pins),
 +              .pctlops = &ocelot_pctl_ops,
 +              .pmxops = &lan966x_pmx_ops,
 +              .confops = &ocelot_confops,
 +              .owner = THIS_MODULE,
 +      },
 +      .pincfg_data = {
 +              .pd_bit = BIT(3),
 +              .pu_bit = BIT(2),
 +              .drive_bits = GENMASK(1, 0),
 +      },
  };
  
  static int ocelot_create_group_func_map(struct device *dev,
@@@ -1810,7 -1761,6 +1810,7 @@@ static void ocelot_irq_mask(struct irq_
  
        regmap_update_bits(info->map, REG(OCELOT_GPIO_INTR_ENA, info, gpio),
                           BIT(gpio % 32), 0);
 +      gpiochip_disable_irq(chip, gpio);
  }
  
  static void ocelot_irq_unmask(struct irq_data *data)
        struct ocelot_pinctrl *info = gpiochip_get_data(chip);
        unsigned int gpio = irqd_to_hwirq(data);
  
 +      gpiochip_enable_irq(chip, gpio);
        regmap_update_bits(info->map, REG(OCELOT_GPIO_INTR_ENA, info, gpio),
                           BIT(gpio % 32), BIT(gpio % 32));
  }
@@@ -1841,10 -1790,8 +1841,10 @@@ static struct irq_chip ocelot_eoi_irqch
        .irq_mask       = ocelot_irq_mask,
        .irq_eoi        = ocelot_irq_ack,
        .irq_unmask     = ocelot_irq_unmask,
 -      .flags          = IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED,
 +      .flags          = IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED |
 +                        IRQCHIP_IMMUTABLE,
        .irq_set_type   = ocelot_irq_set_type,
 +      GPIOCHIP_IRQ_RESOURCE_HELPERS
  };
  
  static struct irq_chip ocelot_irqchip = {
        .irq_ack        = ocelot_irq_ack,
        .irq_unmask     = ocelot_irq_unmask,
        .irq_set_type   = ocelot_irq_set_type,
 +      .flags          = IRQCHIP_IMMUTABLE,
 +      GPIOCHIP_IRQ_RESOURCE_HELPERS
  };
  
  static int ocelot_irq_set_type(struct irq_data *data, unsigned int type)
@@@ -1918,7 -1863,7 +1918,7 @@@ static int ocelot_gpiochip_register(str
        irq = platform_get_irq_optional(pdev, 0);
        if (irq > 0) {
                girq = &gc->irq;
 -              girq->chip = &ocelot_irqchip;
 +              gpio_irq_chip_set_chip(girq, &ocelot_irqchip);
                girq->parent_handler = ocelot_irq_handler;
                girq->num_parents = 1;
                girq->parents = devm_kcalloc(&pdev->dev, 1,
@@@ -1944,9 -1889,9 +1944,10 @@@ static const struct of_device_id ocelot
        { .compatible = "microchip,lan966x-pinctrl", .data = &lan966x_desc },
        {},
  };
+ MODULE_DEVICE_TABLE(of, ocelot_pinctrl_of_match);
  
 -static struct regmap *ocelot_pinctrl_create_pincfg(struct platform_device *pdev)
 +static struct regmap *ocelot_pinctrl_create_pincfg(struct platform_device *pdev,
 +                                                 const struct ocelot_pinctrl *info)
  {
        void __iomem *base;
  
                .reg_bits = 32,
                .val_bits = 32,
                .reg_stride = 4,
 -              .max_register = 32,
 +              .max_register = info->desc->npins * 4,
                .name = "pincfg",
        };
  
  
  static int ocelot_pinctrl_probe(struct platform_device *pdev)
  {
 +      const struct ocelot_match_data *data;
        struct device *dev = &pdev->dev;
        struct ocelot_pinctrl *info;
        struct reset_control *reset;
        if (!info)
                return -ENOMEM;
  
 -      info->desc = (struct pinctrl_desc *)device_get_match_data(dev);
 +      data = device_get_match_data(dev);
 +      if (!data)
 +              return -EINVAL;
 +
 +      info->desc = devm_kmemdup(dev, &data->desc, sizeof(*info->desc),
 +                                GFP_KERNEL);
 +      if (!info->desc)
 +              return -ENOMEM;
 +
 +      info->pincfg_data = &data->pincfg_data;
  
        reset = devm_reset_control_get_optional_shared(dev, "switch");
        if (IS_ERR(reset))
  
        /* Pinconf registers */
        if (info->desc->confops) {
 -              pincfg = ocelot_pinctrl_create_pincfg(pdev);
 +              pincfg = ocelot_pinctrl_create_pincfg(pdev, info);
                if (IS_ERR(pincfg))
                        dev_dbg(dev, "Failed to create pincfg regmap\n");
                else
@@@ -2050,4 -1985,5 +2051,5 @@@ static struct platform_driver ocelot_pi
        },
        .probe = ocelot_pinctrl_probe,
  };
- builtin_platform_driver(ocelot_pinctrl_driver);
+ module_platform_driver(ocelot_pinctrl_driver);
+ MODULE_LICENSE("Dual MIT/GPL");
index 3be2a08ae3a6aab5d4c798b9ef4f8e842793f724,30baeb4ff2de627f11236ef74bdef8eb9e3233b2..ccaf40a9c0e6bf237a5e473d343f5b0b780da4f7
@@@ -966,13 -966,16 +966,13 @@@ static int pmic_gpio_child_to_parent_hw
        return 0;
  }
  
 -static void *pmic_gpio_populate_parent_fwspec(struct gpio_chip *chip,
 -                                           unsigned int parent_hwirq,
 -                                           unsigned int parent_type)
 +static int pmic_gpio_populate_parent_fwspec(struct gpio_chip *chip,
 +                                          union gpio_irq_fwspec *gfwspec,
 +                                          unsigned int parent_hwirq,
 +                                          unsigned int parent_type)
  {
        struct pmic_gpio_state *state = gpiochip_get_data(chip);
 -      struct irq_fwspec *fwspec;
 -
 -      fwspec = kzalloc(sizeof(*fwspec), GFP_KERNEL);
 -      if (!fwspec)
 -              return NULL;
 +      struct irq_fwspec *fwspec = &gfwspec->fwspec;
  
        fwspec->fwnode = chip->irq.parent_domain->fwnode;
  
        /* param[2] must be left as 0 */
        fwspec->param[3] = parent_type;
  
 -      return fwspec;
 +      return 0;
  }
  
  static int pmic_gpio_probe(struct platform_device *pdev)
@@@ -1159,6 -1162,7 +1159,7 @@@ static const struct of_device_id pmic_g
        /* pm8150l has 12 GPIOs with holes on 7 */
        { .compatible = "qcom,pm8150l-gpio", .data = (void *) 12 },
        { .compatible = "qcom,pmc8180c-gpio", .data = (void *) 12 },
+       { .compatible = "qcom,pm8226-gpio", .data = (void *) 8 },
        { .compatible = "qcom,pm8350-gpio", .data = (void *) 10 },
        { .compatible = "qcom,pm8350b-gpio", .data = (void *) 8 },
        { .compatible = "qcom,pm8350c-gpio", .data = (void *) 9 },
        { .compatible = "qcom,pmi8998-gpio", .data = (void *) 14 },
        { .compatible = "qcom,pmk8350-gpio", .data = (void *) 4 },
        { .compatible = "qcom,pmm8155au-gpio", .data = (void *) 10 },
+       /* pmp8074 has 12 GPIOs with holes on 1 and 12 */
+       { .compatible = "qcom,pmp8074-gpio", .data = (void *) 12 },
        { .compatible = "qcom,pmr735a-gpio", .data = (void *) 4 },
        { .compatible = "qcom,pmr735b-gpio", .data = (void *) 4 },
        /* pms405 has 12 GPIOs with holes on 1, 9, and 10 */
index c47eed9d948fd0e68910d5691a451f042f974b9b,c3cdf52b72945389ed0cdcc8dec98cc55c389f87..a43824fd9505f4f817333494124a5db59535fbe4
@@@ -9,10 -9,8 +9,10 @@@
  #include <linux/clk.h>
  #include <linux/gpio/driver.h>
  #include <linux/io.h>
 +#include <linux/interrupt.h>
  #include <linux/module.h>
  #include <linux/of_device.h>
 +#include <linux/of_irq.h>
  #include <linux/pinctrl/pinconf-generic.h>
  #include <linux/pinctrl/pinconf.h>
  #include <linux/pinctrl/pinctrl.h>
@@@ -91,7 -89,6 +91,7 @@@
  #define PIN(n)                        (0x0800 + 0x10 + (n))
  #define IOLH(n)                       (0x1000 + (n) * 8)
  #define IEN(n)                        (0x1800 + (n) * 8)
 +#define ISEL(n)                       (0x2c80 + (n) * 8)
  #define PWPR                  (0x3014)
  #define SD_CH(n)              (0x3000 + (n) * 4)
  #define QSPI                  (0x3008)
  #define RZG2L_PIN_ID_TO_PORT_OFFSET(id)       (RZG2L_PIN_ID_TO_PORT(id) + 0x10)
  #define RZG2L_PIN_ID_TO_PIN(id)               ((id) % RZG2L_PINS_PER_PORT)
  
 +#define RZG2L_TINT_MAX_INTERRUPT      32
 +#define RZG2L_TINT_IRQ_START_INDEX    9
 +#define RZG2L_PACK_HWIRQ(t, i)                (((t) << 16) | (i))
 +
  struct rzg2l_dedicated_configs {
        const char *name;
        u32 config;
@@@ -144,9 -137,6 +144,9 @@@ struct rzg2l_pinctrl 
  
        struct gpio_chip                gpio_chip;
        struct pinctrl_gpio_range       gpio_range;
 +      DECLARE_BITMAP(tint_slot, RZG2L_TINT_MAX_INTERRUPT);
 +      spinlock_t                      bitmap_lock;
 +      unsigned int                    hwirq[RZG2L_TINT_MAX_INTERRUPT];
  
        spinlock_t                      lock;
  };
@@@ -527,6 -517,8 +527,8 @@@ static int rzg2l_pinctrl_pinconf_get(st
                if (!(cfg & PIN_CFG_IEN))
                        return -EINVAL;
                arg = rzg2l_read_pin_config(pctrl, IEN(port_offset), bit, IEN_MASK);
+               if (!arg)
+                       return -EINVAL;
                break;
  
        case PIN_CONFIG_POWER_SOURCE: {
@@@ -893,14 -885,8 +895,14 @@@ static int rzg2l_gpio_get(struct gpio_c
  
  static void rzg2l_gpio_free(struct gpio_chip *chip, unsigned int offset)
  {
 +      unsigned int virq;
 +
        pinctrl_gpio_free(chip->base + offset);
  
 +      virq = irq_find_mapping(chip->irq.domain, offset);
 +      if (virq)
 +              irq_dispose_mapping(virq);
 +
        /*
         * Set the GPIO as an input to ensure that the next GPIO request won't
         * drive the GPIO pin as an output.
@@@ -1120,221 -1106,14 +1122,221 @@@ static struct 
        }
  };
  
 +static int rzg2l_gpio_get_gpioint(unsigned int virq)
 +{
 +      unsigned int gpioint;
 +      unsigned int i;
 +      u32 port, bit;
 +
 +      port = virq / 8;
 +      bit = virq % 8;
 +
 +      if (port >= ARRAY_SIZE(rzg2l_gpio_configs) ||
 +          bit >= RZG2L_GPIO_PORT_GET_PINCNT(rzg2l_gpio_configs[port]))
 +              return -EINVAL;
 +
 +      gpioint = bit;
 +      for (i = 0; i < port; i++)
 +              gpioint += RZG2L_GPIO_PORT_GET_PINCNT(rzg2l_gpio_configs[i]);
 +
 +      return gpioint;
 +}
 +
 +static void rzg2l_gpio_irq_disable(struct irq_data *d)
 +{
 +      struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
 +      struct rzg2l_pinctrl *pctrl = container_of(gc, struct rzg2l_pinctrl, gpio_chip);
 +      unsigned int hwirq = irqd_to_hwirq(d);
 +      unsigned long flags;
 +      void __iomem *addr;
 +      u32 port;
 +      u8 bit;
 +
 +      port = RZG2L_PIN_ID_TO_PORT(hwirq);
 +      bit = RZG2L_PIN_ID_TO_PIN(hwirq);
 +
 +      addr = pctrl->base + ISEL(port);
 +      if (bit >= 4) {
 +              bit -= 4;
 +              addr += 4;
 +      }
 +
 +      spin_lock_irqsave(&pctrl->lock, flags);
 +      writel(readl(addr) & ~BIT(bit * 8), addr);
 +      spin_unlock_irqrestore(&pctrl->lock, flags);
 +
 +      gpiochip_disable_irq(gc, hwirq);
 +      irq_chip_disable_parent(d);
 +}
 +
 +static void rzg2l_gpio_irq_enable(struct irq_data *d)
 +{
 +      struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
 +      struct rzg2l_pinctrl *pctrl = container_of(gc, struct rzg2l_pinctrl, gpio_chip);
 +      unsigned int hwirq = irqd_to_hwirq(d);
 +      unsigned long flags;
 +      void __iomem *addr;
 +      u32 port;
 +      u8 bit;
 +
 +      gpiochip_enable_irq(gc, hwirq);
 +
 +      port = RZG2L_PIN_ID_TO_PORT(hwirq);
 +      bit = RZG2L_PIN_ID_TO_PIN(hwirq);
 +
 +      addr = pctrl->base + ISEL(port);
 +      if (bit >= 4) {
 +              bit -= 4;
 +              addr += 4;
 +      }
 +
 +      spin_lock_irqsave(&pctrl->lock, flags);
 +      writel(readl(addr) | BIT(bit * 8), addr);
 +      spin_unlock_irqrestore(&pctrl->lock, flags);
 +
 +      irq_chip_enable_parent(d);
 +}
 +
 +static int rzg2l_gpio_irq_set_type(struct irq_data *d, unsigned int type)
 +{
 +      return irq_chip_set_type_parent(d, type);
 +}
 +
 +static void rzg2l_gpio_irqc_eoi(struct irq_data *d)
 +{
 +      irq_chip_eoi_parent(d);
 +}
 +
 +static void rzg2l_gpio_irq_print_chip(struct irq_data *data, struct seq_file *p)
 +{
 +      struct gpio_chip *gc = irq_data_get_irq_chip_data(data);
 +
 +      seq_printf(p, dev_name(gc->parent));
 +}
 +
 +static const struct irq_chip rzg2l_gpio_irqchip = {
 +      .name = "rzg2l-gpio",
 +      .irq_disable = rzg2l_gpio_irq_disable,
 +      .irq_enable = rzg2l_gpio_irq_enable,
 +      .irq_mask = irq_chip_mask_parent,
 +      .irq_unmask = irq_chip_unmask_parent,
 +      .irq_set_type = rzg2l_gpio_irq_set_type,
 +      .irq_eoi = rzg2l_gpio_irqc_eoi,
 +      .irq_print_chip = rzg2l_gpio_irq_print_chip,
 +      .flags = IRQCHIP_IMMUTABLE,
 +      GPIOCHIP_IRQ_RESOURCE_HELPERS,
 +};
 +
 +static int rzg2l_gpio_child_to_parent_hwirq(struct gpio_chip *gc,
 +                                          unsigned int child,
 +                                          unsigned int child_type,
 +                                          unsigned int *parent,
 +                                          unsigned int *parent_type)
 +{
 +      struct rzg2l_pinctrl *pctrl = gpiochip_get_data(gc);
 +      unsigned long flags;
 +      int gpioint, irq;
 +
 +      gpioint = rzg2l_gpio_get_gpioint(child);
 +      if (gpioint < 0)
 +              return gpioint;
 +
 +      spin_lock_irqsave(&pctrl->bitmap_lock, flags);
 +      irq = bitmap_find_free_region(pctrl->tint_slot, RZG2L_TINT_MAX_INTERRUPT, get_order(1));
 +      spin_unlock_irqrestore(&pctrl->bitmap_lock, flags);
 +      if (irq < 0)
 +              return -ENOSPC;
 +      pctrl->hwirq[irq] = child;
 +      irq += RZG2L_TINT_IRQ_START_INDEX;
 +
 +      /* All these interrupts are level high in the CPU */
 +      *parent_type = IRQ_TYPE_LEVEL_HIGH;
 +      *parent = RZG2L_PACK_HWIRQ(gpioint, irq);
 +      return 0;
 +}
 +
 +static int rzg2l_gpio_populate_parent_fwspec(struct gpio_chip *chip,
 +                                           union gpio_irq_fwspec *gfwspec,
 +                                           unsigned int parent_hwirq,
 +                                           unsigned int parent_type)
 +{
 +      struct irq_fwspec *fwspec = &gfwspec->fwspec;
 +
 +      fwspec->fwnode = chip->irq.parent_domain->fwnode;
 +      fwspec->param_count = 2;
 +      fwspec->param[0] = parent_hwirq;
 +      fwspec->param[1] = parent_type;
 +
 +      return 0;
 +}
 +
 +static void rzg2l_gpio_irq_domain_free(struct irq_domain *domain, unsigned int virq,
 +                                     unsigned int nr_irqs)
 +{
 +      struct irq_data *d;
 +
 +      d = irq_domain_get_irq_data(domain, virq);
 +      if (d) {
 +              struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
 +              struct rzg2l_pinctrl *pctrl = container_of(gc, struct rzg2l_pinctrl, gpio_chip);
 +              irq_hw_number_t hwirq = irqd_to_hwirq(d);
 +              unsigned long flags;
 +              unsigned int i;
 +
 +              for (i = 0; i < RZG2L_TINT_MAX_INTERRUPT; i++) {
 +                      if (pctrl->hwirq[i] == hwirq) {
 +                              spin_lock_irqsave(&pctrl->bitmap_lock, flags);
 +                              bitmap_release_region(pctrl->tint_slot, i, get_order(1));
 +                              spin_unlock_irqrestore(&pctrl->bitmap_lock, flags);
 +                              pctrl->hwirq[i] = 0;
 +                              break;
 +                      }
 +              }
 +      }
 +      irq_domain_free_irqs_common(domain, virq, nr_irqs);
 +}
 +
 +static void rzg2l_init_irq_valid_mask(struct gpio_chip *gc,
 +                                    unsigned long *valid_mask,
 +                                    unsigned int ngpios)
 +{
 +      struct rzg2l_pinctrl *pctrl = gpiochip_get_data(gc);
 +      struct gpio_chip *chip = &pctrl->gpio_chip;
 +      unsigned int offset;
 +
 +      /* Forbid unused lines to be mapped as IRQs */
 +      for (offset = 0; offset < chip->ngpio; offset++) {
 +              u32 port, bit;
 +
 +              port = offset / 8;
 +              bit = offset % 8;
 +
 +              if (port >= ARRAY_SIZE(rzg2l_gpio_configs) ||
 +                  bit >= RZG2L_GPIO_PORT_GET_PINCNT(rzg2l_gpio_configs[port]))
 +                      clear_bit(offset, valid_mask);
 +      }
 +}
 +
  static int rzg2l_gpio_register(struct rzg2l_pinctrl *pctrl)
  {
        struct device_node *np = pctrl->dev->of_node;
        struct gpio_chip *chip = &pctrl->gpio_chip;
        const char *name = dev_name(pctrl->dev);
 +      struct irq_domain *parent_domain;
        struct of_phandle_args of_args;
 +      struct device_node *parent_np;
 +      struct gpio_irq_chip *girq;
        int ret;
  
 +      parent_np = of_irq_find_parent(np);
 +      if (!parent_np)
 +              return -ENXIO;
 +
 +      parent_domain = irq_find_host(parent_np);
 +      of_node_put(parent_np);
 +      if (!parent_domain)
 +              return -EPROBE_DEFER;
 +
        ret = of_parse_phandle_with_fixed_args(np, "gpio-ranges", 3, 0, &of_args);
        if (ret) {
                dev_err(pctrl->dev, "Unable to parse gpio-ranges\n");
        chip->base = -1;
        chip->ngpio = of_args.args[2];
  
 +      girq = &chip->irq;
 +      gpio_irq_chip_set_chip(girq, &rzg2l_gpio_irqchip);
 +      girq->fwnode = of_node_to_fwnode(np);
 +      girq->parent_domain = parent_domain;
 +      girq->child_to_parent_hwirq = rzg2l_gpio_child_to_parent_hwirq;
 +      girq->populate_parent_alloc_arg = rzg2l_gpio_populate_parent_fwspec;
 +      girq->child_irq_domain_ops.free = rzg2l_gpio_irq_domain_free;
 +      girq->init_valid_mask = rzg2l_init_irq_valid_mask;
 +
        pctrl->gpio_range.id = 0;
        pctrl->gpio_range.pin_base = 0;
        pctrl->gpio_range.base = 0;
@@@ -1485,7 -1255,6 +1487,7 @@@ static int rzg2l_pinctrl_probe(struct p
        }
  
        spin_lock_init(&pctrl->lock);
 +      spin_lock_init(&pctrl->bitmap_lock);
  
        platform_set_drvdata(pdev, pctrl);
  
index dd928402af9978deb7159d6204dde1f605058c04,350044d4c1b550a74d14666e4672ed2896d49244..6c04027d0dd9775310a5c7c352d1d287c9b1e2d6
@@@ -46,6 -46,67 +46,67 @@@ static struct lock_class_key sunxi_pinc
  static struct irq_chip sunxi_pinctrl_edge_irq_chip;
  static struct irq_chip sunxi_pinctrl_level_irq_chip;
  
+ /*
+  * The sunXi PIO registers are organized as a series of banks, with registers
+  * for each bank in the following order:
+  *  - Mux config
+  *  - Data value
+  *  - Drive level
+  *  - Pull direction
+  *
+  * Multiple consecutive registers are used for fields wider than one bit.
+  *
+  * The following functions calculate the register and the bit offset to access.
+  * They take a pin number which is relative to the start of the current device.
+  */
+ static void sunxi_mux_reg(const struct sunxi_pinctrl *pctl,
+                         u32 pin, u32 *reg, u32 *shift, u32 *mask)
+ {
+       u32 bank   = pin / PINS_PER_BANK;
+       u32 offset = pin % PINS_PER_BANK * MUX_FIELD_WIDTH;
+       *reg   = bank * pctl->bank_mem_size + MUX_REGS_OFFSET +
+                offset / BITS_PER_TYPE(u32) * sizeof(u32);
+       *shift = offset % BITS_PER_TYPE(u32);
+       *mask  = (BIT(MUX_FIELD_WIDTH) - 1) << *shift;
+ }
+ static void sunxi_data_reg(const struct sunxi_pinctrl *pctl,
+                          u32 pin, u32 *reg, u32 *shift, u32 *mask)
+ {
+       u32 bank   = pin / PINS_PER_BANK;
+       u32 offset = pin % PINS_PER_BANK * DATA_FIELD_WIDTH;
+       *reg   = bank * pctl->bank_mem_size + DATA_REGS_OFFSET +
+                offset / BITS_PER_TYPE(u32) * sizeof(u32);
+       *shift = offset % BITS_PER_TYPE(u32);
+       *mask  = (BIT(DATA_FIELD_WIDTH) - 1) << *shift;
+ }
+ static void sunxi_dlevel_reg(const struct sunxi_pinctrl *pctl,
+                            u32 pin, u32 *reg, u32 *shift, u32 *mask)
+ {
+       u32 bank   = pin / PINS_PER_BANK;
+       u32 offset = pin % PINS_PER_BANK * pctl->dlevel_field_width;
+       *reg   = bank * pctl->bank_mem_size + DLEVEL_REGS_OFFSET +
+                offset / BITS_PER_TYPE(u32) * sizeof(u32);
+       *shift = offset % BITS_PER_TYPE(u32);
+       *mask  = (BIT(pctl->dlevel_field_width) - 1) << *shift;
+ }
+ static void sunxi_pull_reg(const struct sunxi_pinctrl *pctl,
+                          u32 pin, u32 *reg, u32 *shift, u32 *mask)
+ {
+       u32 bank   = pin / PINS_PER_BANK;
+       u32 offset = pin % PINS_PER_BANK * PULL_FIELD_WIDTH;
+       *reg   = bank * pctl->bank_mem_size + pctl->pull_regs_offset +
+                offset / BITS_PER_TYPE(u32) * sizeof(u32);
+       *shift = offset % BITS_PER_TYPE(u32);
+       *mask  = (BIT(PULL_FIELD_WIDTH) - 1) << *shift;
+ }
  static struct sunxi_pinctrl_group *
  sunxi_pinctrl_find_group_by_name(struct sunxi_pinctrl *pctl, const char *group)
  {
@@@ -451,22 -512,19 +512,19 @@@ static const struct pinctrl_ops sunxi_p
        .get_group_pins         = sunxi_pctrl_get_group_pins,
  };
  
- static int sunxi_pconf_reg(unsigned pin, enum pin_config_param param,
-                          u32 *offset, u32 *shift, u32 *mask)
+ static int sunxi_pconf_reg(const struct sunxi_pinctrl *pctl,
+                          u32 pin, enum pin_config_param param,
+                          u32 *reg, u32 *shift, u32 *mask)
  {
        switch (param) {
        case PIN_CONFIG_DRIVE_STRENGTH:
-               *offset = sunxi_dlevel_reg(pin);
-               *shift = sunxi_dlevel_offset(pin);
-               *mask = DLEVEL_PINS_MASK;
+               sunxi_dlevel_reg(pctl, pin, reg, shift, mask);
                break;
  
        case PIN_CONFIG_BIAS_PULL_UP:
        case PIN_CONFIG_BIAS_PULL_DOWN:
        case PIN_CONFIG_BIAS_DISABLE:
-               *offset = sunxi_pull_reg(pin);
-               *shift = sunxi_pull_offset(pin);
-               *mask = PULL_PINS_MASK;
+               sunxi_pull_reg(pctl, pin, reg, shift, mask);
                break;
  
        default:
@@@ -481,17 -539,17 +539,17 @@@ static int sunxi_pconf_get(struct pinct
  {
        struct sunxi_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
        enum pin_config_param param = pinconf_to_config_param(*config);
-       u32 offset, shift, mask, val;
+       u32 reg, shift, mask, val;
        u16 arg;
        int ret;
  
        pin -= pctl->desc->pin_base;
  
-       ret = sunxi_pconf_reg(pin, param, &offset, &shift, &mask);
+       ret = sunxi_pconf_reg(pctl, pin, param, &reg, &shift, &mask);
        if (ret < 0)
                return ret;
  
-       val = (readl(pctl->membase + offset) >> shift) & mask;
+       val = (readl(pctl->membase + reg) & mask) >> shift;
  
        switch (pinconf_to_config_param(*config)) {
        case PIN_CONFIG_DRIVE_STRENGTH:
@@@ -544,19 -602,16 +602,18 @@@ static int sunxi_pconf_set(struct pinct
        struct sunxi_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
        int i;
  
 +      pin -= pctl->desc->pin_base;
 +
        for (i = 0; i < num_configs; i++) {
+               u32 arg, reg, shift, mask, val;
                enum pin_config_param param;
                unsigned long flags;
-               u32 offset, shift, mask, reg;
-               u32 arg, val;
                int ret;
  
                param = pinconf_to_config_param(configs[i]);
                arg = pinconf_to_config_argument(configs[i]);
  
-               ret = sunxi_pconf_reg(pin, param, &offset, &shift, &mask);
+               ret = sunxi_pconf_reg(pctl, pin, param, &reg, &shift, &mask);
                if (ret < 0)
                        return ret;
  
                }
  
                raw_spin_lock_irqsave(&pctl->lock, flags);
-               reg = readl(pctl->membase + offset);
-               reg &= ~(mask << shift);
-               writel(reg | val << shift, pctl->membase + offset);
+               writel((readl(pctl->membase + reg) & ~mask) | val << shift,
+                      pctl->membase + reg);
                raw_spin_unlock_irqrestore(&pctl->lock, flags);
        } /* for each config */
  
@@@ -624,7 -678,7 +680,7 @@@ static int sunxi_pinctrl_set_io_bias_cf
                                         unsigned pin,
                                         struct regulator *supply)
  {
-       unsigned short bank = pin / PINS_PER_BANK;
+       unsigned short bank;
        unsigned long flags;
        u32 val, reg;
        int uV;
        if (uV == 0)
                return 0;
  
+       pin -= pctl->desc->pin_base;
+       bank = pin / PINS_PER_BANK;
        switch (pctl->desc->io_bias_cfg_variant) {
        case BIAS_VOLTAGE_GRP_CONFIG:
                /*
                else
                        val = 0xD; /* 3.3V */
  
-               pin -= pctl->desc->pin_base;
                reg = readl(pctl->membase + sunxi_grp_config_reg(pin));
                reg &= ~IO_BIAS_MASK;
                writel(reg | val, pctl->membase + sunxi_grp_config_reg(pin));
                return 0;
+       case BIAS_VOLTAGE_PIO_POW_MODE_CTL:
+               val = uV > 1800000 && uV <= 2500000 ? BIT(bank) : 0;
+               raw_spin_lock_irqsave(&pctl->lock, flags);
+               reg = readl(pctl->membase + PIO_POW_MOD_CTL_REG);
+               reg &= ~BIT(bank);
+               writel(reg | val, pctl->membase + PIO_POW_MOD_CTL_REG);
+               raw_spin_unlock_irqrestore(&pctl->lock, flags);
+               fallthrough;
        case BIAS_VOLTAGE_PIO_POW_MODE_SEL:
                val = uV <= 1800000 ? 1 : 0;
  
@@@ -710,16 -775,16 +777,16 @@@ static void sunxi_pmx_set(struct pinctr
                                 u8 config)
  {
        struct sunxi_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
+       u32 reg, shift, mask;
        unsigned long flags;
-       u32 val, mask;
+       pin -= pctl->desc->pin_base;
+       sunxi_mux_reg(pctl, pin, &reg, &shift, &mask);
  
        raw_spin_lock_irqsave(&pctl->lock, flags);
  
-       pin -= pctl->desc->pin_base;
-       val = readl(pctl->membase + sunxi_mux_reg(pin));
-       mask = MUX_PINS_MASK << sunxi_mux_offset(pin);
-       writel((val & ~mask) | config << sunxi_mux_offset(pin),
-               pctl->membase + sunxi_mux_reg(pin));
+       writel((readl(pctl->membase + reg) & ~mask) | config << shift,
+              pctl->membase + reg);
  
        raw_spin_unlock_irqrestore(&pctl->lock, flags);
  }
@@@ -852,43 -917,43 +919,43 @@@ static int sunxi_pinctrl_gpio_direction
  static int sunxi_pinctrl_gpio_get(struct gpio_chip *chip, unsigned offset)
  {
        struct sunxi_pinctrl *pctl = gpiochip_get_data(chip);
-       u32 reg = sunxi_data_reg(offset);
-       u8 index = sunxi_data_offset(offset);
        bool set_mux = pctl->desc->irq_read_needs_mux &&
                gpiochip_line_is_irq(chip, offset);
        u32 pin = offset + chip->base;
-       u32 val;
+       u32 reg, shift, mask, val;
+       sunxi_data_reg(pctl, offset, &reg, &shift, &mask);
  
        if (set_mux)
                sunxi_pmx_set(pctl->pctl_dev, pin, SUN4I_FUNC_INPUT);
  
-       val = (readl(pctl->membase + reg) >> index) & DATA_PINS_MASK;
+       val = (readl(pctl->membase + reg) & mask) >> shift;
  
        if (set_mux)
                sunxi_pmx_set(pctl->pctl_dev, pin, SUN4I_FUNC_IRQ);
  
-       return !!val;
+       return val;
  }
  
  static void sunxi_pinctrl_gpio_set(struct gpio_chip *chip,
                                unsigned offset, int value)
  {
        struct sunxi_pinctrl *pctl = gpiochip_get_data(chip);
-       u32 reg = sunxi_data_reg(offset);
-       u8 index = sunxi_data_offset(offset);
+       u32 reg, shift, mask, val;
        unsigned long flags;
-       u32 regval;
+       sunxi_data_reg(pctl, offset, &reg, &shift, &mask);
  
        raw_spin_lock_irqsave(&pctl->lock, flags);
  
-       regval = readl(pctl->membase + reg);
+       val = readl(pctl->membase + reg);
  
        if (value)
-               regval |= BIT(index);
+               val |= mask;
        else
-               regval &= ~(BIT(index));
+               val &= ~mask;
  
-       writel(regval, pctl->membase + reg);
+       writel(val, pctl->membase + reg);
  
        raw_spin_unlock_irqrestore(&pctl->lock, flags);
  }
@@@ -1232,11 -1297,11 +1299,11 @@@ static int sunxi_pinctrl_build_state(st
  
        /*
         * Find an upper bound for the maximum number of functions: in
-        * the worst case we have gpio_in, gpio_out, irq and up to four
+        * the worst case we have gpio_in, gpio_out, irq and up to seven
         * special functions per pin, plus one entry for the sentinel.
         * We'll reallocate that later anyway.
         */
-       pctl->functions = kcalloc(4 * pctl->ngroups + 4,
+       pctl->functions = kcalloc(7 * pctl->ngroups + 4,
                                  sizeof(*pctl->functions),
                                  GFP_KERNEL);
        if (!pctl->functions)
@@@ -1429,6 -1494,15 +1496,15 @@@ int sunxi_pinctrl_init_with_variant(str
        pctl->dev = &pdev->dev;
        pctl->desc = desc;
        pctl->variant = variant;
+       if (pctl->variant >= PINCTRL_SUN20I_D1) {
+               pctl->bank_mem_size = D1_BANK_MEM_SIZE;
+               pctl->pull_regs_offset = D1_PULL_REGS_OFFSET;
+               pctl->dlevel_field_width = D1_DLEVEL_FIELD_WIDTH;
+       } else {
+               pctl->bank_mem_size = BANK_MEM_SIZE;
+               pctl->pull_regs_offset = PULL_REGS_OFFSET;
+               pctl->dlevel_field_width = DLEVEL_FIELD_WIDTH;
+       }
  
        pctl->irq_array = devm_kcalloc(&pdev->dev,
                                       IRQ_PER_BANK * pctl->desc->irq_banks,
index cbde3b1fa414bad81359711409f2606b4b4d5629,4901fb31de3e1851648be0c52c810ebd3af30bd0..9f50dacbf7d637a373eb5b425101b5a447eb55b9
@@@ -34,7 -34,6 +34,7 @@@
  #define PM_API_VERSION_2      2
  
  /* ATF only commands */
 +#define TF_A_PM_REGISTER_SGI          0xa04
  #define PM_GET_TRUSTZONE_VERSION      0xa03
  #define PM_SET_SUSPEND_MODE           0xa02
  #define GET_CALLBACK_DATA             0xa01
@@@ -369,6 -368,11 +369,11 @@@ enum pm_pinctrl_drive_strength 
        PM_PINCTRL_DRIVE_STRENGTH_12MA = 3,
  };
  
+ enum pm_pinctrl_tri_state {
+       PM_PINCTRL_TRI_STATE_DISABLE = 0,
+       PM_PINCTRL_TRI_STATE_ENABLE = 1,
+ };
  enum zynqmp_pm_shutdown_type {
        ZYNQMP_PM_SHUTDOWN_TYPE_SHUTDOWN = 0,
        ZYNQMP_PM_SHUTDOWN_TYPE_RESET = 1,
@@@ -469,7 -473,6 +474,7 @@@ int zynqmp_pm_feature(const u32 api_id)
  int zynqmp_pm_is_function_supported(const u32 api_id, const u32 id);
  int zynqmp_pm_set_feature_config(enum pm_feature_config_id id, u32 value);
  int zynqmp_pm_get_feature_config(enum pm_feature_config_id id, u32 *payload);
 +int zynqmp_pm_register_sgi(u32 sgi_num, u32 reset);
  #else
  static inline int zynqmp_pm_get_api_version(u32 *version)
  {
@@@ -735,11 -738,6 +740,11 @@@ static inline int zynqmp_pm_get_feature
  {
        return -ENODEV;
  }
 +
 +static inline int zynqmp_pm_register_sgi(u32 sgi_num, u32 reset)
 +{
 +      return -ENODEV;
 +}
  #endif
  
  #endif /* __FIRMWARE_ZYNQMP_H__ */
This page took 0.293321 seconds and 4 git commands to generate.