]> Git Repo - linux.git/commitdiff
Merge tag 'i2c-for-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
authorLinus Torvalds <[email protected]>
Thu, 4 Aug 2022 02:23:51 +0000 (19:23 -0700)
committerLinus Torvalds <[email protected]>
Thu, 4 Aug 2022 02:23:51 +0000 (19:23 -0700)
Pull i2c updates from Wolfram Sang:

 - new drivers: Microchip CoreI2C, Renesas RZV2M

 - quite some DT schema conversions and extensions

 - and a bunch of driver updates and improvements

* tag 'i2c-for-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (37 commits)
  i2c: extend documentation about retvals of master_xfer functions
  i2c: mux-gpmux: Add of_node_put() when breaking out of loop
  dt-bindings: i2c: i2c-rk3x: Document Rockchip RV1126
  i2c: qcom-geni: Use the correct return value
  i2c: cadence: Support PEC for SMBus block read
  i2c: qcom-geni: Propagate GENI_ABORT_DONE to geni_i2c_abort_xfer()
  i2c: brcmstb: Use dev_name() for adapter name
  i2c: Add Renesas RZ/V2M controller
  dt-bindings: i2c: Document RZ/V2M I2C controller
  i2c: mlxcpld: Add callback to notify probing completion
  i2c: scmi: Replace open coded device_get_match_data()
  i2c: stm32: add support for the STM32MP13 soc
  dt-bindings: i2c: st,stm32-i2c: add entry for stm32mp13
  dt-bindings: i2c: i2c-rk3x: add rk3588 compatible
  i2c: add support for microchip fpga i2c controllers
  i2c: i801: Add support for Intel Meteor Lake-P
  dt-bindings: i2c: nomadik: Add power domain to binding
  dt-bindings: i2c: nomadik: Drop unused voltage supply from example
  i2c: Fix a potential use after free
  i2c: hisi: use HZ_PER_KHZ macro in units.h
  ...

1  2 
MAINTAINERS
drivers/i2c/busses/Kconfig
drivers/i2c/busses/i2c-cadence.c
drivers/i2c/busses/i2c-mlxcpld.c
drivers/i2c/busses/i2c-npcm7xx.c

diff --combined MAINTAINERS
index 56ab4aae433e9e72fff5247677aa00c23f21d14c,7eec75de861ca72ab0f5d2a9e628f06b0136992e..17273f0bb5c077a5308f6241b26377f5aa550446
@@@ -171,6 -171,7 +171,6 @@@ F: drivers/scsi/53c700
  
  6LOWPAN GENERIC (BTLE/IEEE 802.15.4)
  M:    Alexander Aring <[email protected]>
 -M:    Jukka Rissanen <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -241,11 -242,6 +241,11 @@@ F:       include/trace/events/9p.
  F:    include/uapi/linux/virtio_9p.h
  F:    net/9p/
  
 +A64FX DIAG DRIVER
 +M:    Hitomi Hasegawa <[email protected]>
 +S:    Supported
 +F:    drivers/soc/fujitsu/a64fx-diag.c
 +
  A8293 MEDIA DRIVER
  M:    Antti Palosaari <[email protected]>
  L:    [email protected]
@@@ -430,7 -426,7 +430,7 @@@ F: drivers/acpi/*thermal
  ACPI VIOT DRIVER
  M:    Jean-Philippe Brucker <[email protected]>
  L:    [email protected]
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Maintained
  F:    drivers/acpi/viot.c
  F:    include/linux/acpi_viot.h
@@@ -963,7 -959,7 +963,7 @@@ F: drivers/video/fbdev/geode
  AMD IOMMU (AMD-VI)
  M:    Joerg Roedel <[email protected]>
  R:    Suravee Suthikulpanit <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    drivers/iommu/amd/
@@@ -1042,7 -1038,6 +1042,7 @@@ F:      arch/arm64/boot/dts/amd
  
  AMD XGBE DRIVER
  M:    Tom Lendacky <[email protected]>
 +M:    "Shyam Sundar S K" <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
@@@ -1512,7 -1507,7 +1512,7 @@@ F:      drivers/clocksource/arm_arch_timer.
  ARM HDLCD DRM DRIVER
  M:    Liviu Dudau <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/display/arm,hdlcd.txt
 +F:    Documentation/devicetree/bindings/display/arm,hdlcd.yaml
  F:    drivers/gpu/drm/arm/hdlcd_*
  
  ARM INTEGRATOR, VERSATILE AND REALVIEW SUPPORT
@@@ -1525,7 -1520,7 +1525,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
  F:    Documentation/devicetree/bindings/auxdisplay/arm,versatile-lcd.yaml
  F:    Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
- F:    Documentation/devicetree/bindings/i2c/i2c-versatile.txt
+ F:    Documentation/devicetree/bindings/i2c/arm,i2c-versatile.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt
  F:    Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
  F:    arch/arm/boot/dts/arm-realview-*
@@@ -1547,7 -1542,7 +1547,7 @@@ M:      Mihail Atanassov <mihail.atanassov@a
  L:    Mali DP Maintainers <[email protected]>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    Documentation/devicetree/bindings/display/arm,komeda.txt
 +F:    Documentation/devicetree/bindings/display/arm,komeda.yaml
  F:    Documentation/gpu/komeda-kms.rst
  F:    drivers/gpu/drm/arm/display/include/
  F:    drivers/gpu/drm/arm/display/komeda/
@@@ -1569,7 -1564,7 +1569,7 @@@ M:      Brian Starkey <[email protected]
  L:    Mali DP Maintainers <[email protected]>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    Documentation/devicetree/bindings/display/arm,malidp.txt
 +F:    Documentation/devicetree/bindings/display/arm,malidp.yaml
  F:    Documentation/gpu/afbc.rst
  F:    drivers/gpu/drm/arm/
  
@@@ -1898,7 -1893,6 +1898,7 @@@ L:      [email protected] (moder
  S:    Supported
  Q:    https://patchwork.ozlabs.org/project/linux-aspeed/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed.git
 +F:    Documentation/devicetree/bindings/arm/aspeed/
  F:    arch/arm/boot/dts/aspeed-*
  F:    arch/arm/mach-aspeed/
  N:    aspeed
@@@ -2015,7 -2009,7 +2015,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git git://github.com/ulli-kroll/linux.git
  F:    Documentation/devicetree/bindings/arm/gemini.yaml
 -F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.txt
 +F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.yaml
  F:    Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
  F:    Documentation/devicetree/bindings/rtc/faraday,ftrtc010.yaml
  F:    arch/arm/boot/dts/gemini*
@@@ -2146,13 -2140,11 +2146,13 @@@ M:   Jean-Marie Verdun <[email protected]
  M:    Nick Hawkins <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/hpe,gxp.yaml
 +F:    Documentation/devicetree/bindings/spi/hpe,gxp-spi.yaml
  F:    Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml
  F:    arch/arm/boot/dts/hpe-bmc*
  F:    arch/arm/boot/dts/hpe-gxp*
  F:    arch/arm/mach-hpe/
  F:    drivers/clocksource/timer-gxp.c
 +F:    drivers/spi/spi-gxp.c
  F:    drivers/watchdog/gxp-wdt.c
  
  ARM/IGEP MACHINE SUPPORT
@@@ -2424,7 -2416,7 +2424,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/arm/ste-*
  F:    Documentation/devicetree/bindings/arm/ux500.yaml
  F:    Documentation/devicetree/bindings/arm/ux500/
- F:    Documentation/devicetree/bindings/i2c/i2c-nomadik.txt
+ F:    Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
  F:    arch/arm/boot/dts/ste-*
  F:    arch/arm/mach-nomadik/
  F:    arch/arm/mach-ux500/
@@@ -2456,11 -2448,9 +2456,11 @@@ F:    Documentation/devicetree/bindings/*/
  F:    Documentation/devicetree/bindings/arm/npcm/*
  F:    arch/arm/boot/dts/nuvoton-npcm*
  F:    arch/arm/mach-npcm/
 +F:    arch/arm64/boot/dts/nuvoton/
  F:    drivers/*/*npcm*
  F:    drivers/*/*/*npcm*
  F:    include/dt-bindings/clock/nuvoton,npcm7xx-clock.h
 +F:    include/dt-bindings/clock/nuvoton,npcm845-clk.h
  
  ARM/NUVOTON WPCM450 ARCHITECTURE
  M:    Jonathan Neuschäfer <[email protected]>
@@@ -2477,7 -2467,6 +2477,7 @@@ ARM/NXP S32G ARCHITECTUR
  M:    Chester Lin <[email protected]>
  R:    Andreas Färber <[email protected]>
  R:    Matthias Brugger <[email protected]>
 +R:    NXP S32 Linux Team <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm64/boot/dts/freescale/s32g*.dts*
@@@ -2507,8 -2496,10 +2507,8 @@@ F:     drivers/power/reset/oxnas-restart.
  N:    oxnas
  
  ARM/PALM TREO SUPPORT
 -M:    Tomas Cech <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -W:    http://hackndev.com
 +S:    Orphan
  F:    arch/arm/mach-pxa/palmtreo.*
  
  ARM/PALMTX,PALMT5,PALMLD,PALMTE2,PALMTC SUPPORT
@@@ -2546,7 -2537,6 +2546,7 @@@ W:      http://www.armlinux.org.uk
  ARM/QUALCOMM SUPPORT
  M:    Andy Gross <[email protected]>
  M:    Bjorn Andersson <[email protected]>
 +R:    Konrad Dybcio <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
@@@ -2625,8 -2615,6 +2625,8 @@@ Q:      http://patchwork.kernel.org/project/
  C:    irc://irc.libera.chat/renesas-soc
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  F:    Documentation/devicetree/bindings/arm/renesas.yaml
 +F:    Documentation/devicetree/bindings/hwinfo/renesas,prr.yaml
 +F:    Documentation/devicetree/bindings/soc/renesas/
  F:    arch/arm64/boot/dts/renesas/
  F:    drivers/soc/renesas/
  F:    include/linux/soc/renesas/
@@@ -2745,7 -2733,6 +2745,7 @@@ Q:      http://patchwork.kernel.org/project/
  C:    irc://irc.libera.chat/renesas-soc
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  F:    Documentation/devicetree/bindings/arm/renesas.yaml
 +F:    Documentation/devicetree/bindings/soc/renesas/
  F:    arch/arm/boot/dts/emev2*
  F:    arch/arm/boot/dts/gr-peach*
  F:    arch/arm/boot/dts/iwg20d-q7*
