]> Git Repo - J-linux.git/commitdiff
Merge tag 'pinctrl-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
authorLinus Torvalds <[email protected]>
Wed, 17 Jan 2024 23:55:33 +0000 (15:55 -0800)
committerLinus Torvalds <[email protected]>
Wed, 17 Jan 2024 23:55:33 +0000 (15:55 -0800)
Pull pin control updates from Linus Walleij:
 "For this kernel cycle I managed an immutable branch for the PEF2256
  WAN framer that has some pin control portions. It already landed in
  your tree through the net pull request but here it is mentioned again.

  The most interesting is perhaps the Samsung Exynos subdrivers for the
  Tensor SoC used in Google Pixel 6 and the ExynosAuto subdriver for
  automotive. Along with the earlier merged Tesla FSD subdriver it shows
  some of the versatile uses of the Samsung Exynos silicon. It is also
  used in the latest version of Axis Communications ARTPEC chips so it
  is a very widely deployed SoC family.

  We also have the Intel Meteor Lake SoC which I think is for laptops.
  It's a pretty interesting chip with Xe graphics and integrated PCH.

  Core changes:

   - A new PINCTRL_GROUP_DESC() infrastructure macro is added and used
     in different drivers, generic group description struct group_desc
     is now used all over the place.

  New drivers:

   - New driver for the Texas Instruments TPS6494 Power Management IC.

   - New driver for the Lantic PEF2256 framer pin multiplexer. This IC
     has some pins that can be reconfigured in different ways. The
     actual driver comes on an immutable branch with the net WAN parts,
     the IC is some latest-and-greatest serial line funnel for e.g.
     wireless access points.

   - New subdriver for the Samsung Exynos Auto V920 pin controller, used
     for automotive applications.

   - New subdriver for the Samsung "GS101" SoC pin controller, this is
     the Google "Tensor" SoC used in the Google Pixel 6.

   - New subdriver for the Intel Meteor Point SoC pin controller.

   - New subdriver for the Qualcomm SM8650 top level (TLMM) and LPASS
     pin controllers.

   - New subdriver for the Qualcomm X1E80100 top level (TLMM) pin
     controller.

   - New subdriver for the Qualcomm SM4450 top level (TLMM) pin
     controller.

   - The "single" pin controller now supports the Texas Instruments
     J7200 SoC.

  Improvements:

   - Intel has created a new (Intel-)generic pin controller driver that
     is now used by all contemporary Intel platforms.

   - Intel is now also making use of some cleanup helpers.

   - Enble 910 Ohm bias in the Intel Tangier driver.

   - The Samsung driver now suppors irq_set_affinity() in it's IRQ chip
     giving support for non wake up external gpio interrupts"

* tag 'pinctrl-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (112 commits)
  pinctrl: samsung: constify iomem pointers
  pinctrl: cy8c95x0: Cache muxed registers
  dt-bindings: pinctrl: xilinx: Rename *gpio to *gpio-grp
  pinctrl: qcom: lpass-lpi: remove duplicated include
  dt-bindings: pinctrl: qcom: drop common properties and allow wakeup-parent
  dt-bindings: pinctrl: qcom: drop common properties
  dt-bindings: pinctrl: qcom,ipq5018-tlmm: use common TLMM bindings
  dt-bindings: pinctrl: qcom,x1e80100-tlmm: restrict number of interrupts
  dt-bindings: pinctrl: qcom,sm8650-tlmm: restrict number of interrupts
  dt-bindings: pinctrl: qcom,sm8550-tlmm: restrict number of interrupts
  dt-bindings: pinctrl: qcom,sdx75-tlmm: restrict number of interrupts
  dt-bindings: pinctrl: qcom,sa8775p-tlmm: restrict number of interrupts
  dt-bindings: pinctrl: qcom,qdu1000-tlmm: restrict number of interrupts
  dt-bindings: pinctrl: qcom: create common LPASS LPI schema
  pinctrl: qcom: sm4450: dd SM4450 pinctrl driver
  dt-bindings: pinctrl: qcom: Add SM4450 pinctrl
  dt-bindings: pinctrl: qcom,pmic-mpp: clean up example
  pinctrl: intel: Add Intel Meteor Point pin controller and GPIO support
  pinctrl: renesas: rzg2l: Add input enable to the Ethernet pins
  pinctrl: renesas: rzg2l: Add output enable support
  ...

1  2 
MAINTAINERS
drivers/pinctrl/core.c
drivers/pinctrl/pinctrl-cy8c95x0.c
drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c
drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c
drivers/pinctrl/stm32/pinctrl-stm32.c

diff --combined MAINTAINERS
index f1a3497efb482c526e86eb0639184f41c2542745,ebbd4e6b7c7adfa2e6dec12ddedbecf19e90a857..67d09557c956620d59ba055152967fa0b974698f
@@@ -171,10 -171,13 +171,10 @@@ S:      Supporte
  F:    drivers/soc/fujitsu/a64fx-diag.c
  
  A8293 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/a8293*
  
  AACRAID SCSI RAID DRIVER
@@@ -573,17 -576,23 +573,17 @@@ F:      drivers/iio/accel/adxl372_i2c.
  F:    drivers/iio/accel/adxl372_spi.c
  
  AF9013 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/af9013*
  
  AF9033 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/af9033*
  
  AFFS FILE SYSTEM
@@@ -641,10 -650,13 +641,10 @@@ F:      fs/aio.
  F:    include/linux/*aio*.h
  
  AIRSPY MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/airspy/
  
  ALACRITECH GIGABIT ETHERNET DRIVER
@@@ -699,15 -711,6 +699,15 @@@ S:       Maintaine
  F:    Documentation/devicetree/bindings/media/allegro,al5e.yaml
  F:    drivers/media/platform/allegro-dvt/
  
 +ALLIED VISION ALVIUM CAMERA DRIVER
 +M:    Tommaso Merciai <[email protected]>
 +M:    Martin Hecht <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/alliedvision,alvium-csi2.yaml
 +F:    drivers/media/i2c/alvium-csi2.c
 +F:    drivers/media/i2c/alvium-csi2.h
 +
  ALLWINNER A10 CSI DRIVER
  M:    Maxime Ripard <[email protected]>
  L:    [email protected]
@@@ -1693,6 -1696,11 +1693,6 @@@ S:     Odd Fixe
  F:    drivers/amba/
  F:    include/linux/amba/bus.h
  
 -ARM PRIMECELL CLCD PL110 DRIVER
 -M:    Russell King <[email protected]>
 -S:    Odd Fixes
 -F:    drivers/video/fbdev/amba-clcd.*
 -
  ARM PRIMECELL KMI PL050 DRIVER
  M:    Russell King <[email protected]>
  S:    Odd Fixes
@@@ -1935,6 -1943,7 +1935,6 @@@ F:      drivers/i2c/busses/i2c-pasemi-platfo
  F:    drivers/iommu/apple-dart.c
  F:    drivers/iommu/io-pgtable-dart.c
  F:    drivers/irqchip/irq-apple-aic.c
 -F:    drivers/mailbox/apple-mailbox.c
  F:    drivers/nvme/host/apple.c
  F:    drivers/nvmem/apple-efuses.c
  F:    drivers/pinctrl/pinctrl-apple-gpio.c
@@@ -1943,6 -1952,7 +1943,6 @@@ F:      drivers/soc/apple/
  F:    drivers/watchdog/apple_wdt.c
  F:    include/dt-bindings/interrupt-controller/apple-aic.h
  F:    include/dt-bindings/pinctrl/apple.h
 -F:    include/linux/apple-mailbox.h
  F:    include/linux/soc/apple/*
  
  ARM/ARTPEC MACHINE SUPPORT
  S:    Odd Fixes
  N:    clps711x
  
 -ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
 -M:    Lennert Buytenhek <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
  M:    Hartley Sweeten <[email protected]>
  M:    Alexander Sverdlin <[email protected]>
@@@ -2140,7 -2155,6 +2140,7 @@@ S:      Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
  F:    arch/arm/boot/dts/nxp/imx/
  F:    arch/arm/boot/dts/nxp/mxs/
 +F:    arch/arm64/boot/dts/freescale/
  X:    arch/arm64/boot/dts/freescale/fsl-*
  X:    arch/arm64/boot/dts/freescale/qoriq-*
  X:    drivers/media/i2c/
@@@ -2304,7 -2318,6 +2304,7 @@@ F:      arch/arm/mach-dove
  F:    arch/arm/mach-mv78xx0/
  F:    arch/arm/mach-orion5x/
  F:    arch/arm/plat-orion/
 +F:    drivers/bus/mvebu-mbus.c
  F:    drivers/soc/dove/
  
  ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K, CN9130 SOC support
@@@ -2319,7 -2332,8 +2319,7 @@@ F:      arch/arm/boot/dts/marvell/armada
  F:    arch/arm/boot/dts/marvell/kirkwood*
  F:    arch/arm/configs/mvebu_*_defconfig
  F:    arch/arm/mach-mvebu/
 -F:    arch/arm64/boot/dts/marvell/armada*
 -F:    arch/arm64/boot/dts/marvell/cn913*
 +F:    arch/arm64/boot/dts/marvell/
  F:    drivers/clk/mvebu/
  F:    drivers/cpufreq/armada-37xx-cpufreq.c
  F:    drivers/cpufreq/armada-8k-cpufreq.c
@@@ -2391,6 -2405,7 +2391,6 @@@ F:      drivers/memory/atmel
  F:    drivers/watchdog/sama5d4_wdt.c
  F:    include/soc/at91/
  X:    drivers/input/touchscreen/atmel_mxt_ts.c
 -X:    drivers/net/wireless/atmel/
  N:    at91
  N:    atmel
  
@@@ -2520,7 -2535,7 +2520,7 @@@ F:      drivers/*/*/*wpcm
  F:    drivers/*/*wpcm*
  
  ARM/NXP S32G ARCHITECTURE
 -M:    Chester Lin <clin@suse.com>
 +M:    Chester Lin <chester62515@gmail.com>
  R:    Andreas Färber <[email protected]>
  R:    Matthias Brugger <[email protected]>
  R:    NXP S32 Linux Team <[email protected]>
@@@ -2542,6 -2557,7 +2542,6 @@@ F:      arch/arm64/boot/dts/qcom/sc7280
  F:    arch/arm64/boot/dts/qcom/sdm845-cheza*
  
  ARM/QUALCOMM SUPPORT
 -M:    Andy Gross <[email protected]>
  M:    Bjorn Andersson <[email protected]>
  M:    Konrad Dybcio <[email protected]>
  L:    [email protected]
@@@ -2821,6 -2837,7 +2821,6 @@@ F:      Documentation/devicetree/bindings/in
  F:    Documentation/devicetree/bindings/reset/sunplus,reset.yaml
  F:    arch/arm/boot/dts/sunplus/
  F:    arch/arm/configs/sp7021_*defconfig
 -F:    arch/arm/mach-sunplus/
  F:    drivers/clk/clk-sp7021.c
  F:    drivers/irqchip/irq-sp7021-intc.c
  F:    drivers/reset/reset-sunplus.c
@@@ -2836,6 -2853,11 +2836,6 @@@ F:     arch/arm/boot/dts/synaptics
  F:    arch/arm/mach-berlin/
  F:    arch/arm64/boot/dts/synaptics/
  
 -ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
 -M:    Lennert Buytenhek <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/TEGRA HDMI CEC SUBSYSTEM SUPPORT
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/arm64/boot/dts/tesla/
  
 -ARM/TETON BGA MACHINE SUPPORT
 -M:    "Mark F. Brown" <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/TEXAS INSTRUMENT AEMIF/EMIF DRIVERS
  M:    Santosh Shilimkar <[email protected]>
  L:    [email protected]
@@@ -2930,6 -2957,7 +2930,6 @@@ F:      Documentation/devicetree/bindings/pi
  F:    Documentation/devicetree/bindings/soc/socionext/socionext,uniphier*.yaml
  F:    arch/arm/boot/dts/socionext/uniphier*
  F:    arch/arm/include/asm/hardware/cache-uniphier.h
 -F:    arch/arm/mach-uniphier/
  F:    arch/arm/mm/cache-uniphier.c
  F:    arch/arm64/boot/dts/socionext/uniphier*
  F:    drivers/bus/uniphier-system-bus.c
@@@ -2992,7 -3020,6 +2992,7 @@@ F:      Documentation/devicetree/bindings/i2
  F:    Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
  F:    Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml
  F:    Documentation/devicetree/bindings/memory-controllers/xlnx,zynq-ddrc-a05.yaml
 +F:    Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml
  F:    Documentation/devicetree/bindings/spi/xlnx,zynq-qspi.yaml
  F:    arch/arm/mach-zynq/
  F:    drivers/clocksource/timer-cadence-ttc.c
@@@ -3057,14 -3084,6 +3057,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/net/asix,ax88796c.yaml
  F:    drivers/net/ethernet/asix/ax88796c_*
  
 +ASIX PHY DRIVER [RUST]
 +M:    FUJITA Tomonori <[email protected]>
 +R:    Trevor Gross <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/phy/ax88796b_rust.rs
 +
  ASPEED CRYPTO DRIVER
  M:    Neal Liu <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -3290,6 -3309,13 +3290,6 @@@ T:     git git://github.com/ndyer/linux.gi
  F:    Documentation/devicetree/bindings/input/atmel,maxtouch.yaml
  F:    drivers/input/touchscreen/atmel_mxt_ts.c
  
 -ATMEL WIRELESS DRIVER
 -L:    [email protected]
 -S:    Orphan
 -W:    http://www.thekelleys.org.uk/atmel
 -W:    http://atmelwlandriver.sourceforge.net/
 -F:    drivers/net/wireless/atmel/atmel*
 -
  ATOMIC INFRASTRUCTURE
  M:    Will Deacon <[email protected]>
  M:    Peter Zijlstra <[email protected]>
