]> Git Repo - linux.git/commitdiff
Merge tag 'pinctrl-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
authorLinus Torvalds <[email protected]>
Mon, 28 Mar 2022 18:52:53 +0000 (11:52 -0700)
committerLinus Torvalds <[email protected]>
Mon, 28 Mar 2022 18:52:53 +0000 (11:52 -0700)
Pull pin control updates from Linus Walleij:
 "No core changes this time. Just new driver code and improvements!

  New drivers:

   - New driver for the Broadcom BCM4908 SoC.

   - New subdriver for Tesla FSD (Full Self Driving) SoC, a derivative
     of the Samsung Exynos pin control driver.

   - New driver for the Amlogic Meson S4 SoC.

   - New driver for the Sunplus SP7021 SoC.

   - New driver for the Microsemi Ocelot family ServalT SoC.

   - New subdriver for Intel Alder Lake-M SoC.

   - New subdriver for Intel Ice Lake-N SoC, including PCH support.

   - New subdriver for Renesas R8A779F0 SoC.

   - New subdriver for Mediatek MT8186 SoC.

   - New subdriver for NXP Freescale i.MX93 SoC.

   - New driver for Nuvoton WPCM450 SoC.

   - New driver for Qualcomm SC8280XP SoC.

  Improvements:

   - Wakeup support on Samsung Exynos850 and ExynosAutov9.

   - Serious and voluminous maintenance cleanup and refactoring in the
     Renesas drivers. Mainly sharing similar data between the different
     SoC subdrivers.

   - Qualcomm SM8450 EGPIO support.

   - Drive strength support on the Mediatek MT8195.

   - Add some missing groups and functions to the Ralink RT2880"

* tag 'pinctrl-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (188 commits)
  pinctrl: mediatek: common-v1: fix semicolon.cocci warnings
  pinctrl: nuvoton: wpcm450: Fix build error without OF
  pinctrl: qcom-pmic-gpio: Add support for pm8450
  dt-bindings: pinctrl: aspeed: Update gfx node in example
  dt-bindings: pinctrl: rt2880: add missing pin groups and functions
  pinctrl: ingenic: Fix regmap on X series SoCs
  pinctrl: nuvoton: Fix return value check in wpcm450_gpio_register()
  pinctrl: nuvoton: wpcm450: off by one in wpcm450_gpio_register()
  pinctrl: nuvoton: wpcm450: select GENERIC_PINCTRL_GROUPS
  pinctrl: nuvoton: Fix sparse warning
  pinctrl: mediatek: mt8186: Account for probe refactoring
  pinctrl: mediatek: common-v1: Commonize spec_ies_smt_set callback
  pinctrl: mediatek: common-v1: Commonize spec_pupd callback
  pinctrl: mediatek: common-v1: Use common probe function
  pinctrl: mediatek: common-v1: Add common probe function
  pinctrl: mediatek: paris: Unify probe function by using OF match data
  pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
  pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
  pinctrl: berlin: fix error return code of berlin_pinctrl_build_state()
  pinctrl: qcom: Introduce sc8280xp TLMM driver
  ...

1  2 
Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
MAINTAINERS
drivers/pinctrl/bcm/Kconfig
drivers/pinctrl/intel/pinctrl-baytrail.c
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
drivers/pinctrl/pinctrl-microchip-sgpio.c
drivers/pinctrl/pinctrl-starfive.c
drivers/pinctrl/sunxi/pinctrl-sunxi.c

index acd60c85b4cc9b04fbd8a0e0f73ff698f76659fa,9969997c2f1b49c950e54fafdee52fabce4a8343..7c25c8d51116df06ed7fae23a452bff8a9483c0b
@@@ -29,8 -29,6 +29,8 @@@ properties
    aspeed,external-nodes:
      minItems: 2
      maxItems: 2
 +    items:
 +      maxItems: 1
      $ref: /schemas/types.yaml#/definitions/phandle-array
      description: |
        A cell of phandles to external controller nodes:
@@@ -75,6 -73,7 +75,7 @@@ additionalProperties: fals
  
  examples:
    - |
+     #include <dt-bindings/clock/aspeed-clock.h>
      apb {
          compatible = "simple-bus";
          #address-cells = <1>;
@@@ -84,6 -83,8 +85,8 @@@
          syscon: scu@1e6e2000 {
              compatible = "aspeed,ast2500-scu", "syscon", "simple-mfd";
              reg = <0x1e6e2000 0x1a8>;
+             #clock-cells = <1>;
+             #reset-cells = <1>;
  
              pinctrl: pinctrl {
                  compatible = "aspeed,ast2500-pinctrl";
          gfx: display@1e6e6000 {
              compatible = "aspeed,ast2500-gfx", "syscon";
              reg = <0x1e6e6000 0x1000>;
+             reg-io-width = <4>;
+             clocks = <&syscon ASPEED_CLK_GATE_D1CLK>;
+             resets = <&syscon ASPEED_RESET_CRT1>;
+             interrupts = <0x19>;
+             syscon = <&syscon>;
+             memory-region = <&gfx_memory>;
          };
      };
  
              };
          };
      };
+     gfx_memory: framebuffer {
+         size = <0x01000000>;
+         alignment = <0x01000000>;
+         compatible = "shared-dma-pool";
+         reusable;
+     };
diff --combined MAINTAINERS
index b555a5e8704f2145726f413442ee47462b863138,845500e9a962d2fb6d91863be2ad71075032526a..5debe27f4f23f724106fc81b3e0a65a2b794649e
@@@ -190,9 -190,8 +190,9 @@@ M: Johannes Berg <johannes@sipsolutions
  L:    [email protected]
  S:    Maintained
  W:    https://wireless.wiki.kernel.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
 +Q:    https://patchwork.kernel.org/project/linux-wireless/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git
  F:    Documentation/driver-api/80211/cfg80211.rst
  F:    Documentation/networking/regulatory.rst
  F:    include/linux/ieee80211.h
@@@ -389,11 -388,11 +389,11 @@@ L:      [email protected]
  S:    Maintained
  F:    drivers/acpi/arm64
  
 -ACPI I2C MULTI INSTANTIATE DRIVER
 +ACPI SERIAL MULTI INSTANTIATE DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/platform/x86/i2c-multi-instantiate.c
 +F:    drivers/platform/x86/serial-multi-instantiate.c
  
  ACPI PCC(Platform Communication Channel) MAILBOX DRIVER
  M:    Sudeep Holla <[email protected]>
@@@ -989,16 -988,6 +989,16 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/platform/x86/amd-pmc.*
  
 +AMD HSMP DRIVER
 +M:    Naveen Krishna Chatradhi <[email protected]>
 +R:    Carlos Bilbao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/x86/amd_hsmp.rst
 +F:    arch/x86/include/asm/amd_hsmp.h
 +F:    arch/x86/include/uapi/asm/amd_hsmp.h
 +F:    drivers/platform/x86/amd_hsmp.c
 +
  AMD POWERPLAY AND SWSMU
  M:    Evan Quan <[email protected]>
  L:    [email protected]
@@@ -1012,7 -1001,6 +1012,7 @@@ L:      [email protected]
  S:    Supported
  F:    Documentation/admin-guide/pm/amd-pstate.rst
  F:    drivers/cpufreq/amd-pstate*
 +F:    tools/power/x86/amd_pstate_tracer/amd_pstate_trace.py
  
  AMD PTDMA DRIVER
  M:    Sanjay R Mehta <[email protected]>
@@@ -1042,15 -1030,6 +1042,15 @@@ S:    Maintaine
  F:    Documentation/hid/amd-sfh*
  F:    drivers/hid/amd-sfh-hid/
  
 +AMPHION VPU CODEC V4L2 DRIVER
 +M:    Ming Qian <[email protected]>
 +M:    Shijie Qin <[email protected]>
 +M:    Zhou Peng <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/amphion,vpu.yaml
 +F:    drivers/media/platform/amphion/
 +
  AMS AS73211 DRIVER
  M:    Christian Eggers <[email protected]>
  L:    [email protected]
@@@ -1249,6 -1228,18 +1249,6 @@@ S:     Supporte
  F:    drivers/clk/analogbits/*
  F:    include/linux/clk/analogbits*
  
 -ANDES ARCHITECTURE
 -M:    Nick Hu <[email protected]>
 -M:    Greentime Hu <[email protected]>
 -M:    Vincent Chen <[email protected]>
 -S:    Supported
 -T:    git https://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux.git
 -F:    Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
 -F:    Documentation/devicetree/bindings/nds32/
 -F:    arch/nds32/
 -N:    nds32
 -K:    nds32
 -
  ANDROID CONFIG FRAGMENTS
  M:    Rob Herring <[email protected]>
  S:    Supported
@@@ -1628,7 -1619,6 +1628,7 @@@ M:      Olof Johansson <[email protected]
  M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 +C:    irc://irc.libera.chat/armlinux
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
  F:    arch/arm/boot/dts/Makefile
  F:    arch/arm64/boot/dts/Makefile
  ARM SUB-ARCHITECTURES
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 +C:    irc://irc.libera.chat/armlinux
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
  F:    arch/arm/mach-*/
  F:    arch/arm/plat-*/
@@@ -1695,9 -1684,9 +1695,9 @@@ S:      Maintaine
  F:    drivers/clk/sunxi/
  
  ARM/Allwinner sunXi SoC support
 -M:    Maxime Ripard <[email protected]>
  M:    Chen-Yu Tsai <[email protected]>
 -R:    Jernej Skrabec <[email protected]>
 +M:    Jernej Skrabec <[email protected]>
 +M:    Samuel Holland <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git
@@@ -1777,7 -1766,7 +1777,7 @@@ T:      git https://github.com/AsahiLinux/li
  F:    Documentation/devicetree/bindings/arm/apple.yaml
  F:    Documentation/devicetree/bindings/arm/apple/*
  F:    Documentation/devicetree/bindings/i2c/apple,i2c.yaml
 -F:    Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
 +F:    Documentation/devicetree/bindings/interrupt-controller/apple,*
  F:    Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
  F:    Documentation/devicetree/bindings/pci/apple,pcie.yaml
  F:    Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
@@@ -1790,7 -1779,6 +1790,7 @@@ F:      drivers/irqchip/irq-apple-aic.
  F:    drivers/mailbox/apple-mailbox.c
  F:    drivers/pinctrl/pinctrl-apple-gpio.c
  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
@@@ -2127,6 -2115,13 +2127,6 @@@ F:     Documentation/devicetree/bindings/ar
  F:    arch/arm64/boot/dts/intel/keembay-evm.dts
  F:    arch/arm64/boot/dts/intel/keembay-soc.dtsi
  
 -ARM/INTEL RESEARCH IMOTE/STARGATE 2 MACHINE SUPPORT
 -M:    Jonathan Cameron <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -F:    arch/arm/mach-pxa/stargate2.c
 -F:    drivers/pcmcia/pxa2xx_stargate2.c
 -
  ARM/INTEL XSC3 (MANZANO) ARM CORE
  M:    Lennert Buytenhek <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -2255,7 -2250,7 +2255,7 @@@ F:      drivers/phy/mediatek
  ARM/Microchip (AT91) SoC support
  M:    Nicolas Ferre <[email protected]>
  M:    Alexandre Belloni <[email protected]>
 -M:    Ludovic Desroches <ludovic.desroches@microchip.com>
 +M:    Claudiu Beznea <claudiu.beznea@microchip.com>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  W:    http://www.linux4sam.org
@@@ -2368,7 -2363,6 +2368,7 @@@ L:      [email protected] (moderated 
  S:    Supported
  F:    Documentation/devicetree/bindings/*/*/*npcm*
  F:    Documentation/devicetree/bindings/*/*npcm*
 +F:    Documentation/devicetree/bindings/arm/npcm/*
  F:    arch/arm/boot/dts/nuvoton-npcm*
  F:    arch/arm/mach-npcm/
  F:    drivers/*/*npcm*
@@@ -2379,10 -2373,10 +2379,11 @@@ ARM/NUVOTON WPCM450 ARCHITECTUR
  M:    Jonathan Neuschäfer <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 +W:    https://github.com/neuschaefer/wpcm450/wiki
  F:    Documentation/devicetree/bindings/*/*wpcm*
  F:    arch/arm/boot/dts/nuvoton-wpcm450*
  F:    arch/arm/mach-npcm/wpcm450.c
+ F:    drivers/*/*/*wpcm*
  F:    drivers/*/*wpcm*
  
  ARM/NXP S32G ARCHITECTURE
@@@ -2510,7 -2504,7 +2511,7 @@@ S:      Maintaine
  F:    Documentation/devicetree/bindings/arm/rda.yaml
  F:    Documentation/devicetree/bindings/gpio/gpio-rda.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.txt
 -F:    Documentation/devicetree/bindings/serial/rda,8810pl-uart.txt
 +F:    Documentation/devicetree/bindings/serial/rda,8810pl-uart.yaml
  F:    Documentation/devicetree/bindings/timer/rda,8810pl-timer.txt
  F:    arch/arm/boot/dts/rda8810pl-*
  F:    drivers/clocksource/timer-rda.c
@@@ -2534,7 -2528,6 +2535,7 @@@ M:      Magnus Damm <[email protected]
  L:    [email protected]
  S:    Supported
  Q:    http://patchwork.kernel.org/project/linux-renesas-soc/list/
 +C:    irc://irc.libera.chat/renesas-soc
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  F:    Documentation/devicetree/bindings/arm/renesas.yaml
  F:    arch/arm64/boot/dts/renesas/
@@@ -2576,14 -2569,11 +2577,14 @@@ F:   sound/soc/rockchip
  N:    rockchip
  
  ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES
 -M:    Krzysztof Kozlowski <[email protected]>
 +M:    Krzysztof Kozlowski <[email protected]>
 +R:    Alim Akhtar <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 +C:    irc://irc.libera.chat/linux-exynos
  Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git
  F:    Documentation/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
  F:    Documentation/devicetree/bindings/power/pd-samsung.yaml
@@@ -2618,7 -2608,7 +2619,7 @@@ M:      Łukasz Stelmach <l.stelmach@samsung
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 -F:    drivers/media/platform/s5p-g2d/
 +F:    drivers/media/platform/samsung/s5p-g2d/
  
  ARM/SAMSUNG S5P SERIES HDMI CEC SUBSYSTEM SUPPORT
  M:    Marek Szyprowski <[email protected]>
@@@ -2635,7 -2625,7 +2636,7 @@@ M:      Sylwester Nawrocki <s.nawrocki@samsu
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 -F:    drivers/media/platform/s5p-jpeg/
 +F:    drivers/media/platform/samsung/s5p-jpeg/
  
  ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
  M:    Marek Szyprowski <[email protected]>
@@@ -2643,7 -2633,7 +2644,7 @@@ M:      Andrzej Hajda <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 -F:    drivers/media/platform/s5p-mfc/
 +F:    drivers/media/platform/samsung/s5p-mfc/
  
  ARM/SHMOBILE ARM ARCHITECTURE
  M:    Geert Uytterhoeven <[email protected]>
@@@ -2651,7 -2641,6 +2652,7 @@@ M:      Magnus Damm <[email protected]
  L:    [email protected]
  S:    Supported
  Q:    http://patchwork.kernel.org/project/linux-renesas-soc/list/
 +C:    irc://irc.libera.chat/renesas-soc
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  F:    Documentation/devicetree/bindings/arm/renesas.yaml
  F:    arch/arm/boot/dts/emev2*
@@@ -2713,7 -2702,7 +2714,7 @@@ F:      drivers/clocksource/clksrc_st_lpc.
  F:    drivers/cpufreq/sti-cpufreq.c
  F:    drivers/dma/st_fdma*
  F:    drivers/i2c/busses/i2c-st.c
 -F:    drivers/media/platform/sti/c8sectpfe/
 +F:    drivers/media/platform/st/sti/c8sectpfe/
  F:    drivers/media/rc/st_rc.c
  F:    drivers/mmc/host/sdhci-st.c
  F:    drivers/phy/st/phy-miphy28lp.c
@@@ -2744,7 -2733,7 +2745,7 @@@ N:      stm3
  N:    stm
  
  ARM/Synaptics SoC support
 -M:    Jisheng Zhang <[email protected]>
 +M:    Jisheng Zhang <[email protected]>
  M:    Sebastian Hesselbarth <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -2765,14 -2754,6 +2766,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/media/tegra-cec.txt
  F:    drivers/media/cec/platform/tegra/
  
 +ARM/TESLA FSD SoC SUPPORT
 +M:    Alim Akhtar <[email protected]>
 +M:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +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)