@@@ -2835,23 -2822,6 +2835,23 @@@ F:    drivers/clocksource/armv7m_systick.
  N:    stm32
  N:    stm
  
 +ARM/SUNPLUS SP7021 SOC SUPPORT
 +M:    Qin Jian <[email protected]>
 +L:    [email protected] (moderated for mon-subscribers)
 +S:    Maintained
 +W:    https://sunplus-tibbo.atlassian.net/wiki/spaces/doc/overview
 +F:    Documentation/devicetree/bindings/arm/sunplus,sp7021.yaml
 +F:    Documentation/devicetree/bindings/clock/sunplus,sp7021-clkc.yaml
 +F:    Documentation/devicetree/bindings/interrupt-controller/sunplus,sp7021-intc.yaml
 +F:    Documentation/devicetree/bindings/reset/sunplus,reset.yaml
 +F:    arch/arm/boot/dts/sunplus-sp7021*.dts*
 +F:    arch/arm/configs/sp7021_*defconfig
 +F:    arch/arm/mach-sunplus/
 +F:    drivers/irqchip/irq-sp7021-intc.c
 +F:    drivers/reset/reset-sunplus.c
 +F:    include/dt-bindings/clock/sunplus,sp7021-clkc.h
 +F:    include/dt-bindings/reset/sunplus,sp7021-reset.h
 +
  ARM/Synaptics SoC support
  M:    Jisheng Zhang <[email protected]>
  M:    Sebastian Hesselbarth <[email protected]>
@@@ -3644,18 -3614,16 +3644,18 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/iio/accel/bosch,bma400.yaml
  F:    drivers/iio/accel/bma400*
  
 -BPF (Safe dynamic programs and tools)
 +BPF [GENERAL] (Safe Dynamic Programs and Tools)
  M:    Alexei Starovoitov <[email protected]>
  M:    Daniel Borkmann <[email protected]>
  M:    Andrii Nakryiko <[email protected]>
 -R:    Martin KaFai Lau <[email protected]>
 -R:    Song Liu <song[email protected]>
 +R:    Martin KaFai Lau <[email protected]>
 +R:    Song Liu <song@kernel.org>
  R:    Yonghong Song <[email protected]>
  R:    John Fastabend <[email protected]>
  R:    KP Singh <[email protected]>
 -L:    [email protected]
 +R:    Stanislav Fomichev <[email protected]>
 +R:    Hao Luo <[email protected]>
 +R:    Jiri Olsa <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://bpf.io/
@@@ -3687,17 -3655,21 +3687,17 @@@ F:   scripts/pahole-version.s
  F:    tools/bpf/
  F:    tools/lib/bpf/
  F:    tools/testing/selftests/bpf/
 -N:    bpf
 -K:    bpf
  
  BPF JIT for ARM
  M:    Shubham Bansal <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/arm/net/
  
  BPF JIT for ARM64
  M:    Daniel Borkmann <[email protected]>
  M:    Alexei Starovoitov <[email protected]>
  M:    Zi Shen Lim <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    arch/arm64/net/
  BPF JIT for MIPS (32-BIT AND 64-BIT)
  M:    Johan Almbladh <[email protected]>
  M:    Paul Burton <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/mips/net/
  
  BPF JIT for NFP NICs
  M:    Jakub Kicinski <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Supported
 +S:    Odd Fixes
  F:    drivers/net/ethernet/netronome/nfp/bpf/
  
  BPF JIT for POWERPC (32-BIT AND 64-BIT)
  M:    Naveen N. Rao <[email protected]>
 -L:    [email protected]
 +M:    Michael Ellerman <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    arch/powerpc/net/
  
  BPF JIT for RISC-V (32-bit)
  M:    Luke Nelson <[email protected]>
  M:    Xi Wang <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/riscv/net/
@@@ -3732,6 -3707,7 +3732,6 @@@ X:      arch/riscv/net/bpf_jit_comp64.
  
  BPF JIT for RISC-V (64-bit)
  M:    Björn Töpel <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/riscv/net/
@@@ -3741,80 -3717,36 +3741,80 @@@ BPF JIT for S39
  M:    Ilya Leoshkevich <[email protected]>
  M:    Heiko Carstens <[email protected]>
  M:    Vasily Gorbik <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    arch/s390/net/
  X:    arch/s390/net/pnet.c
  
  BPF JIT for SPARC (32-BIT AND 64-BIT)
  M:    David S. Miller <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/sparc/net/
  
  BPF JIT for X86 32-BIT
  M:    Wang YanQing <[email protected]>
 -L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/x86/net/bpf_jit_comp32.c
  
  BPF JIT for X86 64-BIT
  M:    Alexei Starovoitov <[email protected]>
  M:    Daniel Borkmann <[email protected]>
 -L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    arch/x86/net/
  X:    arch/x86/net/bpf_jit_comp32.c
  
 -BPF LSM (Security Audit and Enforcement using BPF)
 +BPF [CORE]
 +M:    Alexei Starovoitov <[email protected]>
 +M:    Daniel Borkmann <[email protected]>
 +R:    John Fastabend <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/verifier.c
 +F:    kernel/bpf/tnum.c
 +F:    kernel/bpf/core.c
 +F:    kernel/bpf/syscall.c
 +F:    kernel/bpf/dispatcher.c
 +F:    kernel/bpf/trampoline.c
 +F:    include/linux/bpf*
 +F:    include/linux/filter.h
 +
 +BPF [BTF]
 +M:    Martin KaFai Lau <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/btf.c
 +F:    include/linux/btf*
 +
 +BPF [TRACING]
 +M:    Song Liu <[email protected]>
 +R:    Jiri Olsa <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/trace/bpf_trace.c
 +F:    kernel/bpf/stackmap.c
 +
 +BPF [NETWORKING] (tc BPF, sock_addr)
 +M:    Martin KaFai Lau <[email protected]>
 +M:    Daniel Borkmann <[email protected]>
 +R:    John Fastabend <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    net/core/filter.c
 +F:    net/sched/act_bpf.c
 +F:    net/sched/cls_bpf.c
 +
 +BPF [NETWORKING] (struct_ops, reuseport)
 +M:    Martin KaFai Lau <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/bpf_struct*
 +
 +BPF [SECURITY & LSM] (Security Audit and Enforcement using BPF)
  M:    KP Singh <[email protected]>
  R:    Florent Revest <[email protected]>
  R:    Brendan Jackman <[email protected]>