@@@ -3324,17 -3350,13 +3324,17 @@@ M:   Eric Paris <[email protected]
  L:    [email protected]
  S:    Supported
  W:    https://github.com/linux-audit
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git
 +Q:    https://patchwork.kernel.org/project/audit/list
 +B:    mailto:[email protected]
 +P:    https://github.com/linux-audit/audit-kernel/blob/main/README.md
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git
  F:    include/asm-generic/audit_*.h
  F:    include/linux/audit.h
  F:    include/linux/audit_arch.h
  F:    include/uapi/linux/audit.h
  F:    kernel/audit*
  F:    lib/*audit.c
 +K:    \baudit_[a-z_0-9]\+\b
  
  AUXILIARY BUS DRIVER
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -3393,16 -3415,6 +3393,16 @@@ W:    https://ez.analog.com/linux-software
  F:    Documentation/devicetree/bindings/hwmon/adi,axi-fan-control.yaml
  F:    drivers/hwmon/axi-fan-control.c
  
 +AXI SPI ENGINE
 +M:    Michael Hennerich <[email protected]>
 +M:    Nuno Sá <[email protected]>
 +R:    David Lechner <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://ez.analog.com/linux-software-drivers
 +F:    Documentation/devicetree/bindings/spi/adi,axi-spi-engine.yaml
 +F:    drivers/spi/spi-axi-spi-engine.c
 +
  AXXIA I2C CONTROLLER
  M:    Krzysztof Adamski <[email protected]>
  L:    [email protected]
@@@ -3455,14 -3467,6 +3455,14 @@@ F:    drivers/video/backlight
  F:    include/linux/backlight.h
  F:    include/linux/pwm_backlight.h
  
 +BAIKAL-T1 PVT HARDWARE MONITOR DRIVER
 +M:    Serge Semin <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/hwmon/baikal,bt1-pvt.yaml
 +F:    Documentation/hwmon/bt1-pvt.rst
 +F:    drivers/hwmon/bt1-pvt.[ch]
 +
  BARCO P50 GPIO DRIVER
  M:    Santosh Kumar Yadav <[email protected]>
  M:    Peter Korsgaard <[email protected]>
@@@ -3495,7 -3499,7 +3495,7 @@@ F:      drivers/net/hamradio/baycom
  
  BCACHE (BLOCK LAYER CACHE)
  M:    Coly Li <[email protected]>
 -M:    Kent Overstreet <kent.overstreet@gmail.com>
 +M:    Kent Overstreet <kent.overstreet@linux.dev>
  L:    [email protected]
  S:    Maintained
  W:    http://bcache.evilpiepirate.org
@@@ -4134,6 -4138,7 +4134,6 @@@ M:      Franky Lin <[email protected]
  M:    Hante Meuleman <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    drivers/net/wireless/broadcom/brcm80211/
  
@@@ -5071,6 -5076,7 +5071,6 @@@ CLANG CONTROL FLOW INTEGRITY SUPPOR
  M:    Sami Tolvanen <[email protected]>
  M:    Kees Cook <[email protected]>
  R:    Nathan Chancellor <[email protected]>
 -R:    Nick Desaulniers <[email protected]>
  L:    [email protected]
  S:    Supported
  B:    https://github.com/ClangBuiltLinux/linux/issues
@@@ -5085,9 -5091,8 +5085,9 @@@ F:      .clang-forma
  
  CLANG/LLVM BUILD SUPPORT
  M:    Nathan Chancellor <[email protected]>
 -M:    Nick Desaulniers <[email protected]>
 -R:    Tom Rix <[email protected]>
 +R:    Nick Desaulniers <[email protected]>
 +R:    Bill Wendling <[email protected]>
 +R:    Justin Stitt <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://clangbuiltlinux.github.io/
@@@ -5164,7 -5169,7 +5164,7 @@@ M:      Philipp Zabel <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/coda.yaml
 -F:    drivers/media/platform/chips-media/
 +F:    drivers/media/platform/chips-media/coda
  
  CODE OF CONDUCT
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -5237,6 -5242,7 +5237,6 @@@ F:      drivers/platform/x86/compal-laptop.
  
  COMPILER ATTRIBUTES
  M:    Miguel Ojeda <[email protected]>
 -R:    Nick Desaulniers <[email protected]>
  S:    Maintained
  F:    include/linux/compiler_attributes.h
  
@@@ -5268,10 -5274,10 +5268,10 @@@ W:   http://accessrunner.sourceforge.net
  F:    drivers/usb/atm/cxacru.c
  
  CONFIDENTIAL COMPUTING THREAT MODEL FOR X86 VIRTUALIZATION (SNP/TDX)
 -M:    Elena Reshetova <[email protected]>
 -M:    Carlos Bilbao <[email protected]>
 -S:    Maintained
 -F:    Documentation/security/snp-tdx-threat-model.rst
 +M:    Elena Reshetova <[email protected]>
 +M:    Carlos Bilbao <[email protected]>
 +S:    Maintained
 +F:    Documentation/security/snp-tdx-threat-model.rst
  
  CONFIGFS
  M:    Joel Becker <[email protected]>
@@@ -5346,7 -5352,6 +5346,7 @@@ L:      [email protected]
  S:    Maintained
  F:    mm/memcontrol.c
  F:    mm/swap_cgroup.c
 +F:    samples/cgroup/*
  F:    tools/testing/selftests/cgroup/memcg_protection.m
  F:    tools/testing/selftests/cgroup/test_hugetlb_memcg.c
  F:    tools/testing/selftests/cgroup/test_kmem.c
@@@ -5531,12 -5536,6 +5531,12 @@@ F:    include/crypto
  F:    include/linux/crypto*
  F:    lib/crypto/
  
 +CRYPTO SPEED TEST COMPARE
 +M:    Wang Jinchao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    tools/crypto/tcrypt/tcrypt_speed_compare.py
 +
  CRYPTOGRAPHIC RANDOM NUMBER GENERATOR
  M:    Neil Horman <[email protected]>
  L:    [email protected]
@@@ -5606,10 -5605,13 +5606,10 @@@ F:   Documentation/driver-api/media/drive
  F:    drivers/media/pci/cx88/
  
  CXD2820R MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/cxd2820r*
  
  CXGB3 ETHERNET DRIVER (CXGB3)
@@@ -5722,10 -5724,13 +5722,10 @@@ F:   Documentation/devicetree/bindings/in
  F:    drivers/input/keyboard/cypress-sf.c
  
  CYPRESS_FIRMWARE MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/common/cypress_firmware*
  
  CYTTSP TOUCHSCREEN DRIVER
@@@ -5896,7 -5901,7 +5896,7 @@@ DELL SYSTEMS MANAGEMENT BASE DRIVER (dc
  M:    Stuart Hayes <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/driver-api/dcdbas.rst
 +F:    Documentation/userspace-api/dcdbas.rst
  F:    drivers/platform/x86/dell/dcdbas.*
  
  DELL WMI DDV DRIVER
@@@ -6063,8 -6068,10 +6063,8 @@@ M:     Mikulas Patocka <[email protected]
  M:    [email protected]
  L:    [email protected]
  S:    Maintained
 -W:    http://sources.redhat.com/dm
  Q:    http://patchwork.kernel.org/project/dm-devel/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
 -T:    quilt http://people.redhat.com/agk/patches/linux/editing/
  F:    Documentation/admin-guide/device-mapper/
  F:    drivers/md/Kconfig
  F:    drivers/md/Makefile
@@@ -6110,7 -6117,7 +6110,7 @@@ F:      Documentation/devicetree/bindings/re
  F:    Documentation/devicetree/bindings/regulator/dlg,slg51000.yaml
  F:    Documentation/devicetree/bindings/sound/da[79]*.txt
  F:    Documentation/devicetree/bindings/thermal/da90??-thermal.txt
 -F:    Documentation/devicetree/bindings/watchdog/da90??-wdt.txt
 +F:    Documentation/devicetree/bindings/watchdog/dlg,da90??-watchdog.yaml
  F:    Documentation/hwmon/da90??.rst
  F:    drivers/gpio/gpio-da90??.c
  F:    drivers/hwmon/da90??-hwmon.c
@@@ -6496,7 -6503,8 +6496,7 @@@ T:      git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/sun4i/sun8i*
  
  DRM DRIVER FOR ARM PL111 CLCD
 -M:    Emma Anholt <[email protected]>
 -S:    Supported
 +S:    Orphan
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/pl111/
  
@@@ -6611,7 -6619,8 +6611,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/panel/panel-himax-hx8394.c
  
  DRM DRIVER FOR HX8357D PANELS
 -M:    Emma Anholt <[email protected]>
 -S:    Maintained
 +S:    Orphan
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/display/himax,hx8357d.txt
  F:    drivers/gpu/drm/tiny/hx8357d.c
@@@ -6638,12 -6647,6 +6638,12 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/ilitek,ili9486.yaml
  F:    drivers/gpu/drm/tiny/ili9486.c
  
 +DRM DRIVER FOR ILITEK ILI9805 PANELS
 +M:    Michael Trimarchi <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/ilitek,ili9805.yaml
 +F:    drivers/gpu/drm/panel/panel-ilitek-ili9805.c
 +
  DRM DRIVER FOR JADARD JD9365DA-H3 MIPI-DSI LCD PANELS
  M:    Jagan Teki <[email protected]>
  S:    Maintained
@@@ -6872,12 -6875,6 +6872,12 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/ste,mcde.yaml
  F:    drivers/gpu/drm/mcde/
  
 +DRM DRIVER FOR SYNAPTICS R63353 PANELS
 +M:    Michael Trimarchi <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/synaptics,r63353.yaml
 +F:    drivers/gpu/drm/panel/panel-synaptics-r63353.c
 +
  DRM DRIVER FOR TI DLPC3433 MIPI DSI TO DMD BRIDGE
  M:    Jagan Teki <[email protected]>
  S:    Maintained
@@@ -6925,8 -6922,8 +6925,8 @@@ T:      git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/vboxvideo/
  
  DRM DRIVER FOR VMWARE VIRTUAL GPU
 -M:    Zack Rusin <zackr@vmware.com>
 -R:    VMware Graphics Reviewers <linux-graphics-maintainer@vmware.com>
 +M:    Zack Rusin <zack.rusin@broadcom.com>
 +R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    [email protected]
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -7162,7 -7159,6 +7162,7 @@@ F:      include/linux/platform_data/shmob_dr
  DRM DRIVERS FOR ROCKCHIP
  M:    Sandy Huang <[email protected]>
  M:    Heiko Stübner <[email protected]>
 +M:    Andy Yan <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -7217,8 -7213,8 +7217,8 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/omapdrm/
  
  DRM DRIVERS FOR V3D
 -M:    Emma Anholt <[email protected]>
  M:    Melissa Wen <[email protected]>
 +M:    Maíra Canal <[email protected]>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
@@@ -7226,6 -7222,7 +7226,6 @@@ F:      drivers/gpu/drm/v3d
  F:    include/uapi/drm/v3d_drm.h
  
  DRM DRIVERS FOR VC4
 -M:    Emma Anholt <[email protected]>
  M:    Maxime Ripard <[email protected]>
  S:    Supported
  T:    git git://github.com/anholt/linux
@@@ -7323,38 -7320,53 +7323,38 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/pci/dt3155/
  
  DVB_USB_AF9015 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/af9015*
  
  DVB_USB_AF9035 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/af9035*
  
  DVB_USB_ANYSEE MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/anysee*
  
  DVB_USB_AU6610 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/au6610*
  
  DVB_USB_CE6230 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/ce6230*
  
  DVB_USB_CXUSB MEDIA DRIVER
@@@ -7368,17 -7380,22 +7368,17 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/usb/dvb-usb/cxusb*
  
  DVB_USB_EC168 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/ec168*
  
  DVB_USB_GL861 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/gl861*
  
  DVB_USB_MXL111SF MEDIA DRIVER
@@@ -7392,18 -7409,23 +7392,18 @@@ T:   git git://linuxtv.org/mkrufky/mxl111
  F:    drivers/media/usb/dvb-usb-v2/mxl111sf*
  
  DVB_USB_RTL28XXU MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/rtl28xxu*
  
  DVB_USB_V2 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
  W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/dvb-usb-v2/dvb_usb*
  F:    drivers/media/usb/dvb-usb-v2/usb_urb.c
  
@@@ -7445,10 -7467,13 +7445,10 @@@ F:   Documentation/devicetree/bindings/in
  F:    drivers/input/misc/e3x0-button.c
  
  E4000 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/e4000*
  
  EARTH_PT1 MEDIA DRIVER
@@@ -7464,10 -7489,13 +7464,10 @@@ S:   Odd Fixe
  F:    drivers/media/pci/pt3/
  
  EC100 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/ec100*
  
  ECRYPT FILE SYSTEM
@@@ -7827,7 -7855,6 +7827,7 @@@ R:      Yue Hu <[email protected]
  R:    Jeffle Xu <[email protected]>
  L:    [email protected]
  S:    Maintained
 +W:    https://erofs.docs.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
  F:    Documentation/ABI/testing/sysfs-fs-erofs
  F:    Documentation/filesystems/erofs.rst
@@@ -7902,14 -7929,6 +7902,14 @@@ F:    include/uapi/linux/mdio.
  F:    include/uapi/linux/mii.h
  F:    net/core/of_net.c
  
 +ETHERNET PHY LIBRARY [RUST]
 +M:    FUJITA Tomonori <[email protected]>
 +R:    Trevor Gross <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    rust/kernel/net/phy.rs
 +
  EXEC & BINFMT API
  R:    Eric Biederman <[email protected]>
  R:    Kees Cook <[email protected]>
@@@ -7957,7 -7976,6 +7957,7 @@@ F:      include/uapi/linux/ext4.
  
  Extended Verification Module (EVM)
  M:    Mimi Zohar <[email protected]>
 +M:    Roberto Sassu <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
@@@ -8094,10 -8112,13 +8094,10 @@@ F:   drivers/media/tuners/fc0011.
  F:    drivers/media/tuners/fc0011.h
  
  FC2580 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/fc2580*
  
  FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
@@@ -8136,7 -8157,6 +8136,7 @@@ F:      include/trace/events/fs_dax.
  FILESYSTEMS (VFS and infrastructure)
  M:    Alexander Viro <[email protected]>
  M:    Christian Brauner <[email protected]>
 +R:    Jan Kara <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    fs/*
@@@ -8157,16 -8177,6 +8157,16 @@@ F:    fs/exportfs
  F:    fs/fhandle.c
  F:    include/linux/exportfs.h
  
 +FILESYSTEMS [IDMAPPED MOUNTS]
 +M:    Christian Brauner <[email protected]>
 +M:    Seth Forshee <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/filesystems/idmappings.rst
 +F:    fs/mnt_idmapping.c
 +F:    include/linux/mnt_idmapping.*
 +F:    tools/testing/selftests/mount_setattr/
 +
  FILESYSTEMS [IOMAP]
  M:    Christian Brauner <[email protected]>
  R:    Darrick J. Wong <[email protected]>
@@@ -8176,15 -8186,6 +8176,15 @@@ S:    Supporte
  F:    fs/iomap/
  F:    include/linux/iomap.h
  
 +FILESYSTEMS [STACKABLE]
 +M:    Miklos Szeredi <[email protected]>
 +M:    Amir Goldstein <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    fs/backing-file.c
 +F:    include/linux/backing-file.h
 +
  FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    Riku Voipio <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/input/joystick/fsia6b.c
  
 -FOCUSRITE SCARLETT GEN 2/3 MIXER DRIVER
 +FOCUSRITE SCARLETT2 MIXER DRIVER (Scarlett Gen 2+ and Clarett)
  M:    Geoffrey D. Bennett <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
 +W:    https://github.com/geoffreybennett/scarlett-gen2
 +B:    https://github.com/geoffreybennett/scarlett-gen2/issues
 +T:    git https://github.com/geoffreybennett/scarlett-gen2.git
 +F:    include/uapi/sound/scarlett2.h
  F:    sound/usb/mixer_scarlett2.c
  
  FORCEDETH GIGABIT ETHERNET DRIVER
@@@ -8583,6 -8581,7 +8583,6 @@@ L:      [email protected]
  S:    Maintained
  F:    sound/soc/fsl/fsl*
  F:    sound/soc/fsl/imx*
 -F:    sound/soc/fsl/mpc8610_hpcd.c
  
  FREESCALE SOC SOUND QMC DRIVER
  M:    Herve Codina <[email protected]>
@@@ -8761,21 -8760,6 +8761,21 @@@ F:    kernel/futex/
  F:    tools/perf/bench/futex*
  F:    tools/testing/selftests/futex/
  
 +GALAXYCORE GC0308 CAMERA SENSOR DRIVER
 +M:    Sebastian Reichel <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/galaxycore,gc0308.yaml
 +F:    drivers/media/i2c/gc0308.c
 +
 +GALAXYCORE GC2145 SENSOR DRIVER
 +M:    Alain Volmat <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/galaxycore,gc2145.yaml
 +F:    drivers/media/i2c/gc2145.c
 +
  GATEWORKS SYSTEM CONTROLLER (GSC) DRIVER
  M:    Tim Harvey <[email protected]>
  S:    Maintained
@@@ -8894,13 -8878,21 +8894,13 @@@ F:   Documentation/devicetree/bindings/i2
  F:    drivers/i2c/muxes/i2c-demux-pinctrl.c
  
  GENERIC PM DOMAINS
 -M:    "Rafael J. Wysocki" <[email protected]>
 -M:    Kevin Hilman <[email protected]>
  M:    Ulf Hansson <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/power/power?domain*
 -F:    drivers/base/power/domain*.c
 -F:    include/linux/pm_domain.h
 -
 -GENERIC PM DOMAIN PROVIDERS
 -M:    Ulf Hansson <[email protected]>
 -L:    [email protected]
 -S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm.git
  F:    drivers/pmdomain/
 +F:    include/linux/pm_domain.h
  
  GENERIC RADIX TREE
  M:    Kent Overstreet <[email protected]>
@@@ -8958,6 -8950,7 +8958,6 @@@ S:      Maintaine
  F:    scripts/get_maintainer.pl
  
  GFS2 FILE SYSTEM
 -M:    Bob Peterson <[email protected]>
  M:    Andreas Gruenbacher <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -8967,13 -8960,6 +8967,13 @@@ F:    Documentation/filesystems/gfs2
  F:    fs/gfs2/
  F:    include/uapi/linux/gfs2_ondisk.h
  
 +GIGABYTE WATERFORCE SENSOR DRIVER
 +M:    Aleksa Savic <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/gigabyte_waterforce.rst
 +F:    drivers/hwmon/gigabyte_waterforce.c
 +
  GIGABYTE WMI DRIVER
  M:    Thomas Weißschuh <[email protected]>
  L:    [email protected]
@@@ -9020,16 -9006,6 +9020,16 @@@ S:    Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
  F:    drivers/firmware/google/
  
 +GOOGLE TENSOR SoC SUPPORT
 +M:    Peter Griffin <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
 +F:    arch/arm64/boot/dts/exynos/google/
 +F:    drivers/clk/samsung/clk-gs101.c
 +F:    include/dt-bindings/clock/google,gs101.h
 +
  GPD POCKET FAN DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
@@@ -9069,7 -9045,7 +9069,7 @@@ F:      drivers/gpio/gpio-mockup.
  F:    tools/testing/selftests/gpio/
  
  GPIO REGMAP
 -M:    Michael Walle <m[email protected]>
 +M:    Michael Walle <m[email protected]>
  S:    Maintained
  F:    drivers/gpio/gpio-regmap.c
  F:    include/linux/gpio/regmap.h
@@@ -9078,9 -9054,12 +9078,9 @@@ K:     (devm_)?gpio_regmap_(un)?registe
  GPIO SUBSYSTEM
  M:    Linus Walleij <[email protected]>
  M:    Bartosz Golaszewski <[email protected]>
 -R:    Andy Shevchenko <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
 -F:    Documentation/ABI/obsolete/sysfs-gpio
 -F:    Documentation/ABI/testing/gpio-cdev
  F:    Documentation/admin-guide/gpio/
  F:    Documentation/devicetree/bindings/gpio/
  F:    Documentation/driver-api/gpio/
@@@ -9089,16 -9068,6 +9089,16 @@@ F:    include/dt-bindings/gpio
  F:    include/linux/gpio.h
  F:    include/linux/gpio/
  F:    include/linux/of_gpio.h
 +
 +GPIO UAPI
 +M:    Bartosz Golaszewski <[email protected]>
 +R:    Kent Gibson <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
 +F:    Documentation/ABI/obsolete/sysfs-gpio
 +F:    Documentation/ABI/testing/gpio-cdev
 +F:    drivers/gpio/gpiolib-cdev.c
  F:    include/uapi/linux/gpio.h
  F:    tools/gpio/
  
@@@ -9280,10 -9249,13 +9280,10 @@@ F:   include/trace/events/habanalabs.
  F:    include/uapi/drm/habanalabs_accel.h
  
  HACKRF MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/hackrf/
  
  HANDSHAKE UPCALL FOR TRANSPORT LAYER SECURITY
@@@ -9341,6 -9313,7 +9341,6 @@@ F:      drivers/char/hw_random
  F:    include/linux/hw_random.h
  
  HARDWARE SPINLOCK CORE
 -M:    Ohad Ben-Cohen <[email protected]>
  M:    Bjorn Andersson <[email protected]>
  R:    Baolin Wang <[email protected]>
  L:    [email protected]
@@@ -9569,7 -9542,6 +9569,7 @@@ F:      Documentation/devicetree/bindings/gp
  F:    drivers/gpio/gpio-hisi.c
  
  HISILICON HIGH PERFORMANCE RSA ENGINE DRIVER (HPRE)
 +M:    Zhiqi Song <[email protected]>
  M:    Longfang Liu <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9609,7 -9581,6 +9609,7 @@@ F:      drivers/bus/hisi_lpc.
  HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
  M:    Yisen Zhuang <[email protected]>
  M:    Salil Mehta <[email protected]>
 +M:    Jijie Shao <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.hisilicon.com
@@@ -9657,7 -9628,6 +9657,7 @@@ F:      drivers/crypto/hisilicon/sgl.
  F:    include/linux/hisi_acc_qm.h
  
  HISILICON ROCE DRIVER
 +M:    Chengchang Tang <[email protected]>
  M:    Junxian Huang <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9672,6 -9642,7 +9672,6 @@@ F:      Documentation/devicetree/bindings/sc
  F:    drivers/scsi/hisi_sas/
  
  HISILICON SECURITY ENGINE V2 DRIVER (SEC2)
 -M:    Kai Ye <[email protected]>
  M:    Longfang Liu <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9738,6 -9709,11 +9738,6 @@@ S:     Maintaine
  F:    Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
  F:    drivers/iio/pressure/mprls0025pa.c
  
 -HOST AP DRIVER
 -L:    [email protected]
 -S:    Obsolete
 -F:    drivers/net/wireless/intersil/hostap/
 -
  HP BIOSCFG DRIVER
  M:    Jorge Lopez <[email protected]>
  L:    [email protected]
@@@ -9840,6 -9816,7 +9840,6 @@@ F:      Documentation/networking/device_driv
  F:    drivers/net/ethernet/huawei/hinic/
  
  HUGETLB SUBSYSTEM
 -M:    Mike Kravetz <[email protected]>
  M:    Muchun Song <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9863,8 -9840,8 +9863,8 @@@ T:      git git://linuxtv.org/media_tree.gi
  F:    drivers/media/platform/st/sti/hva
  
  HWPOISON MEMORY FAILURE HANDLING
 -M:    Naoya Horiguchi <naoya.horiguchi@nec.com>
 -R:    Miaohe Lin <linmiaohe@huawei.com>
 +M:    Miaohe Lin <linmiaohe@huawei.com>
 +R:    Naoya Horiguchi <naoya.horiguchi@nec.com>
  L:    [email protected]
  S:    Maintained
  F:    mm/hwpoison-inject.c
@@@ -10275,6 -10252,16 +10275,6 @@@ S:  Maintaine
  W:    https://github.com/o2genum/ideapad-slidebar
  F:    drivers/input/misc/ideapad_slidebar.c
  
 -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/vfs/idmapping.git
 -F:    Documentation/filesystems/idmappings.rst
 -F:    include/linux/mnt_idmapping.*
 -F:    tools/testing/selftests/mount_setattr/
 -
  IDT VersaClock 5 CLOCK DRIVER
  M:    Luca Ceresoli <[email protected]>
  S:    Maintained
@@@ -10408,17 -10395,6 +10408,17 @@@ IMGTEC IR DECODER DRIVE
  S:    Orphan
  F:    drivers/media/rc/img-ir/
  
 +IMGTEC POWERVR DRM DRIVER
 +M:    Frank Binns <[email protected]>
 +M:    Donald Robson <[email protected]>
 +M:    Matt Coster <[email protected]>
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/gpu/img,powervr.yaml
 +F:    Documentation/gpu/imagination/
 +F:    drivers/gpu/drm/imagination/
 +F:    include/uapi/drm/pvr_drm.h
 +
  IMON SOUNDGRAPH USB IR RECEIVER
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -10578,9 -10554,7 +10578,9 @@@ F:   drivers/crypto/inside-secure
  
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
  M:    Mimi Zohar <[email protected]>
 +M:    Roberto Sassu <[email protected]>
  M:    Dmitry Kasatkin <[email protected]>
 +R:    Eric Snowberg <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
@@@ -10658,26 -10632,16 +10658,26 @@@ L:        [email protected]
  S:    Supported
  F:    arch/x86/include/asm/intel-family.h
  
 -INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
 +INTEL DRM DISPLAY FOR XE AND I915 DRIVERS
 +M:    Jani Nikula <[email protected]>
 +M:    Rodrigo Vivi <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/gpu/drm/i915/display/
 +F:    drivers/gpu/drm/xe/display/
 +F:    drivers/gpu/drm/xe/compat-i915-headers
 +
 +INTEL DRM I915 DRIVER (Meteor Lake, DG2 and older excluding Poulsbo, Moorestown and derivative)
  M:    Jani Nikula <[email protected]>
  M:    Joonas Lahtinen <[email protected]>
  M:    Rodrigo Vivi <[email protected]>
  M:    Tvrtko Ursulin <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    https://01.org/linuxgraphics/
 +W:    https://drm.pages.freedesktop.org/intel-docs/
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
 -B:    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
 +B:    https://drm.pages.freedesktop.org/intel-docs/how-to-file-i915-bugs.html
  C:    irc://irc.oftc.net/intel-gfx
  T:    git git://anongit.freedesktop.org/drm-intel
  F:    Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon
@@@ -10687,23 -10651,6 +10687,23 @@@ F: drivers/gpu/drm/i915
  F:    include/drm/i915*
  F:    include/uapi/drm/i915_drm.h
  
 +INTEL DRM XE DRIVER (Lunar Lake and newer)
 +M:    Lucas De Marchi <[email protected]>
 +M:    Oded Gabbay <[email protected]>
 +M:    Thomas Hellström <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://drm.pages.freedesktop.org/intel-docs/
 +Q:    http://patchwork.freedesktop.org/project/intel-xe/
 +B:    https://gitlab.freedesktop.org/drm/xe/kernel/-/issues
 +C:    irc://irc.oftc.net/xe
 +T:    git https://gitlab.freedesktop.org/drm/xe/kernel.git
 +F:    Documentation/ABI/testing/sysfs-driver-intel-xe-hwmon
 +F:    Documentation/gpu/xe/
 +F:    drivers/gpu/drm/xe/
 +F:    include/drm/xe*
 +F:    include/uapi/drm/xe_drm.h
 +
  INTEL ETHERNET DRIVERS
  M:    Jesse Brandeburg <[email protected]>
  M:    Tony Nguyen <[email protected]>
@@@ -10727,6 -10674,13 +10727,6 @@@ S:  Supporte
  F:    drivers/infiniband/hw/irdma/
  F:    include/uapi/rdma/irdma-abi.h
  
 -INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
 -M:    Maik Broemme <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/fb/intelfb.rst
 -F:    drivers/video/fbdev/intelfb/
 -
  INTEL GPIO DRIVERS
  M:    Andy Shevchenko <[email protected]>
  L:    [email protected]
@@@ -10740,7 -10694,6 +10740,7 @@@ F:   drivers/gpio/gpio-pch.
  F:    drivers/gpio/gpio-sch.c
  F:    drivers/gpio/gpio-sodaville.c
  F:    drivers/gpio/gpio-tangier.c
 +F:    drivers/gpio/gpio-tangier.h
  
  INTEL GVT-g DRIVERS (Intel GPU Virtualization)
  M:    Zhenyu Wang <[email protected]>
@@@ -10766,13 -10719,6 +10766,13 @@@ S: Supporte
  Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
  F:    drivers/dma/ioat*
  
 +INTEL IAA CRYPTO DRIVER
 +M:    Tom Zanussi <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/driver-api/crypto/iaa/iaa-crypto.rst
 +F:    drivers/crypto/intel/iaa/*
 +
  INTEL IDLE DRIVER
  M:    Jacob Pan <[email protected]>
  M:    Len Brown <[email protected]>
@@@ -11071,7 -11017,6 +11071,7 @@@ F:   drivers/net/wireless/intel/iwlegacy
  
  INTEL WIRELESS WIFI LINK (iwlwifi)
  M:    Gregory Greenman <[email protected]>
 +M:    Miri Korenblit <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
@@@ -11080,6 -11025,7 +11080,6 @@@ F:   drivers/net/wireless/intel/iwlwifi
  
  INTEL WMI SLIM BOOTLOADER (SBL) FIRMWARE UPDATE DRIVER
  M:    Jithu Joseph <[email protected]>
 -R:    Maurice Ma <[email protected]>
  S:    Maintained
  W:    https://slimbootloader.github.io/security/firmware-update.html
  F:    drivers/platform/x86/intel/wmi/sbl-fw-update.c
  S:    Maintained
  T:    git git://git.kernel.dk/linux-block
  T:    git git://git.kernel.dk/liburing
 +F:    include/linux/io_uring/
  F:    include/linux/io_uring.h
  F:    include/linux/io_uring_types.h
  F:    include/trace/events/io_uring.h
@@@ -11307,7 -11252,7 +11307,7 @@@ F:   drivers/media/radio/radio-isa
  ISAPNP
  M:    Jaroslav Kysela <[email protected]>
  S:    Maintained
 -F:    Documentation/driver-api/isapnp.rst
 +F:    Documentation/userspace-api/isapnp.rst
  F:    drivers/pnp/isapnp/
  F:    include/linux/isapnp.h
  
@@@ -11384,10 -11329,13 +11384,10 @@@ F:        Documentation/hwmon/it87.rs
  F:    drivers/hwmon/it87.c
  
  IT913X MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/it913x*
  
  ITE IT66121 HDMI BRIDGE DRIVER
@@@ -11569,6 -11517,7 +11569,6 @@@ F:   fs/autofs
  KERNEL BUILD + files below scripts/ (unless maintained elsewhere)
  M:    Masahiro Yamada <[email protected]>
  R:    Nathan Chancellor <[email protected]>
 -R:    Nick Desaulniers <[email protected]>
  R:    Nicolas Schier <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -11580,7 -11529,6 +11580,7 @@@ F:   scripts/*vmlinux
  F:    scripts/Kbuild*
  F:    scripts/Makefile*
  F:    scripts/basic/
 +F:    scripts/clang-tools/
  F:    scripts/dummy-tools/
  F:    scripts/mk*
  F:    scripts/mod/
@@@ -12215,10 -12163,9 +12215,10 @@@ F: drivers/ata/sata_promise.
  
  LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
  M:    Damien Le Moal <[email protected]>
 +M:    Niklas Cassel <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux.git
  F:    Documentation/ABI/testing/sysfs-ata
  F:    Documentation/devicetree/bindings/ata/
  F:    drivers/ata/
@@@ -12270,13 -12217,6 +12270,13 @@@ F: include/linux/nd.
  F:    include/uapi/linux/ndctl.h
  F:    tools/testing/nvdimm/
  
 +LIBRARY CODE
 +M:    Andrew Morton <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
 +F:    lib/*
 +
  LICENSES and SPDX stuff
  M:    Thomas Gleixner <[email protected]>
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -12309,8 -12249,6 +12309,8 @@@ LINUX FOR POWERPC (32-BIT AND 64-BIT
  M:    Michael Ellerman <[email protected]>
  R:    Nicholas Piggin <[email protected]>
  R:    Christophe Leroy <[email protected]>
 +R:    Aneesh Kumar K.V <[email protected]>
 +R:    Naveen N. Rao <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://github.com/linuxppc/wiki/wiki
@@@ -12356,21 -12294,21 +12356,21 @@@ S:        Orpha
  F:    arch/powerpc/platforms/40x/
  F:    arch/powerpc/platforms/44x/
  
 -LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX
 +LINUX FOR POWERPC EMBEDDED PPC85XX
  M:    Scott Wood <[email protected]>
  L:    [email protected]
  S:    Odd fixes
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
  F:    Documentation/devicetree/bindings/cache/freescale-l2cache.txt
  F:    Documentation/devicetree/bindings/powerpc/fsl/
 -F:    arch/powerpc/platforms/83xx/
  F:    arch/powerpc/platforms/85xx/
  
 -LINUX FOR POWERPC EMBEDDED PPC8XX
 +LINUX FOR POWERPC EMBEDDED PPC8XX AND PPC83XX
  M:    Christophe Leroy <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/powerpc/platforms/8xx/
 +F:    arch/powerpc/platforms/83xx/
  
  LINUX KERNEL DUMP TEST MODULE (LKDTM)
  M:    Kees Cook <[email protected]>
@@@ -12517,12 -12455,6 +12517,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/admin-guide/LSM/LoadPin.rst
  F:    security/loadpin/
  
 +LOCKDOWN SECURITY MODULE
 +L:    [email protected]
 +S:    Odd Fixes
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
 +F:    security/lockdown/
 +
  LOCKING PRIMITIVES
  M:    Peter Zijlstra <[email protected]>
  M:    Ingo Molnar <[email protected]>
@@@ -12534,7 -12466,7 +12534,7 @@@ S:   Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
  F:    Documentation/locking/
  F:    arch/*/include/asm/spinlock*.h
 -F:    include/linux/lockdep.h
 +F:    include/linux/lockdep*.h
  F:    include/linux/mutex*.h
  F:    include/linux/rwlock*.h
  F:    include/linux/rwsem*.h