@@@ -3037,7 -3018,7 +3038,7 @@@ L:      [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/aspeed-video.txt
 -F:    drivers/media/platform/aspeed-video.c
 +F:    drivers/media/platform/aspeed/
  
  ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
  M:    Corentin Chary <[email protected]>
  S:    Maintained
  F:    drivers/hwmon/asus_wmi_ec_sensors.c
  
 +ASUS EC HARDWARE MONITOR DRIVER
 +M:    Eugene Shalygin <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/hwmon/asus-ec-sensors.c
 +
  ASUS WIRELESS RADIO CONTROL DRIVER
  M:    João Paulo Rechi Vita <[email protected]>
  L:    [email protected]
@@@ -3158,9 -3133,11 +3159,9 @@@ W:     https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/ath/ath5k/
  
  ATHEROS ATH6KL WIRELESS DRIVER
 -M:    Kalle Valo <[email protected]>
  L:    [email protected]
 -S:    Supported
 +S:    Orphan
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
  F:    drivers/net/wireless/ath/ath6kl/
  
  ATI_REMOTE2 DRIVER
@@@ -3217,7 -3194,6 +3218,7 @@@ ATOMIC INFRASTRUCTUR
  M:    Will Deacon <[email protected]>
  M:    Peter Zijlstra <[email protected]>
  R:    Boqun Feng <[email protected]>
 +R:    Mark Rutland <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/*/include/asm/atomic*.h
@@@ -3399,7 -3375,7 +3400,7 @@@ L:      [email protected]
  S:    Supported
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/platform/sti/bdisp
 +F:    drivers/media/platform/st/sti/bdisp
  
  BECKHOFF CX5020 ETHERCAT MASTER DRIVER
  M:    Dariusz Marcinkiewicz <[email protected]>
@@@ -3460,7 -3436,6 +3461,7 @@@ F:      Documentation/ABI/stable/sysfs-bloc
  F:    Documentation/block/
  F:    block/
  F:    drivers/block/
 +F:    include/linux/bio.h
  F:    include/linux/blk*
  F:    kernel/trace/blktrace.c
  F:    lib/sbitmap.c
@@@ -3548,8 -3523,6 +3549,8 @@@ F:      net/sched/act_bpf.
  F:    net/sched/cls_bpf.c
  F:    samples/bpf/
  F:    scripts/bpf_doc.py
 +F:    scripts/pahole-flags.sh
 +F:    scripts/pahole-version.sh
  F:    tools/bpf/
  F:    tools/lib/bpf/
  F:    tools/testing/selftests/bpf/
@@@ -3716,6 -3689,14 +3717,14 @@@ F:    Documentation/devicetree/bindings/ne
  F:    drivers/net/ethernet/broadcom/bcm4908_enet.*
  F:    drivers/net/ethernet/broadcom/unimac.h
  
+ BROADCOM BCM4908 PINMUX DRIVER
+ M:    Rafał Miłecki <[email protected]>
+ M:    [email protected]
+ L:    [email protected]
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/pinctrl/brcm,bcm4908-pinctrl.yaml
+ F:    drivers/pinctrl/bcm/pinctrl-bcm4908.c
  BROADCOM BCM5301X ARM ARCHITECTURE
  M:    Florian Fainelli <[email protected]>
  M:    Hauke Mehrtens <[email protected]>
@@@ -3842,6 -3823,9 +3851,6 @@@ BROADCOM BRCM80211 IEEE802.11n WIRELES
  M:    Arend van Spriel <[email protected]>
  M:    Franky Lin <[email protected]>
  M:    Hante Meuleman <[email protected]>
 -M:    Chi-hsien Lin <[email protected]>
 -M:    Wright Feng <[email protected]>
 -M:    Chung-hsien Hsu <[email protected]>
  L:    [email protected]
  L:    [email protected]
  L:    [email protected]
@@@ -3925,7 -3909,7 +3934,7 @@@ M:      Scott Branden <[email protected]
  M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://github.com/broadcom/cygnus-linux.git
 +T:    git git://github.com/broadcom/stblinux.git
  F:    arch/arm64/boot/dts/broadcom/northstar2/*
  F:    arch/arm64/boot/dts/broadcom/stingray/*
  F:    drivers/clk/bcm/clk-ns*
@@@ -4046,7 -4030,6 +4055,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/mtd/nand/raw/brcmnand/
 +F:    include/linux/platform_data/brcmnand.h
  
  BROADCOM STB PCIE DRIVER
  M:    Jim Quinlan <[email protected]>
@@@ -4182,8 -4165,9 +4191,8 @@@ N:      csk
  K:    csky
  
  CA8210 IEEE-802.15.4 RADIO DRIVER
 -M:    Harry Morris <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://github.com/Cascoda/ca8210-linux.git
  F:    Documentation/devicetree/bindings/net/ieee802154/ca8210.txt
  F:    drivers/net/ieee802154/ca8210.c
@@@ -4264,7 -4248,7 +4273,7 @@@ L:      [email protected]
  S:    Orphan
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/admin-guide/media/cafe_ccic*
 -F:    drivers/media/platform/marvell-ccic/
 +F:    drivers/media/platform/marvell/
  
  CAIF NETWORK LAYER
  L:    [email protected]
@@@ -4467,7 -4451,6 +4476,7 @@@ F:      drivers/power/supply/cw2015_battery.
  CEPH COMMON CODE (LIBCEPH)
  M:    Ilya Dryomov <[email protected]>
  M:    Jeff Layton <[email protected]>
 +M:    Xiubo Li <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://ceph.com/
@@@ -4478,7 -4461,6 +4487,7 @@@ F:      net/ceph
  
  CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
  M:    Jeff Layton <[email protected]>
 +M:    Xiubo Li <[email protected]>
  M:    Ilya Dryomov <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -4570,7 -4552,6 +4579,7 @@@ F:      drivers/platform/chrome
  
  CHROMEOS EC CODEC DRIVER
  M:    Cheng-Yi Chiang <[email protected]>
 +M:    Tzung-Bi Shih <[email protected]>
  R:    Guenter Roeck <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml
@@@ -4790,7 -4771,7 +4799,7 @@@ M:      Philipp Zabel <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/coda.yaml
 -F:    drivers/media/platform/coda/
 +F:    drivers/media/platform/chips-media/
  
  CODE OF CONDUCT
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -4936,8 -4917,7 +4945,8 @@@ F:      kernel/cgroup/cpuset.
  CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)
  M:    Johannes Weiner <[email protected]>
  M:    Michal Hocko <[email protected]>
 -M:    Vladimir Davydov <[email protected]>
 +M:    Roman Gushchin <[email protected]>
 +M:    Shakeel Butt <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -5340,7 -5320,6 +5349,7 @@@ DATA ACCESS MONITO
  M:    SeongJae Park <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-kernel-mm-damon
  F:    Documentation/admin-guide/mm/damon/
  F:    Documentation/vm/damon/
  F:    include/linux/damon.h
@@@ -5434,7 -5413,6 +5443,7 @@@ F:      drivers/platform/x86/dell/dell-rbtn.
  DELL LAPTOP SMM DRIVER
  M:    Pali Rohár <[email protected]>
  S:    Maintained
 +F:    Documentation/ABI/obsolete/procfs-i8k
  F:    drivers/hwmon/dell-smm-hwmon.c
  F:    include/uapi/linux/i8k.h
  
@@@ -5504,7 -5482,7 +5513,7 @@@ L:      [email protected]
  S:    Supported
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/platform/sti/delta
 +F:    drivers/media/platform/st/sti/delta
  
  DELTA AHE-50DC FAN CONTROL MODULE DRIVER
  M:    Zev Weiss <[email protected]>
@@@ -5616,7 -5594,7 +5625,7 @@@ F:      include/linux/devm-helpers.
  
  DEVICE-MAPPER  (LVM)
  M:    Alasdair Kergon <[email protected]>
 -M:    Mike Snitzer <snitzer@redhat.com>
 +M:    Mike Snitzer <snitzer@kernel.org>
  M:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -5764,7 -5742,7 +5773,7 @@@ T:      git git://anongit.freedesktop.org/dr
  F:    Documentation/driver-api/dma-buf.rst
  F:    drivers/dma-buf/
  F:    include/linux/*fence.h
 -F:    include/linux/dma-buf*
 +F:    include/linux/dma-buf.h
  F:    include/linux/dma-resv.h
  K:    \bdma_(?:buf|fence|resv)\b
  
@@@ -5803,7 -5781,7 +5812,7 @@@ F:      tools/testing/selftests/dma
  
  DMA-BUF HEAPS FRAMEWORK
  M:    Sumit Semwal <[email protected]>
 -R:    Benjamin Gaignard <benjamin.gaignard@linaro.org>
 +R:    Benjamin Gaignard <benjamin.gaignard@collabora.com>
  R:    Liam Mark <[email protected]>
  R:    Laura Abbott <[email protected]>
  R:    Brian Starkey <[email protected]>
@@@ -6107,8 -6085,7 +6116,8 @@@ L:      [email protected]
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/gpu/drm/panel/panel-lvds.c
 -F:    Documentation/devicetree/bindings/display/panel/lvds.yaml
 +F:    Documentation/devicetree/bindings/display/lvds.yaml
 +F:    Documentation/devicetree/bindings/display/panel/panel-lvds.yaml
  
  DRM DRIVER FOR MANTIX MLAF057WE51 PANELS
  M:    Guido Günther <[email protected]>
@@@ -6137,14 -6114,6 +6146,14 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt
  F:    drivers/gpu/drm/tiny/mi0283qt.c
  
 +DRM DRIVER FOR MIPI DBI compatible panels
 +M:    Noralf Trønnes <[email protected]>
 +S:    Maintained
 +W:    https://github.com/notro/panel-mipi-dbi/wiki
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
 +F:    drivers/gpu/drm/tiny/panel-mipi-dbi.c
 +
  DRM DRIVER FOR MSM ADRENO GPU
  M:    Rob Clark <[email protected]>
  M:    Sean Paul <[email protected]>
@@@ -6165,13 -6134,6 +6174,13 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/panel/novatek,nt35510.yaml
  F:    drivers/gpu/drm/panel/panel-novatek-nt35510.c
  
 +DRM DRIVER FOR NOVATEK NT35560 PANELS
 +M:    Linus Walleij <[email protected]>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/panel/sony,acx424akp.yaml
 +F:    drivers/gpu/drm/panel/panel-novatek-nt35560.c
 +
  DRM DRIVER FOR NOVATEK NT36672A PANELS
  M:    Sumit Semwal <[email protected]>
  S:    Maintained
@@@ -6208,13 -6170,6 +6217,13 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/repaper.txt
  F:    drivers/gpu/drm/tiny/repaper.c
  
 +DRM DRIVER FOR SOLOMON SSD130X OLED DISPLAYS
 +M:    Javier Martinez Canillas <[email protected]>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
 +F:    drivers/gpu/drm/solomon/ssd130x*
 +
  DRM DRIVER FOR QEMU'S CIRRUS DEVICE
  M:    Dave Airlie <[email protected]>
  M:    Gerd Hoffmann <[email protected]>
@@@ -6303,6 -6258,12 +6312,6 @@@ T:     git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/sitronix,st7735r.yaml
  F:    drivers/gpu/drm/tiny/st7735r.c
  
 -DRM DRIVER FOR SONY ACX424AKP PANELS
 -M:    Linus Walleij <[email protected]>
 -S:    Maintained
 -T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    drivers/gpu/drm/panel/panel-sony-acx424akp.c
 -
  DRM DRIVER FOR ST-ERICSSON MCDE
  M:    Linus Walleij <[email protected]>
  S:    Maintained
@@@ -6349,8 -6310,8 +6358,8 @@@ T:      git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/vboxvideo/
  
  DRM DRIVER FOR VMWARE VIRTUAL GPU
 -M:    "VMware Graphics" <[email protected]>
  M:    Zack Rusin <[email protected]>
 +R:    VMware Graphics Reviewers <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -6444,7 -6405,6 +6453,7 @@@ L:      [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git
  F:    Documentation/devicetree/bindings/display/exynos/
 +F:    Documentation/devicetree/bindings/display/samsung/
  F:    drivers/gpu/drm/exynos/
  F:    include/uapi/drm/exynos_drm.h
  
@@@ -6551,7 -6511,7 +6560,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/rockchip/
  
  DRM DRIVERS FOR STI
 -M:    Benjamin Gaignard <[email protected]>
 +M:    Alain Volmat <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -6560,8 -6520,8 +6569,8 @@@ F:      drivers/gpu/drm/st
  
  DRM DRIVERS FOR STM
  M:    Yannick Fertre <[email protected]>
 +M:    Raphael Gallais-Pou <[email protected]>
  M:    Philippe Cornu <[email protected]>
 -M:    Benjamin Gaignard <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/edac/sb_edac.c
  
 -EDAC-SIFIVE
 -M:    Yash Shah <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    drivers/edac/sifive_edac.c
 -
  EDAC-SKYLAKE
  M:    Tony Luck <[email protected]>
  L:    [email protected]
@@@ -7225,7 -7191,7 +7234,7 @@@ F:      drivers/net/can/usb/etas_es58x
  
  ETHERNET BRIDGE
  M:    Roopa Prabhu <[email protected]>
 -M:    Nikolay Aleksandrov <[email protected]>
 +M:    Nikolay Aleksandrov <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
@@@ -7251,10 -7217,8 +7260,10 @@@ F:    drivers/net/mdio/of_mdio.
  F:    drivers/net/pcs/
  F:    drivers/net/phy/
  F:    include/dt-bindings/net/qca-ar803x.h
 +F:    include/linux/linkmode.h
  F:    include/linux/*mdio*.h
  F:    include/linux/mdio/*.h
 +F:    include/linux/mii.h
  F:    include/linux/of_net.h
  F:    include/linux/phy.h
  F:    include/linux/phy_fixed.h
@@@ -7268,9 -7232,6 +7277,9 @@@ F:      net/core/of_net.
  EXEC & BINFMT API
  R:    Eric Biederman <[email protected]>
  R:    Kees Cook <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/execve
  F:    arch/alpha/kernel/binfmt_loader.c
  F:    arch/x86/ia32/ia32_aout.c
  F:    fs/*binfmt_*.c
@@@ -7278,7 -7239,6 +7287,7 @@@ F:      fs/exec.
  F:    include/linux/binfmts.h
  F:    include/linux/elf.h
  F:    include/uapi/linux/binfmts.h
 +F:    include/uapi/linux/elf.h
  F:    tools/testing/selftests/exec/
  N:    asm/elf.h
  N:    binfmt
@@@ -7314,9 -7274,7 +7323,9 @@@ Extended Verification Module (EVM
  M:    Mimi Zohar <[email protected]>
  L:    [email protected]
  S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
  F:    security/integrity/evm/
 +F:    security/integrity/
  
  EXTENSIBLE FIRMWARE INTERFACE (EFI)
  M:    Ard Biesheuvel <[email protected]>
@@@ -7624,12 -7582,6 +7633,12 @@@ S:    Maintaine
  W:    http://floatingpoint.sourceforge.net/emulator/index.html
  F:    arch/x86/math-emu/
  
 +FRAMEBUFFER CORE
 +M:    Daniel Vetter <[email protected]>
 +F:    drivers/video/fbdev/core/
 +S:    Odd Fixes
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +
  FRAMEBUFFER LAYER
  M:    Helge Deller <[email protected]>
  L:    [email protected]
@@@ -7793,7 -7745,8 +7802,7 @@@ M:      Qiang Zhao <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/soc/fsl/qe/
 -F:    include/soc/fsl/*qe*.h
 -F:    include/soc/fsl/*ucc*.h
 +F:    include/soc/fsl/qe/
  
  FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
  M:    Li Yang <[email protected]>
@@@ -7824,7 -7777,6 +7833,7 @@@ F:      Documentation/devicetree/bindings/mi
  F:    Documentation/devicetree/bindings/soc/fsl/
  F:    drivers/soc/fsl/
  F:    include/linux/fsl/
 +F:    include/soc/fsl/
  
  FREESCALE SOC FS_ENET DRIVER
  M:    Pantelis Antoniou <[email protected]>
@@@ -7835,10 -7787,10 +7844,10 @@@ F:   drivers/net/ethernet/freescale/fs_en
  F:    include/linux/fs_enet_pd.h
  
  FREESCALE SOC SOUND DRIVERS
 -M:    Nicolin Chen <nicoleotsuka@gmail.com>
 +M:    Shengjiu Wang <shengjiu.wang@gmail.com>
  M:    Xiubo Li <[email protected]>
  R:    Fabio Estevam <[email protected]>
 -R:    Shengjiu Wang <shengjiu.wang@gmail.com>
 +R:    Nicolin Chen <nicoleotsuka@gmail.com>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
  S:    Maintained
  F:    drivers/platform/x86/fujitsu-tablet.c
  
 +FUNGIBLE ETHERNET DRIVERS
 +M:    Dimitris Michailidis <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/net/ethernet/fungible/
 +
  FUSE: FILESYSTEM IN USERSPACE
  M:    Miklos Szeredi <[email protected]>
  L:    [email protected]
@@@ -8698,7 -8644,7 +8707,7 @@@ S:      Maintaine
  F:    drivers/gpio/gpio-hisi.c
  
  HISILICON HIGH PERFORMANCE RSA ENGINE DRIVER (HPRE)
 -M:    Zaibo Xu <xuzaibo@huawei.com>
 +M:    Longfang Liu <liulongfang@huawei.com>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/debugfs-hisi-hpre
@@@ -8758,9 -8704,9 +8767,9 @@@ L:      [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/debugfs-hisi-zip
  F:    drivers/crypto/hisilicon/qm.c
 -F:    drivers/crypto/hisilicon/qm.h
  F:    drivers/crypto/hisilicon/sgl.c
  F:    drivers/crypto/hisilicon/zip/
 +F:    include/linux/hisi_acc_qm.h
  
  HISILICON ROCE DRIVER
  M:    Wenpeng Liang <[email protected]>
@@@ -8778,8 -8724,8 +8787,8 @@@ F:      Documentation/devicetree/bindings/sc
  F:    drivers/scsi/hisi_sas/
  
  HISILICON SECURITY ENGINE V2 DRIVER (SEC2)
 -M:    Zaibo Xu <[email protected]>
  M:    Kai Ye <[email protected]>
 +M:    Longfang Liu <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/debugfs-hisi-sec
@@@ -8810,7 -8756,7 +8819,7 @@@ F:      Documentation/devicetree/bindings/mf
  F:    drivers/mfd/hi6421-spmi-pmic.c
  
  HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
 -M:    Zaibo Xu <xuzaibo@huawei.com>
 +M:    Weili Qian <qianweili@huawei.com>
  S:    Maintained
  F:    drivers/crypto/hisilicon/trng/trng.c
  
@@@ -8924,7 -8870,7 +8933,7 @@@ L:      [email protected]
  S:    Supported
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/platform/sti/hva
 +F:    drivers/media/platform/st/sti/hva
  
  HWPOISON MEMORY FAILURE HANDLING
  M:    Naoya Horiguchi <[email protected]>
  S:    Maintained
  F:    drivers/media/i2c/hi846.c
  
 +HYNIX HI847 SENSOR DRIVER
 +M:    Shawn Tu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/media/i2c/hi847.c
 +
  Hyper-V/Azure CORE AND DRIVERS
  M:    "K. Y. Srinivasan" <[email protected]>
  M:    Haiyang Zhang <[email protected]>
@@@ -9319,15 -9259,6 +9328,15 @@@ S:    Maintaine
  W:    https://github.com/o2genum/ideapad-slidebar
  F:    drivers/input/misc/ideapad_slidebar.c
  
 +IDMAPPED MOUNTS
 +M:    Christian Brauner <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git
 +F:    Documentation/filesystems/idmappings.rst
 +F:    tools/testing/selftests/mount_setattr/
 +F:    include/linux/mnt_idmapping.h
 +
  IDT VersaClock 5 CLOCK DRIVER
  M:    Luca Ceresoli <[email protected]>
  S:    Maintained
@@@ -9539,11 -9470,6 +9548,11 @@@ F:    include/linux/mfd/ingenic-tcu.
  F:    sound/soc/codecs/jz47*
  F:    sound/soc/jz4740/
  
 +INJOINIC IP5xxx POWER BANK IC DRIVER
 +M:    Samuel Holland <[email protected]>
 +S:    Maintained
 +F:    drivers/power/supply/ip5xxx_power.c
 +
  INOTIFY
  M:    Jan Kara <[email protected]>
  R:    Amir Goldstein <[email protected]>
@@@ -9590,7 -9516,6 +9599,7 @@@ L:      [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
  F:    security/integrity/ima/
 +F:    security/integrity/
  
  INTEL 810/815 FRAMEBUFFER DRIVER
  M:    Antonino Daplas <[email protected]>
@@@ -9951,13 -9876,6 +9960,13 @@@ S:    Maintaine
  F:    arch/x86/include/asm/intel_scu_ipc.h
  F:    drivers/platform/x86/intel_scu_*
  
 +INTEL SDSI DRIVER
 +M:    David E. Box <[email protected]>
 +S:    Supported
 +F:    drivers/platform/x86/intel/sdsi.c
 +F:    tools/arch/x86/intel_sdsi/
 +F:    tools/testing/selftests/drivers/sdsi/
 +
  INTEL SKYLAKE INT3472 ACPI DEVICE DRIVER
  M:    Daniel Scally <[email protected]>
  S:    Maintained
@@@ -9994,7 -9912,7 +10003,7 @@@ INTEL UNCORE FREQUENCY CONTRO
  M:    Srinivas Pandruvada <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/platform/x86/intel/uncore-frequency.c
 +F:    drivers/platform/x86/intel/uncore-frequency/
  
  INTEL VENDOR SPECIFIC EXTENDED CAPABILITIES DRIVER
  M:    David E. Box <[email protected]>
  F:    Documentation/devicetree/bindings/counter/interrupt-counter.yaml
  F:    drivers/counter/interrupt-cnt.c
  
 +INTERSIL ISL7998X VIDEO DECODER DRIVER
 +M:    Michael Tretter <[email protected]>
 +R:    Pengutronix Kernel Team <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/isil,isl79987.yaml
 +F:    drivers/media/i2c/isl7998x.c
 +
  INVENSENSE ICM-426xx IMU DRIVER
  M:    Jean-Baptiste Maneyrol <[email protected]>
  L:    [email protected]
@@@ -10146,13 -10056,6 +10155,13 @@@ F: include/linux/iova.
  F:    include/linux/of_iommu.h
  F:    include/uapi/linux/iommu.h
  
 +IOSYS-MAP HELPERS
 +M:    Thomas Zimmermann <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    include/linux/iosys-map.h
 +
  IO_URING
  M:    Jens Axboe <[email protected]>
  R:    Pavel Begunkov <[email protected]>
@@@ -10172,7 -10075,6 +10181,7 @@@ M:   Corey Minyard <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  W:    http://openipmi.sourceforge.net/
 +T:    git https://github.com/cminyard/linux-ipmi.git for-next
  F:    Documentation/driver-api/ipmi.rst
  F:    Documentation/devicetree/bindings/ipmi/
  F:    drivers/char/ipmi/
@@@ -10406,7 -10308,7 +10415,7 @@@ M:   Mikhail Ulyanov <mikhail.ulyanov@cog
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    drivers/media/platform/rcar_jpu.c
 +F:    drivers/media/platform/renesas/rcar_jpu.c
  
  JSM Neo PCI based serial card
  L:    [email protected]
@@@ -10545,8 -10447,6 +10554,8 @@@ KERNEL REGRESSION
  M:    Thorsten Leemhuis <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/admin-guide/reporting-regressions.rst
 +F:    Documentation/process/handling-regressions.rst
  
  KERNEL SELFTEST FRAMEWORK
  M:    Shuah Khan <[email protected]>
@@@ -10654,8 -10554,8 +10663,8 @@@ F:   arch/riscv/kvm
  KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
  M:    Christian Borntraeger <[email protected]>
  M:    Janosch Frank <[email protected]>
 +M:    Claudio Imbrenda <[email protected]>
  R:    David Hildenbrand <[email protected]>
 -R:    Claudio Imbrenda <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -10752,14 -10652,6 +10761,14 @@@ F: include/linux/keyctl.
  F:    include/uapi/linux/keyctl.h
  F:    security/keys/
  
 +KEYS/KEYRINGS_INTEGRITY
 +M:    Jarkko Sakkinen <[email protected]>
 +M:    Mimi Zohar <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    security/integrity/platform_certs
 +
  KFENCE
  M:    Alexander Potapenko <[email protected]>
  M:    Marco Elver <[email protected]>
@@@ -10865,6 -10757,7 +10874,6 @@@ L7 BPF FRAMEWOR
  M:    John Fastabend <[email protected]>
  M:    Daniel Borkmann <[email protected]>
  M:    Jakub Sitnicki <[email protected]>
 -M:    Lorenz Bauer <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -10993,12 -10886,6 +11002,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    drivers/ata/pata_arasan_cf.c
  F:    include/linux/pata_arasan_cf_data.h
  
 +LIBATA PATA DRIVERS
 +R:    Sergey Shtylyov <[email protected]>
 +L:    [email protected]
 +F:    drivers/ata/ata_*.c
 +F:    drivers/ata/pata_*.c
 +
  LIBATA PATA FARADAY FTIDE010 AND GEMINI SATA BRIDGE DRIVERS
  M:    Linus Walleij <[email protected]>
  L:    [email protected]
@@@ -11229,17 -11116,12 +11238,17 @@@ F:        lib/list-test.
  LITEX PLATFORM
  M:    Karol Gugala <[email protected]>
  M:    Mateusz Holenko <[email protected]>
 +M:    Gabriel Somlo <[email protected]>
 +M:    Joel Stanley <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/*/litex,*.yaml
  F:    arch/openrisc/boot/dts/or1klitex.dts
 -F:    drivers/soc/litex/litex_soc_ctrl.c
 -F:    drivers/tty/serial/liteuart.c
  F:    include/linux/litex.h
 +F:    drivers/tty/serial/liteuart.c
 +F:    drivers/soc/litex/*
 +F:    drivers/net/ethernet/litex/*
 +F:    drivers/mmc/host/litex_mmc.c
 +N:    litex
  
  LIVE PATCHING
  M:    Josh Poimboeuf <[email protected]>
@@@ -11432,13 -11314,6 +11441,13 @@@ S: Maintaine
  W:    http://linux-test-project.github.io/
  T:    git git://github.com/linux-test-project/ltp.git
  
 +LYNX 28G SERDES PHY DRIVER
 +M:    Ioana Ciornei <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/phy/fsl,lynx-28g.yaml
 +F:    drivers/phy/freescale/phy-fsl-lynx-28g.c
 +
  LYNX PCS MODULE
  M:    Ioana Ciornei <[email protected]>
  L:    [email protected]
@@@ -11500,9 -11375,8 +11509,9 @@@ M:   Johannes Berg <johannes@sipsolutions
  L:    [email protected]
  S:    Maintained
  W:    https://wireless.wiki.kernel.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
 +Q:    https://patchwork.kernel.org/project/linux-wireless/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git
  F:    Documentation/networking/mac80211-injection.rst
  F:    Documentation/networking/mac80211_hwsim/mac80211_hwsim.rst
  F:    drivers/net/wireless/mac80211_hwsim.[ch]
@@@ -11786,7 -11660,7 +11795,7 @@@ F:   drivers/iio/proximity/mb1232.
  
  MAXIM MAX17040 FAMILY FUEL GAUGE DRIVERS
  R:    Iskren Chernev <[email protected]>
 -R:    Krzysztof Kozlowski <krz[email protected]>
 +R:    Krzysztof Kozlowski <krz[email protected]>
  R:    Marek Szyprowski <[email protected]>
  R:    Matheus Castello <[email protected]>
  L:    [email protected]
@@@ -11796,7 -11670,7 +11805,7 @@@ F:   drivers/power/supply/max17040_batter
  
  MAXIM MAX17042 FAMILY FUEL GAUGE DRIVERS
  R:    Hans de Goede <[email protected]>
 -R:    Krzysztof Kozlowski <krz[email protected]>
 +R:    Krzysztof Kozlowski <krz[email protected]>
  R:    Marek Szyprowski <[email protected]>
  R:    Sebastian Krzyszkowiak <[email protected]>
  R:    Purism Kernel Team <[email protected]>
@@@ -11826,18 -11700,11 +11835,18 @@@ F:        drivers/power/supply/max77650-charge
  F:    drivers/regulator/max77650-regulator.c
  F:    include/linux/mfd/max77650.h
  
 +MAXIM MAX77714 PMIC MFD DRIVER
 +M:    Luca Ceresoli <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mfd/maxim,max77714.yaml
 +F:    drivers/mfd/max77714.c
 +F:    include/linux/mfd/max77714.h
 +
  MAXIM MAX77802 PMIC REGULATOR DEVICE DRIVER
  M:    Javier Martinez Canillas <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/*/*max77802.txt
 +F:    Documentation/devicetree/bindings/*/*max77802.yaml
  F:    drivers/regulator/max77802-regulator.c
  F:    include/dt-bindings/*/*max77802.h
  
@@@ -11848,28 -11715,23 +11857,28 @@@ F:        Documentation/devicetree/bindings/po
  F:    drivers/power/supply/max77976_charger.c
  
  MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/devicetree/bindings/power/supply/maxim,max14577.yaml
 +F:    Documentation/devicetree/bindings/power/supply/maxim,max77693.yaml
  F:    drivers/power/supply/max14577_charger.c
  F:    drivers/power/supply/max77693_charger.c
  
  MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS BASED BOARDS
  M:    Chanwoo Choi <[email protected]>
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/devicetree/bindings/*/maxim,max14577.yaml
  F:    Documentation/devicetree/bindings/*/maxim,max77686.yaml
 +F:    Documentation/devicetree/bindings/*/maxim,max77693.yaml
 +F:    Documentation/devicetree/bindings/*/maxim,max77843.yaml
  F:    Documentation/devicetree/bindings/clock/maxim,max77686.txt
 -F:    Documentation/devicetree/bindings/mfd/max14577.txt
  F:    Documentation/devicetree/bindings/mfd/max77693.txt
 +F:    drivers/*/*max77843.c
  F:    drivers/*/max14577*.c
  F:    drivers/*/max77686*.c
  F:    drivers/*/max77693*.c
@@@ -11965,7 -11827,7 +11974,7 @@@ M:   Philipp Zabel <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/platform/imx-pxp.[ch]
 +F:    drivers/media/platform/nxp/imx-pxp.[ch]
  
  MEDIA DRIVERS FOR ASCOT2E
  M:    Sergey Kozlov <[email protected]>
@@@ -12030,10 -11892,10 +12039,10 @@@ L:        [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/admin-guide/media/imx7.rst
 +F:    Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
  F:    Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
 -F:    Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml
 +F:    drivers/media/platform/imx/imx-mipi-csis.c
  F:    drivers/staging/media/imx/imx7-media-csi.c
 -F:    drivers/staging/media/imx/imx7-mipi-csis.c
  
  MEDIA DRIVERS FOR HELENE
  M:    Abylay Ospan <[email protected]>
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt
 -F:    drivers/staging/media/tegra-vde/
 +F:    drivers/media/platform/nvidia/tegra-vde/
  
  MEDIA DRIVERS FOR RENESAS - CEU
  M:    Jacopo Mondi <[email protected]>
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/renesas,ceu.yaml
 -F:    drivers/media/platform/renesas-ceu.c
 +F:    drivers/media/platform/renesas/renesas-ceu.c
  F:    include/media/drv-intf/renesas-ceu.h
  
  MEDIA DRIVERS FOR RENESAS - DRIF
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/renesas,drif.yaml
 -F:    drivers/media/platform/rcar_drif.c
 +F:    drivers/media/platform/renesas/rcar_drif.c
  
  MEDIA DRIVERS FOR RENESAS - FCP
  M:    Laurent Pinchart <[email protected]>
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/renesas,fcp.yaml
 -F:    drivers/media/platform/rcar-fcp.c
 +F:    drivers/media/platform/renesas/rcar-fcp.c
  F:    include/media/rcar-fcp.h
  
  MEDIA DRIVERS FOR RENESAS - FDP1
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/renesas,fdp1.yaml
 -F:    drivers/media/platform/rcar_fdp1.c
 +F:    drivers/media/platform/renesas/rcar_fdp1.c
  
  MEDIA DRIVERS FOR RENESAS - VIN
  M:    Niklas Söderlund <[email protected]>
@@@ -12137,8 -11999,8 +12146,8 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/renesas,csi2.yaml
  F:    Documentation/devicetree/bindings/media/renesas,isp.yaml
  F:    Documentation/devicetree/bindings/media/renesas,vin.yaml
 -F:    drivers/media/platform/rcar-isp.c
 -F:    drivers/media/platform/rcar-vin/
 +F:    drivers/media/platform/renesas/rcar-isp.c
 +F:    drivers/media/platform/renesas/rcar-vin/
  
  MEDIA DRIVERS FOR RENESAS - VSP1
  M:    Laurent Pinchart <[email protected]>
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/renesas,vsp1.yaml
 -F:    drivers/media/platform/vsp1/
 +F:    drivers/media/platform/renesas/vsp1/
  
  MEDIA DRIVERS FOR ST STV0910 DEMODULATOR ICs
  L:    [email protected]
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml
 -F:    drivers/media/platform/stm32/stm32-dcmi.c
 +F:    drivers/media/platform/st/stm32/stm32-dcmi.c
  
  MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
  M:    Mauro Carvalho Chehab <[email protected]>
@@@ -12254,7 -12116,7 +12263,7 @@@ M:   Rick Chang <[email protected]
  M:    Bin Liu <[email protected]>
  S:    Supported
  F:    Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
 -F:    drivers/media/platform/mtk-jpeg/
 +F:    drivers/media/platform/mediatek/jpeg/
  
  MEDIATEK MDP DRIVER
  M:    Minghsiu Tsai <[email protected]>
@@@ -12262,8 -12124,8 +12271,8 @@@ M:   Houlong Wei <[email protected]
  M:    Andrew-CT Chen <[email protected]>
  S:    Supported
  F:    Documentation/devicetree/bindings/media/mediatek-mdp.txt
 -F:    drivers/media/platform/mtk-mdp/
 -F:    drivers/media/platform/mtk-vpu/
 +F:    drivers/media/platform/mediatek/mdp/
 +F:    drivers/media/platform/mediatek/vpu/
  
  MEDIATEK MEDIA DRIVER
  M:    Tiffany Lin <[email protected]>
@@@ -12271,8 -12133,8 +12280,8 @@@ M:   Andrew-CT Chen <andrew-ct.chen@media
  S:    Supported
  F:    Documentation/devicetree/bindings/media/mediatek-vcodec.txt
  F:    Documentation/devicetree/bindings/media/mediatek-vpu.txt
 -F:    drivers/media/platform/mtk-vcodec/
 -F:    drivers/media/platform/mtk-vpu/
 +F:    drivers/media/platform/mediatek/vcodec/
 +F:    drivers/media/platform/mediatek/vpu/
  
  MEDIATEK MMC/SD/SDIO DRIVER
  M:    Chaotian Jing <[email protected]>
@@@ -12288,7 -12150,6 +12297,7 @@@ R:   Shayne Chen <[email protected]
  R:    Sean Wang <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
  F:    drivers/net/wireless/mediatek/mt76/
  
  MEDIATEK MT7601U WIRELESS LAN DRIVER
@@@ -12544,16 -12405,15 +12553,16 @@@ F:        include/uapi/linux/membarrier.
  F:    kernel/sched/membarrier.c
  
  MEMBLOCK
 -M:    Mike Rapoport <rppt@linux.ibm.com>
 +M:    Mike Rapoport <rppt@kernel.org>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/core-api/boot-time-mm.rst
  F:    include/linux/memblock.h
  F:    mm/memblock.c
 +F:    tools/testing/memblock/
  
  MEMORY CONTROLLER DRIVERS
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl.git
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/amlogic,axg-ge2d.yaml
 -F:    drivers/media/platform/meson/ge2d/
 +F:    drivers/media/platform/amlogic/meson-ge2d/
  
  MESON NAND CONTROLLER DRIVER FOR AMLOGIC SOCS
  M:    Liang Yang <[email protected]>
  S:    Supported
  F:    sound/soc/atmel
  
 +MICROCHIP CSI2DC DRIVER
 +M:    Eugen Hristev <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/media/microchip,csi2dc.yaml
 +F:    drivers/media/platform/atmel/microchip-csi2dc.c
 +
  MICROCHIP ECC DRIVER
  M:    Tudor Ambarus <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/media/atmel,isc.yaml
  F:    Documentation/devicetree/bindings/media/microchip,xisc.yaml
 -F:    drivers/media/platform/atmel/atmel-isc-base.c
 -F:    drivers/media/platform/atmel/atmel-isc-regs.h
 -F:    drivers/media/platform/atmel/atmel-isc.h
 -F:    drivers/media/platform/atmel/atmel-sama5d2-isc.c
 -F:    drivers/media/platform/atmel/atmel-sama7g5-isc.c
 +F:    drivers/media/platform/atmel/atmel-isc*
 +F:    drivers/media/platform/atmel/atmel-sama*-isc*
  F:    include/linux/atmel-isc-media.h
  
  MICROCHIP ISI DRIVER
@@@ -13447,8 -13303,8 +13456,8 @@@ W:   http://www.iptables.org
  W:    http://www.nftables.org/
  Q:    http://patchwork.ozlabs.org/project/netfilter-devel/list/
  C:    irc://irc.libera.chat/netfilter
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next.git
  F:    include/linux/netfilter*
  F:    include/linux/netfilter/
  F:    include/net/netfilter/
@@@ -13505,7 -13361,6 +13514,7 @@@ F:   net/core/drop_monitor.
  NETWORKING DRIVERS
  M:    "David S. Miller" <[email protected]>
  M:    Jakub Kicinski <[email protected]>
 +M:    Paolo Abeni <[email protected]>
  L:    [email protected]
  S:    Maintained
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
@@@ -13528,10 -13383,9 +13537,10 @@@ NETWORKING DRIVERS (WIRELESS
  M:    Kalle Valo <[email protected]>
  L:    [email protected]
  S:    Maintained
 -Q:    http://patchwork.kernel.org/project/linux-wireless/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
 +W:    https://wireless.wiki.kernel.org/
 +Q:    https://patchwork.kernel.org/project/linux-wireless/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git
  F:    Documentation/devicetree/bindings/net/wireless/
  F:    drivers/net/wireless/
  
@@@ -13552,7 -13406,6 +13561,7 @@@ F:   tools/testing/selftests/drivers/net/
  NETWORKING [GENERAL]
  M:    "David S. Miller" <[email protected]>
  M:    Jakub Kicinski <[email protected]>
 +M:    Paolo Abeni <[email protected]>
  L:    [email protected]
  S:    Maintained
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  F:    arch/x86/net/*
 +F:    include/linux/ip.h
 +F:    include/linux/ipv6*
 +F:    include/net/fib*
  F:    include/net/ip*
 +F:    include/net/route.h
  F:    net/ipv4/
  F:    net/ipv6/
  
@@@ -13670,6 -13519,10 +13679,6 @@@ F:  include/net/tls.
  F:    include/uapi/linux/tls.h
  F:    net/tls/*
  
 -NETWORKING [WIRELESS]
 -L:    [email protected]
 -Q:    http://patchwork.kernel.org/project/linux-wireless/list/
 -
  NETXEN (1/10) GbE SUPPORT
  M:    Manish Chopra <[email protected]>
  M:    Rahul Verma <[email protected]>
@@@ -13696,7 -13549,7 +13705,7 @@@ F:   include/uapi/linux/nexthop.
  F:    net/ipv4/nexthop.c
  
  NFC SUBSYSTEM
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  L:    [email protected] (subscribers-only)
  L:    [email protected]
  S:    Maintained
@@@ -13717,7 -13570,7 +13726,7 @@@ F:   tools/testing/selftests/nci
  
  NFS, SUNRPC, AND LOCKD CLIENTS
  M:    Trond Myklebust <[email protected]>
 -M:    Anna Schumaker <anna[email protected]>
 +M:    Anna Schumaker <anna@kernel.org>
  L:    [email protected]
  S:    Maintained
  W:    http://client.linux-nfs.org
@@@ -13830,7 -13683,7 +13839,7 @@@ F:   scripts/nsdep
  NTB AMD DRIVER
  M:    Sanjay R Mehta <[email protected]>
  M:    Shyam Sundar S K <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Supported
  F:    drivers/ntb/hw/amd/
  
@@@ -13838,7 -13691,7 +13847,7 @@@ NTB DRIVER COR
  M:    Jon Mason <[email protected]>
  M:    Dave Jiang <[email protected]>
  M:    Allen Hubbe <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Supported
  W:    https://github.com/jonmason/ntb/wiki
  T:    git git://github.com/jonmason/ntb.git
@@@ -13850,13 -13703,13 +13859,13 @@@ F:        tools/testing/selftests/ntb
  
  NTB IDT DRIVER
  M:    Serge Semin <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Supported
  F:    drivers/ntb/hw/idt/
  
  NTB INTEL DRIVER
  M:    Dave Jiang <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Supported
  W:    https://github.com/davejiang/linux/wiki
  T:    git https://github.com/davejiang/linux.git
@@@ -14010,7 -13863,7 +14019,7 @@@ F:   Documentation/devicetree/bindings/re
  F:    drivers/regulator/pf8x00-regulator.c
  
  NXP PTN5150A CC LOGIC AND EXTCON DRIVER
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/extcon/extcon-ptn5150.yaml
@@@ -14223,7 -14076,7 +14232,7 @@@ M:   Laurent Pinchart <laurent.pinchart@i
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/ti,omap3isp.txt
 -F:    drivers/media/platform/omap3isp/
 +F:    drivers/media/platform/ti/omap3isp/
  F:    drivers/staging/media/omap4iss/
  
  OMAP MMC SUPPORT
@@@ -14331,12 -14184,6 +14340,12 @@@ M: Harald Welte <[email protected]
  S:    Maintained
  F:    drivers/char/pcmcia/cm4040_cs.*
  
 +OMNIVISION OG01A1B SENSOR DRIVER
 +M:    Shawn Tu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/media/i2c/og01a1b.c
 +
  OMNIVISION OV02A10 SENSOR DRIVER
  M:    Dongchun Zhu <[email protected]>
  L:    [email protected]
@@@ -14345,13 -14192,6 +14354,13 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
  F:    drivers/media/i2c/ov02a10.c
  
 +OMNIVISION OV08D10 SENSOR DRIVER
 +M:    Jimmy Su <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/ov08d10.c
 +
  OMNIVISION OV13858 SENSOR DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
@@@ -14548,7 -14388,6 +14557,7 @@@ M:   Rob Herring <[email protected]
  M:    Frank Rowand <[email protected]>
  L:    [email protected]
  S:    Maintained
 +C:    irc://irc.libera.chat/devicetree
  W:    http://www.devicetree.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git
  F:    Documentation/ABI/testing/sysfs-firmware-ofw
@@@ -14558,10 -14397,8 +14567,10 @@@ F: scripts/dtc
  
  OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
  M:    Rob Herring <[email protected]>
 +M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
  S:    Maintained
 +C:    irc://irc.libera.chat/devicetree
  Q:    http://patchwork.ozlabs.org/project/devicetree-bindings/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git
  F:    Documentation/devicetree/
@@@ -14748,9 -14585,8 +14757,9 @@@ F:   include/uapi/linux/ppdev.
  
  PARAVIRT_OPS INTERFACE
  M:    Juergen Gross <[email protected]>
 -M:    Deep Shah <[email protected]>
 -M:    "VMware, Inc." <[email protected]>
 +M:    Srivatsa S. Bhat (VMware) <[email protected]>
 +R:    Alexey Makhalov <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -14957,7 -14793,6 +14966,7 @@@ F:   drivers/pci/controller/mobiveil/pcie
  
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <[email protected]>
 +M:    Pali Rohár <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -15297,7 -15132,7 +15306,7 @@@ M:   Ingo Molnar <[email protected]
  M:    Arnaldo Carvalho de Melo <[email protected]>
  R:    Mark Rutland <[email protected]>
  R:    Alexander Shishkin <[email protected]>
 -R:    Jiri Olsa <jolsa@redhat.com>
 +R:    Jiri Olsa <jolsa@kernel.org>
  R:    Namhyung Kim <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -15452,13 -15287,11 +15461,13 @@@ F:        drivers/pinctrl/renesas
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <[email protected]>
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Sylwester Nawrocki <[email protected]>
 +R:    Alim Akhtar <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 +C:    irc://irc.libera.chat/linux-exynos
  Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung.git
  F:    Documentation/devicetree/bindings/pinctrl/samsung,pinctrl*yaml
@@@ -15478,6 -15311,16 +15487,16 @@@ M: Lakshmi Sowjanya D <lakshmi.sowjanya
  S:    Supported
  F:    drivers/pinctrl/pinctrl-thunderbay.c
  
+ PIN CONTROLLER - SUNPLUS / TIBBO
+ M:    Dvorkin Dmitry <[email protected]>
+ M:    Wells Lu <[email protected]>
+ L:    [email protected] (moderated for non-subscribers)
+ S:    Maintained
+ W:    https://sunplus.atlassian.net/wiki/spaces/doc/overview
+ F:    Documentation/devicetree/bindings/pinctrl/sunplus,*
+ F:    drivers/pinctrl/sunplus/
+ F:    include/dt-bindings/pinctrl/sppctl*.h
  PKTCDVD DRIVER
  M:    [email protected]
  S:    Orphan
@@@ -15680,7 -15523,6 +15699,7 @@@ F:   drivers/net/ppp/pptp.
  
  PRESSURE STALL INFORMATION (PSI)
  M:    Johannes Weiner <[email protected]>
 +M:    Suren Baghdasaryan <[email protected]>
  S:    Maintained
  F:    include/linux/psi*
  F:    kernel/sched/psi.c
@@@ -15716,7 -15558,6 +15735,7 @@@ M:   Iurii Zaikin <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git sysctl-next
  F:    fs/proc/proc_sysctl.c
  F:    include/linux/sysctl.h
  F:    kernel/sysctl-test.c
@@@ -15918,14 -15759,6 +15937,14 @@@ F: sound/soc/codecs/wcd-clsh-v2.
  F:    sound/soc/codecs/wsa881x.c
  F:    sound/soc/qcom/
  
 +QCOM EMBEDDED USB DEBUGGER (EUD)
 +M:    Souradeep Chowdhury <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-driver-eud
 +F:    Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml
 +F:    drivers/usb/misc/qcom_eud.c
 +
  QCOM IPA DRIVER
  M:    Alex Elder <[email protected]>
  L:    [email protected]
@@@ -16072,20 -15905,18 +16091,20 @@@ S:        Supporte
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
  F:    drivers/net/wireless/ath/ath10k/
 +F:    Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
  
  QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
  M:    Kalle Valo <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
 +F:    Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
  F:    drivers/net/wireless/ath/ath11k/
  
  QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
 -M:    [email protected]
 +M:    Toke Høiland-Jørgensen <[email protected]>
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
  F:    Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
  F:    drivers/net/wireless/ath/ath9k/
@@@ -16160,6 -15991,14 +16179,6 @@@ F:  Documentation/devicetree/bindings/mi
  F:    drivers/misc/fastrpc.c
  F:    include/uapi/misc/fastrpc.h
  
 -QUALCOMM GENERIC INTERFACE I2C DRIVER
 -M:    Akash Asthana <[email protected]>
 -M:    Mukesh Savaliya <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 -S:    Supported
 -F:    drivers/i2c/busses/i2c-qcom-geni.c
 -
  QUALCOMM HEXAGON ARCHITECTURE
  M:    Brian Cain <[email protected]>
  L:    [email protected]
@@@ -16231,8 -16070,8 +16250,8 @@@ F:   Documentation/devicetree/bindings/mt
  F:    drivers/mtd/nand/raw/qcom_nandc.c
  
  QUALCOMM RMNET DRIVER
 -M:    Subash Abhinov Kasiviswanathan <[email protected]>
 -M:    Sean Tranchetti <[email protected]>
 +M:    Subash Abhinov Kasiviswanathan <[email protected]>
 +M:    Sean Tranchetti <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst
@@@ -16258,10 -16097,11 +16277,10 @@@ F:        Documentation/devicetree/bindings/me
  F:    drivers/media/platform/qcom/venus/
  
  QUALCOMM WCN36XX WIRELESS DRIVER
 -M:    Kalle Valo <kvalo@kernel.org>
 +M:    Loic Poulain <loic.poulain@linaro.org>
  L:    [email protected]
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
 -T:    git git://github.com/KrasnikovEugene/wcn36xx.git
  F:    drivers/net/wireless/ath/wcn36xx/
  
  QUANTENNA QTNFMAC WIRELESS DRIVER
@@@ -16363,7 -16203,6 +16382,7 @@@ M:   Jason A. Donenfeld <[email protected]
  T:    git https://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git
  S:    Maintained
  F:    drivers/char/random.c
 +F:    drivers/virt/vmgenid.c
  
  RAPIDIO SUBSYSTEM
  M:    Matt Porter <[email protected]>
@@@ -16478,8 -16317,6 +16497,8 @@@ F:   tools/testing/selftests/resctrl
  
  READ-COPY UPDATE (RCU)
  M:    "Paul E. McKenney" <[email protected]>
 +M:    Frederic Weisbecker <[email protected]> (kernel/rcu/tree_nocb.h)
 +M:    Neeraj Upadhyay <[email protected]> (kernel/rcu/tasks.h)
  M:    Josh Triplett <[email protected]>
  R:    Steven Rostedt <[email protected]>
  R:    Mathieu Desnoyers <[email protected]>
@@@ -16527,10 -16364,10 +16546,10 @@@ F:        drivers/watchdog/realtek_otto_wdt.
  
  REALTEK RTL83xx SMI DSA ROUTER CHIPS
  M:    Linus Walleij <[email protected]>
 +M:    Alvin Šipraga <[email protected]>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/dsa/realtek-smi.txt
 -F:    drivers/net/dsa/realtek-smi*
 -F:    drivers/net/dsa/rtl83*
 +F:    Documentation/devicetree/bindings/net/dsa/realtek.yaml
 +F:    drivers/net/dsa/realtek/*
  
  REALTEK WIRELESS DRIVER (rtlwifi family)
  M:    Ping-Ke Shih <[email protected]>
@@@ -16646,14 -16483,6 +16665,14 @@@ F: Documentation/devicetree/bindings/i2
  F:    drivers/i2c/busses/i2c-rcar.c
  F:    drivers/i2c/busses/i2c-sh_mobile.c
  
 +RENESAS R-CAR SATA DRIVER
 +R:    Sergey Shtylyov <[email protected]>
 +S:    Supported
 +L:    [email protected]
 +L:    [email protected]
 +F:    Documentation/devicetree/bindings/ata/renesas,rcar-sata.yaml
 +F:    drivers/ata/sata_rcar.c
 +
  RENESAS R-CAR THERMAL DRIVERS
  M:    Niklas Söderlund <[email protected]>
  L:    [email protected]
@@@ -16722,9 -16551,8 +16741,9 @@@ M:   Johannes Berg <johannes@sipsolutions
  L:    [email protected]
  S:    Maintained
  W:    https://wireless.wiki.kernel.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
 +Q:    https://patchwork.kernel.org/project/linux-wireless/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git
  F:    Documentation/ABI/stable/sysfs-class-rfkill
  F:    Documentation/driver-api/rfkill.rst
  F:    include/linux/rfkill.h
@@@ -16752,15 -16580,6 +16771,15 @@@ S: Maintaine
  F:    drivers/mtd/nand/raw/r852.c
  F:    drivers/mtd/nand/raw/r852.h
  
 +RISC-V PMU DRIVERS
 +M:    Atish Patra <[email protected]>
 +R:    Anup Patel <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/perf/riscv_pmu.c
 +F:    drivers/perf/riscv_pmu_legacy.c
 +F:    drivers/perf/riscv_pmu_sbi.c
 +
  RISC-V ARCHITECTURE
  M:    Paul Walmsley <[email protected]>
  M:    Palmer Dabbelt <[email protected]>
@@@ -16775,10 -16594,8 +16794,10 @@@ K: risc
  
  RISC-V/MICROCHIP POLARFIRE SOC SUPPORT
  M:    Lewis Hanly <[email protected]>
 +M:    Conor Dooley <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    arch/riscv/boot/dts/microchip/
  F:    drivers/mailbox/mailbox-mpfs.c
  F:    drivers/soc/microchip/
  F:    include/soc/microchip/mpfs.h
@@@ -16806,7 -16623,8 +16825,7 @@@ F:   Documentation/devicetree/bindings/so
  F:    sound/soc/rockchip/rockchip_i2s_tdm.*
  
  ROCKCHIP ISP V1 DRIVER
 -M:    Helen Koike <[email protected]>
 -M:    Dafna Hirschfeld <[email protected]>
 +M:    Dafna Hirschfeld <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -16863,7 -16681,7 +16882,7 @@@ M:   Marek Vasut <marek.vasut+renesas@gma
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/mfd/bd9571mwv.txt
 +F:    Documentation/devicetree/bindings/mfd/rohm,bd9571mwv.yaml
  F:    drivers/gpio/gpio-bd9571mwv.c
  F:    drivers/mfd/bd9571mwv.c
  F:    drivers/regulator/bd9571mwv-regulator.c
@@@ -16999,8 -16817,8 +17018,8 @@@ F:   drivers/video/fbdev/savage
  S390
  M:    Heiko Carstens <[email protected]>
  M:    Vasily Gorbik <[email protected]>
 -M:    Christian Borntraeger <borntraeger@linux.ibm.com>
 -R:    Alexander Gordeev <agordeev@linux.ibm.com>
 +M:    Alexander Gordeev <agordeev@linux.ibm.com>
 +R:    Christian Borntraeger <borntraeger@linux.ibm.com>
  R:    Sven Schnelle <[email protected]>
  L:    [email protected]
  S:    Supported
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
  F:    Documentation/s390/vfio-ap.rst
 -F:    drivers/s390/crypto/vfio_ap_drv.c
 -F:    drivers/s390/crypto/vfio_ap_ops.c
 -F:    drivers/s390/crypto/vfio_ap_private.h
 +F:    drivers/s390/crypto/vfio_ap*
  
  S390 VFIO-CCW DRIVER
  M:    Eric Farman <[email protected]>
@@@ -17113,7 -16933,7 +17132,7 @@@ W:   http://www.ibm.com/developerworks/li
  F:    drivers/s390/scsi/zfcp_*
  
  S3C ADC BATTERY DRIVER
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  L:    [email protected]
  S:    Odd Fixes
  F:    drivers/power/supply/s3c_adc_battery.c
@@@ -17158,7 -16978,7 +17177,7 @@@ F:   Documentation/admin-guide/LSM/SafeSe
  F:    security/safesetid/
  
  SAMSUNG AUDIO (ASoC) DRIVERS
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
@@@ -17166,7 -16986,7 +17185,7 @@@ F:   Documentation/devicetree/bindings/so
  F:    sound/soc/samsung/
  
  SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -17201,7 -17021,7 +17220,7 @@@ S:   Maintaine
  F:    drivers/platform/x86/samsung-laptop.c
  
  SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVERS
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -17223,11 -17043,11 +17242,11 @@@ M:        Sylwester Nawrocki <sylvester.nawroc
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    drivers/media/platform/s3c-camif/
 +F:    drivers/media/platform/samsung/s3c-camif/
  F:    include/media/drv-intf/s3c_camif.h
  
  SAMSUNG S3FWRN5 NFC DRIVER
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Krzysztof Opasiak <[email protected]>
  L:    [email protected] (subscribers-only)
  S:    Maintained
@@@ -17249,7 -17069,7 +17268,7 @@@ S:   Supporte
  F:    drivers/media/i2c/s5k5baf.c
  
  SAMSUNG S5P Security SubSystem (SSS) DRIVER
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Vladimir Zapolskiy <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -17263,13 -17083,12 +17282,13 @@@ M:        Sylwester Nawrocki <s.nawrocki@samsu
  L:    [email protected]
  S:    Supported
  Q:    https://patchwork.linuxtv.org/project/linux-media/list/
 -F:    drivers/media/platform/exynos4-is/
 +F:    drivers/media/platform/samsung/exynos4-is/
  
  SAMSUNG SOC CLOCK DRIVERS
  M:    Sylwester Nawrocki <[email protected]>
  M:    Tomasz Figa <[email protected]>
  M:    Chanwoo Choi <[email protected]>
 +R:    Alim Akhtar <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk.git
@@@ -17284,12 -17103,12 +17303,12 @@@ F:        include/linux/clk/samsung.
  F:    include/linux/platform_data/clk-s3c2410.h
  
  SAMSUNG SPI DRIVERS
 -M:    Krzysztof Kozlowski <krz[email protected]>
 +M:    Krzysztof Kozlowski <krz[email protected]>
  M:    Andi Shyti <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/spi/spi-samsung.txt
 +F:    Documentation/devicetree/bindings/spi/samsung,spi*.yaml
  F:    drivers/spi/spi-s3c*
  F:    include/linux/platform_data/spi-s3c64xx.h
  F:    include/linux/spi/s3c24xx-fiq.h
@@@ -17301,12 -17120,11 +17320,12 @@@ S:        Supporte
  F:    drivers/net/ethernet/samsung/sxgbe/
  
  SAMSUNG THERMAL DRIVER
 -M:    Bartlomiej Zolnierkiewicz <[email protected]>
 +M:    Bartlomiej Zolnierkiewicz <[email protected]>
 +M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -S:    Supported
 -T:    git https://github.com/lmajewski/linux-samsung-thermal.git
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/thermal/samsung,exynos-thermal.yaml
  F:    drivers/thermal/samsung/
  
  SAMSUNG USB2 PHY DRIVER
@@@ -17698,7 -17516,7 +17717,7 @@@ F:   include/media/i2c/rj54n1cb0c.
  SH_VOU V4L2 OUTPUT DRIVER
  L:    [email protected]
  S:    Orphan
 -F:    drivers/media/platform/sh_vou.c
 +F:    drivers/media/platform/renesas/sh_vou.c
  F:    include/media/drv-intf/sh_vou.h
  
  SI2157 MEDIA DRIVER
@@@ -17907,21 -17725,6 +17926,21 @@@ S: Maintaine
  W:    http://www.winischhofer.at/linuxsisusbvga.shtml
  F:    drivers/usb/misc/sisusbvga/
  
 +SL28 CPLD MFD DRIVER
 +M:    Michael Walle <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml
 +F:    Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml
 +F:    Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml
 +F:    Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml
 +F:    Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml
 +F:    Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml
 +F:    drivers/gpio/gpio-sl28cpld.c
 +F:    drivers/hwmon/sl28cpld-hwmon.c
 +F:    drivers/irqchip/irq-sl28cpld.c
 +F:    drivers/pwm/pwm-sl28cpld.c
 +F:    drivers/watchdog/sl28cpld_wdt.c
 +
  SLAB ALLOCATOR
  M:    Christoph Lameter <[email protected]>
  M:    Pekka Enberg <[email protected]>
@@@ -17929,10 -17732,8 +17948,10 @@@ M: David Rientjes <[email protected]
  M:    Joonsoo Kim <[email protected]>
  M:    Andrew Morton <[email protected]>
  M:    Vlastimil Babka <[email protected]>
 +R:    Roman Gushchin <[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
  F:    include/linux/sl?b*.h
  F:    mm/sl?b*
  
@@@ -18470,8 -18271,7 +18489,8 @@@ F:   Documentation/devicetree/bindings/ii
  F:    drivers/iio/imu/st_lsm6dsx/
  
  ST MIPID02 CSI-2 TO PARALLEL BRIDGE DRIVER
 -M:    Mickael Guene <[email protected]>
 +M:    Benjamin Mugnier <[email protected]>
 +M:    Sylvain Petinot <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -18641,7 -18441,7 +18660,7 @@@ F:   Documentation/devicetree/bindings/so
  F:    sound/soc/sti/
  
  STI CEC DRIVER
 -M:    Benjamin Gaignard <[email protected]>
 +M:    Alain Volmat <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/stih-cec.txt
  F:    drivers/media/cec/platform/sti/
@@@ -18710,13 -18510,6 +18729,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/rtc/sunplus,sp7021-rtc.yaml
  F:    drivers/rtc/rtc-sunplus.c
  
 +SUNPLUS SPI CONTROLLER INTERFACE DRIVER
 +M:    Li-hao Kuo <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/spi-sunplus-sp7021.yaml
 +F:    drivers/spi/spi-sunplus-sp7021.c
 +
  SUPERH
  M:    Yoshinori Sato <[email protected]>
  M:    Rich Felker <[email protected]>
@@@ -18886,7 -18679,6 +18905,7 @@@ SYNOPSYS DESIGNWARE I2C DRIVE
  M:    Jarkko Nikula <[email protected]>
  R:    Andy Shevchenko <[email protected]>
  R:    Mika Westerberg <[email protected]>
 +R:    Jan Dabros <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/i2c/busses/i2c-designware-*
@@@ -19269,7 -19061,6 +19288,7 @@@ TEXAS INSTRUMENTS ASoC DRIVER
  M:    Peter Ujfalusi <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
  F:    sound/soc/ti/
  
  TEXAS INSTRUMENTS' DAC7612 DAC DRIVER
@@@ -19450,7 -19241,7 +19469,7 @@@ S:   Maintaine
  W:    https://linuxtv.org
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
 -F:    drivers/media/platform/am437x/
 +F:    drivers/media/platform/ti/am437x/
  
  TI BANDGAP AND THERMAL DRIVER
  M:    Eduardo Valentin <[email protected]>
@@@ -19509,7 -19300,7 +19528,7 @@@ S:   Maintaine
  W:    https://linuxtv.org
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
 -F:    drivers/media/platform/davinci/
 +F:    drivers/media/platform/ti/davinci/
  F:    include/media/davinci/
  
  TI ENHANCED QUADRATURE ENCODER PULSE (eQEP) DRIVER
@@@ -19595,8 -19386,7 +19614,8 @@@ W:   http://linuxtv.org
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  F:    Documentation/devicetree/bindings/media/ti,cal.yaml
  F:    Documentation/devicetree/bindings/media/ti,vpe.yaml
 -F:    drivers/media/platform/ti-vpe/
 +F:    drivers/media/platform/ti/cal/
 +F:    drivers/media/platform/ti/vpe/
  
  TI WILINK WIRELESS DRIVERS
  L:    [email protected]
@@@ -19667,15 -19457,6 +19686,15 @@@ S: Maintaine
  F:    Documentation/hwmon/tmp401.rst
  F:    drivers/hwmon/tmp401.c
  
 +TMP464 HARDWARE MONITOR DRIVER
 +M:    Agathe Porte <[email protected]>
 +M:    Guenter Roeck <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/ti,tmp464.yaml
 +F:    Documentation/hwmon/tmp464.rst
 +F:    drivers/hwmon/tmp464.c
 +
  TMP513 HARDWARE MONITOR DRIVER
  M:    Eric Tremblay <[email protected]>
  L:    [email protected]
@@@ -19814,14 -19595,6 +19833,14 @@@ F: Documentation/trace/timerlat-tracer.
  F:    Documentation/trace/hwlat_detector.rst
  F:    arch/*/kernel/trace.c
  
 +Real-time Linux Analysis (RTLA) tools
 +M:    Daniel Bristot de Oliveira <[email protected]>
 +M:    Steven Rostedt <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/tools/rtla/
 +F:    tools/tracing/rtla/
 +
  TRADITIONAL CHINESE DOCUMENTATION
  M:    Hu Haowen <[email protected]>
  L:    [email protected]
@@@ -19915,11 -19688,6 +19934,11 @@@ W: http://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/pci/tw686x/
  
 +U-BOOT ENVIRONMENT VARIABLES
 +M:    Rafał Miłecki <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
 +
  UACCE ACCELERATOR FRAMEWORK
  M:    Zhangfei Gao <[email protected]>
  M:    Zhou Wang <[email protected]>
@@@ -20022,7 -19790,6 +20041,7 @@@ R:   Alim Akhtar <[email protected]
  R:    Avri Altman <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/devicetree/bindings/ufs/
  F:    Documentation/scsi/ufs.rst
  F:    drivers/scsi/ufs/
  
  S:    Maintained
  F:    drivers/vfio/fsl-mc/
  
 +VFIO HISILICON PCI DRIVER
 +M:    Longfang Liu <[email protected]>
 +M:    Shameer Kolothum <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/vfio/pci/hisilicon/
 +
  VFIO MEDIATED DEVICE DRIVERS
  M:    Kirti Wankhede <[email protected]>
  L:    [email protected]
@@@ -20513,28 -20273,12 +20532,28 @@@ F:        drivers/vfio/mdev
  F:    include/linux/mdev.h
  F:    samples/vfio-mdev/
  
 +VFIO PCI DEVICE SPECIFIC DRIVERS
 +R:    Jason Gunthorpe <[email protected]>
 +R:    Yishai Hadas <[email protected]>
 +R:    Shameer Kolothum <[email protected]>
 +R:    Kevin Tian <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +P:    Documentation/driver-api/vfio-pci-device-specific-driver-acceptance.rst
 +F:    drivers/vfio/pci/*/
 +
  VFIO PLATFORM DRIVER
  M:    Eric Auger <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/vfio/platform/
  
 +VFIO MLX5 PCI DRIVER
 +M:    Yishai Hadas <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/vfio/pci/mlx5/
 +
  VGA_SWITCHEROO
  R:    Lukas Wunner <[email protected]>
  S:    Maintained
@@@ -20598,8 -20342,8 +20617,8 @@@ F:   drivers/media/common/videobuf2/
  F:    include/media/videobuf2-*
  
  VIMC VIRTUAL MEDIA CONTROLLER DRIVER
 -M:    Helen Koike <[email protected]>
 -R:    Shuah Khan <[email protected]>
 +M:    Shuah Khan <[email protected]>
 +R:    Kieran Bingham <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
@@@ -20854,33 -20598,30 +20873,33 @@@ F:        tools/testing/vsock
  
  VMWARE BALLOON DRIVER
  M:    Nadav Amit <[email protected]>
 -M:    "VMware, Inc." <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/misc/vmw_balloon.c
  
  VMWARE HYPERVISOR INTERFACE
 -M:    Deep Shah <[email protected]>
 -M:    "VMware, Inc." <[email protected]>
 +M:    Srivatsa S. Bhat (VMware) <[email protected]>
 +M:    Alexey Makhalov <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[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/vmware
  F:    arch/x86/include/asm/vmware.h
  F:    arch/x86/kernel/cpu/vmware.c
  
  VMWARE PVRDMA DRIVER
  M:    Bryan Tan <[email protected]>
  M:    Vishnu Dasa <[email protected]>
 -M:    VMware PV-Drivers <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/infiniband/hw/vmw_pvrdma/
  
  VMware PVSCSI driver
  M:    Vishal Bhakta <[email protected]>
 -M:    VMware PV-Drivers <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/scsi/vmw_pvscsi.c
@@@ -20888,7 -20629,7 +20907,7 @@@ F:   drivers/scsi/vmw_pvscsi.
  
  VMWARE VIRTUAL PTP CLOCK DRIVER
  M:    Vivek Thampi <[email protected]>
 -M:    "VMware, Inc." <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/ptp/ptp_vmw.c
  VMWARE VMCI DRIVER
  M:    Jorgen Hansen <[email protected]>
  M:    Vishnu Dasa <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
 -L:    [email protected] (private)
  S:    Maintained
  F:    drivers/misc/vmw_vmci/
  
  VMWARE VMMOUSE SUBDRIVER
 -M:    "VMware Graphics" <[email protected]>
 -M:    "VMware, Inc." <[email protected]>
 +M:    Zack Rusin <[email protected]>
 +R:    VMware Graphics Reviewers <[email protected]>
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/input/mouse/vmmouse.c
@@@ -20912,7 -20652,7 +20931,7 @@@ F:   drivers/input/mouse/vmmouse.
  
  VMWARE VMXNET3 ETHERNET DRIVER
  M:    Ronak Doshi <[email protected]>
 -M:    [email protected]
 +R:    VMware PV-Drivers Reviewers <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/vmxnet3/
  S:    Maintained
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/tuners/tuner-xc2028.*
 +F:    drivers/media/tuners/xc2028.*
  
  XDP (eXpress Data Path)
  M:    Alexei Starovoitov <[email protected]>
@@@ -21508,11 -21248,6 +21527,11 @@@ T: git https://github.com/Xilinx/linux-
  F:    Documentation/devicetree/bindings/phy/xlnx,zynqmp-psgtr.yaml
  F:    drivers/phy/xilinx/phy-zynqmp.c
  
 +XILINX ZYNQMP SHA3 DRIVER
 +M:    Harsha <[email protected]>
 +S:    Maintained
 +F:    drivers/crypto/xilinx/zynqmp-sha.c
 +
  XILINX EVENT MANAGEMENT DRIVER
  M:    Abhyuday Godhasara <[email protected]>
  S:    Maintained
@@@ -21530,6 -21265,7 +21549,6 @@@ M:   George Cherian <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.marvell.com
 -F:    Documentation/devicetree/bindings/i2c/i2c-xlp9xx.txt
  F:    drivers/i2c/busses/i2c-xlp9xx.c
  
  XRA1403 GPIO EXPANDER
@@@ -21692,6 -21428,7 +21711,6 @@@ THE RES
  M:    Linus Torvalds <[email protected]>
  L:    [email protected]
  S:    Buried alive in reporters
 -Q:    http://patchwork.kernel.org/project/LKML/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
  F:    *
  F:    */
index ac1e400bbbac559fd97a76c812c4c758062bb74d,042ec2494698a95581a83101fa5a54c34f670f47..8f4d89806fcba4ea61a83c71817dc764826a1523
@@@ -29,13 -29,26 +29,27 @@@ config PINCTRL_BCM283
        help
           Say Y here to enable the Broadcom BCM2835 GPIO driver.
  
+ config PINCTRL_BCM4908
+       tristate "Broadcom BCM4908 pinmux driver"
+       depends on OF && (ARCH_BCM4908 || COMPILE_TEST)
+       select PINMUX
+       select PINCONF
+       select GENERIC_PINCONF
+       select GENERIC_PINCTRL_GROUPS
+       select GENERIC_PINMUX_FUNCTIONS
+       default ARCH_BCM4908
+       help
+         Driver for BCM4908 family SoCs with integrated pin controller.
+         If compiled as module it will be called pinctrl-bcm4908.
  config PINCTRL_BCM63XX
        bool
        select PINMUX
        select PINCONF
        select GENERIC_PINCONF
        select GPIOLIB
 +      select REGMAP
        select GPIO_REGMAP
  
  config PINCTRL_BCM6318
index 1cc660e6458eb627866d16c91a2c9337ac816188,ceee6c65dbc11c8c3481591614ce3b5eb25d7d09..f89c9fcd4e1b2ad03caebed91cdf1cf4495ddc9d
@@@ -32,6 -32,7 +32,7 @@@
  #define BYT_VAL_REG           0x008
  #define BYT_DFT_REG           0x00c
  #define BYT_INT_STAT_REG      0x800
+ #define BYT_DIRECT_IRQ_REG    0x980
  #define BYT_DEBOUNCE_REG      0x9d0
  
  /* BYT_CONF0_REG register bits */
@@@ -443,9 -444,6 +444,9 @@@ static const unsigned int byt_sus_pcu_s
  static const unsigned int byt_sus_pcu_spi_mode_values[] = { 0 };
  static const unsigned int byt_sus_pcu_spi_gpio_mode_values[] = { 1 };
  
 +static const unsigned int byt_sus_pmu_clk1_pins[] = { 5 };
 +static const unsigned int byt_sus_pmu_clk2_pins[] = { 6 };
 +
  static const struct intel_pingroup byt_sus_groups[] = {
        PIN_GROUP("usb_oc_grp", byt_sus_usb_over_current_pins, byt_sus_usb_over_current_mode_values),
        PIN_GROUP("usb_ulpi_grp", byt_sus_usb_ulpi_pins, byt_sus_usb_ulpi_mode_values),
        PIN_GROUP("usb_oc_grp_gpio", byt_sus_usb_over_current_pins, byt_sus_usb_over_current_gpio_mode_values),
        PIN_GROUP("usb_ulpi_grp_gpio", byt_sus_usb_ulpi_pins, byt_sus_usb_ulpi_gpio_mode_values),
        PIN_GROUP("pcu_spi_grp_gpio", byt_sus_pcu_spi_pins, byt_sus_pcu_spi_gpio_mode_values),
 +      PIN_GROUP("pmu_clk1_grp", byt_sus_pmu_clk1_pins, 1),
 +      PIN_GROUP("pmu_clk2_grp", byt_sus_pmu_clk2_pins, 1),
  };
  
  static const char * const byt_sus_usb_groups[] = {
        "usb_oc_grp", "usb_ulpi_grp",
  };
  static const char * const byt_sus_spi_groups[] = { "pcu_spi_grp" };
 +static const char * const byt_sus_pmu_clk_groups[] = {
 +      "pmu_clk1_grp", "pmu_clk2_grp",
 +};
  static const char * const byt_sus_gpio_groups[] = {
        "usb_oc_grp_gpio", "usb_ulpi_grp_gpio", "pcu_spi_grp_gpio",
 +      "pmu_clk1_grp", "pmu_clk2_grp",
  };
  
  static const struct intel_function byt_sus_functions[] = {
        FUNCTION("usb", byt_sus_usb_groups),
        FUNCTION("spi", byt_sus_spi_groups),
        FUNCTION("gpio", byt_sus_gpio_groups),
 +      FUNCTION("pmu_clk", byt_sus_pmu_clk_groups),
  };
  
  static const struct intel_community byt_sus_communities[] = {
@@@ -1475,6 -1466,51 +1476,51 @@@ static void byt_gpio_irq_handler(struc
        chip->irq_eoi(data);
  }
  
+ static bool byt_direct_irq_sanity_check(struct intel_pinctrl *vg, int pin, u32 conf0)
+ {
+       int direct_irq, ioapic_direct_irq_base;
+       u8 *match, direct_irq_mux[16];
+       u32 trig;
+       memcpy_fromio(direct_irq_mux, vg->communities->pad_regs + BYT_DIRECT_IRQ_REG,
+                     sizeof(direct_irq_mux));
+       match = memchr(direct_irq_mux, pin, sizeof(direct_irq_mux));
+       if (!match) {
+               dev_warn(vg->dev, FW_BUG "pin %i: direct_irq_en set but no IRQ assigned, clearing\n", pin);
+               return false;
+       }
+       direct_irq = match - direct_irq_mux;
+       /* Base IO-APIC pin numbers come from atom-e3800-family-datasheet.pdf */
+       ioapic_direct_irq_base = (vg->communities->npins == BYT_NGPIO_SCORE) ? 51 : 67;
+       dev_dbg(vg->dev, "Pin %i: uses direct IRQ %d (IO-APIC %d)\n", pin,
+               direct_irq, direct_irq + ioapic_direct_irq_base);
+       /*
+        * Testing has shown that the way direct IRQs work is that the combination of the
+        * direct-irq-en flag and the direct IRQ mux connect the output of the GPIO's IRQ
+        * trigger block, which normally sets the status flag in the IRQ status reg at
+        * 0x800, to one of the IO-APIC pins according to the mux registers.
+        *
+        * This means that:
+        * 1. The TRIG_MASK bits must be set to configure the GPIO's IRQ trigger block
+        * 2. The TRIG_LVL bit *must* be set, so that the GPIO's input value is directly
+        *    passed (1:1 or inverted) to the IO-APIC pin, if TRIG_LVL is not set,
+        *    selecting edge mode operation then on the first edge the IO-APIC pin goes
+        *    high, but since no write-to-clear write will be done to the IRQ status reg
+        *    at 0x800, the detected edge condition will never get cleared.
+        */
+       trig = conf0 & BYT_TRIG_MASK;
+       if (trig != (BYT_TRIG_POS | BYT_TRIG_LVL) &&
+           trig != (BYT_TRIG_NEG | BYT_TRIG_LVL)) {
+               dev_warn(vg->dev, FW_BUG "pin %i: direct_irq_en set without trigger (conf0: %xh), clearing\n",
+                        pin, conf0);
+               return false;
+       }
+       return true;
+ }
  static void byt_init_irq_valid_mask(struct gpio_chip *chip,
                                    unsigned long *valid_mask,
                                    unsigned int ngpios)
  
                value = readl(reg);
                if (value & BYT_DIRECT_IRQ_EN) {
-                       clear_bit(i, valid_mask);
-                       dev_dbg(vg->dev, "excluding GPIO %d from IRQ domain\n", i);
+                       if (byt_direct_irq_sanity_check(vg, i, value)) {
+                               clear_bit(i, valid_mask);
+                       } else {
+                               value &= ~(BYT_DIRECT_IRQ_EN | BYT_TRIG_POS |
+                                          BYT_TRIG_NEG | BYT_TRIG_LVL);
+                               writel(value, reg);
+                       }
                } else if ((value & BYT_PIN_MUX) == byt_get_gpio_mux(vg, i)) {
                        byt_gpio_clear_triggering(vg, i);
                        dev_dbg(vg->dev, "disabling GPIO %d\n", i);
index ba536fd4d67405f141cf1e6ca42fadf32eb0f117,c3e2e052ca29bfb805ed26cba473ccee6e29bb09..9557fac5d11c56850b1f748401de73239cb59c92
@@@ -78,6 -78,7 +78,6 @@@ struct npcm7xx_gpio 
        struct gpio_chip        gc;
        int                     irqbase;
        int                     irq;
 -      void                    *priv;
        struct irq_chip         irq_chip;
        u32                     pinctrl_id;
        int (*direction_input)(struct gpio_chip *chip, unsigned offset);
@@@ -216,7 -217,7 +216,7 @@@ static void npcmgpio_irq_handler(struc
        struct gpio_chip *gc;
        struct irq_chip *chip;
        struct npcm7xx_gpio *bank;
--      u32 sts, en, bit;
++      unsigned long sts, en, bit;
  
        gc = irq_desc_get_handler_data(desc);
        bank = gpiochip_get_data(gc);
        chained_irq_enter(chip, desc);
        sts = ioread32(bank->base + NPCM7XX_GP_N_EVST);
        en  = ioread32(bank->base + NPCM7XX_GP_N_EVEN);
-       dev_dbg(bank->gc.parent, "==> got irq sts %.8x %.8x\n", sts,
 -      dev_dbg(chip->parent_device, "==> got irq sts %.8x %.8x\n", sts,
++      dev_dbg(bank->gc.parent, "==> got irq sts %.8lx %.8lx\n", sts,
                en);
  
        sts &= en;
--      for_each_set_bit(bit, (const void *)&sts, NPCM7XX_GPIO_PER_BANK)
++      for_each_set_bit(bit, &sts, NPCM7XX_GPIO_PER_BANK)
                generic_handle_domain_irq(gc->irq.domain, bit);
        chained_irq_exit(chip, desc);
  }
@@@ -240,33 -241,33 +240,33 @@@ static int npcmgpio_set_irq_type(struc
                gpiochip_get_data(irq_data_get_irq_chip_data(d));
        unsigned int gpio = BIT(d->hwirq);
  
 -      dev_dbg(d->chip->parent_device, "setirqtype: %u.%u = %u\n", gpio,
 +      dev_dbg(bank->gc.parent, "setirqtype: %u.%u = %u\n", gpio,
                d->irq, type);
        switch (type) {
        case IRQ_TYPE_EDGE_RISING:
 -              dev_dbg(d->chip->parent_device, "edge.rising\n");
 +              dev_dbg(bank->gc.parent, "edge.rising\n");
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_EVBE, gpio);
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        case IRQ_TYPE_EDGE_FALLING:
 -              dev_dbg(d->chip->parent_device, "edge.falling\n");
 +              dev_dbg(bank->gc.parent, "edge.falling\n");
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_EVBE, gpio);
                npcm_gpio_set(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        case IRQ_TYPE_EDGE_BOTH:
 -              dev_dbg(d->chip->parent_device, "edge.both\n");
 +              dev_dbg(bank->gc.parent, "edge.both\n");
                npcm_gpio_set(&bank->gc, bank->base + NPCM7XX_GP_N_EVBE, gpio);
                break;
        case IRQ_TYPE_LEVEL_LOW:
 -              dev_dbg(d->chip->parent_device, "level.low\n");
 +              dev_dbg(bank->gc.parent, "level.low\n");
                npcm_gpio_set(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        case IRQ_TYPE_LEVEL_HIGH:
 -              dev_dbg(d->chip->parent_device, "level.high\n");
 +              dev_dbg(bank->gc.parent, "level.high\n");
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        default:
 -              dev_dbg(d->chip->parent_device, "invalid irq type\n");
 +              dev_dbg(bank->gc.parent, "invalid irq type\n");
                return -EINVAL;
        }
  
@@@ -288,7 -289,7 +288,7 @@@ static void npcmgpio_irq_ack(struct irq
                gpiochip_get_data(irq_data_get_irq_chip_data(d));
        unsigned int gpio = d->hwirq;
  
 -      dev_dbg(d->chip->parent_device, "irq_ack: %u.%u\n", gpio, d->irq);
 +      dev_dbg(bank->gc.parent, "irq_ack: %u.%u\n", gpio, d->irq);
        iowrite32(BIT(gpio), bank->base + NPCM7XX_GP_N_EVST);
  }
  
@@@ -300,7 -301,7 +300,7 @@@ static void npcmgpio_irq_mask(struct ir
        unsigned int gpio = d->hwirq;
  
        /* Clear events */
 -      dev_dbg(d->chip->parent_device, "irq_mask: %u.%u\n", gpio, d->irq);
 +      dev_dbg(bank->gc.parent, "irq_mask: %u.%u\n", gpio, d->irq);
        iowrite32(BIT(gpio), bank->base + NPCM7XX_GP_N_EVENC);
  }
  
@@@ -312,7 -313,7 +312,7 @@@ static void npcmgpio_irq_unmask(struct 
        unsigned int gpio = d->hwirq;
  
        /* Enable events */
 -      dev_dbg(d->chip->parent_device, "irq_unmask: %u.%u\n", gpio, d->irq);
 +      dev_dbg(bank->gc.parent, "irq_unmask: %u.%u\n", gpio, d->irq);
        iowrite32(BIT(gpio), bank->base + NPCM7XX_GP_N_EVENS);
  }
  
@@@ -322,7 -323,7 +322,7 @@@ static unsigned int npcmgpio_irq_startu
        unsigned int gpio = d->hwirq;
  
        /* active-high, input, clear interrupt, enable interrupt */
 -      dev_dbg(d->chip->parent_device, "startup: %u.%u\n", gpio, d->irq);
 +      dev_dbg(gc->parent, "startup: %u.%u\n", gpio, d->irq);
        npcmgpio_direction_input(gc, gpio);
        npcmgpio_irq_ack(d);
        npcmgpio_irq_unmask(d);
@@@ -894,7 -895,7 +894,7 @@@ static struct npcm7xx_func npcm7xx_func
  };
  
  #define NPCM7XX_PINCFG(a, b, c, d, e, f, g, h, i, j, k) \
-       [a] { .fn0 = fn_ ## b, .reg0 = NPCM7XX_GCR_ ## c, .bit0 = d, \
+       [a] { .fn0 = fn_ ## b, .reg0 = NPCM7XX_GCR_ ## c, .bit0 = d, \
                        .fn1 = fn_ ## e, .reg1 = NPCM7XX_GCR_ ## f, .bit1 = g, \
                        .fn2 = fn_ ## h, .reg2 = NPCM7XX_GCR_ ## i, .bit2 = j, \
                        .flag = k }
  #define DRIVE_STRENGTH_HI_SHIFT               12
  #define DRIVE_STRENGTH_MASK           0x0000FF00
  
- #define DS(lo, hi)    (((lo) << DRIVE_STRENGTH_LO_SHIFT) | \
+ #define DSTR(lo, hi)  (((lo) << DRIVE_STRENGTH_LO_SHIFT) | \
                         ((hi) << DRIVE_STRENGTH_HI_SHIFT))
  #define DSLO(x)               (((x) >> DRIVE_STRENGTH_LO_SHIFT) & 0xF)
  #define DSHI(x)               (((x) >> DRIVE_STRENGTH_HI_SHIFT) & 0xF)
@@@ -924,31 -925,31 +924,31 @@@ struct npcm7xx_pincfg 
  static const struct npcm7xx_pincfg pincfg[] = {
        /*              PIN       FUNCTION 1               FUNCTION 2             FUNCTION 3        FLAGS */
        NPCM7XX_PINCFG(0,        iox1, MFSEL1, 30,        none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(1,        iox1, MFSEL1, 30,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(2,        iox1, MFSEL1, 30,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
+       NPCM7XX_PINCFG(1,        iox1, MFSEL1, 30,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(2,        iox1, MFSEL1, 30,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
        NPCM7XX_PINCFG(3,        iox1, MFSEL1, 30,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(4,        iox2, MFSEL3, 14,       smb1d, I2CSEGSEL, 7,   none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(5,        iox2, MFSEL3, 14,       smb1d, I2CSEGSEL, 7,   none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(6,        iox2, MFSEL3, 14,       smb2d, I2CSEGSEL, 10,  none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(7,        iox2, MFSEL3, 14,       smb2d, I2CSEGSEL, 10,  none, NONE, 0,       SLEW),
-       NPCM7XX_PINCFG(8,      lkgpo1, FLOCKR1, 4,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(9,      lkgpo2, FLOCKR1, 8,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(10,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(11,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
+       NPCM7XX_PINCFG(8,      lkgpo1, FLOCKR1, 4,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(9,      lkgpo2, FLOCKR1, 8,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(10,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(11,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
        NPCM7XX_PINCFG(12,       gspi, MFSEL1, 24,       smb5b, I2CSEGSEL, 19,  none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(13,       gspi, MFSEL1, 24,       smb5b, I2CSEGSEL, 19,  none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(14,       gspi, MFSEL1, 24,       smb5c, I2CSEGSEL, 20,  none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(15,       gspi, MFSEL1, 24,       smb5c, I2CSEGSEL, 20,  none, NONE, 0,       SLEW),
-       NPCM7XX_PINCFG(16,     lkgpo0, FLOCKR1, 0,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(17,      pspi2, MFSEL3, 13,     smb4den, I2CSEGSEL, 23,  none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(18,      pspi2, MFSEL3, 13,       smb4b, I2CSEGSEL, 14,  none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(19,      pspi2, MFSEL3, 13,       smb4b, I2CSEGSEL, 14,  none, NONE, 0,       DS(8, 12)),
+       NPCM7XX_PINCFG(16,     lkgpo0, FLOCKR1, 0,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(17,      pspi2, MFSEL3, 13,     smb4den, I2CSEGSEL, 23,  none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(18,      pspi2, MFSEL3, 13,       smb4b, I2CSEGSEL, 14,  none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(19,      pspi2, MFSEL3, 13,       smb4b, I2CSEGSEL, 14,  none, NONE, 0,       DSTR(8, 12)),
        NPCM7XX_PINCFG(20,      smb4c, I2CSEGSEL, 15,    smb15, MFSEL3, 8,      none, NONE, 0,       0),
        NPCM7XX_PINCFG(21,      smb4c, I2CSEGSEL, 15,    smb15, MFSEL3, 8,      none, NONE, 0,       0),
        NPCM7XX_PINCFG(22,      smb4d, I2CSEGSEL, 16,    smb14, MFSEL3, 7,      none, NONE, 0,       0),
        NPCM7XX_PINCFG(23,      smb4d, I2CSEGSEL, 16,    smb14, MFSEL3, 7,      none, NONE, 0,       0),
-       NPCM7XX_PINCFG(24,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(25,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
+       NPCM7XX_PINCFG(24,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(25,       ioxh, MFSEL3, 18,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
        NPCM7XX_PINCFG(26,       smb5, MFSEL1, 2,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(27,       smb5, MFSEL1, 2,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(28,       smb4, MFSEL1, 1,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(39,      smb3b, I2CSEGSEL, 11,     none, NONE, 0,        none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(40,      smb3b, I2CSEGSEL, 11,     none, NONE, 0,        none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(41,  bmcuart0a, MFSEL1, 9,         none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(42,  bmcuart0a, MFSEL1, 9,         none, NONE, 0,        none, NONE, 0,       DS(2, 4) | GPO),
+       NPCM7XX_PINCFG(42,  bmcuart0a, MFSEL1, 9,         none, NONE, 0,        none, NONE, 0,       DSTR(2, 4) | GPO),
        NPCM7XX_PINCFG(43,      uart1, MFSEL1, 10,       jtag2, MFSEL4, 0,  bmcuart1, MFSEL3, 24,    0),
        NPCM7XX_PINCFG(44,      uart1, MFSEL1, 10,       jtag2, MFSEL4, 0,  bmcuart1, MFSEL3, 24,    0),
        NPCM7XX_PINCFG(45,      uart1, MFSEL1, 10,       jtag2, MFSEL4, 0,      none, NONE, 0,       0),
-       NPCM7XX_PINCFG(46,      uart1, MFSEL1, 10,       jtag2, MFSEL4, 0,      none, NONE, 0,       DS(2, 8)),
-       NPCM7XX_PINCFG(47,      uart1, MFSEL1, 10,       jtag2, MFSEL4, 0,      none, NONE, 0,       DS(2, 8)),
+       NPCM7XX_PINCFG(46,      uart1, MFSEL1, 10,       jtag2, MFSEL4, 0,      none, NONE, 0,       DSTR(2, 8)),
+       NPCM7XX_PINCFG(47,      uart1, MFSEL1, 10,       jtag2, MFSEL4, 0,      none, NONE, 0,       DSTR(2, 8)),
        NPCM7XX_PINCFG(48,      uart2, MFSEL1, 11,   bmcuart0b, MFSEL4, 1,      none, NONE, 0,       GPO),
        NPCM7XX_PINCFG(49,      uart2, MFSEL1, 11,   bmcuart0b, MFSEL4, 1,      none, NONE, 0,       0),
        NPCM7XX_PINCFG(50,      uart2, MFSEL1, 11,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(54,      uart2, MFSEL1, 11,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(55,      uart2, MFSEL1, 11,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(56,      r1err, MFSEL1, 12,        none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(57,       r1md, MFSEL1, 13,        none, NONE, 0,        none, NONE, 0,       DS(2, 4)),
-       NPCM7XX_PINCFG(58,       r1md, MFSEL1, 13,        none, NONE, 0,        none, NONE, 0,       DS(2, 4)),
+       NPCM7XX_PINCFG(57,       r1md, MFSEL1, 13,        none, NONE, 0,        none, NONE, 0,       DSTR(2, 4)),
+       NPCM7XX_PINCFG(58,       r1md, MFSEL1, 13,        none, NONE, 0,        none, NONE, 0,       DSTR(2, 4)),
        NPCM7XX_PINCFG(59,      smb3d, I2CSEGSEL, 13,     none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(60,      smb3d, I2CSEGSEL, 13,     none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(61,      uart1, MFSEL1, 10,        none, NONE, 0,        none, NONE, 0,     GPO),
        NPCM7XX_PINCFG(77,    fanin13, MFSEL2, 13,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(78,    fanin14, MFSEL2, 14,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(79,    fanin15, MFSEL2, 15,        none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(80,       pwm0, MFSEL2, 16,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(81,       pwm1, MFSEL2, 17,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(82,       pwm2, MFSEL2, 18,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(83,       pwm3, MFSEL2, 19,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(84,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(85,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(86,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
+       NPCM7XX_PINCFG(80,       pwm0, MFSEL2, 16,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(81,       pwm1, MFSEL2, 17,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(82,       pwm2, MFSEL2, 18,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(83,       pwm3, MFSEL2, 19,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(84,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(85,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(86,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
        NPCM7XX_PINCFG(87,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(88,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(89,         r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(90,      r2err, MFSEL1, 15,        none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(91,       r2md, MFSEL1, 16,        none, NONE, 0,        none, NONE, 0,       DS(2, 4)),
-       NPCM7XX_PINCFG(92,       r2md, MFSEL1, 16,        none, NONE, 0,        none, NONE, 0,       DS(2, 4)),
+       NPCM7XX_PINCFG(91,       r2md, MFSEL1, 16,        none, NONE, 0,        none, NONE, 0,       DSTR(2, 4)),
+       NPCM7XX_PINCFG(92,       r2md, MFSEL1, 16,        none, NONE, 0,        none, NONE, 0,       DSTR(2, 4)),
        NPCM7XX_PINCFG(93,    ga20kbc, MFSEL1, 17,       smb5d, I2CSEGSEL, 21,  none, NONE, 0,       0),
        NPCM7XX_PINCFG(94,    ga20kbc, MFSEL1, 17,       smb5d, I2CSEGSEL, 21,  none, NONE, 0,       0),
        NPCM7XX_PINCFG(95,        lpc, NONE, 0,           espi, MFSEL4, 8,      gpio, MFSEL1, 26,    0),
        NPCM7XX_PINCFG(133,     smb10, MFSEL4, 13,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(134,     smb11, MFSEL4, 14,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(135,     smb11, MFSEL4, 14,        none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(136,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(137,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(138,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(139,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(140,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
+       NPCM7XX_PINCFG(136,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(137,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(138,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(139,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(140,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
        NPCM7XX_PINCFG(141,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(142,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
+       NPCM7XX_PINCFG(142,       sd1, MFSEL3, 12,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
        NPCM7XX_PINCFG(143,       sd1, MFSEL3, 12,      sd1pwr, MFSEL4, 5,      none, NONE, 0,       0),
-       NPCM7XX_PINCFG(144,      pwm4, MFSEL2, 20,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(145,      pwm5, MFSEL2, 21,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(146,      pwm6, MFSEL2, 22,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(147,      pwm7, MFSEL2, 23,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(148,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(149,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(150,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(151,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(152,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
+       NPCM7XX_PINCFG(144,      pwm4, MFSEL2, 20,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(145,      pwm5, MFSEL2, 21,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(146,      pwm6, MFSEL2, 22,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(147,      pwm7, MFSEL2, 23,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(148,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(149,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(150,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(151,      mmc8, MFSEL3, 11,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(152,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
        NPCM7XX_PINCFG(153,     mmcwp, FLOCKR1, 24,       none, NONE, 0,        none, NONE, 0,       0),  /* Z1/A1 */
-       NPCM7XX_PINCFG(154,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
+       NPCM7XX_PINCFG(154,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
        NPCM7XX_PINCFG(155,     mmccd, MFSEL3, 25,      mmcrst, MFSEL4, 6,      none, NONE, 0,       0),  /* Z1/A1 */
-       NPCM7XX_PINCFG(156,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(157,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(158,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(159,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(160,    clkout, MFSEL1, 21,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(161,       lpc, NONE, 0,           espi, MFSEL4, 8,      gpio, MFSEL1, 26,    DS(8, 12)),
-       NPCM7XX_PINCFG(162,    serirq, NONE, 0,           gpio, MFSEL1, 31,     none, NONE, 0,       DS(8, 12)),
+       NPCM7XX_PINCFG(156,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(157,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(158,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(159,       mmc, MFSEL3, 10,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(160,    clkout, MFSEL1, 21,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(161,       lpc, NONE, 0,           espi, MFSEL4, 8,      gpio, MFSEL1, 26,    DSTR(8, 12)),
+       NPCM7XX_PINCFG(162,    serirq, NONE, 0,           gpio, MFSEL1, 31,     none, NONE, 0,       DSTR(8, 12)),
        NPCM7XX_PINCFG(163,       lpc, NONE, 0,           espi, MFSEL4, 8,      gpio, MFSEL1, 26,    0),
        NPCM7XX_PINCFG(164,       lpc, NONE, 0,           espi, MFSEL4, 8,      gpio, MFSEL1, 26,    SLEWLPC),
        NPCM7XX_PINCFG(165,       lpc, NONE, 0,           espi, MFSEL4, 8,      gpio, MFSEL1, 26,    SLEWLPC),
        NPCM7XX_PINCFG(172,      smb6, MFSEL3, 1,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(173,      smb7, MFSEL3, 2,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(174,      smb7, MFSEL3, 2,         none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(175,     pspi1, MFSEL3, 4,       faninx, MFSEL3, 3,      none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(176,     pspi1, MFSEL3, 4,       faninx, MFSEL3, 3,      none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(177,     pspi1, MFSEL3, 4,       faninx, MFSEL3, 3,      none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(178,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(179,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(180,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
+       NPCM7XX_PINCFG(175,     pspi1, MFSEL3, 4,       faninx, MFSEL3, 3,      none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(176,     pspi1, MFSEL3, 4,       faninx, MFSEL3, 3,      none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(177,     pspi1, MFSEL3, 4,       faninx, MFSEL3, 3,      none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(178,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(179,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(180,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
        NPCM7XX_PINCFG(181,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(182,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(183,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(184,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW | GPO),
-       NPCM7XX_PINCFG(185,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW | GPO),
-       NPCM7XX_PINCFG(186,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(187,   spi3cs1, MFSEL4, 17,        none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
-       NPCM7XX_PINCFG(188,  spi3quad, MFSEL4, 20,     spi3cs2, MFSEL4, 18,     none, NONE, 0,    DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(189,  spi3quad, MFSEL4, 20,     spi3cs3, MFSEL4, 19,     none, NONE, 0,    DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(190,      gpio, FLOCKR1, 20,   nprd_smi, NONE, 0,        none, NONE, 0,       DS(2, 4)),
-       NPCM7XX_PINCFG(191,      none, NONE, 0,           none, NONE, 0,        none, NONE, 0,       DS(8, 12)),  /* XX */
-       NPCM7XX_PINCFG(192,      none, NONE, 0,           none, NONE, 0,        none, NONE, 0,       DS(8, 12)),  /* XX */
+       NPCM7XX_PINCFG(183,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(184,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW | GPO),
+       NPCM7XX_PINCFG(185,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW | GPO),
+       NPCM7XX_PINCFG(186,     spi3, MFSEL4, 16,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(187,   spi3cs1, MFSEL4, 17,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
+       NPCM7XX_PINCFG(188,  spi3quad, MFSEL4, 20,     spi3cs2, MFSEL4, 18,     none, NONE, 0,    DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(189,  spi3quad, MFSEL4, 20,     spi3cs3, MFSEL4, 19,     none, NONE, 0,    DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(190,      gpio, FLOCKR1, 20,   nprd_smi, NONE, 0,        none, NONE, 0,       DSTR(2, 4)),
+       NPCM7XX_PINCFG(191,      none, NONE, 0,           none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),  /* XX */
+       NPCM7XX_PINCFG(192,      none, NONE, 0,           none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),  /* XX */
        NPCM7XX_PINCFG(193,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(194,     smb0b, I2CSEGSEL, 0,      none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(195,     smb0b, I2CSEGSEL, 0,      none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(200,        r2, MFSEL1, 14,        none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(201,        r1, MFSEL3, 9,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(202,     smb0c, I2CSEGSEL, 1,      none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(203,    faninx, MFSEL3, 3,         none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
+       NPCM7XX_PINCFG(203,    faninx, MFSEL3, 3,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
        NPCM7XX_PINCFG(204,       ddc, NONE, 0,           gpio, MFSEL3, 22,     none, NONE, 0,       SLEW),
        NPCM7XX_PINCFG(205,       ddc, NONE, 0,           gpio, MFSEL3, 22,     none, NONE, 0,       SLEW),
-       NPCM7XX_PINCFG(206,       ddc, NONE, 0,           gpio, MFSEL3, 22,     none, NONE, 0,       DS(4, 8)),
-       NPCM7XX_PINCFG(207,       ddc, NONE, 0,           gpio, MFSEL3, 22,     none, NONE, 0,       DS(4, 8)),
+       NPCM7XX_PINCFG(206,       ddc, NONE, 0,           gpio, MFSEL3, 22,     none, NONE, 0,       DSTR(4, 8)),
+       NPCM7XX_PINCFG(207,       ddc, NONE, 0,           gpio, MFSEL3, 22,     none, NONE, 0,       DSTR(4, 8)),
        NPCM7XX_PINCFG(208,       rg2, MFSEL4, 24,         ddr, MFSEL3, 26,     none, NONE, 0,       0),
        NPCM7XX_PINCFG(209,       rg2, MFSEL4, 24,         ddr, MFSEL3, 26,     none, NONE, 0,       0),
        NPCM7XX_PINCFG(210,       rg2, MFSEL4, 24,         ddr, MFSEL3, 26,     none, NONE, 0,       0),
        NPCM7XX_PINCFG(216,   rg2mdio, MFSEL4, 23,         ddr, MFSEL3, 26,     none, NONE, 0,       0),
        NPCM7XX_PINCFG(217,   rg2mdio, MFSEL4, 23,         ddr, MFSEL3, 26,     none, NONE, 0,       0),
        NPCM7XX_PINCFG(218,     wdog1, MFSEL3, 19,        none, NONE, 0,        none, NONE, 0,       0),
-       NPCM7XX_PINCFG(219,     wdog2, MFSEL3, 20,        none, NONE, 0,        none, NONE, 0,       DS(4, 8)),
+       NPCM7XX_PINCFG(219,     wdog2, MFSEL3, 20,        none, NONE, 0,        none, NONE, 0,       DSTR(4, 8)),
        NPCM7XX_PINCFG(220,     smb12, MFSEL3, 5,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(221,     smb12, MFSEL3, 5,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(222,     smb13, MFSEL3, 6,         none, NONE, 0,        none, NONE, 0,       0),
        NPCM7XX_PINCFG(223,     smb13, MFSEL3, 6,         none, NONE, 0,        none, NONE, 0,       0),
  
        NPCM7XX_PINCFG(224,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       SLEW),
-       NPCM7XX_PINCFG(225,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW | GPO),
-       NPCM7XX_PINCFG(226,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW | GPO),
-       NPCM7XX_PINCFG(227,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(228,   spixcs1, MFSEL4, 28,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(229,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(230,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DS(8, 12) | SLEW),
-       NPCM7XX_PINCFG(231,    clkreq, MFSEL4, 9,         none, NONE, 0,        none, NONE, 0,       DS(8, 12)),
+       NPCM7XX_PINCFG(225,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW | GPO),
+       NPCM7XX_PINCFG(226,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW | GPO),
+       NPCM7XX_PINCFG(227,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(228,   spixcs1, MFSEL4, 28,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(229,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(230,      spix, MFSEL4, 27,        none, NONE, 0,        none, NONE, 0,       DSTR(8, 12) | SLEW),
+       NPCM7XX_PINCFG(231,    clkreq, MFSEL4, 9,         none, NONE, 0,        none, NONE, 0,       DSTR(8, 12)),
        NPCM7XX_PINCFG(253,      none, NONE, 0,           none, NONE, 0,        none, NONE, 0,       GPI), /* SDHC1 power */
        NPCM7XX_PINCFG(254,      none, NONE, 0,           none, NONE, 0,        none, NONE, 0,       GPI), /* SDHC2 power */
        NPCM7XX_PINCFG(255,      none, NONE, 0,           none, NONE, 0,        none, NONE, 0,       GPI), /* DACOSEL */
@@@ -1560,7 -1561,7 +1560,7 @@@ static int npcm7xx_get_groups_count(str
  {
        struct npcm7xx_pinctrl *npcm = pinctrl_dev_get_drvdata(pctldev);
  
-       dev_dbg(npcm->dev, "group size: %d\n", ARRAY_SIZE(npcm7xx_groups));
+       dev_dbg(npcm->dev, "group size: %zu\n", ARRAY_SIZE(npcm7xx_groups));
        return ARRAY_SIZE(npcm7xx_groups);
  }
  
index 639f1130e9892ea9996d56b47f19148463bd76ca,bbfe4394c557e4b3be2b744fb0d71faa3d7d4501..80a8939ad0c00b978ecc9aac17e0bf3304fd425f
@@@ -19,6 -19,7 +19,7 @@@
  #include <linux/property.h>
  #include <linux/regmap.h>
  #include <linux/reset.h>
+ #include <linux/spinlock.h>
  
  #include "core.h"
  #include "pinconf.h"
@@@ -63,11 -64,13 +64,13 @@@ struct sgpio_properties 
  #define SGPIO_LUTON_BIT_SOURCE   GENMASK(11, 0)
  
  #define SGPIO_OCELOT_AUTO_REPEAT BIT(10)
+ #define SGPIO_OCELOT_SINGLE_SHOT BIT(11)
  #define SGPIO_OCELOT_PORT_WIDTH  GENMASK(8, 7)
  #define SGPIO_OCELOT_CLK_FREQ    GENMASK(19, 8)
  #define SGPIO_OCELOT_BIT_SOURCE  GENMASK(23, 12)
  
  #define SGPIO_SPARX5_AUTO_REPEAT BIT(6)
+ #define SGPIO_SPARX5_SINGLE_SHOT BIT(7)
  #define SGPIO_SPARX5_PORT_WIDTH  GENMASK(4, 3)
  #define SGPIO_SPARX5_CLK_FREQ    GENMASK(19, 8)
  #define SGPIO_SPARX5_BIT_SOURCE  GENMASK(23, 12)
@@@ -116,6 -119,9 +119,9 @@@ struct sgpio_priv 
        u32 clock;
        struct regmap *regs;
        const struct sgpio_properties *properties;
+       spinlock_t lock;
+       /* protects the config register and single shot mode */
+       struct mutex poll_lock;
  };
  
  struct sgpio_port_addr {
@@@ -137,8 -143,7 +143,8 @@@ static inline int sgpio_addr_to_pin(str
  
  static inline u32 sgpio_get_addr(struct sgpio_priv *priv, u32 rno, u32 off)
  {
 -      return priv->properties->regoff[rno] + off;
 +      return (priv->properties->regoff[rno] + off) *
 +              regmap_get_reg_stride(priv->regs);
  }
  
  static u32 sgpio_readl(struct sgpio_priv *priv, u32 rno, u32 off)
@@@ -166,12 -171,11 +172,11 @@@ static void sgpio_writel(struct sgpio_p
  static inline void sgpio_clrsetbits(struct sgpio_priv *priv,
                                    u32 rno, u32 off, u32 clear, u32 set)
  {
-       u32 val = sgpio_readl(priv, rno, off);
-       val &= ~clear;
-       val |= set;
+       u32 addr = sgpio_get_addr(priv, rno, off);
+       int ret;
  
-       sgpio_writel(priv, val, rno, off);
+       ret = regmap_update_bits(priv->regs, addr, clear | set, set);
+       WARN_ONCE(ret, "error updating sgpio reg %d\n", ret);
  }
  
  static inline void sgpio_configure_bitstream(struct sgpio_priv *priv)
@@@ -224,12 -228,64 +229,64 @@@ static inline void sgpio_configure_cloc
        sgpio_clrsetbits(priv, REG_SIO_CLOCK, 0, clr, set);
  }
  
- static void sgpio_output_set(struct sgpio_priv *priv,
-                            struct sgpio_port_addr *addr,
-                            int value)
+ static int sgpio_single_shot(struct sgpio_priv *priv)
+ {
+       u32 addr = sgpio_get_addr(priv, REG_SIO_CONFIG, 0);
+       int ret, ret2;
+       u32 ctrl;
+       unsigned int single_shot;
+       unsigned int auto_repeat;
+       switch (priv->properties->arch) {
+       case SGPIO_ARCH_LUTON:
+               /* not supported for now */
+               return 0;
+       case SGPIO_ARCH_OCELOT:
+               single_shot = SGPIO_OCELOT_SINGLE_SHOT;
+               auto_repeat = SGPIO_OCELOT_AUTO_REPEAT;
+               break;
+       case SGPIO_ARCH_SPARX5:
+               single_shot = SGPIO_SPARX5_SINGLE_SHOT;
+               auto_repeat = SGPIO_SPARX5_AUTO_REPEAT;
+               break;
+       default:
+               return -EINVAL;
+       }
+       /*
+        * Trigger immediate burst. This only works when auto repeat is turned
+        * off. Otherwise, the single shot bit will never be cleared by the
+        * hardware. Measurements showed that an update might take as long as
+        * the burst gap. On a LAN9668 this is about 50ms for the largest
+        * setting.
+        * After the manual burst, reenable the auto repeat mode again.
+        */
+       mutex_lock(&priv->poll_lock);
+       ret = regmap_update_bits(priv->regs, addr, single_shot | auto_repeat,
+                                single_shot);
+       if (ret)
+               goto out;
+       ret = regmap_read_poll_timeout(priv->regs, addr, ctrl,
+                                      !(ctrl & single_shot), 100, 60000);
+       /* reenable auto repeat mode even if there was an error */
+       ret2 = regmap_update_bits(priv->regs, addr, auto_repeat, auto_repeat);
+ out:
+       mutex_unlock(&priv->poll_lock);
+       return ret ?: ret2;
+ }
+ static int sgpio_output_set(struct sgpio_priv *priv,
+                           struct sgpio_port_addr *addr,
+                           int value)
  {
        unsigned int bit = SGPIO_SRC_BITS * addr->bit;
+       u32 reg = sgpio_get_addr(priv, REG_PORT_CONFIG, addr->port);
+       bool changed;
        u32 clr, set;
+       int ret;
  
        switch (priv->properties->arch) {
        case SGPIO_ARCH_LUTON:
                set = FIELD_PREP(SGPIO_SPARX5_BIT_SOURCE, value << bit);
                break;
        default:
-               return;
+               return -EINVAL;
        }
-       sgpio_clrsetbits(priv, REG_PORT_CONFIG, addr->port, clr, set);
+       ret = regmap_update_bits_check(priv->regs, reg, clr | set, set,
+                                      &changed);
+       if (ret)
+               return ret;
+       if (changed) {
+               ret = sgpio_single_shot(priv);
+               if (ret)
+                       return ret;
+       }
+       return 0;
  }
  
  static int sgpio_output_get(struct sgpio_priv *priv,
@@@ -333,7 -401,7 +402,7 @@@ static int sgpio_pinconf_set(struct pin
                case PIN_CONFIG_OUTPUT:
                        if (bank->is_input)
                                return -EINVAL;
-                       sgpio_output_set(priv, &addr, arg);
+                       err = sgpio_output_set(priv, &addr, arg);
                        break;
  
                default:
@@@ -473,9 -541,7 +542,7 @@@ static int microchip_sgpio_direction_ou
  
        sgpio_pin_to_addr(priv, gpio, &addr);
  
-       sgpio_output_set(priv, &addr, value);
-       return 0;
+       return sgpio_output_set(priv, &addr, value);
  }
  
  static int microchip_sgpio_get_direction(struct gpio_chip *gc, unsigned int gpio)
@@@ -575,10 -641,13 +642,13 @@@ static void microchip_sgpio_irq_settype
        struct sgpio_bank *bank = gpiochip_get_data(chip);
        unsigned int gpio = irqd_to_hwirq(data);
        struct sgpio_port_addr addr;
+       unsigned long flags;
        u32 ena;
  
        sgpio_pin_to_addr(bank->priv, gpio, &addr);
  
+       spin_lock_irqsave(&bank->priv->lock, flags);
        /* Disable interrupt while changing type */
        ena = sgpio_readl(bank->priv, REG_INT_ENABLE, addr.bit);
        sgpio_writel(bank->priv, ena & ~BIT(addr.port), REG_INT_ENABLE, addr.bit);
  
        /* Possibly re-enable interrupts */
        sgpio_writel(bank->priv, ena, REG_INT_ENABLE, addr.bit);
+       spin_unlock_irqrestore(&bank->priv->lock, flags);
  }
  
  static void microchip_sgpio_irq_setreg(struct irq_data *data,
@@@ -626,7 -697,14 +698,14 @@@ static void microchip_sgpio_irq_unmask(
  
  static void microchip_sgpio_irq_ack(struct irq_data *data)
  {
-       microchip_sgpio_irq_setreg(data, REG_INT_ACK, false);
+       struct gpio_chip *chip = irq_data_get_irq_chip_data(data);
+       struct sgpio_bank *bank = gpiochip_get_data(chip);
+       unsigned int gpio = irqd_to_hwirq(data);
+       struct sgpio_port_addr addr;
+       sgpio_pin_to_addr(bank->priv, gpio, &addr);
+       sgpio_writel(bank->priv, BIT(addr.port), REG_INT_ACK, addr.bit);
  }
  
  static int microchip_sgpio_irq_set_type(struct irq_data *data, unsigned int type)
@@@ -774,6 -852,7 +853,7 @@@ static int microchip_sgpio_register_ban
        gc->of_gpio_n_cells     = 3;
        gc->base                = -1;
        gc->ngpio               = ngpios;
+       gc->can_sleep           = !bank->is_input;
  
        if (bank->is_input && priv->properties->flags & SGPIO_FLAGS_HAS_IRQ) {
                int irq = fwnode_irq_get(fwnode, 0);
@@@ -833,6 -912,8 +913,8 @@@ static int microchip_sgpio_probe(struc
                return -ENOMEM;
  
        priv->dev = dev;
+       spin_lock_init(&priv->lock);
+       mutex_init(&priv->poll_lock);
  
        reset = devm_reset_control_get_optional_shared(&pdev->dev, "switch");
        if (IS_ERR(reset))
index ab4b2ee9f2173f3855b77870db7f84b163572e34,ed6c9b36849b34837a7f85f52cb280796ac27813..c586cfd09fa874b1d0bfa4809c48bf228088c603
@@@ -1026,7 -1026,7 +1026,7 @@@ static int starfive_gpio_set_config(str
                break;
        default:
                return -ENOTSUPP;
-       };
+       }
  
        starfive_padctl_rmw(sfp, starfive_gpio_to_pin(sfp, gpio), mask, value);
        return 0;
@@@ -1164,7 -1164,6 +1164,7 @@@ static int starfive_irq_set_type(struc
  }
  
  static struct irq_chip starfive_irq_chip = {
 +      .name = "StarFive GPIO",
        .irq_ack = starfive_irq_ack,
        .irq_mask = starfive_irq_mask,
        .irq_mask_ack = starfive_irq_mask_ack,
@@@ -1308,6 -1307,9 +1308,6 @@@ static int starfive_probe(struct platfo
        sfp->gc.base = -1;
        sfp->gc.ngpio = NR_GPIOS;
  
 -      starfive_irq_chip.parent_device = dev;
 -      starfive_irq_chip.name = sfp->gc.label;
 -
        sfp->gc.irq.chip = &starfive_irq_chip;
        sfp->gc.irq.parent_handler = starfive_gpio_irq_handler;
        sfp->gc.irq.num_parents = 1;
        if (ret)
                return dev_err_probe(dev, ret, "could not register gpiochip\n");
  
 +      irq_domain_set_pm_device(sfp->gc.irq.domain, dev);
 +
  out_pinctrl_enable:
        return pinctrl_enable(sfp->pctl);
  }
index 1f401377ff600800c4d18061d9d143bc2cfc4c55,dff73d8584436b85732b232eadf6860fcad08968..d9327d7d56eea8f4844980118448f6f8cd1b6593
@@@ -784,11 -784,10 +784,10 @@@ static int sunxi_pmx_request(struct pin
  
        snprintf(supply, sizeof(supply), "vcc-p%c", 'a' + bank);
        reg = regulator_get(pctl->dev, supply);
-       if (IS_ERR(reg)) {
-               dev_err(pctl->dev, "Couldn't get bank P%c regulator\n",
-                       'A' + bank);
-               return PTR_ERR(reg);
-       }
+       if (IS_ERR(reg))
+               return dev_err_probe(pctl->dev, PTR_ERR(reg),
+                                    "Couldn't get bank P%c regulator\n",
+                                    'A' + bank);
  
        ret = regulator_enable(reg);
        if (ret) {
@@@ -844,8 -843,7 +843,8 @@@ static int sunxi_pinctrl_gpio_direction
  {
        struct sunxi_pinctrl *pctl = gpiochip_get_data(chip);
  
 -      return sunxi_pmx_gpio_set_direction(pctl->pctl_dev, NULL, offset, true);
 +      return sunxi_pmx_gpio_set_direction(pctl->pctl_dev, NULL,
 +                                          chip->base + offset, true);
  }
  
  static int sunxi_pinctrl_gpio_get(struct gpio_chip *chip, unsigned offset)
@@@ -898,8 -896,7 +897,8 @@@ static int sunxi_pinctrl_gpio_direction
        struct sunxi_pinctrl *pctl = gpiochip_get_data(chip);
  
        sunxi_pinctrl_gpio_set(chip, offset, value);
 -      return sunxi_pmx_gpio_set_direction(pctl->pctl_dev, NULL, offset, false);
 +      return sunxi_pmx_gpio_set_direction(pctl->pctl_dev, NULL,
 +                                          chip->base + offset, false);
  }
  
  static int sunxi_pinctrl_gpio_of_xlate(struct gpio_chip *gc,
This page took 0.298637 seconds and 4 git commands to generate.