@@@ -3825,64 -3757,6 +3825,64 @@@ F:    include/linux/bpf_lsm.
  F:    kernel/bpf/bpf_lsm.c
  F:    security/bpf/
  
 +BPF [STORAGE & CGROUPS]
 +M:    Martin KaFai Lau <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/cgroup.c
 +F:    kernel/bpf/*storage.c
 +F:    kernel/bpf/bpf_lru*
 +
 +BPF [RINGBUF]
 +M:    Andrii Nakryiko <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/ringbuf.c
 +
 +BPF [ITERATOR]
 +M:    Yonghong Song <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/*iter.c
 +
 +BPF [L7 FRAMEWORK] (sockmap)
 +M:    John Fastabend <[email protected]>
 +M:    Jakub Sitnicki <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    include/linux/skmsg.h
 +F:    net/core/skmsg.c
 +F:    net/core/sock_map.c
 +F:    net/ipv4/tcp_bpf.c
 +F:    net/ipv4/udp_bpf.c
 +F:    net/unix/unix_bpf.c
 +
 +BPF [LIBRARY] (libbpf)
 +M:    Andrii Nakryiko <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    tools/lib/bpf/
 +
 +BPF [TOOLING] (bpftool)
 +M:    Quentin Monnet <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    kernel/bpf/disasm.*
 +F:    tools/bpf/bpftool/
 +
 +BPF [SELFTESTS] (Test Runners & Infrastructure)
 +M:    Andrii Nakryiko <[email protected]>
 +R:    Mykola Lysenko <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    tools/testing/selftests/bpf/
 +
 +BPF [MISC]
 +L:    [email protected]
 +S:    Odd Fixes
 +K:    (?:\b|_)bpf(?:\b|_)
 +
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <[email protected]>
  L:    [email protected]
@@@ -3904,36 -3778,23 +3904,36 @@@ BROADCOM BCMBCA ARM ARCHITECTUR
  M:    William Zhang <[email protected]>
  M:    Anand Gore <[email protected]>
  M:    Kursad Oney <[email protected]>
 +M:    Florian Fainelli <[email protected]>
  R:    Broadcom internal kernel review list <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
  F:    Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
 -F:    arch/arm/boot/dts/bcm47622.dtsi
 -F:    arch/arm/boot/dts/bcm947622.dts
 +F:    arch/arm64/boot/dts/broadcom/bcmbca/*
  N:    bcmbca
  N:    bcm[9]?47622
 +N:    bcm[9]?4912
 +N:    bcm[9]?63138
 +N:    bcm[9]?63146
 +N:    bcm[9]?63148
 +N:    bcm[9]?63158
 +N:    bcm[9]?63178
 +N:    bcm[9]?6756
 +N:    bcm[9]?6813
 +N:    bcm[9]?6846
 +N:    bcm[9]?6855
 +N:    bcm[9]?6856
 +N:    bcm[9]?6858
 +N:    bcm[9]?6878
  
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
 -M:    Nicolas Saenz Julienne <[email protected]>
 +M:    Florian Fainelli <[email protected]>
  R:    Broadcom internal kernel review list <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nsaenz/linux-rpi.git
 +T:    git git://github.com/broadcom/stblinux.git
  F:    Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
  F:    drivers/pci/controller/pcie-brcmstb.c
  F:    drivers/staging/vc04_services
@@@ -4001,6 -3862,14 +4001,6 @@@ S:     Maintaine
  F:    arch/arm/boot/dts/bcm47189*
  F:    arch/arm/boot/dts/bcm53573*
  
 -BROADCOM BCM63XX ARM ARCHITECTURE
 -M:    Florian Fainelli <[email protected]>
 -R:    Broadcom internal kernel review list <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -T:    git git://github.com/broadcom/stblinux.git
 -N:    bcm63xx
 -
  BROADCOM BCM63XX/BCM33XX UDC DRIVER
  M:    Kevin Cernekee <[email protected]>
  L:    [email protected]
@@@ -4407,7 -4276,7 +4407,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
 -F:    Documentation/devicetree/bindings/devfreq/exynos-bus.txt
 +F:    Documentation/devicetree/bindings/interconnect/samsung,exynos-bus.yaml
  F:    drivers/devfreq/exynos-bus.c
  
  BUSLOGIC SCSI DRIVER
@@@ -4997,7 -4866,7 +4997,7 @@@ R:      Nick Desaulniers <ndesaulniers@googl
  L:    [email protected]
  S:    Supported
  B:    https://github.com/ClangBuiltLinux/linux/issues
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/clang/features
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    include/linux/cfi.h
  F:    kernel/cfi.c
  
@@@ -5083,7 -4952,6 +5083,7 @@@ Q:      http://patchwork.kernel.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
  F:    Documentation/devicetree/bindings/clock/
  F:    drivers/clk/
 +F:    include/dt-bindings/clock/
  F:    include/linux/clk-pr*
  F:    include/linux/clk/
  F:    include/linux/of_clk.h
@@@ -5134,7 -5002,7 +5134,7 @@@ COMPUTE EXPRESS LINK (CXL
  M:    Alison Schofield <[email protected]>
  M:    Vishal Verma <[email protected]>
  M:    Ira Weiny <[email protected]>
 -M:    Ben Widawsky <b[email protected]>
 +M:    Ben Widawsky <b[email protected]>
  M:    Dan Williams <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -5164,7 -5032,6 +5164,7 @@@ F:      include/linux/console
  
  CONTEXT TRACKING
  M:    Frederic Weisbecker <[email protected]>
 +M:    "Paul E. McKenney" <[email protected]>
  S:    Maintained
  F:    kernel/context_tracking.c
  F:    include/linux/context_tracking*
@@@ -5890,7 -5757,6 +5890,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
  F:    Documentation/devicetree/bindings/devfreq/
 +F:    Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
  F:    drivers/devfreq/
  F:    include/linux/devfreq.h
  F:    include/trace/events/devfreq.h
@@@ -6088,7 -5954,7 +6088,7 @@@ DMA MAPPING HELPER
  M:    Christoph Hellwig <[email protected]>
  M:    Marek Szyprowski <[email protected]>
  R:    Robin Murphy <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  T:    git git://git.infradead.org/users/hch/dma-mapping.git
@@@ -6100,7 -5966,7 +6100,7 @@@ F:      kernel/dma
  
  DMA MAPPING BENCHMARK
  M:    Xiang Chen <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  F:    kernel/dma/map_benchmark.c
  F:    tools/testing/selftests/dma/
  
@@@ -6212,7 -6078,7 +6212,7 @@@ M:      Sakari Ailus <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.txt
 +F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
  F:    drivers/media/i2c/dw9807-vcm.c
  
  DOUBLETALK DRIVER
@@@ -6841,7 -6707,7 +6841,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Supported
  T:    git git://anongit.freedesktop.org/tegra/linux.git
 -F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
 +F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.yaml
  F:    Documentation/devicetree/bindings/gpu/host1x/
  F:    drivers/gpu/drm/tegra/
  F:    drivers/gpu/host1x/
  S:    Maintained
  F:    drivers/net/ethernet/ibm/ehea/
  
 +ELM327 CAN NETWORK DRIVER
 +M:    Max Staudt <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/networking/device_drivers/can/can327.rst
 +F:    drivers/net/can/can327.c
 +
  EM28XX VIDEO4LINUX DRIVER
  M:    Mauro Carvalho Chehab <[email protected]>
  L:    [email protected]
@@@ -7528,8 -7387,6 +7528,8 @@@ F:      include/video/s1d13xxxfb.
  EROFS FILE SYSTEM
  M:    Gao Xiang <[email protected]>
  M:    Chao Yu <[email protected]>
 +R:    Yue Hu <[email protected]>
 +R:    Jeffle Xu <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
@@@ -7543,13 -7400,6 +7543,13 @@@ S:    Maintaine
  F:    include/linux/errseq.h
  F:    lib/errseq.c
  
 +ESD CAN/USB DRIVERS
 +M:    Frank Jungclaus <[email protected]>
 +R:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/can/usb/esd_usb.c
 +
  ET131X NETWORK DRIVER
  M:    Mark Einon <[email protected]>
  S:    Odd Fixes
@@@ -7700,7 -7550,7 +7700,7 @@@ F:      drivers/gpu/drm/exynos/exynos_dp
  
  EXYNOS SYSMMU (IOMMU) driver
  M:    Marek Szyprowski <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Maintained
  F:    drivers/iommu/exynos-iommu.c
  
@@@ -7797,7 -7647,6 +7797,7 @@@ F:      include/uapi/scsi/fc
  
  FILE LOCKING (flock() and fcntl()/lockf())
  M:    Jeff Layton <[email protected]>
 +M:    Chuck Lever <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    fs/fcntl.c
@@@ -7825,6 -7674,9 +7825,6 @@@ F:      include/linux/fs.
  F:    include/linux/fs_types.h
  F:    include/uapi/linux/fs.h
  F:    include/uapi/linux/openat2.h
 -X:    fs/io-wq.c
 -X:    fs/io-wq.h
 -X:    fs/io_uring.c
  
  FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    Riku Voipio <[email protected]>
@@@ -7923,7 -7775,6 +7923,7 @@@ FORTIFY_SOURC
  M:    Kees Cook <[email protected]>
  L:    [email protected]
  S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    include/linux/fortify-string.h
  F:    lib/test_fortify/*
  F:    scripts/test_fortify.sh
@@@ -8366,7 -8217,6 +8366,7 @@@ GCC PLUGIN
  M:    Kees Cook <[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/kbuild/gcc-plugins.rst
  F:    scripts/Makefile.gcc-plugins
  F:    scripts/gcc-plugins/
@@@ -8621,7 -8471,6 +8621,7 @@@ F:      Documentation/devicetree/bindings/gp
  F:    Documentation/driver-api/gpio/
  F:    drivers/gpio/
  F:    include/asm-generic/gpio.h
 +F:    include/dt-bindings/gpio/
  F:    include/linux/gpio.h
  F:    include/linux/gpio/
  F:    include/linux/of_gpio.h
@@@ -9087,31 -8936,16 +9087,31 @@@ F:   Documentation/admin-guide/perf/hisi-
  F:    Documentation/admin-guide/perf/hisi-pmu.rst
  F:    drivers/perf/hisilicon
  
 -HISILICON QM AND ZIP Controller DRIVER
 +HISILICON HNS3 PMU DRIVER
 +M:    Guangbin Huang <[email protected]>
 +S:    Supported
 +F:    Documentation/admin-guide/perf/hns3-pmu.rst
 +F:    drivers/perf/hisilicon/hns3_pmu.c
 +
 +HISILICON QM DRIVER
 +M:    Weili Qian <[email protected]>
  M:    Zhou Wang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/ABI/testing/debugfs-hisi-zip
 +F:    drivers/crypto/hisilicon/Kconfig
 +F:    drivers/crypto/hisilicon/Makefile
  F:    drivers/crypto/hisilicon/qm.c
  F:    drivers/crypto/hisilicon/sgl.c
 -F:    drivers/crypto/hisilicon/zip/
  F:    include/linux/hisi_acc_qm.h
  
 +HISILICON ZIP Controller DRIVER
 +M:    Yang Shen <[email protected]>
 +M:    Zhou Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/debugfs-hisi-zip
 +F:    drivers/crypto/hisilicon/zip/
 +
  HISILICON ROCE DRIVER
  M:    Wenpeng Liang <[email protected]>
  M:    Weihang Li <[email protected]>
@@@ -9247,7 -9081,7 +9247,7 @@@ HTE SUBSYSTE
  M:    Dipen Patel <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/timestamp/
 -F:    Documentation/hte/
 +F:    Documentation/driver-api/hte/
  F:    drivers/hte/
  F:    include/linux/hte.h
  
@@@ -9290,7 -9124,6 +9290,7 @@@ F:      drivers/media/platform/st/sti/hv
  
  HWPOISON MEMORY FAILURE HANDLING
  M:    Naoya Horiguchi <[email protected]>
 +R:    Miaohe Lin <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    mm/hwpoison-inject.c
@@@ -9339,7 -9172,6 +9339,7 @@@ S:      Supporte
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  F:    Documentation/ABI/testing/debugfs-hyperv
 +F:    Documentation/virt/hyperv
  F:    Documentation/networking/device_drivers/ethernet/microsoft/netvsc.rst
  F:    arch/arm64/hyperv
  F:    arch/arm64/include/asm/hyperv-tlfs.h
@@@ -9436,7 -9268,6 +9436,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/i2c/i2c.txt
  F:    Documentation/i2c/
  F:    drivers/i2c/*
 +F:    include/dt-bindings/i2c/i2c.h
  F:    include/linux/i2c-dev.h
  F:    include/linux/i2c-smbus.h
  F:    include/linux/i2c.h
@@@ -9452,7 -9283,6 +9452,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/i2c/
  F:    drivers/i2c/algos/
  F:    drivers/i2c/busses/
 +F:    include/dt-bindings/i2c/
  
  I2C-TAOS-EVM DRIVER
  M:    Jean Delvare <[email protected]>
@@@ -9685,7 -9515,6 +9685,7 @@@ F:      drivers/input/misc/ideapad_slidebar.
  
  IDMAPPED MOUNTS
  M:    Christian Brauner <[email protected]>
 +M:    Seth Forshee <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git
@@@ -9974,10 -9803,7 +9974,10 @@@ INTEL ASoC DRIVER
  M:    Cezary Rojewski <[email protected]>
  M:    Pierre-Louis Bossart <[email protected]>
  M:    Liam Girdwood <[email protected]>
 -M:    Jie Yang <[email protected]>
 +M:    Peter Ujfalusi <[email protected]>
 +M:    Bard Liao <[email protected]>
 +M:    Ranjani Sridharan <[email protected]>
 +M:    Kai Vehmanen <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/intel/
@@@ -10140,7 -9966,7 +10140,7 @@@ F:    drivers/hid/intel-ish-hid
  INTEL IOMMU (VT-d)
  M:    David Woodhouse <[email protected]>
  M:    Lu Baolu <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    drivers/iommu/intel/
@@@ -10519,7 -10345,7 +10519,7 @@@ F:   include/linux/iomap.
  IOMMU DRIVERS
  M:    Joerg Roedel <[email protected]>
  M:    Will Deacon <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    Documentation/devicetree/bindings/iommu/
  S:    Maintained
  T:    git git://git.kernel.dk/linux-block
  T:    git git://git.kernel.dk/liburing
 -F:    fs/io-wq.c
 -F:    fs/io-wq.h
 -F:    fs/io_uring.c
 +F:    io_uring/
  F:    include/linux/io_uring.h
  F:    include/uapi/linux/io_uring.h
  F:    tools/io_uring/
@@@ -10904,17 -10732,6 +10904,17 @@@ F: scripts/mk
  F:    scripts/mod/
  F:    scripts/package/
  
 +KERNEL HARDENING (not covered by other areas)
 +M:    Kees Cook <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
 +F:    include/linux/overflow.h
 +F:    include/linux/randomize_kstack.h
 +F:    mm/usercopy.c
 +K:    \b(add|choose)_random_kstack_offset\b
 +K:    \b__check_(object_size|heap_object)\b
 +
  KERNEL JANITORS
  L:    [email protected]
  S:    Odd Fixes
@@@ -10922,7 -10739,6 +10922,7 @@@ W:   http://kernelnewbies.org/KernelJanit
  
  KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
  M:    Chuck Lever <[email protected]>
 +M:    Jeff Layton <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://nfs.sourceforge.net/
@@@ -11005,7 -10821,6 +11005,7 @@@ M:   Marc Zyngier <[email protected]
  R:    James Morse <[email protected]>
  R:    Alexandru Elisei <[email protected]>
  R:    Suzuki K Poulose <[email protected]>
 +R:    Oliver Upton <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -11048,6 -10863,7 +11048,6 @@@ F:   arch/riscv/include/asm/kvm
  F:    arch/riscv/include/uapi/asm/kvm*
  F:    arch/riscv/kvm/
  F:    tools/testing/selftests/kvm/*/riscv/
 -F:    tools/testing/selftests/kvm/riscv/
  
  KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
  M:    Christian Borntraeger <[email protected]>