@@@ -12705,16 -12637,6 +12705,16 @@@ S: Maintaine
  F:    Documentation/hwmon/ltc4261.rst
  F:    drivers/hwmon/ltc4261.c
  
 +LTC4286 HARDWARE MONITOR DRIVER
 +M:    Delphine CC Chiu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/lltc,ltc4286.yaml
 +F:    Documentation/hwmon/ltc4286.rst
 +F:    drivers/hwmon/pmbus/Kconfig
 +F:    drivers/hwmon/pmbus/Makefile
 +F:    drivers/hwmon/pmbus/ltc4286.c
 +
  LTC4306 I2C MULTIPLEXER DRIVER
  M:    Michael Hennerich <[email protected]>
  L:    [email protected]
@@@ -12724,11 -12646,12 +12724,11 @@@ F:        Documentation/devicetree/bindings/i2
  F:    drivers/i2c/muxes/i2c-mux-ltc4306.c
  
  LTP (Linux Test Project)
 -M:    Mike Frysinger <[email protected]>
  M:    Cyril Hrubis <[email protected]>
 -M:    Wanlong Gao <[email protected]>
  M:    Jan Stancek <[email protected]>
 -M:    Stanislav Kholmanskikh <[email protected]>
 -M:    Alexey Kodanev <[email protected]>
 +M:    Petr Vorel <[email protected]>
 +M:    Li Wang <[email protected]>
 +M:    Yang Xu <[email protected]>
  L:    [email protected] (subscribers-only)
  S:    Maintained
  W:    http://linux-test-project.github.io/