@@@ -11072,51 -10888,28 +11072,51 @@@ F:        tools/testing/selftests/kvm/*/s390x
  F:    tools/testing/selftests/kvm/s390x/
  
  KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
 +M:    Sean Christopherson <[email protected]>
  M:    Paolo Bonzini <[email protected]>
 -R:    Sean Christopherson <[email protected]>
 -R:    Vitaly Kuznetsov <[email protected]>
 -R:    Wanpeng Li <[email protected]>
 -R:    Jim Mattson <[email protected]>
 -R:    Joerg Roedel <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
  F:    arch/x86/include/asm/kvm*
 -F:    arch/x86/include/asm/pvclock-abi.h
  F:    arch/x86/include/asm/svm.h
  F:    arch/x86/include/asm/vmx*.h
  F:    arch/x86/include/uapi/asm/kvm*
  F:    arch/x86/include/uapi/asm/svm.h
  F:    arch/x86/include/uapi/asm/vmx.h
 -F:    arch/x86/kernel/kvm.c
 -F:    arch/x86/kernel/kvmclock.c
  F:    arch/x86/kvm/
  F:    arch/x86/kvm/*/
  
 +KVM PARAVIRT (KVM/paravirt)
 +M:    Paolo Bonzini <[email protected]>
 +R:    Wanpeng Li <[email protected]>
 +R:    Vitaly Kuznetsov <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
 +F:    arch/x86/kernel/kvm.c
 +F:    arch/x86/kernel/kvmclock.c
 +F:    arch/x86/include/asm/pvclock-abi.h
 +F:    include/linux/kvm_para.h
 +F:    include/uapi/linux/kvm_para.h
 +F:    include/uapi/asm-generic/kvm_para.h
 +F:    include/asm-generic/kvm_para.h
 +F:    arch/um/include/asm/kvm_para.h
 +F:    arch/x86/include/asm/kvm_para.h
 +F:    arch/x86/include/uapi/asm/kvm_para.h
 +
 +KVM X86 HYPER-V (KVM/hyper-v)
 +M:    Vitaly Kuznetsov <[email protected]>
 +M:    Sean Christopherson <[email protected]>
 +M:    Paolo Bonzini <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
 +F:    arch/x86/kvm/hyperv.*
 +F:    arch/x86/kvm/kvm_onhyperv.*
 +F:    arch/x86/kvm/svm/hyperv.*
 +F:    arch/x86/kvm/svm/svm_onhyperv.*
 +F:    arch/x86/kvm/vmx/evmcs.*
 +
  KERNFS
  M:    Greg Kroah-Hartman <[email protected]>
  M:    Tejun Heo <[email protected]>
@@@ -11295,6 -11088,20 +11295,6 @@@ S:  Maintaine
  F:    include/net/l3mdev.h
  F:    net/l3mdev
  
 -L7 BPF FRAMEWORK
 -M:    John Fastabend <[email protected]>
 -M:    Daniel Borkmann <[email protected]>
 -M:    Jakub Sitnicki <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 -S:    Maintained
 -F:    include/linux/skmsg.h
 -F:    net/core/skmsg.c
 -F:    net/core/sock_map.c
 -F:    net/ipv4/tcp_bpf.c
 -F:    net/ipv4/udp_bpf.c
 -F:    net/unix/unix_bpf.c
 -
  LANDLOCK SECURITY MODULE
  M:    Mickaël Salaün <[email protected]>
  L:    [email protected]
@@@ -11450,7 -11257,6 +11450,7 @@@ M:   Damien Le Moal <damien.lemoal@openso
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata.git
 +F:    Documentation/ABI/testing/sysfs-ata
  F:    Documentation/devicetree/bindings/ata/
  F:    drivers/ata/
  F:    include/linux/ata.h
@@@ -11725,7 -11531,7 +11725,7 @@@ F:   drivers/media/usb/dvb-usb-v2/lmedm04
  LOADPIN SECURITY MODULE
  M:    Kees Cook <[email protected]>
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git lsm/loadpin
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/admin-guide/LSM/LoadPin.rst
  F:    security/loadpin/
  
@@@ -11774,7 -11580,6 +11774,7 @@@ F:   drivers/gpu/drm/bridge/lontium-lt891
  LOONGARCH
  M:    Huacai Chen <[email protected]>
  R:    WANG Xuerui <[email protected]>
 +L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git
  F:    arch/loongarch/
@@@ -12687,7 -12492,7 +12687,7 @@@ F:   drivers/i2c/busses/i2c-mt65xx.
  
  MEDIATEK IOMMU DRIVER
  M:    Yong Wu <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/iommu/mediatek*
  S:    Supported
  W:    http://www.mellanox.com
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
 -F:    drivers/net/ethernet/mellanox/mlx5/core/accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/fpga/*
  F:    include/linux/mlx5/mlx5_ifc_fpga.h
@@@ -13030,8 -12836,9 +13030,8 @@@ M:   Andrew Morton <akpm@linux-foundation
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mm.org
 -T:    quilt https://ozlabs.org/~akpm/mmotm/
 -T:    quilt https://ozlabs.org/~akpm/mmots/
 -T:    git git://github.com/hnaz/linux-mm.git
 +T:    git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
 +T:    quilt git://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new
  F:    include/linux/gfp.h
  F:    include/linux/memory_hotplug.h
  F:    include/linux/mm.h
@@@ -13041,18 -12848,6 +13041,18 @@@ F: include/linux/vmalloc.
  F:    mm/
  F:    tools/testing/selftests/vm/
  
 +MEMORY HOT(UN)PLUG
 +M:    David Hildenbrand <[email protected]>
 +M:    Oscar Salvador <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/admin-guide/mm/memory-hotplug.rst
 +F:    Documentation/core-api/memory-hotplug.rst
 +F:    drivers/base/memory.c
 +F:    include/linux/memory_hotplug.h
 +F:    mm/memory_hotplug.c
 +F:    tools/testing/selftests/memory-hotplug/
 +
  MEMORY TECHNOLOGY DEVICES (MTD)
  M:    Miquel Raynal <[email protected]>
  M:    Richard Weinberger <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
 +F:    Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
  F:    drivers/net/dsa/microchip/*
  F:    include/linux/platform_data/microchip-ksz.h
  F:    net/dsa/tag_ksz.c
@@@ -13910,11 -13704,12 +13910,11 @@@ L:        [email protected]
  S:    Maintained
  F:    net/sched/sch_netem.c
  
 -NETERION 10GbE DRIVERS (s2io/vxge)
 +NETERION 10GbE DRIVERS (s2io)
  M:    Jon Mason <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/networking/device_drivers/ethernet/neterion/s2io.rst
 -F:    Documentation/networking/device_drivers/ethernet/neterion/vxge.rst
  F:    drivers/net/ethernet/neterion/
  
  NETFILTER
@@@ -13997,7 -13792,6 +13997,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/net/
  F:    drivers/connector/
  F:    drivers/net/
 +F:    include/dt-bindings/net/
  F:    include/linux/etherdevice.h
  F:    include/linux/fcdevice.h
  F:    include/linux/fddidevice.h
@@@ -14149,6 -13943,7 +14149,6 @@@ F:   net/ipv6/tcp*.
  NETWORKING [TLS]
  M:    Boris Pismenny <[email protected]>
  M:    John Fastabend <[email protected]>
 -M:    Daniel Borkmann <[email protected]>
  M:    Jakub Kicinski <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14439,8 -14234,7 +14439,8 @@@ S:   Maintaine
  F:    drivers/net/phy/nxp-c45-tja11xx.c
  
  NXP FSPI DRIVER
 -M:    Ashish Kumar <[email protected]>
 +M:    Han Xu <[email protected]>
 +M:    Haibo Chen <[email protected]>
  R:    Yogesh Gaur <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14458,7 -14252,7 +14458,7 @@@ F:   drivers/iio/gyro/fxas21002c_i2c.
  F:    drivers/iio/gyro/fxas21002c_spi.c
  
  NXP i.MX CLOCK DRIVERS
 -M:    Abel Vesa <abel[email protected]>
 +M:    Abel Vesa <abel[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -14546,8 -14340,9 +14546,8 @@@ F:   Documentation/devicetree/bindings/so
  F:    sound/soc/codecs/tfa989x.c
  
  NXP-NCI NFC DRIVER
 -R:    Charles Gorand <[email protected]>
  L:    [email protected] (subscribers-only)
 -S:    Supported
 +S:    Orphan
  F:    Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
  F:    drivers/nfc/nxp-nci
  
@@@ -15065,7 -14860,6 +15065,7 @@@ F:   include/dt-bindings
  
  OPENCOMPUTE PTP CLOCK DRIVER
  M:    Jonathan Lemon <[email protected]>
 +M:    Vadim Fedorenko <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/ptp/ptp_ocp.c
@@@ -15075,7 -14869,7 +15075,7 @@@ M:   Peter Korsgaard <[email protected]
  M:    Andrew Lunn <[email protected]>
  L:    [email protected]
  S:    Maintained
- F:    Documentation/devicetree/bindings/i2c/i2c-ocores.txt
+ F:    Documentation/devicetree/bindings/i2c/opencores,i2c-ocores.yaml
  F:    Documentation/i2c/busses/i2c-ocores.rst
  F:    drivers/i2c/busses/i2c-ocores.c
  F:    include/linux/platform_data/i2c-ocores.h
@@@ -15926,7 -15720,7 +15926,7 @@@ PIN CONTROLLER - FREESCAL
  M:    Dong Aisheng <[email protected]>
  M:    Fabio Estevam <[email protected]>
  M:    Shawn Guo <[email protected]>
 -M:    Stefan Agner <[email protected]>
 +M:    Jacky Bai <[email protected]>
  R:    Pengutronix Kernel Team <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -15936,7 -15730,7 +15936,7 @@@ F:   drivers/pinctrl/freescale
  PIN CONTROLLER - INTEL
  M:    Mika Westerberg <[email protected]>
  M:    Andy Shevchenko <[email protected]>
 -S:    Maintained
 +S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel.git
  F:    drivers/pinctrl/intel/
  
@@@ -16030,14 -15824,6 +16030,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
  F:    drivers/iio/chemical/pms7003.c
  
 +PLATFORM FEATURE INFRASTRUCTURE
 +M:    Juergen Gross <[email protected]>
 +S:    Maintained
 +F:    arch/*/include/asm/platform-feature.h
 +F:    include/asm-generic/platform-feature.h
 +F:    include/linux/platform-feature.h
 +F:    kernel/platform-feature.c
 +
  PLDMFW LIBRARY
  M:    Jacob Keller <[email protected]>
  S:    Maintained
@@@ -16402,6 -16188,7 +16402,6 @@@ F:   drivers/media/rc/pwm-ir-tx.
  PWM SUBSYSTEM
  M:    Thierry Reding <[email protected]>
  R:    Uwe Kleine-König <[email protected]>
 -M:    Lee Jones <[email protected]>
  L:    [email protected]
  S:    Maintained
  Q:    https://patchwork.ozlabs.org/project/linux-pwm/list/
@@@ -16412,7 -16199,6 +16412,7 @@@ F:   Documentation/driver-api/pwm.rs
  F:    drivers/gpio/gpio-mvebu.c
  F:    drivers/pwm/
  F:    drivers/video/backlight/pwm_bl.c
 +F:    include/dt-bindings/pwm/
  F:    include/linux/pwm.h
  F:    include/linux/pwm_backlight.h
  K:    pwm_(config|apply_state|ops)
@@@ -16458,7 -16244,7 +16458,7 @@@ F:   drivers/crypto/qat
  
  QCOM AUDIO (ASoC) DRIVERS
  M:    Srinivas Kandagatla <[email protected]>
 -M:    Banajit Goswami <bgoswami@codeaurora.org>
 +M:    Banajit Goswami <bgoswami@quicinc.com>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/codecs/lpass-va-macro.c
@@@ -16685,7 -16471,7 +16685,7 @@@ F:   Documentation/devicetree/bindings/op
  F:    drivers/cpufreq/qcom-cpufreq-nvmem.c
  
  QUALCOMM CRYPTO DRIVERS
 -M:    Thara Gopinath <thara.gopinath@linaro.org>
 +M:    Thara Gopinath <thara.gopinath@gmail.com>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -16737,16 -16523,9 +16737,16 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
  F:    drivers/i2c/busses/i2c-qcom-cci.c
  
 +QUALCOMM INTERCONNECT BWMON DRIVER
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml
 +F:    drivers/soc/qcom/icc-bwmon.c
 +
  QUALCOMM IOMMU
  M:    Rob Clark <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  L:    [email protected]
  S:    Maintained
  F:    drivers/iommu/arm/arm-smmu/qcom_iommu.c
@@@ -16802,7 -16581,7 +16802,7 @@@ F:   include/linux/if_rmnet.
  
  QUALCOMM TSENS THERMAL DRIVER
  M:    Amit Kucheria <[email protected]>
 -M:    Thara Gopinath <thara.gopinath@linaro.org>
 +M:    Thara Gopinath <thara.gopinath@gmail.com>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -17259,19 -17038,6 +17259,19 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
  F:    drivers/iio/adc/rzg2l_adc.c
  
 +RENESAS RZ/N1 A5PSW SWITCH DRIVER
 +M:    Clément Léger <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
 +F:    Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml
 +F:    drivers/net/dsa/rzn1_a5psw*
 +F:    drivers/net/pcs/pcs-rzn1-miic.c
 +F:    include/dt-bindings/net/pcs-rzn1-miic.h
 +F:    include/linux/pcs-rzn1-miic.h
 +F:    net/dsa/tag_rzn1_a5psw.c
 +
  RENESAS RZ/N1 RTC CONTROLLER DRIVER
  M:    Miquel Raynal <[email protected]>
  L:    [email protected]
@@@ -17370,17 -17136,13 +17370,17 @@@ N:        risc
  K:    riscv
  
  RISC-V/MICROCHIP POLARFIRE SOC SUPPORT
 -M:    Lewis Hanly <[email protected]>
  M:    Conor Dooley <[email protected]>
 +M:    Daire McNamara <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    arch/riscv/boot/dts/microchip/
 +F:    drivers/char/hw_random/mpfs-rng.c
 +F:    drivers/clk/microchip/clk-mpfs.c
  F:    drivers/mailbox/mailbox-mpfs.c
 +F:    drivers/pci/controller/pcie-microchip-host.c
  F:    drivers/soc/microchip/
 +F:    drivers/spi/spi-microchip-core.c
  F:    include/soc/microchip/mpfs.h
  
  RNBD BLOCK DRIVERS
@@@ -18076,7 -17838,7 +18076,7 @@@ M:   Kees Cook <[email protected]
  R:    Andy Lutomirski <[email protected]>
  R:    Will Drewry <[email protected]>
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git seccomp
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/seccomp
  F:    Documentation/userspace-api/seccomp_filter.rst
  F:    include/linux/seccomp.h
  F:    include/uapi/linux/seccomp.h
@@@ -18147,13 -17909,12 +18147,13 @@@ S:        Supporte
  F:    Documentation/admin-guide/security-bugs.rst
  
  SECURITY SUBSYSTEM
 +M:    Paul Moore <[email protected]>
  M:    James Morris <[email protected]>
  M:    "Serge E. Hallyn" <[email protected]>
  L:    [email protected] (suggested Cc:)
  S:    Supported
  W:    http://kernsec.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
  F:    security/
  X:    security/selinux/
  
@@@ -18256,7 -18017,6 +18256,7 @@@ SFF/SFP/SFP+ MODULE SUPPOR
  M:    Russell King <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/net/sff,sfp.yaml
  F:    drivers/net/phy/phylink.c
  F:    drivers/net/phy/sfp*
  F:    include/linux/mdio/mdio-i2c.h
@@@ -18278,7 -18038,6 +18278,7 @@@ F:   drivers/misc/sgi-xp
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
  M:    Karsten Graul <[email protected]>
 +M:    Wenjia Zhang <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -18543,12 -18302,6 +18543,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    include/linux/sl?b*.h
  F:    mm/sl?b*
  
 +SLCAN CAN NETWORK DRIVER
 +M:    Dario Binacchi <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/can/slcan/
 +
  SLEEPABLE READ-COPY UPDATE (SRCU)
  M:    Lai Jiangshan <[email protected]>
  M:    "Paul E. McKenney" <[email protected]>
@@@ -18917,10 -18670,8 +18917,10 @@@ F: sound/soc
  SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS
  M:    Pierre-Louis Bossart <[email protected]>
  M:    Liam Girdwood <[email protected]>
 +M:    Peter Ujfalusi <[email protected]>
 +M:    Bard Liao <[email protected]>
  M:    Ranjani Sridharan <[email protected]>
 -M:    Kai Vehmanen <[email protected]>
 +R:    Kai Vehmanen <[email protected]>
  M:    Daniel Baluta <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
@@@ -19399,7 -19150,7 +19399,7 @@@ F:   arch/x86/boot/video
  
  SWIOTLB SUBSYSTEM
  M:    Christoph Hellwig <[email protected]>
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  T:    git git://git.infradead.org/users/hch/dma-mapping.git
@@@ -19469,7 -19220,7 +19469,7 @@@ F:   arch/arc/plat-axs10
  SYNOPSYS AXS10x RESET CONTROLLER DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
 +F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.yaml
  F:    drivers/reset/reset-axs10x.c
  
  SYNOPSYS CREG GPIO DRIVER
@@@ -19537,7 -19288,7 +19537,7 @@@ R:   Andy Shevchenko <andriy.shevchenko@l
  R:    Mika Westerberg <[email protected]>
  R:    Jan Dabros <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    drivers/i2c/busses/i2c-designware-*
  
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
@@@ -19879,7 -19630,7 +19879,7 @@@ M:   Sowjanya Komatineni <skomatineni@nvi
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
 +F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.yaml
  F:    drivers/staging/media/tegra-video/
  
  TEGRA XUSB PADCTL DRIVER
@@@ -20002,7 -19753,6 +20002,7 @@@ F:   Documentation/ABI/testing/sysfs-clas
  F:    Documentation/devicetree/bindings/thermal/
  F:    Documentation/driver-api/thermal/
  F:    drivers/thermal/
 +F:    include/dt-bindings/thermal/
  F:    include/linux/cpu_cooling.h
  F:    include/linux/thermal.h
  F:    include/uapi/linux/thermal.h
@@@ -20477,7 -20227,7 +20477,7 @@@ F:   tools/tracing/rtla
  
  TRADITIONAL CHINESE DOCUMENTATION
  M:    Hu Haowen <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  W:    https://github.com/srcres258/linux-doc
  T:    git git://github.com/srcres258/linux-doc.git doc-zh-tw
@@@ -20597,13 -20347,6 +20597,13 @@@ F: Documentation/filesystems/ubifs-auth
  F:    Documentation/filesystems/ubifs.rst
  F:    fs/ubifs/
  
 +UBLK USERSPACE BLOCK DRIVER
 +M:    Ming Lei <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/block/ublk_drv.c
 +F:    include/uapi/linux/ublk_cmd.h
 +
  UCLINUX (M68KNOMMU AND COLDFIRE)
  M:    Greg Ungerer <[email protected]>
  L:    [email protected]
@@@ -20952,7 -20695,6 +20952,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/usb/
  F:    Documentation/usb/
  F:    drivers/usb/
 +F:    include/dt-bindings/usb/
  F:    include/linux/usb.h
  F:    include/linux/usb/
  
  S:    Maintained
  F:    drivers/input/tablet/wacom_serial4.c
  
 +WANGXUN ETHERNET DRIVER
 +M:    Jiawen Wu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/networking/device_drivers/ethernet/wangxun/txgbe.rst
 +F:    drivers/net/ethernet/wangxun/
 +
  WATCHDOG DEVICE DRIVERS
  M:    Wim Van Sebroeck <[email protected]>
  M:    Guenter Roeck <[email protected]>