@@@ -12773,10 -12696,13 +12773,10 @@@ W:        http://www.tazenda.demon.co.uk/phil/
  F:    arch/m68k/hp300/
  
  M88DS3103 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/m88ds3103*
  
  M88RS2000 MEDIA DRIVER
@@@ -12828,7 -12754,7 +12828,7 @@@ F:   drivers/mailbox/arm_mhuv2.
  F:    include/linux/mailbox/arm_mhuv2_message.h
  
  MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
 -M:    Michael Kerrisk <[email protected]>
 +M:    Alejandro Colomar <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.kernel.org/doc/man-pages
@@@ -12868,8 -12794,7 +12868,8 @@@ MARVELL 88E6XXX ETHERNET SWITCH FABRIC 
  M:    Andrew Lunn <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/dsa/marvell.txt
 +F:    Documentation/devicetree/bindings/net/dsa/marvell,mv88e6060.yaml
 +F:    Documentation/devicetree/bindings/net/dsa/marvell,mv88e6xxx.yaml
  F:    Documentation/networking/devlink/mv88e6xxx.rst
  F:    drivers/net/dsa/mv88e6xxx/
  F:    include/linux/dsa/mv88e6xxx.h
@@@ -12952,7 -12877,7 +12952,7 @@@ S:   Maintaine
  F:    drivers/net/ethernet/marvell/mvneta.*
  
  MARVELL MVPP2 ETHERNET DRIVER
 -M:    Marcin Wojtas <mw@semihalf.com>
 +M:    Marcin Wojtas <marcin.s.wojtas@gmail.com>
  M:    Russell King <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -13098,7 -13023,6 +13098,7 @@@ MAX96712 QUAD GMSL2 DESERIALIZER DRIVE
  M:    Niklas Söderlund <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/maxim,max96712.yaml
  F:    drivers/staging/media/max96712/max96712.c
  
  MAX9860 MONO AUDIO VOICE CODEC DRIVER