@@@ -21998,7 -21733,8 +21998,7 @@@ F:   include/uapi/linux/if_xdp.
  F:    include/uapi/linux/xdp_diag.h
  F:    include/net/netns/xdp.h
  F:    net/xdp/
 -F:    samples/bpf/xdpsock*
 -F:    tools/lib/bpf/xsk*
 +F:    tools/testing/selftests/bpf/*xsk*
  
  XEN BLOCK SUBSYSTEM
  M:    Roger Pau Monné <[email protected]>
@@@ -22088,7 -21824,7 +22088,7 @@@ XEN SWIOTLB SUBSYSTE
  M:    Juergen Gross <[email protected]>
  M:    Stefano Stabellini <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -L:    [email protected]-foundation.org
 +L:    [email protected].dev
  S:    Supported
  F:    arch/x86/xen/*swiotlb*
  F:    drivers/xen/*swiotlb*
@@@ -22238,7 -21974,7 +22238,7 @@@ F:   include/linux/yam.
  YAMA SECURITY MODULE
  M:    Kees Cook <[email protected]>
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git yama/tip
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/admin-guide/LSM/Yama.rst
  F:    security/yama/
  
index 708a67c7faaa8efba4eb657a80838c8102f68fae,6a69721c4400321e1b5f29fb5130f274db2a9b68..e95d6bc340706afd15dce2b5d70d1599bd5dcf45
@@@ -156,6 -156,7 +156,7 @@@ config I2C_I80
            Emmitsburg (PCH)
            Alder Lake (PCH)
            Raptor Lake (PCH)
+           Meteor Lake (SOC)
  
          This driver can also be built as a module.  If so, the module
          will be called i2c-i801.
@@@ -486,7 -487,7 +487,7 @@@ config I2C_BCM_KON
  
  config I2C_BRCMSTB
        tristate "BRCM Settop/DSL I2C controller"
 -      depends on ARCH_BCM2835 || ARCH_BCM4908 || ARCH_BCM_63XX || \
 +      depends on ARCH_BCM2835 || ARCH_BCM4908 || ARCH_BCMBCA || \
                   ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
        default y
        help
@@@ -781,6 -782,17 +782,17 @@@ config I2C_MESO
          If you say yes to this option, support will be included for the
          I2C interface on the Amlogic Meson family of SoCs.
  
+ config I2C_MICROCHIP_CORE
+       tristate "Microchip FPGA I2C controller"
+       depends on SOC_MICROCHIP_POLARFIRE || COMPILE_TEST
+       depends on OF
+       help
+         If you say yes to this option, support will be included for the
+         I2C interface on Microchip FPGAs.
+         This driver can also be built as a module. If so, the module will be
+         called i2c-microchip-core.
  config I2C_MPC
        tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx"
        depends on PPC
@@@ -838,13 -850,13 +850,13 @@@ config I2C_NOMADI
          I2C interface from ST-Ericsson's Nomadik and Ux500 architectures,
          as well as the STA2X11 PCIe I/O HUB.
  
- config I2C_NPCM7XX
+ config I2C_NPCM
        tristate "Nuvoton I2C Controller"
-       depends on ARCH_NPCM7XX || COMPILE_TEST
+       depends on ARCH_NPCM || COMPILE_TEST
        help
          If you say yes to this option, support will be included for the
-         Nuvoton I2C controller, which is available on the NPCM7xx BMC
-         controller.
+         Nuvoton I2C controller, which is available on the NPCM BMC
+         controllers.
          Driver can also support slave mode (select I2C_SLAVE).
  
  config I2C_OCORES
@@@ -984,6 -996,16 +996,16 @@@ config I2C_RK3
          This driver can also be built as a module. If so, the module will
          be called i2c-rk3x.
  
+ config I2C_RZV2M
+       tristate "Renesas RZ/V2M adapter"
+       depends on ARCH_RENESAS || COMPILE_TEST
+       help
+         If you say yes to this option, support will be included for the
+         Renesas RZ/V2M  I2C interface.
+         This driver can also be built as a module.  If so, the module
+         will be called i2c-rzv2m.
  config I2C_S3C2410
        tristate "S3C/Exynos I2C Driver"
        depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || \
index 630cfa4ddd468c5b3ee4d4bda56b792aba2806e6,ae9199ad8873fec92817a9fe5d5e7a81bb6a594c..33f5588a50c0738a049c52239ff406cfec1fc806
@@@ -388,9 -388,9 +388,9 @@@ static irqreturn_t cdns_i2c_slave_isr(v
   */
  static irqreturn_t cdns_i2c_master_isr(void *ptr)
  {
 -      unsigned int isr_status, avail_bytes, updatetx;
 +      unsigned int isr_status, avail_bytes;
        unsigned int bytes_to_send;
 -      bool hold_quirk;
 +      bool updatetx;
        struct cdns_i2c *id = ptr;
        /* Signal completion only after everything is updated */
        int done_flag = 0;
         * Check if transfer size register needs to be updated again for a
         * large data receive operation.
         */
 -      updatetx = 0;
 -      if (id->recv_count > id->curr_recv_count)
 -              updatetx = 1;
 -
 -      hold_quirk = (id->quirks & CDNS_I2C_BROKEN_HOLD_BIT) && updatetx;
 +      updatetx = id->recv_count > id->curr_recv_count;
  
        /* When receiving, handle data interrupt and completion interrupt */
        if (id->p_recv_buf &&
                                break;
                        }
  
 -                      if (cdns_is_holdquirk(id, hold_quirk))
 +                      if (cdns_is_holdquirk(id, updatetx))
                                break;
                }
  
                 * maintain transfer size non-zero while performing a large
                 * receive operation.
                 */
 -              if (cdns_is_holdquirk(id, hold_quirk)) {
 +              if (cdns_is_holdquirk(id, updatetx)) {
                        /* wait while fifo is full */
                        while (cdns_i2c_readreg(CDNS_I2C_XFER_SIZE_OFFSET) !=
                               (id->curr_recv_count - CDNS_I2C_FIFO_DEPTH))
                                                  CDNS_I2C_XFER_SIZE_OFFSET);
                                id->curr_recv_count = id->recv_count;
                        }
 -              } else if (id->recv_count && !hold_quirk &&
 -                                              !id->curr_recv_count) {
 -
 -                      /* Set the slave address in address register*/
 -                      cdns_i2c_writereg(id->p_msg->addr & CDNS_I2C_ADDR_MASK,
 -                                              CDNS_I2C_ADDR_OFFSET);
 -
 -                      if (id->recv_count > CDNS_I2C_TRANSFER_SIZE) {
 -                              cdns_i2c_writereg(CDNS_I2C_TRANSFER_SIZE,
 -                                              CDNS_I2C_XFER_SIZE_OFFSET);
 -                              id->curr_recv_count = CDNS_I2C_TRANSFER_SIZE;
 -                      } else {
 -                              cdns_i2c_writereg(id->recv_count,
 -                                              CDNS_I2C_XFER_SIZE_OFFSET);
 -                              id->curr_recv_count = id->recv_count;
 -                      }
                }
  
                /* Clear hold (if not repeated start) and signal completion */