@@@ -13519,16 -13443,13 +13519,16 @@@ W:        https://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/dvb-frontends/stv6111*
  
 -MEDIA DRIVERS FOR STM32 - DCMI
 +MEDIA DRIVERS FOR STM32 - DCMI / DCMIPP
  M:    Hugues Fruchet <[email protected]>
 +M:    Alain Volmat <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml
 +F:    Documentation/devicetree/bindings/media/st,stm32-dcmipp.yaml
  F:    drivers/media/platform/st/stm32/stm32-dcmi.c
 +F:    drivers/media/platform/st/stm32/stm32-dcmipp/*
  
  MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
  M:    Mauro Carvalho Chehab <[email protected]>
@@@ -13866,6 -13787,7 +13866,6 @@@ F:   drivers/net/ethernet/mellanox/mlxfw
  MELLANOX HARDWARE PLATFORM SUPPORT
  M:    Hans de Goede <[email protected]>
  M:    Ilpo Järvinen <[email protected]>
 -M:    Mark Gross <[email protected]>
  M:    Vadim Pasternak <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -14474,6 -14396,7 +14474,6 @@@ F:   drivers/platform/surface/surface_gpe
  MICROSOFT SURFACE HARDWARE PLATFORM SUPPORT
  M:    Hans de Goede <[email protected]>
  M:    Ilpo Järvinen <[email protected]>
 -M:    Mark Gross <[email protected]>
  M:    Maximilian Luz <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14675,16 -14598,20 +14675,16 @@@ F:        include/asm-generic/tlb.
  F:    mm/mmu_gather.c
  
  MN88472 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  F:    drivers/media/dvb-frontends/mn88472*
  
  MN88473 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  F:    drivers/media/dvb-frontends/mn88473*
  
@@@ -14772,17 -14699,23 +14772,17 @@@ S:        Orpha
  F:    drivers/platform/x86/msi-wmi.c
  
  MSI001 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/msi001*
  
  MSI2500 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/msi2500/
  
  MSTAR INTERRUPT CONTROLLER DRIVER
@@@ -15070,12 -15003,10 +15070,12 @@@ M:        Jakub Kicinski <[email protected]
  M:    Paolo Abeni <[email protected]>
  L:    [email protected]
  S:    Maintained
 +P:    Documentation/process/maintainer-netdev.rst
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  F:    Documentation/devicetree/bindings/net/
 +F:    Documentation/networking/net_cachelines/net_device.rst
  F:    drivers/connector/
  F:    drivers/net/
  F:    include/dt-bindings/net/
@@@ -15123,7 -15054,6 +15123,7 @@@ M:   Jakub Kicinski <[email protected]
  M:    Paolo Abeni <[email protected]>
  L:    [email protected]
  S:    Maintained
 +P:    Documentation/process/maintainer-netdev.rst
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  B:    mailto:[email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
@@@ -15131,11 -15061,9 +15131,11 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/core-api/netlink.rst
  F:    Documentation/netlink/
  F:    Documentation/networking/
 +F:    Documentation/networking/net_cachelines/
  F:    Documentation/process/maintainer-netdev.rst
  F:    Documentation/userspace-api/netlink/
  F:    include/linux/in.h
 +F:    include/linux/indirect_call_wrapper.h
  F:    include/linux/net.h
  F:    include/linux/netdevice.h
  F:    include/net/
@@@ -15148,7 -15076,6 +15148,7 @@@ F:   lib/random32.
  F:    net/
  F:    tools/net/
  F:    tools/testing/selftests/net/
 +X:    net/9p/
  X:    net/bluetooth/
  
  NETWORKING [IPSEC]
@@@ -15221,7 -15148,6 +15221,7 @@@ K:   \bmdo
  NETWORKING [MPTCP]
  M:    Matthieu Baerts <[email protected]>
  M:    Mat Martineau <[email protected]>
 +R:    Geliang Tang <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -15229,7 -15155,7 +15229,7 @@@ W:   https://github.com/multipath-tcp/mpt
  B:    https://github.com/multipath-tcp/mptcp_net-next/issues
  T:    git https://github.com/multipath-tcp/mptcp_net-next.git export-net
  T:    git https://github.com/multipath-tcp/mptcp_net-next.git export
 -F:    Documentation/netlink/specs/mptcp.yaml
 +F:    Documentation/netlink/specs/mptcp_pm.yaml
  F:    Documentation/networking/mptcp-sysctl.rst
  F:    include/net/mptcp.h
  F:    include/trace/events/mptcp.h
@@@ -15242,7 -15168,6 +15242,7 @@@ NETWORKING [TCP
  M:    Eric Dumazet <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/networking/net_cachelines/tcp_sock.rst
  F:    include/linux/tcp.h
  F:    include/net/tcp.h
  F:    include/trace/events/tcp.h
@@@ -15570,10 -15495,10 +15570,10 @@@ F:        Documentation/devicetree/bindings/ne
  F:    drivers/bluetooth/btnxpuart.c
  
  NXP C45 TJA11XX PHY DRIVER
 -M:    Radu Pirea <radu-nicolae.pire[email protected]>
 +M:    Andrei Botila <andrei.botil[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/net/phy/nxp-c45-tja11xx.c
 +F:    drivers/net/phy/nxp-c45-tja11xx*
  
  NXP FSPI DRIVER
  M:    Han Xu <[email protected]>
@@@ -15841,8 -15766,9 +15841,8 @@@ F:   Documentation/devicetree/bindings/gp
  F:    drivers/gpio/gpio-omap.c
  
  OMAP HARDWARE SPINLOCK SUPPORT
 -M:    Ohad Ben-Cohen <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  F:    drivers/hwspinlock/omap_hwspinlock.c
  
  OMAP HS MMC SUPPORT
@@@ -15942,7 -15868,6 +15942,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/arm/ti/omap.yaml
  F:    arch/arm/configs/omap2plus_defconfig
  F:    arch/arm/mach-omap2/
 +F:    drivers/bus/omap*.[ch]
  F:    drivers/bus/ti-sysc.c
  F:    drivers/gpio/gpio-tps65219.c
  F:    drivers/i2c/busses/i2c-omap.c
@@@ -16105,14 -16030,6 +16105,14 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/ov5695.c
  
 +OMNIVISION OV64A40 SENSOR DRIVER
 +M:    Jacopo Mondi <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml
 +F:    drivers/media/i2c/ov64a40.c
 +
  OMNIVISION OV7670 SENSOR DRIVER
  L:    [email protected]
  S:    Orphan
@@@ -16282,7 -16199,7 +16282,7 @@@ F:   include/dt-bindings
  
  OPENCOMPUTE PTP CLOCK DRIVER
  M:    Jonathan Lemon <[email protected]>
 -M:    Vadim Fedorenko <vadfed@fb.com>
 +M:    Vadim Fedorenko <vadfed@linux.dev>
  L:    [email protected]
  S:    Maintained
  F:    drivers/ptp/ptp_ocp.c
@@@ -16360,6 -16277,13 +16360,6 @@@ T:  git git://git.kernel.org/pub/scm/lin
  F:    Documentation/filesystems/orangefs.rst
  F:    fs/orangefs/
  
 -ORINOCO DRIVER
 -L:    [email protected]
 -S:    Orphan
 -W:    https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
 -W:    http://www.nongnu.org/orinoco/
 -F:    drivers/net/wireless/intersil/orinoco/
 -
  OV2659 OMNIVISION SENSOR DRIVER
  M:    "Lad, Prabhakar" <[email protected]>
  L:    [email protected]
@@@ -16595,10 -16519,11 +16595,10 @@@ F:        Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/dwc/pcie-armada8k.c
  
  PCI DRIVER FOR CADENCE PCIE IP
 -M:    Tom Joseph <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/devicetree/bindings/pci/cdns,*
 -F:    drivers/pci/controller/cadence/
 +F:    drivers/pci/controller/cadence/*cadence*
  
  PCI DRIVER FOR FREESCALE LAYERSCAPE
  M:    Minghuan Lian <[email protected]>
@@@ -17505,7 -17430,7 +17505,7 @@@ F:   tools/testing/selftests/proc
  PROC SYSCTL
  M:    Luis Chamberlain <[email protected]>
  M:    Kees Cook <[email protected]>
 -M:    Iurii Zaikin <yzaikin@google.com>
 +M:    Joel Granados <j.granados@samsung.com>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -17644,11 -17569,12 +17644,11 @@@ F:        Documentation/devicetree/bindings/le
  F:    drivers/media/rc/pwm-ir-tx.c
  
  PWM SUBSYSTEM
 -M:    Thierry Reding <[email protected]>
 -R:    Uwe Kleine-König <[email protected]>
 +M:    Uwe Kleine-König <[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
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git
  F:    Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
  F:    Documentation/devicetree/bindings/pwm/
  F:    Documentation/driver-api/pwm.rst
@@@ -17658,7 -17584,7 +17658,7 @@@ F:   drivers/video/backlight/pwm_bl.
  F:    include/dt-bindings/pwm/
  F:    include/linux/pwm.h
  F:    include/linux/pwm_backlight.h
 -K:    pwm_(config|apply_state|ops)
 +K:    pwm_(config|apply_might_sleep|apply_atomic|ops)
  
  PXA GPIO DRIVER
  M:    Robert Jarzmik <[email protected]>
@@@ -17857,10 -17783,13 +17857,10 @@@ F:        drivers/bus/fsl-mc
  F:    include/uapi/linux/fsl_mc.h
  
  QT1010 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/qt1010*
  
  QUALCOMM ATH12K WIRELESS DRIVER
  L:    [email protected]
  S:    Maintained
  F:    drivers/iommu/arm/arm-smmu/qcom_iommu.c
 +F:    drivers/iommu/arm/arm-smmu/arm-smmu-qcom*
 +F:    drivers/iommu/msm_iommu*
  
  QUALCOMM IPC ROUTER (QRTR) DRIVER
  M:    Manivannan Sadhasivam <[email protected]>
@@@ -18196,7 -18123,6 +18196,7 @@@ F:   drivers/media/cec/usb/rainshadow
  
  RALINK MIPS ARCHITECTURE
  M:    John Crispin <[email protected]>
 +M:    Sergio Paracuellos <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/mips/ralink
@@@ -18251,6 -18177,11 +18251,6 @@@ F:  drivers/ras
  F:    include/linux/ras.h
  F:    include/ras/ras_event.h
  
 -RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/net/wireless/legacy/ray*
 -
  RC-CORE / LIRC FRAMEWORK
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -18718,7 -18649,6 +18718,7 @@@ F:   Documentation/devicetree/bindings/us
  F:    arch/riscv/boot/dts/microchip/
  F:    drivers/char/hw_random/mpfs-rng.c
  F:    drivers/clk/microchip/clk-mpfs*.c
 +F:    drivers/firmware/microchip/mpfs-auto-update.c
  F:    drivers/i2c/busses/i2c-microchip-corei2c.c
  F:    drivers/mailbox/mailbox-mpfs.c
  F:    drivers/pci/controller/pcie-microchip-host.c
@@@ -18912,24 -18842,33 +18912,24 @@@ S:        Maintaine
  F:    drivers/tty/rpmsg_tty.c
  
  RTL2830 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/rtl2830*
  
  RTL2832 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/rtl2832*
  
  RTL2832_SDR MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/rtl2832_sdr*
  
  RTL8180 WIRELESS DRIVER
@@@ -19288,7 -19227,6 +19288,6 @@@ R:   Alim Akhtar <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk.git
  F:    Documentation/devicetree/bindings/clock/samsung,*.yaml
  F:    Documentation/devicetree/bindings/clock/samsung,s3c*
  F:    drivers/clk/samsung/
@@@ -19576,29 -19514,22 +19575,29 @@@ SECURITY SUBSYSTE
  M:    Paul Moore <[email protected]>
  M:    James Morris <[email protected]>
  M:    "Serge E. Hallyn" <[email protected]>
 -L:    [email protected] (suggested Cc:)
 +L:    [email protected]
  S:    Supported
 -W:    http://kernsec.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
 +Q:    https://patchwork.kernel.org/project/linux-security-module/list
 +B:    mailto:[email protected]
 +P:    https://github.com/LinuxSecurityModule/kernel/blob/main/README.md
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
 +F:    include/uapi/linux/lsm.h
  F:    security/
 +F:    tools/testing/selftests/lsm/
  X:    security/selinux/
 +K:    \bsecurity_[a-z_0-9]\+\b
  
  SELINUX SECURITY MODULE
  M:    Paul Moore <[email protected]>
  M:    Stephen Smalley <[email protected]>
 -M:    Eric Paris <[email protected]>
 +R:    Ondrej Mosnacek <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    https://selinuxproject.org
  W:    https://github.com/SELinuxProject
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
 +Q:    https://patchwork.kernel.org/project/selinux/list
 +B:    mailto:[email protected]
 +P:    https://github.com/SELinuxProject/selinux-kernel/blob/main/README.md
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
  F:    Documentation/ABI/removed/sysfs-selinux-checkreqprot
  F:    Documentation/ABI/removed/sysfs-selinux-disable
  F:    Documentation/admin-guide/LSM/SELinux.rst
@@@ -19713,6 -19644,7 +19712,6 @@@ S:   Maintaine
  F:    drivers/misc/sgi-xp/
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
 -M:    Karsten Graul <[email protected]>
  M:    Wenjia Zhang <[email protected]>
  M:    Jan Karcher <[email protected]>
  R:    D. Wythe <[email protected]>
@@@ -19738,19 -19670,6 +19737,19 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/rj54n1cb0c.c
  F:    include/media/i2c/rj54n1cb0c.h
  
 +SHRINKER
 +M:    Andrew Morton <[email protected]>
 +M:    Dave Chinner <[email protected]>
 +R:    Qi Zheng <[email protected]>
 +R:    Roman Gushchin <[email protected]>
 +R:    Muchun Song <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/admin-guide/mm/shrinker_debugfs.rst
 +F:    include/linux/shrinker.h
 +F:    mm/shrinker.c
 +F:    mm/shrinker_debug.c
 +
  SH_VOU V4L2 OUTPUT DRIVER
  L:    [email protected]
  S:    Orphan
@@@ -19758,10 -19677,13 +19757,10 @@@ F:        drivers/media/platform/renesas/sh_vo
  F:    include/media/drv-intf/sh_vou.h
  
  SI2157 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/si2157*
  
  SI2165 MEDIA DRIVER
@@@ -19773,10 -19695,13 +19772,10 @@@ Q:        http://patchwork.linuxtv.org/project
  F:    drivers/media/dvb-frontends/si2165*
  
  SI2168 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/si2168*
  
  SI470X FM RADIO RECEIVER I2C DRIVER
@@@ -19867,13 -19792,6 +19866,13 @@@ S: Supporte
  N:    sifive
  K:    [^@]sifive
  
 +SIFIVE CACHE DRIVER
 +M:    Conor Dooley <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/cache/sifive,ccache0.yaml
 +F:    drivers/cache/sifive_ccache.c
 +
  SIFIVE FU540 SYSTEM-ON-CHIP
  M:    Paul Walmsley <[email protected]>
  M:    Palmer Dabbelt <[email protected]>
@@@ -19889,6 -19807,13 +19888,6 @@@ S:  Maintaine
  F:    Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
  F:    drivers/dma/sf-pdma/
  
 -SIFIVE SOC DRIVERS
 -M:    Conor Dooley <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
 -F:    Documentation/devicetree/bindings/cache/sifive,ccache0.yaml
 -F:    drivers/soc/sifive/
  
  SILEAD TOUCHSCREEN DRIVER
  M:    Hans de Goede <[email protected]>
@@@ -19929,6 -19854,11 +19928,6 @@@ F:  Documentation/devicetree/bindings/di
  F:    drivers/video/fbdev/simplefb.c
  F:    include/linux/platform_data/simplefb.h
  
 -SIMTEC EB110ATX (Chalice CATS)
 -M:    Simtec Linux Team <[email protected]>
 -S:    Supported
 -W:    http://www.simtec.co.uk/products/EB110ATX/
 -
  SIOX
  M:    Thorsten Scherer <[email protected]>
  M:    Uwe Kleine-König <[email protected]>
@@@ -19978,7 -19908,7 +19977,7 @@@ W:   http://www.winischhofer.at/linuxsisu
  F:    drivers/usb/misc/sisusbvga/
  
  SL28 CPLD MFD DRIVER
 -M:    Michael Walle <m[email protected]>
 +M:    Michael Walle <m[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml
  F:    Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml
@@@ -19993,7 -19923,7 +19992,7 @@@ F:   drivers/pwm/pwm-sl28cpld.
  F:    drivers/watchdog/sl28cpld_wdt.c
  
  SL28 VPD NVMEM LAYOUT DRIVER
 -M:    Michael Walle <m[email protected]>
 +M:    Michael Walle <m[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
  F:    drivers/nvmem/layouts/sl28vpd.c
@@@ -20183,7 -20113,6 +20182,7 @@@ F:   include/linux/property.
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Song Liu <[email protected]>
 +R:    Yu Kuai <[email protected]>
  L:    [email protected]
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-raid/list/
@@@ -20438,7 -20367,6 +20437,7 @@@ F:   drivers/media/dvb-frontends/sp2
  
  SPANISH DOCUMENTATION
  M:    Carlos Bilbao <[email protected]>
 +R:    Avadhut Naik <[email protected]>
  S:    Maintained
  F:    Documentation/translations/sp_SP/
  
@@@ -20505,7 -20433,7 +20504,7 @@@ F:   drivers/pinctrl/spear
  SPI NOR SUBSYSTEM
  M:    Tudor Ambarus <[email protected]>
  M:    Pratyush Yadav <[email protected]>
 -R:    Michael Walle <[email protected]>
 +M:    Michael Walle <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mtd.infradead.org/
@@@ -20717,15 -20645,6 +20716,15 @@@ M: Ion Badulescu <[email protected]
  S:    Odd Fixes
  F:    drivers/net/ethernet/adaptec/starfire*
  
 +STARFIVE CAMERA SUBSYSTEM DRIVER
 +M:    Jack Zhu <[email protected]>
 +M:    Changhuang Liang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/admin-guide/media/starfive_camss.rst
 +F:    Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml
 +F:    drivers/staging/media/starfive/camss
 +
  STARFIVE CRYPTO DRIVER
  M:    Jia Jie Ho <[email protected]>
  M:    William Qiu <[email protected]>
  S:    Maintained
  F:    drivers/mmc/host/dw_mmc*
  
 +SYNOPSYS DESIGNWARE PCIE PMU DRIVER
 +M:    Shuai Xue <[email protected]>
 +M:    Jing Zhang <[email protected]>
 +S:    Supported
 +F:    Documentation/admin-guide/perf/dwc_pcie_pmu.rst
 +F:    drivers/perf/dwc_pcie_pmu.c
 +
  SYNOPSYS HSDK RESET CONTROLLER DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Supported
@@@ -21291,24 -21203,33 +21290,24 @@@ W:        http://tcp-lp-mod.sourceforge.net
  F:    net/ipv4/tcp_lp.c
  
  TDA10071 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/dvb-frontends/tda10071*
  
  TDA18212 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/tda18212*
  
  TDA18218 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/tda18218*
  
  TDA18250 MEDIA DRIVER
  S:    Maintained
  F:    drivers/media/rc/ttusbir.c
  
 +TECHWELL TW9900 VIDEO DECODER
 +M:    Mehdi Djait <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/media/i2c/tw9900.c
 +
  TECHWELL TW9910 VIDEO DECODER
  L:    [email protected]
  S:    Orphan
@@@ -21443,9 -21358,7 +21442,9 @@@ M:   Jens Wiklander <jens.wiklander@linar
  R:    Sumit Garg <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/staging/tee.rst
 +F:    Documentation/driver-api/tee.rst
 +F:    Documentation/tee/
 +F:    Documentation/userspace-api/tee.rst
  F:    drivers/tee/
  F:    include/linux/tee_drv.h
  F:    include/uapi/linux/tee.h
@@@ -21740,17 -21653,6 +21739,17 @@@ S: Maintaine
  F:    Documentation/ABI/testing/sysfs-class-firmware-attributes
  F:    drivers/platform/x86/think-lmi.?
  
 +THP7312 ISP DRIVER
 +M:    Laurent Pinchart <[email protected]>
 +M:    Paul Elder <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/thine,thp7312.yaml
 +F:    Documentation/userspace-api/media/drivers/thp7312.rst
 +F:    drivers/media/i2c/thp7312.c
 +F:    include/uapi/linux/thp7312.h
 +
  THUNDERBOLT DMA TRAFFIC TEST DRIVER
  M:    Isaac Hazan <[email protected]>
  L:    [email protected]
@@@ -21874,9 -21776,7 +21873,9 @@@ F:   Documentation/devicetree/bindings/co
  F:    drivers/counter/ti-eqep.c
  
  TI ETHERNET SWITCH DRIVER (CPSW)
 -R:    Grygorii Strashko <[email protected]>
 +R:    Siddharth Vadapalli <[email protected]>
 +R:    Ravi Gunasekaran <[email protected]>
 +R:    Roger Quadros <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -21900,15 -21800,6 +21899,15 @@@ F: Documentation/devicetree/bindings/me
  F:    drivers/media/i2c/ds90*
  F:    include/media/i2c/ds90*
  
 +TI ICSSG ETHERNET DRIVER (ICSSG)
 +R:    MD Danish Anwar <[email protected]>
 +R:    Roger Quadros <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/ti,icss*.yaml
 +F:    drivers/net/ethernet/ti/icssg/*
 +
  TI J721E CSI2RX DRIVER
  M:    Jai Luthra <[email protected]>
  L:    [email protected]
@@@ -22184,7 -22075,6 +22183,7 @@@ F:   drivers/watchdog/tqmx86_wdt.
  TRACING
  M:    Steven Rostedt <[email protected]>
  M:    Masami Hiramatsu <[email protected]>
 +R:    Mathieu Desnoyers <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -22227,7 -22117,7 +22226,7 @@@ F:   kernel/trace/trace_osnoise.
  F:    kernel/trace/trace_sched_wakeup.c
  
  TRADITIONAL CHINESE DOCUMENTATION
 -M:    Hu Haowen <[email protected]>
 +M:    Hu Haowen <[email protected]>
  S:    Maintained
  W:    https://github.com/srcres258/linux-doc
  T:    git git://github.com/srcres258/linux-doc.git doc-zh-tw
@@@ -22263,10 -22153,13 +22262,10 @@@ F:        include/uapi/linux/serial_core.
  F:    include/uapi/linux/tty.h
  
  TUA9001 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org
 -W:    http://palosaari.fi/linux/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/tuners/tua9001*
  
  TULIP NETWORK DRIVERS
@@@ -22410,7 -22303,7 +22409,7 @@@ F:   drivers/usb/common/ulpi.
  F:    include/linux/ulpi/
  
  UNICODE SUBSYSTEM
 -M:    Gabriel Krisman Bertazi <krisman@collabora.com>
 +M:    Gabriel Krisman Bertazi <krisman@kernel.org>
  L:    [email protected]
  S:    Supported
  F:    fs/unicode/
@@@ -22452,8 -22345,7 +22451,8 @@@ S:   Maintaine
  F:    drivers/ufs/host/ufs-exynos*
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS
 -M:    Stanley Chu <[email protected]>
 +M:    Peter Wang <[email protected]>
 +R:    Stanley Jhu <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -22784,6 -22676,11 +22783,6 @@@ F:  drivers/usb/gadget/function/*uvc
  F:    drivers/usb/gadget/legacy/webcam.c
  F:    include/uapi/linux/usb/g_uvc.h
  
 -USB WIRELESS RNDIS DRIVER (rndis_wlan)
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/net/wireless/legacy/rndis_wlan.c
 -
  USB XHCI DRIVER
  M:    Mathias Nyman <[email protected]>
  L:    [email protected]
@@@ -22791,6 -22688,12 +22790,6 @@@ S:  Supporte
  F:    drivers/usb/host/pci-quirks*
  F:    drivers/usb/host/xhci*
  
 -USB ZD1201 DRIVER
 -L:    [email protected]
 -S:    Orphan
 -W:    http://linux-lc100020.sourceforge.net
 -F:    drivers/net/wireless/zydas/zd1201.*
 -
  USER DATAGRAM PROTOCOL (UDP)
  M:    Willem de Bruijn <[email protected]>
  S:    Maintained
@@@ -22896,7 -22799,6 +22895,7 @@@ S:   Maintaine
  F:    Documentation/driver-api/media/camera-sensor.rst
  F:    Documentation/driver-api/media/tx-rx.rst
  F:    drivers/media/i2c/ar*
 +F:    drivers/media/i2c/gc*
  F:    drivers/media/i2c/hi*
  F:    drivers/media/i2c/imx*
  F:    drivers/media/i2c/mt*
@@@ -23391,8 -23293,9 +23390,8 @@@ F:   drivers/misc/vmw_vmci
  F:    include/linux/vmw_vmci*
  
  VMWARE VMMOUSE SUBDRIVER
 -M:    Zack Rusin <[email protected]>
 -R:    VMware Graphics Reviewers <[email protected]>
 -R:    VMware PV-Drivers Reviewers <[email protected]>
 +M:    Zack Rusin <[email protected]>
 +R:    Broadcom internal kernel review list <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/input/mouse/vmmouse.c
@@@ -23539,14 -23442,6 +23538,14 @@@ F: include/linux/watchdog.
  F:    include/trace/events/watchdog.h
  F:    include/uapi/linux/watchdog.h
  
 +WAVE5 VPU CODEC DRIVER
 +M:    Nas Chung <[email protected]>
 +M:    Jackson Lee <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/cnm,wave521c.yaml
 +F:    drivers/media/platform/chips-media/wave5/
 +
  WHISKEYCOVE PMIC GPIO DRIVER
  M:    Kuppuswamy Sathyanarayanan <[email protected]>
  L:    [email protected]
@@@ -23600,6 -23495,11 +23599,6 @@@ M:  Miloslav Trmac <[email protected]
  S:    Maintained
  F:    drivers/input/misc/wistron_btns.c
  
 -WL3501 WIRELESS PCMCIA CARD DRIVER
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/net/wireless/legacy/wl3501*
 -
  WMI BINARY MOF DRIVER
  M:    Armin Wolf <[email protected]>
  R:    Thomas Weißschuh <[email protected]>
@@@ -23761,6 -23661,7 +23760,6 @@@ F:   drivers/platform/x86/x86-android-tab
  X86 PLATFORM DRIVERS
  M:    Hans de Goede <[email protected]>
  M:    Ilpo Järvinen <[email protected]>
 -M:    Mark Gross <[email protected]>
  L:    [email protected]
  S:    Maintained
  Q:    https://patchwork.kernel.org/project/platform-driver-x86/list/
@@@ -23769,6 -23670,15 +23768,6 @@@ F:  drivers/platform/olpc
  F:    drivers/platform/x86/
  F:    include/linux/platform_data/x86/
  
 -X86 PLATFORM DRIVERS - ARCH
 -R:    Darren Hart <[email protected]>
 -R:    Andy Shevchenko <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
 -F:    arch/x86/platform
 -
  X86 PLATFORM UV HPE SUPERDOME FLEX
  M:    Steve Wahl <[email protected]>
  R:    Justin Ernst <[email protected]>
@@@ -23789,20 -23699,6 +23788,20 @@@ F: arch/x86/kernel/dumpstack.
  F:    arch/x86/kernel/stacktrace.c
  F:    arch/x86/kernel/unwind_*.c
  
 +X86 TRUST DOMAIN EXTENSIONS (TDX)
 +M:    Kirill A. Shutemov <[email protected]>
 +R:    Dave Hansen <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/tdx
 +F:    arch/x86/boot/compressed/tdx*
 +F:    arch/x86/coco/tdx/
 +F:    arch/x86/include/asm/shared/tdx.h
 +F:    arch/x86/include/asm/tdx.h
 +F:    arch/x86/virt/vmx/tdx/
 +F:    drivers/virt/coco/tdx-guest
 +
  X86 VDSO
  M:    Andy Lutomirski <[email protected]>
  L:    [email protected]
@@@ -23980,10 -23876,11 +23979,10 @@@ S:        Supporte
  W:    http://xfs.org/
  C:    irc://irc.oftc.net/xfs
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
 -P:    Documentation/filesystems/xfs-maintainer-entry-profile.rst
 +P:    Documentation/filesystems/xfs/xfs-maintainer-entry-profile.rst
  F:    Documentation/ABI/testing/sysfs-fs-xfs
  F:    Documentation/admin-guide/xfs.rst
 -F:    Documentation/filesystems/xfs-delayed-logging-design.rst
 -F:    Documentation/filesystems/xfs-self-describing-metadata.rst
 +F:    Documentation/filesystems/xfs/*
  F:    fs/xfs/
  F:    include/uapi/linux/dqblk_xfs.h
  F:    include/uapi/linux/fsmap.h
@@@ -24195,16 -24092,20 +24194,16 @@@ S:        Orpha
  F:    drivers/net/wireless/zydas/zd1211rw/
  
  ZD1301 MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org/
 -W:    http://palosaari.fi/linux/
  Q:    https://patchwork.linuxtv.org/project/linux-media/list/
  F:    drivers/media/usb/dvb-usb-v2/zd1301*
  
  ZD1301_DEMOD MEDIA DRIVER
 -M:    Antti Palosaari <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linuxtv.org/
 -W:    http://palosaari.fi/linux/
  Q:    https://patchwork.linuxtv.org/project/linux-media/list/
  F:    drivers/media/dvb-frontends/zd1301_demod*
  
@@@ -24276,13 -24177,11 +24275,13 @@@ N:        zst
  K:    zstd
  
  ZSWAP COMPRESSED SWAP CACHING
 -M:    Seth Jennings <[email protected]>
 -M:    Dan Streetman <[email protected]>
 -M:    Vitaly Wool <vitaly.wool@konsulko.com>
 +M:    Johannes Weiner <[email protected]>
 +M:    Yosry Ahmed <[email protected]>
 +M:    Nhat Pham <nphamcs@gmail.com>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/admin-guide/mm/zswap.rst
 +F:    include/linux/zswap.h
  F:    mm/zswap.c
  
  THE REST
diff --combined drivers/pinctrl/core.c
index f2977eb65522e26192d456752f3e3e2b7010b586,d27d5a04b1a8c5b548be6ab87f9a1e8742668900..ee56856cb80c33e4733f2b7f2a43fb681c89fc61
@@@ -13,6 -13,7 +13,7 @@@
  #define pr_fmt(fmt) "pinctrl core: " fmt
  
  #include <linux/array_size.h>
+ #include <linux/cleanup.h>
  #include <linux/debugfs.h>
  #include <linux/device.h>
  #include <linux/err.h>
@@@ -23,6 -24,7 +24,7 @@@
  #include <linux/seq_file.h>
  #include <linux/slab.h>
  
+ #include <linux/gpio.h>
  #include <linux/gpio/driver.h>
  
  #include <linux/pinctrl/consumer.h>
  #include <linux/pinctrl/machine.h>
  #include <linux/pinctrl/pinctrl.h>
  
- #ifdef CONFIG_GPIOLIB
- #include "../gpio/gpiolib.h"
- #endif
  #include "core.h"
  #include "devicetree.h"
  #include "pinconf.h"
@@@ -145,7 -143,7 +143,7 @@@ struct pinctrl_dev *get_pinctrl_dev_fro
   */
  int pin_get_from_name(struct pinctrl_dev *pctldev, const char *name)
  {
-       unsigned i, pin;
+       unsigned int i, pin;
  
        /* The pin number can be retrived from the pin controller descriptor */
        for (i = 0; i < pctldev->desc->npins; i++) {
   * @pctldev: the pin control device to lookup the pin on
   * @pin: pin number/id to look up
   */
- const char *pin_get_name(struct pinctrl_dev *pctldev, const unsigned pin)
+ const char *pin_get_name(struct pinctrl_dev *pctldev, const unsigned int pin)
  {
        const struct pin_desc *desc;
  
@@@ -184,7 -182,7 +182,7 @@@ EXPORT_SYMBOL_GPL(pin_get_name)
  /* Deletes a range of pin descriptors */
  static void pinctrl_free_pindescs(struct pinctrl_dev *pctldev,
                                  const struct pinctrl_pin_desc *pins,
-                                 unsigned num_pins)
+                                 unsigned int num_pins)
  {
        int i;
  
@@@ -252,9 -250,9 +250,9 @@@ failed
  
  static int pinctrl_register_pins(struct pinctrl_dev *pctldev,
                                 const struct pinctrl_pin_desc *pins,
-                                unsigned num_descs)
+                                unsigned int num_descs)
  {
-       unsigned i;
+       unsigned int i;
        int ret = 0;
  
        for (i = 0; i < num_descs; i++) {
@@@ -428,7 -426,7 +426,7 @@@ EXPORT_SYMBOL_GPL(pinctrl_add_gpio_rang
  
  void pinctrl_add_gpio_ranges(struct pinctrl_dev *pctldev,
                             struct pinctrl_gpio_range *ranges,
-                            unsigned nranges)
+                            unsigned int nranges)
  {
        int i;
  
@@@ -459,7 -457,7 +457,7 @@@ struct pinctrl_dev *pinctrl_find_and_ad
  EXPORT_SYMBOL_GPL(pinctrl_find_and_add_gpio_range);
  
  int pinctrl_get_group_pins(struct pinctrl_dev *pctldev, const char *pin_group,
-                               const unsigned **pins, unsigned *num_pins)
+                          const unsigned int **pins, unsigned int *num_pins)
  {
        const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
        int gs;
@@@ -559,7 -557,7 +557,7 @@@ const char *pinctrl_generic_get_group_n
        if (!group)
                return NULL;
  
-       return group->name;
+       return group->grp.name;
  }
  EXPORT_SYMBOL_GPL(pinctrl_generic_get_group_name);
  
@@@ -585,8 -583,8 +583,8 @@@ int pinctrl_generic_get_group_pins(stru
                return -EINVAL;
        }
  
-       *pins = group->pins;
-       *num_pins = group->num_pins;
+       *pins = group->grp.pins;
+       *num_pins = group->grp.npins;
  
        return 0;
  }
@@@ -642,7 -640,7 +640,7 @@@ static int pinctrl_generic_group_name_t
   * Note that the caller must take care of locking.
   */
  int pinctrl_generic_add_group(struct pinctrl_dev *pctldev, const char *name,
-                             int *pins, int num_pins, void *data)
+                             const unsigned int *pins, int num_pins, void *data)
  {
        struct group_desc *group;
        int selector, error;
        if (!group)
                return -ENOMEM;
  
-       group->name = name;
-       group->pins = pins;
-       group->num_pins = num_pins;
-       group->data = data;
+       *group = PINCTRL_GROUP_DESC(name, pins, num_pins, data);
  
        error = radix_tree_insert(&pctldev->pin_group_tree, selector, group);
        if (error)
@@@ -734,8 -729,8 +729,8 @@@ int pinctrl_get_group_selector(struct p
                               const char *pin_group)
  {
        const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
-       unsigned ngroups = pctlops->get_groups_count(pctldev);
-       unsigned group_selector = 0;
+       unsigned int ngroups = pctlops->get_groups_count(pctldev);
+       unsigned int group_selector = 0;
  
        while (group_selector < ngroups) {
                const char *gname = pctlops->get_group_name(pctldev,
@@@ -1262,17 -1257,17 +1257,17 @@@ static void pinctrl_link_add(struct pin
  static int pinctrl_commit_state(struct pinctrl *p, struct pinctrl_state *state)
  {
        struct pinctrl_setting *setting, *setting2;
 -      struct pinctrl_state *old_state = p->state;
 +      struct pinctrl_state *old_state = READ_ONCE(p->state);
        int ret;
  
 -      if (p->state) {
 +      if (old_state) {
                /*
                 * For each pinmux setting in the old state, forget SW's record
                 * of mux owner for that pingroup. Any pingroups which are
                 * still owned by the new state will be re-acquired by the call
                 * to pinmux_enable_setting() in the loop below.
                 */
 -              list_for_each_entry(setting, &p->state->settings, node) {
 +              list_for_each_entry(setting, &old_state->settings, node) {
                        if (setting->type != PIN_MAP_TYPE_MUX_GROUP)
                                continue;
                        pinmux_disable_setting(setting);
@@@ -1432,7 -1427,7 +1427,7 @@@ EXPORT_SYMBOL_GPL(devm_pinctrl_put)
   * @num_maps: the number of maps in the mapping table
   */
  int pinctrl_register_mappings(const struct pinctrl_map *maps,
-                             unsigned num_maps)
+                             unsigned int num_maps)
  {
        int i, ret;
        struct pinctrl_maps *maps_node;
@@@ -1647,10 -1642,10 +1642,10 @@@ static int pinctrl_pins_show(struct seq
  {
        struct pinctrl_dev *pctldev = s->private;
        const struct pinctrl_ops *ops = pctldev->desc->pctlops;
-       unsigned i, pin;
+       unsigned int i, pin;
  #ifdef CONFIG_GPIOLIB
+       struct gpio_device *gdev __free(gpio_device_put) = NULL;
        struct pinctrl_gpio_range *range;
-       struct gpio_chip *chip;
        int gpio_num;
  #endif
  
                         * we need to get rid of the range->base eventually and
                         * get the descriptor directly from the gpio_chip.
                         */
-                       chip = gpiod_to_chip(gpio_to_desc(gpio_num));
-               else
-                       chip = NULL;
-               if (chip)
-                       seq_printf(s, "%u:%s ", gpio_num - chip->gpiodev->base, chip->label);
+                       gdev = gpiod_to_gpio_device(gpio_to_desc(gpio_num));
+               if (gdev)
+                       seq_printf(s, "%u:%s ",
+                                  gpio_num - gpio_device_get_base(gdev),
+                                  gpio_device_get_label(gdev));
                else
                        seq_puts(s, "0:? ");
  #endif
@@@ -1711,7 -1706,7 +1706,7 @@@ static int pinctrl_groups_show(struct s
  {
        struct pinctrl_dev *pctldev = s->private;
        const struct pinctrl_ops *ops = pctldev->desc->pctlops;
-       unsigned ngroups, selector = 0;
+       unsigned int ngroups, selector = 0;
  
        mutex_lock(&pctldev->mutex);
  
  
        seq_puts(s, "registered pin groups:\n");
        while (selector < ngroups) {
-               const unsigned *pins = NULL;
-               unsigned num_pins = 0;
+               const unsigned int *pins = NULL;
+               unsigned int num_pins = 0;
                const char *gname = ops->get_group_name(pctldev, selector);
                const char *pname;
                int ret = 0;
index fe9545c630a2fa4418a579c5751afee237f13853,5be0c6c6713a6730936fa50628f5a4cff96c5ee3..67b5d160c027ed3e429d1f246c3dc1028c4c52c7
  
  #define CY8C95X0_PIN_TO_OFFSET(x) (((x) >= 20) ? ((x) + 4) : (x))
  
+ #define CY8C95X0_MUX_REGMAP_TO_PORT(x) ((x) / MUXED_STRIDE)
+ #define CY8C95X0_MUX_REGMAP_TO_REG(x) (((x) % MUXED_STRIDE) + CY8C95X0_INTMASK)
+ #define CY8C95X0_MUX_REGMAP_TO_OFFSET(x, p) ((x) - CY8C95X0_INTMASK + (p) * MUXED_STRIDE)
  static const struct i2c_device_id cy8c95x0_id[] = {
        { "cy8c9520", 20, },
        { "cy8c9540", 40, },
@@@ -119,12 -123,13 +123,13 @@@ static const struct dmi_system_id cy8c9
  #define MAX_BANK 8
  #define BANK_SZ 8
  #define MAX_LINE      (MAX_BANK * BANK_SZ)
+ #define MUXED_STRIDE  16
  #define CY8C95X0_GPIO_MASK            GENMASK(7, 0)
  
  /**
   * struct cy8c95x0_pinctrl - driver data
-  * @regmap:         Device's regmap
+  * @regmap:         Device's regmap. Only direct access registers.
+  * @muxed_regmap:   Regmap for all muxed registers.
   * @irq_lock:       IRQ bus lock
   * @i2c_lock:       Mutex for the device internal mux register
   * @irq_mask:       I/O bits affected by interrupts
   * @pinctrl_desc:   pin controller description
   * @name:           Chip controller name
   * @tpin:           Total number of pins
 + * @gpio_reset:     GPIO line handler that can reset the IC
   */
  struct cy8c95x0_pinctrl {
        struct regmap *regmap;
+       struct regmap *muxed_regmap;
        struct mutex irq_lock;
        struct mutex i2c_lock;
        DECLARE_BITMAP(irq_mask, MAX_LINE);
@@@ -308,9 -313,6 +314,9 @@@ static const char * const cy8c95x0_grou
        "gp77",
  };
  
 +static int cy8c95x0_pinmux_direction(struct cy8c95x0_pinctrl *chip,
 +                                   unsigned int pin, bool input);
 +
  static inline u8 cypress_get_port(struct cy8c95x0_pinctrl *chip, unsigned int pin)
  {
        /* Account for GPORT2 which only has 4 bits */
@@@ -379,6 -381,54 +385,54 @@@ static bool cy8c95x0_precious_register(
        }
  }
  
+ static bool cy8c95x0_muxed_register(unsigned int reg)
+ {
+       switch (reg) {
+       case CY8C95X0_INTMASK:
+       case CY8C95X0_PWMSEL:
+       case CY8C95X0_INVERT:
+       case CY8C95X0_DIRECTION:
+       case CY8C95X0_DRV_PU:
+       case CY8C95X0_DRV_PD:
+       case CY8C95X0_DRV_ODH:
+       case CY8C95X0_DRV_ODL:
+       case CY8C95X0_DRV_PP_FAST:
+       case CY8C95X0_DRV_PP_SLOW:
+       case CY8C95X0_DRV_HIZ:
+               return true;
+       default:
+               return false;
+       }
+ }
+ static bool cy8c95x0_wc_register(unsigned int reg)
+ {
+       switch (reg) {
+       case CY8C95X0_DRV_PU:
+       case CY8C95X0_DRV_PD:
+       case CY8C95X0_DRV_ODH:
+       case CY8C95X0_DRV_ODL:
+       case CY8C95X0_DRV_PP_FAST:
+       case CY8C95X0_DRV_PP_SLOW:
+       case CY8C95X0_DRV_HIZ:
+               return true;
+       default:
+               return false;
+       }
+ }
+ static bool cy8c95x0_quick_path_register(unsigned int reg)
+ {
+       switch (reg) {
+       case CY8C95X0_INPUT_(0) ... CY8C95X0_INPUT_(7):
+       case CY8C95X0_INTSTATUS_(0) ... CY8C95X0_INTSTATUS_(7):
+       case CY8C95X0_OUTPUT_(0) ... CY8C95X0_OUTPUT_(7):
+               return true;
+       default:
+               return false;
+       }
+ }
  static const struct reg_default cy8c95x0_reg_defaults[] = {
        { CY8C95X0_OUTPUT_(0), GENMASK(7, 0) },
        { CY8C95X0_OUTPUT_(1), GENMASK(7, 0) },
        { CY8C95X0_PWMSEL, 0 },
  };
  
+ static int
+ cy8c95x0_mux_reg_read(void *context, unsigned int off, unsigned int *val)
+ {
+       struct cy8c95x0_pinctrl *chip = context;
+       u8 port = CY8C95X0_MUX_REGMAP_TO_PORT(off);
+       int ret, reg = CY8C95X0_MUX_REGMAP_TO_REG(off);
+       mutex_lock(&chip->i2c_lock);
+       /* Select the correct bank */
+       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, port);
+       if (ret < 0)
+               goto out;
+       /*
+        * Read the register through direct access regmap. The target range
+        * is marked volatile.
+        */
+       ret = regmap_read(chip->regmap, reg, val);
+ out:
+       mutex_unlock(&chip->i2c_lock);
+       return ret;
+ }
+ static int
+ cy8c95x0_mux_reg_write(void *context, unsigned int off, unsigned int val)
+ {
+       struct cy8c95x0_pinctrl *chip = context;
+       u8 port = CY8C95X0_MUX_REGMAP_TO_PORT(off);
+       int ret, reg = CY8C95X0_MUX_REGMAP_TO_REG(off);
+       mutex_lock(&chip->i2c_lock);
+       /* Select the correct bank */
+       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, port);
+       if (ret < 0)
+               goto out;
+       /*
+        * Write the register through direct access regmap. The target range
+        * is marked volatile.
+        */
+       ret = regmap_write(chip->regmap, reg, val);
+ out:
+       mutex_unlock(&chip->i2c_lock);
+       return ret;
+ }
+ static bool cy8c95x0_mux_accessible_register(struct device *dev, unsigned int off)
+ {
+       struct i2c_client *i2c = to_i2c_client(dev);
+       struct cy8c95x0_pinctrl *chip = i2c_get_clientdata(i2c);
+       u8 port = CY8C95X0_MUX_REGMAP_TO_PORT(off);
+       u8 reg = CY8C95X0_MUX_REGMAP_TO_REG(off);
+       if (port >= chip->nport)
+               return false;
+       return cy8c95x0_muxed_register(reg);
+ }
+ static struct regmap_bus cy8c95x0_regmap_bus = {
+       .reg_read = cy8c95x0_mux_reg_read,
+       .reg_write = cy8c95x0_mux_reg_write,
+ };
+ /* Regmap for muxed registers CY8C95X0_INTMASK - CY8C95X0_DRV_HIZ */
+ static const struct regmap_config cy8c95x0_muxed_regmap = {
+       .name = "muxed",
+       .reg_bits = 8,
+       .val_bits = 8,
+       .cache_type = REGCACHE_FLAT,
+       .use_single_read = true,
+       .use_single_write = true,
+       .max_register = MUXED_STRIDE * BANK_SZ,
+       .num_reg_defaults_raw = MUXED_STRIDE * BANK_SZ,
+       .readable_reg = cy8c95x0_mux_accessible_register,
+       .writeable_reg = cy8c95x0_mux_accessible_register,
+ };
+ /* Direct access regmap */
  static const struct regmap_config cy8c95x0_i2c_regmap = {
+       .name = "direct",
        .reg_bits = 8,
        .val_bits = 8,
  
        .max_register = CY8C95X0_COMMAND,
  };
  
+ static inline int cy8c95x0_regmap_update_bits_base(struct cy8c95x0_pinctrl *chip,
+                                                  unsigned int reg,
+                                                  unsigned int port,
+                                                  unsigned int mask,
+                                                  unsigned int val,
+                                                  bool *change, bool async,
+                                                  bool force)
+ {
+       struct regmap *regmap;
+       int ret, off, i, read_val;
+       /* Caller should never modify PORTSEL directly */
+       if (reg == CY8C95X0_PORTSEL)
+               return -EINVAL;
+       /* Registers behind the PORTSEL mux have their own regmap */
+       if (cy8c95x0_muxed_register(reg)) {
+               regmap = chip->muxed_regmap;
+               off = CY8C95X0_MUX_REGMAP_TO_OFFSET(reg, port);
+       } else {
+               regmap = chip->regmap;
+               /* Quick path direct access registers honor the port argument */
+               if (cy8c95x0_quick_path_register(reg))
+                       off = reg + port;
+               else
+                       off = reg;
+       }
+       ret = regmap_update_bits_base(regmap, off, mask, val, change, async, force);
+       if (ret < 0)
+               return ret;
+       /* Update the cache when a WC bit is written */
+       if (cy8c95x0_wc_register(reg) && (mask & val)) {
+               for (i = CY8C95X0_DRV_PU; i <= CY8C95X0_DRV_HIZ; i++) {
+                       if (i == reg)
+                               continue;
+                       off = CY8C95X0_MUX_REGMAP_TO_OFFSET(i, port);
+                       ret = regmap_read(regmap, off, &read_val);
+                       if (ret < 0)
+                               continue;
+                       if (!(read_val & mask & val))
+                               continue;
+                       regcache_cache_only(regmap, true);
+                       regmap_update_bits(regmap, off, mask & val, 0);
+                       regcache_cache_only(regmap, false);
+               }
+       }
+       return ret;
+ }
+ /**
+  * cy8c95x0_regmap_write_bits() - writes a register using the regmap cache
+  * @chip: The pinctrl to work on
+  * @reg: The register to write to. Can be direct access or muxed register.
+  *       MUST NOT be the PORTSEL register.
+  * @port: The port to be used for muxed registers or quick path direct access
+  *        registers. Otherwise unused.
+  * @mask: Bitmask to change
+  * @val: New value for bitmask
+  *
+  * This function handles the register writes to the direct access registers and
+  * the muxed registers while caching all register accesses, internally handling
+  * the correct state of the PORTSEL register and protecting the access to muxed
+  * registers.
+  * The caller must only use this function to change registers behind the PORTSEL mux.
+  *
+  * Return: 0 for successful request, else a corresponding error value
+  */
+ static int cy8c95x0_regmap_write_bits(struct cy8c95x0_pinctrl *chip, unsigned int reg,
+                                     unsigned int port, unsigned int mask, unsigned int val)
+ {
+       return cy8c95x0_regmap_update_bits_base(chip, reg, port, mask, val, NULL, false, true);
+ }
+ /**
+  * cy8c95x0_regmap_update_bits() - updates a register using the regmap cache
+  * @chip: The pinctrl to work on
+  * @reg: The register to write to. Can be direct access or muxed register.
+  *       MUST NOT be the PORTSEL register.
+  * @port: The port to be used for muxed registers or quick path direct access
+  *        registers. Otherwise unused.
+  * @mask: Bitmask to change
+  * @val: New value for bitmask
+  *
+  * This function handles the register updates to the direct access registers and
+  * the muxed registers while caching all register accesses, internally handling
+  * the correct state of the PORTSEL register and protecting the access to muxed
+  * registers.
+  * The caller must only use this function to change registers behind the PORTSEL mux.
+  *
+  * Return: 0 for successful request, else a corresponding error value
+  */
+ static int cy8c95x0_regmap_update_bits(struct cy8c95x0_pinctrl *chip, unsigned int reg,
+                                      unsigned int port, unsigned int mask, unsigned int val)
+ {
+       return cy8c95x0_regmap_update_bits_base(chip, reg, port, mask, val, NULL, false, false);
+ }
+ /**
+  * cy8c95x0_regmap_read() - reads a register using the regmap cache
+  * @chip: The pinctrl to work on
+  * @reg: The register to read from. Can be direct access or muxed register.
+  * @port: The port to be used for muxed registers or quick path direct access
+  *        registers. Otherwise unused.
+  * @read_val: Value read from hardware or cache
+  *
+  * This function handles the register reads from the direct access registers and
+  * the muxed registers while caching all register accesses, internally handling
+  * the correct state of the PORTSEL register and protecting the access to muxed
+  * registers.
+  * The caller must only use this function to read registers behind the PORTSEL mux.
+  *
+  * Return: 0 for successful request, else a corresponding error value
+  */
+ static int cy8c95x0_regmap_read(struct cy8c95x0_pinctrl *chip, unsigned int reg,
+                               unsigned int port, unsigned int *read_val)
+ {
+       struct regmap *regmap;
+       int off;
+       /* Registers behind the PORTSEL mux have their own regmap */
+       if (cy8c95x0_muxed_register(reg)) {
+               regmap = chip->muxed_regmap;
+               off = CY8C95X0_MUX_REGMAP_TO_OFFSET(reg, port);
+       } else {
+               regmap = chip->regmap;
+               /* Quick path direct access registers honor the port argument */
+               if (cy8c95x0_quick_path_register(reg))
+                       off = reg + port;
+               else
+                       off = reg;
+       }
+       return regmap_read(regmap, off, read_val);
+ }
  static int cy8c95x0_write_regs_mask(struct cy8c95x0_pinctrl *chip, int reg,
                                    unsigned long *val, unsigned long *mask)
  {
        DECLARE_BITMAP(tval, MAX_LINE);
        int write_val;
        int ret = 0;
-       int i, off = 0;
+       int i;
        u8 bits;
  
        /* Add the 4 bit gap of Gport2 */
        bitmap_shift_left(tval, tval, 4, MAX_LINE);
        bitmap_replace(tval, tval, val, chip->shiftmask, BANK_SZ * 3);
  
-       mutex_lock(&chip->i2c_lock);
        for (i = 0; i < chip->nport; i++) {
                /* Skip over unused banks */
                bits = bitmap_get_value8(tmask, i * BANK_SZ);
                if (!bits)
                        continue;
  
-               switch (reg) {
-               /* Muxed registers */
-               case CY8C95X0_INTMASK:
-               case CY8C95X0_PWMSEL:
-               case CY8C95X0_INVERT:
-               case CY8C95X0_DIRECTION:
-               case CY8C95X0_DRV_PU:
-               case CY8C95X0_DRV_PD:
-               case CY8C95X0_DRV_ODH:
-               case CY8C95X0_DRV_ODL:
-               case CY8C95X0_DRV_PP_FAST:
-               case CY8C95X0_DRV_PP_SLOW:
-               case CY8C95X0_DRV_HIZ:
-                       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, i);
-                       if (ret < 0)
-                               goto out;
-                       off = reg;
-                       break;
-               /* Direct access registers */
-               case CY8C95X0_INPUT:
-               case CY8C95X0_OUTPUT:
-               case CY8C95X0_INTSTATUS:
-                       off = reg + i;
-                       break;
-               default:
-                       ret = -EINVAL;
-                       goto out;
-               }
                write_val = bitmap_get_value8(tval, i * BANK_SZ);
  
-               ret = regmap_update_bits(chip->regmap, off, bits, write_val);
+               ret = cy8c95x0_regmap_update_bits(chip, reg, i, bits, write_val);
                if (ret < 0)
                        goto out;
        }
  out:
-       mutex_unlock(&chip->i2c_lock);
  
        if (ret < 0)
-               dev_err(chip->dev, "failed writing register %d: err %d\n", off, ret);
+               dev_err(chip->dev, "failed writing register %d, port %d: err %d\n", reg, i, ret);
  
        return ret;
  }
@@@ -486,7 -728,7 +732,7 @@@ static int cy8c95x0_read_regs_mask(stru
        DECLARE_BITMAP(tmp, MAX_LINE);
        int read_val;
        int ret = 0;
-       int i, off = 0;
+       int i;
        u8 bits;
  
        /* Add the 4 bit gap of Gport2 */
        bitmap_shift_left(tval, tval, 4, MAX_LINE);
        bitmap_replace(tval, tval, val, chip->shiftmask, BANK_SZ * 3);
  
-       mutex_lock(&chip->i2c_lock);
        for (i = 0; i < chip->nport; i++) {
                /* Skip over unused banks */
                bits = bitmap_get_value8(tmask, i * BANK_SZ);
                if (!bits)
                        continue;
  
-               switch (reg) {
-               /* Muxed registers */
-               case CY8C95X0_INTMASK:
-               case CY8C95X0_PWMSEL:
-               case CY8C95X0_INVERT:
-               case CY8C95X0_DIRECTION:
-               case CY8C95X0_DRV_PU:
-               case CY8C95X0_DRV_PD:
-               case CY8C95X0_DRV_ODH:
-               case CY8C95X0_DRV_ODL:
-               case CY8C95X0_DRV_PP_FAST:
-               case CY8C95X0_DRV_PP_SLOW:
-               case CY8C95X0_DRV_HIZ:
-                       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, i);
-                       if (ret < 0)
-                               goto out;
-                       off = reg;
-                       break;
-               /* Direct access registers */
-               case CY8C95X0_INPUT:
-               case CY8C95X0_OUTPUT:
-               case CY8C95X0_INTSTATUS:
-                       off = reg + i;
-                       break;
-               default:
-                       ret = -EINVAL;
-                       goto out;
-               }
-               ret = regmap_read(chip->regmap, off, &read_val);
+               ret = cy8c95x0_regmap_read(chip, reg, i, &read_val);
                if (ret < 0)
                        goto out;
  
        bitmap_replace(val, tmp, tval, chip->shiftmask, MAX_LINE);
  
  out:
-       mutex_unlock(&chip->i2c_lock);
        if (ret < 0)
-               dev_err(chip->dev, "failed reading register %d: err %d\n", off, ret);
+               dev_err(chip->dev, "failed reading register %d, port %d: err %d\n", reg, i, ret);
  
        return ret;
  }
@@@ -566,12 -776,11 +780,11 @@@ static int cy8c95x0_gpio_direction_outp
  {
        struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc);
        u8 port = cypress_get_port(chip, off);
-       u8 outreg = CY8C95X0_OUTPUT_(port);
        u8 bit = cypress_get_pin_mask(chip, off);
        int ret;
  
        /* Set output level */
-       ret = regmap_write_bits(chip->regmap, outreg, bit, val ? bit : 0);
+       ret = cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit, val ? bit : 0);
        if (ret)
                return ret;
  
  static int cy8c95x0_gpio_get_value(struct gpio_chip *gc, unsigned int off)
  {
        struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc);
-       u8 inreg = CY8C95X0_INPUT_(cypress_get_port(chip, off));
+       u8 port = cypress_get_port(chip, off);
        u8 bit = cypress_get_pin_mask(chip, off);
        u32 reg_val;
        int ret;
  
-       ret = regmap_read(chip->regmap, inreg, &reg_val);
+       ret = cy8c95x0_regmap_read(chip, CY8C95X0_INPUT, port, &reg_val);
        if (ret < 0) {
                /*
                 * NOTE:
@@@ -604,10 -813,10 +817,10 @@@ static void cy8c95x0_gpio_set_value(str
                                    int val)
  {
        struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc);
-       u8 outreg = CY8C95X0_OUTPUT_(cypress_get_port(chip, off));
+       u8 port = cypress_get_port(chip, off);
        u8 bit = cypress_get_pin_mask(chip, off);
  
-       regmap_write_bits(chip->regmap, outreg, bit, val ? bit : 0);
+       cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit, val ? bit : 0);
  }
  
  static int cy8c95x0_gpio_get_direction(struct gpio_chip *gc, unsigned int off)
        u32 reg_val;
        int ret;
  
-       mutex_lock(&chip->i2c_lock);
-       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, port);
-       if (ret < 0)
-               goto out;
-       ret = regmap_read(chip->regmap, CY8C95X0_DIRECTION, &reg_val);
+       ret = cy8c95x0_regmap_read(chip, CY8C95X0_DIRECTION, port, &reg_val);
        if (ret < 0)
                goto out;
  
-       mutex_unlock(&chip->i2c_lock);
        if (reg_val & bit)
                return GPIO_LINE_DIRECTION_IN;
  
        return GPIO_LINE_DIRECTION_OUT;
  out:
-       mutex_unlock(&chip->i2c_lock);
        return ret;
  }
  
@@@ -651,13 -851,6 +855,6 @@@ static int cy8c95x0_gpio_get_pincfg(str
        u16 arg = 0;
        int ret;
  
-       mutex_lock(&chip->i2c_lock);
-       /* Select port */
-       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, port);
-       if (ret < 0)
-               goto out;
        switch (param) {
        case PIN_CONFIG_BIAS_PULL_UP:
                reg = CY8C95X0_DRV_PU;
                reg = CY8C95X0_PWMSEL;
                break;
        case PIN_CONFIG_OUTPUT:
-               reg = CY8C95X0_OUTPUT_(port);
+               reg = CY8C95X0_OUTPUT;
                break;
        case PIN_CONFIG_OUTPUT_ENABLE:
                reg = CY8C95X0_DIRECTION;
         * Writing 1 to one of the drive mode registers will automatically
         * clear conflicting set bits in the other drive mode registers.
         */
-       ret = regmap_read(chip->regmap, reg, &reg_val);
+       ret = cy8c95x0_regmap_read(chip, reg, port, &reg_val);
+       if (ret < 0)
+               goto out;
        if (reg_val & bit)
                arg = 1;
 +      if (param == PIN_CONFIG_OUTPUT_ENABLE)
 +              arg = !arg;
  
        *config = pinconf_to_config_packed(param, (u16)arg);
  out:
-       mutex_unlock(&chip->i2c_lock);
        return ret;
  }
  
@@@ -732,17 -924,9 +930,10 @@@ static int cy8c95x0_gpio_set_pincfg(str
        u8 port = cypress_get_port(chip, off);
        u8 bit = cypress_get_pin_mask(chip, off);
        unsigned long param = pinconf_to_config_param(config);
 +      unsigned long arg = pinconf_to_config_argument(config);
        unsigned int reg;
        int ret;
  
-       mutex_lock(&chip->i2c_lock);
-       /* Select port */
-       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, port);
-       if (ret < 0)
-               goto out;
        switch (param) {
        case PIN_CONFIG_BIAS_PULL_UP:
                __clear_bit(off, chip->push_pull);
        case PIN_CONFIG_MODE_PWM:
                reg = CY8C95X0_PWMSEL;
                break;
 +      case PIN_CONFIG_OUTPUT_ENABLE:
 +              ret = cy8c95x0_pinmux_direction(chip, off, !arg);
 +              goto out;
 +      case PIN_CONFIG_INPUT_ENABLE:
 +              ret = cy8c95x0_pinmux_direction(chip, off, arg);
 +              goto out;
        default:
                ret = -ENOTSUPP;
                goto out;
         * Writing 1 to one of the drive mode registers will automatically
         * clear conflicting set bits in the other drive mode registers.
         */
-       ret = regmap_write_bits(chip->regmap, reg, bit, bit);
+       ret = cy8c95x0_regmap_write_bits(chip, reg, port, bit, bit);
  out:
-       mutex_unlock(&chip->i2c_lock);
        return ret;
  }
  
@@@ -834,7 -1010,7 +1023,7 @@@ static int cy8c95x0_setup_gpiochip(stru
        gc->get_direction = cy8c95x0_gpio_get_direction;
        gc->get_multiple = cy8c95x0_gpio_get_multiple;
        gc->set_multiple = cy8c95x0_gpio_set_multiple;
 -      gc->set_config = gpiochip_generic_config,
 +      gc->set_config = gpiochip_generic_config;
        gc->can_sleep = true;
        gc->add_pin_ranges = cy8c95x0_add_pin_ranges;
  
@@@ -1105,14 -1281,8 +1294,8 @@@ static int cy8c95x0_set_mode(struct cy8
  {
        u8 port = cypress_get_port(chip, off);
        u8 bit = cypress_get_pin_mask(chip, off);
-       int ret;
  
-       /* Select port */
-       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, port);
-       if (ret < 0)
-               return ret;
-       return regmap_write_bits(chip->regmap, CY8C95X0_PWMSEL, bit, mode ? bit : 0);
+       return cy8c95x0_regmap_write_bits(chip, CY8C95X0_PWMSEL, port, bit, mode ? bit : 0);
  }
  
  static int cy8c95x0_pinmux_mode(struct cy8c95x0_pinctrl *chip,
                return 0;
  
        /* Set direction to output & set output to 1 so that PWM can work */
-       ret = regmap_write_bits(chip->regmap, CY8C95X0_DIRECTION, bit, bit);
+       ret = cy8c95x0_regmap_write_bits(chip, CY8C95X0_DIRECTION, port, bit, bit);
        if (ret < 0)
                return ret;
  
-       return regmap_write_bits(chip->regmap, CY8C95X0_OUTPUT_(port), bit, bit);
+       return cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit, bit);
  }
  
  static int cy8c95x0_set_mux(struct pinctrl_dev *pctldev, unsigned int selector,
                            unsigned int group)
  {
        struct cy8c95x0_pinctrl *chip = pinctrl_dev_get_drvdata(pctldev);
-       int ret;
  
-       mutex_lock(&chip->i2c_lock);
-       ret = cy8c95x0_pinmux_mode(chip, selector, group);
-       mutex_unlock(&chip->i2c_lock);
-       return ret;
+       return cy8c95x0_pinmux_mode(chip, selector, group);
  }
  
  static int cy8c95x0_gpio_request_enable(struct pinctrl_dev *pctldev,
                                        unsigned int pin)
  {
        struct cy8c95x0_pinctrl *chip = pinctrl_dev_get_drvdata(pctldev);
-       int ret;
-       mutex_lock(&chip->i2c_lock);
-       ret = cy8c95x0_set_mode(chip, pin, false);
-       mutex_unlock(&chip->i2c_lock);
  
-       return ret;
+       return cy8c95x0_set_mode(chip, pin, false);
  }
  
  static int cy8c95x0_pinmux_direction(struct cy8c95x0_pinctrl *chip,
        u8 bit = cypress_get_pin_mask(chip, pin);
        int ret;
  
-       /* Select port... */
-       ret = regmap_write(chip->regmap, CY8C95X0_PORTSEL, port);
-       if (ret)
-               return ret;
-       /* ...then direction */
-       ret = regmap_write_bits(chip->regmap, CY8C95X0_DIRECTION, bit, input ? bit : 0);
+       ret = cy8c95x0_regmap_write_bits(chip, CY8C95X0_DIRECTION, port, bit, input ? bit : 0);
        if (ret)
                return ret;
  
         * the direction register isn't sufficient in Push-Pull mode.
         */
        if (input && test_bit(pin, chip->push_pull)) {
-               ret = regmap_write_bits(chip->regmap, CY8C95X0_DRV_HIZ, bit, bit);
+               ret = cy8c95x0_regmap_write_bits(chip, CY8C95X0_DRV_HIZ, port, bit, bit);
                if (ret)
                        return ret;
  
@@@ -1201,13 -1355,8 +1368,8 @@@ static int cy8c95x0_gpio_set_direction(
                                       unsigned int pin, bool input)
  {
        struct cy8c95x0_pinctrl *chip = pinctrl_dev_get_drvdata(pctldev);
-       int ret;
  
-       mutex_lock(&chip->i2c_lock);
-       ret = cy8c95x0_pinmux_direction(chip, pin, input);
-       mutex_unlock(&chip->i2c_lock);
-       return ret;
+       return cy8c95x0_pinmux_direction(chip, pin, input);
  }
  
  static const struct pinmux_ops cy8c95x0_pmxops = {
@@@ -1409,12 -1558,22 +1571,22 @@@ static int cy8c95x0_probe(struct i2c_cl
                gpiod_set_consumer_name(chip->gpio_reset, "CY8C95X0 RESET");
        }
  
+       /* Generic regmap for direct access registers */
        chip->regmap = devm_regmap_init_i2c(client, &cy8c95x0_i2c_regmap);
        if (IS_ERR(chip->regmap)) {
                ret = PTR_ERR(chip->regmap);
                goto err_exit;
        }
  
+       /* Port specific regmap behind PORTSEL mux */
+       chip->muxed_regmap = devm_regmap_init(&client->dev, &cy8c95x0_regmap_bus,
+                                             chip, &cy8c95x0_muxed_regmap);
+       if (IS_ERR(chip->muxed_regmap)) {
+               ret = dev_err_probe(&client->dev, PTR_ERR(chip->muxed_regmap),
+                                   "Failed to register muxed regmap\n");
+               goto err_exit;
+       }
        bitmap_zero(chip->push_pull, MAX_LINE);
        bitmap_zero(chip->shiftmask, MAX_LINE);
        bitmap_set(chip->shiftmask, 0, 20);
index b29b0ab9892b8eda0c5325d8afd868853d1652ee,21bfbbaede723828e990c1eb418bcf8cea38b1aa..6df7a310c7ed62f2dd20fc542900e0187a3e483a
@@@ -492,7 -492,7 +492,7 @@@ static int starfive_dt_node_to_map(stru
  
        nmaps = 0;
        ngroups = 0;
 -      for_each_child_of_node(np, child) {
 +      for_each_available_child_of_node(np, child) {
                int npinmux = of_property_count_u32_elems(child, "pinmux");
                int npins   = of_property_count_u32_elems(child, "pins");
  
        nmaps = 0;
        ngroups = 0;
        mutex_lock(&sfp->mutex);
 -      for_each_child_of_node(np, child) {
 +      for_each_available_child_of_node(np, child) {
                int npins;
                int i;
  
@@@ -654,7 -654,7 +654,7 @@@ static int starfive_set_mux(struct pinc
                return -EINVAL;
  
        pinmux = group->data;
-       for (i = 0; i < group->num_pins; i++) {
+       for (i = 0; i < group->grp.npins; i++) {
                u32 v = pinmux[i];
                unsigned int gpio = starfive_pinmux_to_gpio(v);
                u32 dout = starfive_pinmux_to_dout(v);
@@@ -797,7 -797,7 +797,7 @@@ static int starfive_pinconf_group_get(s
        if (!group)
                return -EINVAL;
  
-       return starfive_pinconf_get(pctldev, group->pins[0], config);
+       return starfive_pinconf_get(pctldev, group->grp.pins[0], config);
  }
  
  static int starfive_pinconf_group_set(struct pinctrl_dev *pctldev,
                }
        }
  
-       for (i = 0; i < group->num_pins; i++)
-               starfive_padctl_rmw(sfp, group->pins[i], mask, value);
+       for (i = 0; i < group->grp.npins; i++)
+               starfive_padctl_rmw(sfp, group->grp.pins[i], mask, value);
  
        return 0;
  }
index 6de11a4057346dcea3a9f02cf2d3fb82caa99ea9,60160965cd29a8ed0202647ce262ecbe7244e14b..9609eb1ecc3d8428247fa28f0e12e2a4010e7415
@@@ -135,7 -135,7 +135,7 @@@ static int jh7110_dt_node_to_map(struc
        int ret;
  
        ngroups = 0;
 -      for_each_child_of_node(np, child)
 +      for_each_available_child_of_node(np, child)
                ngroups += 1;
        nmaps = 2 * ngroups;
  
        nmaps = 0;
        ngroups = 0;
        mutex_lock(&sfp->mutex);
 -      for_each_child_of_node(np, child) {
 +      for_each_available_child_of_node(np, child) {
                int npins = of_property_count_u32_elems(child, "pinmux");
                int *pins;
                u32 *pinmux;
@@@ -307,7 -307,7 +307,7 @@@ static int jh7110_set_mux(struct pinctr
                return -EINVAL;
  
        pinmux = group->data;
-       for (i = 0; i < group->num_pins; i++) {
+       for (i = 0; i < group->grp.npins; i++) {
                u32 v = pinmux[i];
  
                if (info->jh7110_set_one_pin_mux)
@@@ -437,7 -437,7 +437,7 @@@ static int jh7110_pinconf_group_get(str
        if (!group)
                return -EINVAL;
  
-       return jh7110_pinconf_get(pctldev, group->pins[0], config);
+       return jh7110_pinconf_get(pctldev, group->grp.pins[0], config);
  }
  
  static int jh7110_pinconf_group_set(struct pinctrl_dev *pctldev,
                }
        }
  
-       for (i = 0; i < group->num_pins; i++)
-               jh7110_padcfg_rmw(sfp, group->pins[i], mask, value);
+       for (i = 0; i < group->grp.npins; i++)
+               jh7110_padcfg_rmw(sfp, group->grp.pins[i], mask, value);
  
        return 0;
  }
index 603f900e88c18a50ea01c33b8e52ef8154327880,2f2b777fcf4fa913ed89a603c6ca4b6d12562add..978ccdbaf3d3f400a61eca4f888e211cb76add66
@@@ -240,9 -240,8 +240,8 @@@ static int stm32_gpio_direction_output(
        struct stm32_gpio_bank *bank = gpiochip_get_data(chip);
  
        __stm32_gpio_set(bank, offset, value);
-       pinctrl_gpio_direction_output(chip, offset);
  
-       return 0;
+       return pinctrl_gpio_direction_output(chip, offset);
  }
  
  
@@@ -1273,11 -1272,9 +1272,11 @@@ static struct stm32_desc_pin *stm32_pct
        int i;
  
        /* With few exceptions (e.g. bank 'Z'), pin number matches with pin index in array */
 -      pin_desc = pctl->pins + stm32_pin_nb;
 -      if (pin_desc->pin.number == stm32_pin_nb)
 -              return pin_desc;
 +      if (stm32_pin_nb < pctl->npins) {
 +              pin_desc = pctl->pins + stm32_pin_nb;
 +              if (pin_desc->pin.number == stm32_pin_nb)
 +                      return pin_desc;
 +      }
  
        /* Otherwise, loop all array to find the pin with the right number */
        for (i = 0; i < pctl->npins; i++) {
@@@ -1370,11 -1367,6 +1369,11 @@@ static int stm32_gpiolib_register_bank(
        }
  
        names = devm_kcalloc(dev, npins, sizeof(char *), GFP_KERNEL);
 +      if (!names) {
 +              err = -ENOMEM;
 +              goto err_clk;
 +      }
 +
        for (i = 0; i < npins; i++) {
                stm32_pin = stm32_pctrl_get_desc_pin_from_gpio(pctl, bank, i);
                if (stm32_pin && stm32_pin->pin.name)
This page took 0.250137 seconds and 4 git commands to generate.