@@@ -573,8 -593,13 +573,13 @@@ static void cdns_i2c_mrecv(struct cdns_
        ctrl_reg = cdns_i2c_readreg(CDNS_I2C_CR_OFFSET);
        ctrl_reg |= CDNS_I2C_CR_RW | CDNS_I2C_CR_CLR_FIFO;
  
+       /*
+        * Receive up to I2C_SMBUS_BLOCK_MAX data bytes, plus one message length
+        * byte, plus one checksum byte if PEC is enabled. p_msg->len will be 2 if
+        * PEC is enabled, otherwise 1.
+        */
        if (id->p_msg->flags & I2C_M_RECV_LEN)
-               id->recv_count = I2C_SMBUS_BLOCK_MAX + 1;
+               id->recv_count = I2C_SMBUS_BLOCK_MAX + id->p_msg->len;
  
        id->curr_recv_count = id->recv_count;
  
@@@ -789,6 -814,9 +794,9 @@@ static int cdns_i2c_process_msg(struct 
        if (id->err_status & CDNS_I2C_IXR_ARB_LOST)
                return -EAGAIN;
  
+       if (msg->flags & I2C_M_RECV_LEN)
+               msg->len += min_t(unsigned int, msg->buf[0], I2C_SMBUS_BLOCK_MAX);
        return 0;
  }
  
@@@ -1318,7 -1346,6 +1326,7 @@@ static int cdns_i2c_probe(struct platfo
        return 0;
  
  err_clk_dis:
 +      clk_notifier_unregister(id->clk, &id->clk_rate_change_nb);
        clk_disable_unprepare(id->clk);
        pm_runtime_disable(&pdev->dev);
        pm_runtime_set_suspended(&pdev->dev);
index 815cc561386b021b9556f15e3686fa8d29c85cdf,363ea9fd66c47339d347a772d30b367adcd33967..72fcfb17dd67e9d6d2366141f7905db138d9ad66
@@@ -49,7 -49,7 +49,7 @@@
  #define MLXCPLD_LPCI2C_NACK_IND               2
  
  #define MLXCPLD_I2C_FREQ_1000KHZ_SET  0x04
 -#define MLXCPLD_I2C_FREQ_400KHZ_SET   0x0c
 +#define MLXCPLD_I2C_FREQ_400KHZ_SET   0x0e
  #define MLXCPLD_I2C_FREQ_100KHZ_SET   0x42
  
  enum mlxcpld_i2c_frequency {
@@@ -560,6 -560,10 +560,10 @@@ static int mlxcpld_i2c_probe(struct pla
        if (err)
                goto mlxcpld_i2_probe_failed;
  
+       /* Notify caller when adapter is added. */
+       if (pdata && pdata->completion_notify)
+               pdata->completion_notify(pdata->handle, mlxcpld_i2c_adapter.nr);
        return 0;
  
  mlxcpld_i2_probe_failed:
index aede9d551130b9e68fe7376ad4a9bd488e2b74ec,7d863edc14e4babf40d3930f50a94471fafcc540..0c365b57d9572327746e3cf0e7af28cf0c41efa3
@@@ -17,6 -17,7 +17,7 @@@
  #include <linux/mfd/syscon.h>
  #include <linux/module.h>
  #include <linux/of.h>
+ #include <linux/of_device.h>
  #include <linux/platform_device.h>
  #include <linux/regmap.h>
  
@@@ -91,7 -92,6 +92,6 @@@ enum i2c_addr 
  
  /* init register and default value required to enable module */
  #define NPCM_I2CSEGCTL                        0xE4
- #define NPCM_I2CSEGCTL_INIT_VAL               0x0333F000
  
  /* Common regs */
  #define NPCM_I2CSDA                   0x00
   * Since the addr regs are sprinkled all over the address space,
   * use this array to get the address or each register.
   */
- #define I2C_NUM_OWN_ADDR 10
+ #define I2C_NUM_OWN_ADDR 2
+ #define I2C_NUM_OWN_ADDR_SUPPORTED 2
  static const int npcm_i2caddr[I2C_NUM_OWN_ADDR] = {
-       NPCM_I2CADDR1, NPCM_I2CADDR2, NPCM_I2CADDR3, NPCM_I2CADDR4,
-       NPCM_I2CADDR5, NPCM_I2CADDR6, NPCM_I2CADDR7, NPCM_I2CADDR8,
-       NPCM_I2CADDR9, NPCM_I2CADDR10,
+       NPCM_I2CADDR1, NPCM_I2CADDR2,
  };
  #endif
  
  #define NPCM_I2CFIF_CTS_CLR_FIFO      BIT(6)
  #define NPCM_I2CFIF_CTS_SLVRSTR               BIT(7)
  
- /* NPCM_I2CTXF_CTL reg fields */
- #define NPCM_I2CTXF_CTL_TX_THR                GENMASK(4, 0)
+ /* NPCM_I2CTXF_CTL reg field */
  #define NPCM_I2CTXF_CTL_THR_TXIE      BIT(6)
  
  /* NPCM_I2CT_OUT reg fields */
  #define NPCM_I2CT_OUT_T_OUTST         BIT(7)
  
  /* NPCM_I2CTXF_STS reg fields */
- #define NPCM_I2CTXF_STS_TX_BYTES      GENMASK(4, 0)
  #define NPCM_I2CTXF_STS_TX_THST               BIT(6)
  
  /* NPCM_I2CRXF_STS reg fields */
- #define NPCM_I2CRXF_STS_RX_BYTES      GENMASK(4, 0)
  #define NPCM_I2CRXF_STS_RX_THST               BIT(6)
  
  /* NPCM_I2CFIF_CTL reg fields */
  #define NPCM_I2CFIF_CTL_FIFO_EN               BIT(4)
  
  /* NPCM_I2CRXF_CTL reg fields */
- #define NPCM_I2CRXF_CTL_RX_THR                GENMASK(4, 0)
- #define NPCM_I2CRXF_CTL_LAST_PEC      BIT(5)
  #define NPCM_I2CRXF_CTL_THR_RXIE      BIT(6)
  
- #define I2C_HW_FIFO_SIZE              16
+ #define MAX_I2C_HW_FIFO_SIZE          32
  
  /* I2C_VER reg fields */
  #define I2C_VER_VERSION                       GENMASK(6, 0)
  #define I2C_FREQ_MIN_HZ                       10000
  #define I2C_FREQ_MAX_HZ                       I2C_MAX_FAST_MODE_PLUS_FREQ
  
+ struct npcm_i2c_data {
+       u8 fifo_size;
+       u32 segctl_init_val;
+       u8 txf_sts_tx_bytes;
+       u8 rxf_sts_rx_bytes;
+       u8 rxf_ctl_last_pec;
+ };
+ static const struct npcm_i2c_data npxm7xx_i2c_data = {
+       .fifo_size = 16,
+       .segctl_init_val = 0x0333F000,
+       .txf_sts_tx_bytes = GENMASK(4, 0),
+       .rxf_sts_rx_bytes = GENMASK(4, 0),
+       .rxf_ctl_last_pec = BIT(5),
+ };
+ static const struct npcm_i2c_data npxm8xx_i2c_data = {
+       .fifo_size = 32,
+       .segctl_init_val = 0x9333F000,
+       .txf_sts_tx_bytes = GENMASK(5, 0),
+       .rxf_sts_rx_bytes = GENMASK(5, 0),
+       .rxf_ctl_last_pec = BIT(7),
+ };
  /* Status of one I2C module */
  struct npcm_i2c {
        struct i2c_adapter adap;
        struct device *dev;
        unsigned char __iomem *reg;
+       const struct npcm_i2c_data *data;
        spinlock_t lock;   /* IRQ synchronization */
        struct completion cmd_complete;
        int cmd_err;
        int slv_rd_ind;
        int slv_wr_size;
        int slv_wr_ind;
-       u8 slv_rd_buf[I2C_HW_FIFO_SIZE];
-       u8 slv_wr_buf[I2C_HW_FIFO_SIZE];
+       u8 slv_rd_buf[MAX_I2C_HW_FIFO_SIZE];
+       u8 slv_wr_buf[MAX_I2C_HW_FIFO_SIZE];
  #endif
        struct dentry *debugfs; /* debugfs device directory */
        u64 ber_cnt;
@@@ -392,14 -412,10 +412,10 @@@ static void npcm_i2c_disable(struct npc
  #if IS_ENABLED(CONFIG_I2C_SLAVE)
        int i;
  
-       /* select bank 0 for I2C addresses */
-       npcm_i2c_select_bank(bus, I2C_BANK_0);
        /* Slave addresses removal */
-       for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR; i++)
+       for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR_SUPPORTED; i++)
                iowrite8(0, bus->reg + npcm_i2caddr[i]);
  
-       npcm_i2c_select_bank(bus, I2C_BANK_1);
  #endif
        /* Disable module */
        i2cctl2 = ioread8(bus->reg + NPCM_I2CCTL2);
@@@ -443,7 -459,7 +459,7 @@@ static inline bool npcm_i2c_tx_fifo_emp
  
        tx_fifo_sts = ioread8(bus->reg + NPCM_I2CTXF_STS);
        /* check if TX FIFO is not empty */
-       if ((tx_fifo_sts & NPCM_I2CTXF_STS_TX_BYTES) == 0)
+       if ((tx_fifo_sts & bus->data->txf_sts_tx_bytes) == 0)
                return false;
  
        /* check if TX FIFO status bit is set: */
@@@ -456,7 -472,7 +472,7 @@@ static inline bool npcm_i2c_rx_fifo_ful
  
        rx_fifo_sts = ioread8(bus->reg + NPCM_I2CRXF_STS);
        /* check if RX FIFO is not empty: */
-       if ((rx_fifo_sts & NPCM_I2CRXF_STS_RX_BYTES) == 0)
+       if ((rx_fifo_sts & bus->data->rxf_sts_rx_bytes) == 0)
                return false;
  
        /* check if rx fifo full status is set: */
@@@ -604,8 -620,7 +620,7 @@@ static int npcm_i2c_slave_enable(struc
                        i2cctl1 &= ~NPCM_I2CCTL1_GCMEN;
                iowrite8(i2cctl1, bus->reg + NPCM_I2CCTL1);
                return 0;
-       }
-       if (addr_type == I2C_ARP_ADDR) {
+       } else if (addr_type == I2C_ARP_ADDR) {
                i2cctl3 = ioread8(bus->reg + NPCM_I2CCTL3);
                if (enable)
                        i2cctl3 |= I2CCTL3_ARPMEN;
                iowrite8(i2cctl3, bus->reg + NPCM_I2CCTL3);
                return 0;
        }
+       if (addr_type > I2C_SLAVE_ADDR2 && addr_type <= I2C_SLAVE_ADDR10)
+               dev_err(bus->dev, "try to enable more than 2 SA not supported\n");
        if (addr_type >= I2C_ARP_ADDR)
                return -EFAULT;
-       /* select bank 0 for address 3 to 10 */
-       if (addr_type > I2C_SLAVE_ADDR2)
-               npcm_i2c_select_bank(bus, I2C_BANK_0);
        /* Set and enable the address */
        iowrite8(sa_reg, bus->reg + npcm_i2caddr[addr_type]);
        npcm_i2c_slave_int_enable(bus, enable);
-       if (addr_type > I2C_SLAVE_ADDR2)
-               npcm_i2c_select_bank(bus, I2C_BANK_1);
        return 0;
  }
  #endif
@@@ -665,7 -680,7 +680,7 @@@ static void npcm_i2c_reset(struct npcm_
        }
  #endif
  
-       /* clear status bits for spurious interrupts */
+       /* Clear status bits for spurious interrupts */
        npcm_i2c_clear_master_status(bus);
  
        bus->state = I2C_IDLE;
@@@ -744,11 -759,11 +759,11 @@@ static void npcm_i2c_callback(struct np
  static u8 npcm_i2c_fifo_usage(struct npcm_i2c *bus)
  {
        if (bus->operation == I2C_WRITE_OPER)
-               return FIELD_GET(NPCM_I2CTXF_STS_TX_BYTES,
-                                ioread8(bus->reg + NPCM_I2CTXF_STS));
+               return (bus->data->txf_sts_tx_bytes &
+                       ioread8(bus->reg + NPCM_I2CTXF_STS));
        if (bus->operation == I2C_READ_OPER)
-               return FIELD_GET(NPCM_I2CRXF_STS_RX_BYTES,
-                                ioread8(bus->reg + NPCM_I2CRXF_STS));
+               return (bus->data->rxf_sts_rx_bytes &
+                       ioread8(bus->reg + NPCM_I2CRXF_STS));
        return 0;
  }
  
@@@ -760,13 -775,13 +775,13 @@@ static void npcm_i2c_write_to_fifo_mast
         * Fill the FIFO, while the FIFO is not full and there are more bytes
         * to write
         */
-       size_free_fifo = I2C_HW_FIFO_SIZE - npcm_i2c_fifo_usage(bus);
+       size_free_fifo = bus->data->fifo_size - npcm_i2c_fifo_usage(bus);
        while (max_bytes-- && size_free_fifo) {
                if (bus->wr_ind < bus->wr_size)
                        npcm_i2c_wr_byte(bus, bus->wr_buf[bus->wr_ind++]);
                else
                        npcm_i2c_wr_byte(bus, 0xFF);
-               size_free_fifo = I2C_HW_FIFO_SIZE - npcm_i2c_fifo_usage(bus);
+               size_free_fifo = bus->data->fifo_size - npcm_i2c_fifo_usage(bus);
        }
  }
  
@@@ -787,11 -802,11 +802,11 @@@ static void npcm_i2c_set_fifo(struct np
  
        /* configure RX FIFO */
        if (nread > 0) {
-               rxf_ctl = min_t(int, nread, I2C_HW_FIFO_SIZE);
+               rxf_ctl = min_t(int, nread, bus->data->fifo_size);
  
                /* set LAST bit. if LAST is set next FIFO packet is nacked */
-               if (nread <= I2C_HW_FIFO_SIZE)
-                       rxf_ctl |= NPCM_I2CRXF_CTL_LAST_PEC;
+               if (nread <= bus->data->fifo_size)
+                       rxf_ctl |= bus->data->rxf_ctl_last_pec;
  
                /*
                 * if we are about to read the first byte in blk rd mode,
  
        /* configure TX FIFO */
        if (nwrite > 0) {
-               if (nwrite > I2C_HW_FIFO_SIZE)
+               if (nwrite > bus->data->fifo_size)
                        /* data to send is more then FIFO size. */
-                       iowrite8(I2C_HW_FIFO_SIZE, bus->reg + NPCM_I2CTXF_CTL);
+                       iowrite8(bus->data->fifo_size, bus->reg + NPCM_I2CTXF_CTL);
                else
                        iowrite8(nwrite, bus->reg + NPCM_I2CTXF_CTL);
  
@@@ -846,15 -861,11 +861,11 @@@ static u8 npcm_i2c_get_slave_addr(struc
  {
        u8 slave_add;
  
-       /* select bank 0 for address 3 to 10 */
-       if (addr_type > I2C_SLAVE_ADDR2)
-               npcm_i2c_select_bank(bus, I2C_BANK_0);
+       if (addr_type > I2C_SLAVE_ADDR2 && addr_type <= I2C_SLAVE_ADDR10)
+               dev_err(bus->dev, "get slave: try to use more than 2 SA not supported\n");
  
        slave_add = ioread8(bus->reg + npcm_i2caddr[(int)addr_type]);
  
-       if (addr_type > I2C_SLAVE_ADDR2)
-               npcm_i2c_select_bank(bus, I2C_BANK_1);
        return slave_add;
  }
  
@@@ -864,12 -875,12 +875,12 @@@ static int npcm_i2c_remove_slave_addr(s
  
        /* Set the enable bit */
        slave_add |= 0x80;
-       npcm_i2c_select_bank(bus, I2C_BANK_0);
-       for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR; i++) {
+       for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR_SUPPORTED; i++) {
                if (ioread8(bus->reg + npcm_i2caddr[i]) == slave_add)
                        iowrite8(0, bus->reg + npcm_i2caddr[i]);
        }
-       npcm_i2c_select_bank(bus, I2C_BANK_1);
        return 0;
  }
  
@@@ -882,13 -893,13 +893,13 @@@ static void npcm_i2c_write_fifo_slave(s
        npcm_i2c_clear_fifo_int(bus);
        npcm_i2c_clear_tx_fifo(bus);
        iowrite8(0, bus->reg + NPCM_I2CTXF_CTL);
-       while (max_bytes-- && I2C_HW_FIFO_SIZE != npcm_i2c_fifo_usage(bus)) {
+       while (max_bytes-- && bus->data->fifo_size != npcm_i2c_fifo_usage(bus)) {
                if (bus->slv_wr_size <= 0)
                        break;
-               bus->slv_wr_ind = bus->slv_wr_ind % I2C_HW_FIFO_SIZE;
+               bus->slv_wr_ind = bus->slv_wr_ind & (bus->data->fifo_size - 1);
                npcm_i2c_wr_byte(bus, bus->slv_wr_buf[bus->slv_wr_ind]);
                bus->slv_wr_ind++;
-               bus->slv_wr_ind = bus->slv_wr_ind % I2C_HW_FIFO_SIZE;
+               bus->slv_wr_ind = bus->slv_wr_ind & (bus->data->fifo_size - 1);
                bus->slv_wr_size--;
        }
  }
@@@ -903,7 -914,7 +914,7 @@@ static void npcm_i2c_read_fifo_slave(st
        while (bytes_in_fifo--) {
                data = npcm_i2c_rd_byte(bus);
  
-               bus->slv_rd_ind = bus->slv_rd_ind % I2C_HW_FIFO_SIZE;
+               bus->slv_rd_ind = bus->slv_rd_ind & (bus->data->fifo_size - 1);
                bus->slv_rd_buf[bus->slv_rd_ind] = data;
                bus->slv_rd_ind++;
  
@@@ -921,16 -932,20 +932,20 @@@ static int npcm_i2c_slave_get_wr_buf(st
        int ret = bus->slv_wr_ind;
  
        /* fill a cyclic buffer */
-       for (i = 0; i < I2C_HW_FIFO_SIZE; i++) {
-               if (bus->slv_wr_size >= I2C_HW_FIFO_SIZE)
+       for (i = 0; i < bus->data->fifo_size; i++) {
+               if (bus->slv_wr_size >= bus->data->fifo_size)
                        break;
-               i2c_slave_event(bus->slave, I2C_SLAVE_READ_REQUESTED, &value);
-               ind = (bus->slv_wr_ind + bus->slv_wr_size) % I2C_HW_FIFO_SIZE;
+               if (bus->state == I2C_SLAVE_MATCH) {
+                       i2c_slave_event(bus->slave, I2C_SLAVE_READ_REQUESTED, &value);
+                       bus->state = I2C_OPER_STARTED;
+               } else {
+                       i2c_slave_event(bus->slave, I2C_SLAVE_READ_PROCESSED, &value);
+               }
+               ind = (bus->slv_wr_ind + bus->slv_wr_size) & (bus->data->fifo_size - 1);
                bus->slv_wr_buf[ind] = value;
                bus->slv_wr_size++;
-               i2c_slave_event(bus->slave, I2C_SLAVE_READ_PROCESSED, &value);
        }
-       return I2C_HW_FIFO_SIZE - ret;
+       return bus->data->fifo_size - ret;
  }
  
  static void npcm_i2c_slave_send_rd_buf(struct npcm_i2c *bus)
@@@ -965,7 -980,7 +980,7 @@@ static void npcm_i2c_slave_receive(stru
        bus->slv_rd_ind = 0;
  
        iowrite8(0, bus->reg + NPCM_I2CTXF_CTL);
-       iowrite8(I2C_HW_FIFO_SIZE, bus->reg + NPCM_I2CRXF_CTL);
+       iowrite8(bus->data->fifo_size, bus->reg + NPCM_I2CRXF_CTL);
        npcm_i2c_clear_tx_fifo(bus);
        npcm_i2c_clear_rx_fifo(bus);
  }
@@@ -976,7 -991,6 +991,6 @@@ static void npcm_i2c_slave_xmit(struct 
        if (nwrite == 0)
                return;
  
-       bus->state = I2C_OPER_STARTED;
        bus->operation = I2C_WRITE_OPER;
  
        /* get the next buffer */
@@@ -999,12 -1013,12 +1013,12 @@@ static void npcm_i2c_slave_wr_buf_sync(
  {
        int left_in_fifo;
  
-       left_in_fifo = FIELD_GET(NPCM_I2CTXF_STS_TX_BYTES,
-                                ioread8(bus->reg + NPCM_I2CTXF_STS));
+       left_in_fifo = bus->data->txf_sts_tx_bytes &
+                       ioread8(bus->reg + NPCM_I2CTXF_STS);
  
        /* fifo already full: */
-       if (left_in_fifo >= I2C_HW_FIFO_SIZE ||
-           bus->slv_wr_size >= I2C_HW_FIFO_SIZE)
+       if (left_in_fifo >= bus->data->fifo_size ||
+           bus->slv_wr_size >= bus->data->fifo_size)
                return;
  
        /* update the wr fifo index back to the untransmitted bytes: */
        bus->slv_wr_size = bus->slv_wr_size + left_in_fifo;
  
        if (bus->slv_wr_ind < 0)
-               bus->slv_wr_ind += I2C_HW_FIFO_SIZE;
+               bus->slv_wr_ind += bus->data->fifo_size;
  }
  
  static void npcm_i2c_slave_rd_wr(struct npcm_i2c *bus)
@@@ -1158,7 -1172,7 +1172,7 @@@ static irqreturn_t npcm_i2c_int_slave_h
                npcm_i2c_clear_rx_fifo(bus);
                npcm_i2c_clear_tx_fifo(bus);
                iowrite8(0, bus->reg + NPCM_I2CTXF_CTL);
-               iowrite8(I2C_HW_FIFO_SIZE, bus->reg + NPCM_I2CRXF_CTL);
+               iowrite8(bus->data->fifo_size, bus->reg + NPCM_I2CRXF_CTL);
                if (NPCM_I2CST_XMIT & i2cst) {
                        bus->operation = I2C_WRITE_OPER;
                } else {
        } /* SDAST */
  
        /*
-        * if irq is not one of the above, make sure EOB is disabled and all
+        * If irq is not one of the above, make sure EOB is disabled and all
         * status bits are cleared.
         */
        if (ret == IRQ_NONE) {
@@@ -1319,8 -1333,8 +1333,8 @@@ static void npcm_i2c_master_fifo_read(s
         * read == FIFO Size + C (where C < FIFO Size)then first read C bytes
         * and in the next int we read rest of the data.
         */
-       if (rcount < (2 * I2C_HW_FIFO_SIZE) && rcount > I2C_HW_FIFO_SIZE)
-               fifo_bytes = rcount - I2C_HW_FIFO_SIZE;
+       if (rcount < (2 * bus->data->fifo_size) && rcount > bus->data->fifo_size)
+               fifo_bytes = rcount - bus->data->fifo_size;
  
        if (rcount <= fifo_bytes) {
                /* last bytes are about to be read - end of tx */
@@@ -1492,7 -1506,7 +1506,7 @@@ static void npcm_i2c_irq_handle_nack(st
                npcm_i2c_clear_master_status(bus);
                readx_poll_timeout_atomic(ioread8, bus->reg + NPCM_I2CCST, val,
                                          !(val & NPCM_I2CCST_BUSY), 10, 200);
-               /* verify no status bits are still set after bus is released */
+               /* Verify no status bits are still set after bus is released */
                npcm_i2c_clear_master_status(bus);
        }
        bus->state = I2C_IDLE;
@@@ -1960,7 -1974,7 +1974,7 @@@ static int npcm_i2c_init_module(struct 
  
        npcm_i2c_reset(bus);
  
-       /* check HW is OK: SDA and SCL should be high at this point. */
+       /* Check HW is OK: SDA and SCL should be high at this point. */
        if ((npcm_i2c_get_SDA(&bus->adap) == 0) || (npcm_i2c_get_SCL(&bus->adap) == 0)) {
                dev_err(bus->dev, "I2C%d init fail: lines are low\n", bus->num);
                dev_err(bus->dev, "SDA=%d SCL=%d\n", npcm_i2c_get_SDA(&bus->adap),
@@@ -2020,7 -2034,7 +2034,7 @@@ static irqreturn_t npcm_i2c_bus_irq(in
                        return IRQ_HANDLED;
        }
  #endif
-       /* clear status bits for spurious interrupts */
+       /* Clear status bits for spurious interrupts */
        npcm_i2c_clear_master_status(bus);
  
        return IRQ_HANDLED;
@@@ -2199,10 -2213,10 +2213,10 @@@ static int npcm_i2c_master_xfer(struct 
         * It cannot be cleared without resetting the module.
         */
        else if (bus->cmd_err &&
-                (NPCM_I2CRXF_CTL_LAST_PEC & ioread8(bus->reg + NPCM_I2CRXF_CTL)))
+                (bus->data->rxf_ctl_last_pec & ioread8(bus->reg + NPCM_I2CRXF_CTL)))
                npcm_i2c_reset(bus);
  
-       /* after any xfer, successful or not, stall and EOB must be disabled */
+       /* After any xfer, successful or not, stall and EOB must be disabled */
        npcm_i2c_stall_after_start(bus, false);
        npcm_i2c_eob_int(bus, false);
  
@@@ -2268,6 -2282,7 +2282,7 @@@ static int npcm_i2c_probe_bus(struct pl
  {
        struct device_node *np = pdev->dev.of_node;
        static struct regmap *gcr_regmap;
+       struct device *dev = &pdev->dev;
        struct i2c_adapter *adap;
        struct npcm_i2c *bus;
        struct clk *i2c_clk;
  
        bus->dev = &pdev->dev;
  
+       bus->data = of_device_get_match_data(dev);
+       if (!bus->data) {
+               dev_err(dev, "OF data missing\n");
+               return -EINVAL;
+       }
        bus->num = of_alias_get_id(pdev->dev.of_node, "i2c");
        /* core clk must be acquired to calculate module timing settings */
        i2c_clk = devm_clk_get(&pdev->dev, NULL);
  
        if (IS_ERR(gcr_regmap))
                return PTR_ERR(gcr_regmap);
-       regmap_write(gcr_regmap, NPCM_I2CSEGCTL, NPCM_I2CSEGCTL_INIT_VAL);
+       regmap_write(gcr_regmap, NPCM_I2CSEGCTL, bus->data->segctl_init_val);
  
        bus->reg = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(bus->reg))
@@@ -2355,7 -2376,8 +2376,8 @@@ static int npcm_i2c_remove_bus(struct p
  }
  
  static const struct of_device_id npcm_i2c_bus_of_table[] = {
-       { .compatible = "nuvoton,npcm750-i2c", },
+       { .compatible = "nuvoton,npcm750-i2c", .data = &npxm7xx_i2c_data },
+       { .compatible = "nuvoton,npcm845-i2c", .data = &npxm8xx_i2c_data },
        {}
  };
  MODULE_DEVICE_TABLE(of, npcm_i2c_bus_of_table);
@@@ -2372,7 -2394,8 +2394,7 @@@ static struct platform_driver npcm_i2c_
  static int __init npcm_i2c_init(void)
  {
        npcm_i2c_debugfs_dir = debugfs_create_dir("npcm_i2c", NULL);
 -      platform_driver_register(&npcm_i2c_bus_driver);
 -      return 0;
 +      return platform_driver_register(&npcm_i2c_bus_driver);
  }
  module_init(npcm_i2c_init);
  
This page took 0.264666 seconds and 4 git commands to generate.