Merge tag 'iio-for-5.20a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23...
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Jul 2022 13:04:49 +0000 (15:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Jul 2022 13:04:49 +0000 (15:04 +0200)
Jonathan writes:

IIO new device support, features and minor fixes for 5.20

Several on-running cleanup efforts dominate this time, plus the DMA
safety alignment issue identified due to improved understanding of
the restrictions as a result of Catalin Marinas' efforts in that area.

One immutable branch in here due to MFD and SPMI elements needed for
the qcom-rradc driver.

Device support
* bmi088
  - Add support for bmi085 (accelerometer part of IMU)
  - Add support for bmi090l (accelerometer part of IMU)
* mcp4922
  - Add support for single channel device MCP4921
* rzg2l-adc
  - Add compatible and minor tweaks to support RZ/G2UL ADC
* sca3300
  - Add support for scl3300 including refactoring driver to support
    multiple device types and cleanup noticed whilst working on driver.
* spmi-rradc
  - New driver for Qualcomm SPMI Round Robin ADC including necessary
    additional utility functions in SPMI core and related MFD driver.
* ti-dac55781
  - Add compatible for DAC121C081 which is very similar to existing parts.

Features
* core
  - Warn on iio_trigger_get() on an unregistered IIO trigger.
* bma400
  - Triggered buffer support
  - Activity and step counting
  - Misc driver improvements such as devm and header ordering
* cm32181
  - Add PM support.
* cros_ec
  - Sensor location support
* sx9324
  - Add precharge resistor setting
  - Add internal compensation resistor setting
  - Add CS idle/sleep mode.
* sx9360
  - Add precharge resistor setting
* vl53l0x
  - Handle reset GPIO, regulator and relax handling of irq type.

Cleanup and minor fixes:

Treewide changes
- Cleanup of error handling in remove functions in many drivers.
- Update dt-binding maintainers for a number of ADI bindings.
- Several sets of conversion of drivers from device tree specific to
  generic device properties. Includes fixing up various related
  header and Kconfig issues.
- Drop include of of.h from iio.h and fix up drivers that need to include
  it directly.
- More moves of clusters of drivers into appropriate IIO_XXX namespaces.
- Tree wide fix of a long running bug around DMA safety requirements.
  IIO was using __cacheline_aligned to pad iio_priv() structures. This
  worked for a long time by coincidence, but correct alignment is
  ARCH_KMALLOC_MINALIGN.  As there is activity around this area, introduce
  an IIO local IIO_DMA_MINALIGN to allow for changing it in one place rather
  than every driver in future. Note, there have been no reports of this
  bug in the wild, and it may not happen on any platforms supported by
  upstream, so no rush to backport these fixes.

Other cleanup
* core
  - Switch to ida_alloc()/free()
  - Drop unused iio_get_time_res()
  - Octal permissions and DEVICE_ATTR_* macros.
  - Cleanup bared unsigned usage.
* MAINTAINERS
  - Add include/dt-bindings/iio/ to the main IIO entry.
* ad5380
  - Comment syntax fix.
* ad74413r
  - Call to for_each_set_bit_from(), with from value as 0 replaced.
* ad7768-1
  - Drop explicit setting of INDIO_BUFFER_TRIGGERED as now done by the core.
* adxl345
  - Fix wrong address in dt-binding example.
* adxl367
  - Drop extra update of FIFO watermark.
* at91-sama5d2
  - Limit requested watermark to the hwfifo size.
* bmg160, bme680
  - Typos
* cio-dac
  - Switch to iomap rather than direct use of ioports
* kxsd9
  - Replace CONFIG_PM guards with new PM macros that let the compiler
    cleanly remove the unused code and structures when !CONFIG_PM
* lsm6dsx
  - Use new pm_sleep_ptr() and EXPORT_SIMPLE_DEV_PM_OPS(). Then move
    to Namespace.
* meson_saradc - general cleanup.
  - Avoid attaching resources to iio_dev->dev
  - Use same struct device for all error messages
  - Convert to dev_err_probe() and use local struct device *dev to
    reduce code complexity.
  - Use devm_clk_get_optional() instead of hand rolling.
  - Use regmap_read_poll_timeout() instead of hand rolling.
* mma7660
  - Drop ACPI_PTR() use that is unhelpful.
* mpu3050
  - Stop exporting symbols not used outside of module
  - Switch to new DEFINE_RUNTIME_DEV_PM_OPS() macro and move to Namespace.
* ping
  - Typo fix
* qcom-spmi-rradc
  - Typo fix
* sc27xx
  - Convert to generic struct u32_fract
* srf08
  - Drop a redundant check on !val
* st_lsm6dsx
  - Limit the requested watermark to the hwfifo size.
* stm32-adc
  - Use generic_handle_domain_irq() instead of opencoding.
  - Fix handling of ADC disable.
* stm32-dac
  - Use str_enabled_disable() instead of open coding.
* stx104
  - Switch to iomap rather than direct use of ioports
* tsc2046
  - Drop explicit setting of INDIO_BUFFER_TRIGGERED as now done by the core.
* tsl2563
  - Replace flush_scheduled_work() with cancel_delayed_work_sync()
  - Replace cancel_delayed_work() with cancel_delayed_work_sync()
* vl53l0x
  - Make the VDD regulator optional by allowing a dummy regulator.

* tag 'iio-for-5.20a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (244 commits)
  iio: adc: xilinx-xadc: Drop duplicate NULL check in xadc_parse_dt()
  iio: adc: xilinx-xadc: Make use of device properties
  iio: light: cm32181: Add PM support
  iio: adc: ad778-1: do not explicity set INDIO_BUFFER_TRIGGERED mode
  iio: adc: ti-tsc2046: do not explicity set INDIO_BUFFER_TRIGGERED mode
  iio: adc: stm32-adc: disable adc before calibration
  iio: adc: stm32-adc: make safe adc disable
  iio: dac: ad5380: align '*' each line and drop unneeded blank line
  iio: adc: qcom-spmi-rradc: Fix spelling mistake "coherrency" -> "coherency"
  iio: Don't use bare "unsigned"
  dt-bindings: iio: dac: mcp4922: expand for mcp4921 support
  iio: dac: mcp4922: add support to mcp4921
  iio: chemical: sps30: Move symbol exports into IIO_SPS30 namespace
  iio: pressure: bmp280: Move symbol exports to IIO_BMP280 namespace
  iio: imu: bmi160: Move exported symbols to IIO_BMI160 namespace
  iio: adc: stm32-adc: Use generic_handle_domain_irq()
  proximity: vl53l0x: Make VDD regulator actually optional
  MAINTAINERS: add include/dt-bindings/iio to IIO SUBSYSTEM AND DRIVERS
  dt-bindings: iio/accel: Fix adi,adxl345/6 example I2C address
  iio: gyro: bmg160: Fix typo in comment
  ...

12 files changed:
1  2 
MAINTAINERS
drivers/iio/adc/adi-axi-adc.c
drivers/iio/adc/rzg2l_adc.c
drivers/iio/adc/stm32-adc-core.c
drivers/iio/adc/stm32-adc.c
drivers/iio/adc/ti-ads131e08.c
drivers/iio/chemical/ccs811.c
drivers/iio/frequency/admv1014.c
drivers/iio/gyro/mpu3050-core.c
drivers/iio/humidity/hts221_buffer.c
drivers/iio/imu/inv_icm42600/inv_icm42600.h
drivers/iio/proximity/sx9324.c

diff --combined MAINTAINERS
@@@ -426,7 -426,7 +426,7 @@@ F: drivers/acpi/*thermal
  ACPI VIOT DRIVER
  M:    Jean-Philippe Brucker <jean-philippe@linaro.org>
  L:    linux-acpi@vger.kernel.org
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Maintained
  F:    drivers/acpi/viot.c
  F:    include/linux/acpi_viot.h
@@@ -959,7 -959,7 +959,7 @@@ F: drivers/video/fbdev/geode
  AMD IOMMU (AMD-VI)
  M:    Joerg Roedel <joro@8bytes.org>
  R:    Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    drivers/iommu/amd/
@@@ -1327,7 -1327,7 +1327,7 @@@ M:      Todd Kjos <tkjos@android.com
  M:    Martijn Coenen <maco@android.com>
  M:    Joel Fernandes <joel@joelfernandes.org>
  M:    Christian Brauner <christian@brauner.io>
 -M:    Hridya Valsaraju <hridya@google.com>
 +M:    Carlos Llamas <cmllamas@google.com>
  M:    Suren Baghdasaryan <surenb@google.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
@@@ -1507,7 -1507,7 +1507,7 @@@ F:      drivers/clocksource/arm_arch_timer.
  ARM HDLCD DRM DRIVER
  M:    Liviu Dudau <liviu.dudau@arm.com>
  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
@@@ -1542,7 -1542,7 +1542,7 @@@ M:      Mihail Atanassov <mihail.atanassov@a
  L:    Mali DP Maintainers <malidp@foss.arm.com>
  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/
@@@ -1564,7 -1564,7 +1564,7 @@@ M:      Brian Starkey <brian.starkey@arm.com
  L:    Mali DP Maintainers <malidp@foss.arm.com>
  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/
  
@@@ -1981,9 -1981,11 +1981,9 @@@ L:     linux-arm-kernel@lists.infradead.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
 -F:    Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
 -F:    Documentation/devicetree/bindings/arm/coresight-cti.yaml
 -F:    Documentation/devicetree/bindings/arm/coresight.txt
 -F:    Documentation/devicetree/bindings/arm/ete.yaml
 -F:    Documentation/devicetree/bindings/arm/trbe.yaml
 +F:    Documentation/devicetree/bindings/arm/arm,coresight-*.yaml
 +F:    Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
 +F:    Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
  F:    Documentation/trace/coresight/*
  F:    drivers/hwtracing/coresight/*
  F:    include/dt-bindings/arm/coresight-cti-dt.h
@@@ -2007,7 -2009,7 +2007,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  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*
@@@ -2465,7 -2467,6 +2465,7 @@@ ARM/NXP S32G ARCHITECTUR
  M:    Chester Lin <clin@suse.com>
  R:    Andreas Färber <afaerber@suse.de>
  R:    Matthias Brugger <mbrugger@suse.com>
 +R:    NXP S32 Linux Team <s32@nxp.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm64/boot/dts/freescale/s32g*.dts*
@@@ -2536,7 -2537,6 +2536,7 @@@ W:      http://www.armlinux.org.uk
  ARM/QUALCOMM SUPPORT
  M:    Andy Gross <agross@kernel.org>
  M:    Bjorn Andersson <bjorn.andersson@linaro.org>
 +R:    Konrad Dybcio <konrad.dybcio@somainline.org>
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
@@@ -3614,18 -3614,16 +3614,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 <ast@kernel.org>
  M:    Daniel Borkmann <daniel@iogearbox.net>
  M:    Andrii Nakryiko <andrii@kernel.org>
 -R:    Martin KaFai Lau <kafai@fb.com>
 -R:    Song Liu <songliubraving@fb.com>
 +R:    Martin KaFai Lau <martin.lau@linux.dev>
 +R:    Song Liu <song@kernel.org>
  R:    Yonghong Song <yhs@fb.com>
  R:    John Fastabend <john.fastabend@gmail.com>
  R:    KP Singh <kpsingh@kernel.org>
 -L:    netdev@vger.kernel.org
 +R:    Stanislav Fomichev <sdf@google.com>
 +R:    Hao Luo <haoluo@google.com>
 +R:    Jiri Olsa <jolsa@kernel.org>
  L:    bpf@vger.kernel.org
  S:    Supported
  W:    https://bpf.io/
@@@ -3657,17 -3655,21 +3657,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 <illusionist.neo@gmail.com>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/arm/net/
  
  BPF JIT for ARM64
  M:    Daniel Borkmann <daniel@iogearbox.net>
  M:    Alexei Starovoitov <ast@kernel.org>
  M:    Zi Shen Lim <zlim.lnx@gmail.com>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Supported
  F:    arch/arm64/net/
  BPF JIT for MIPS (32-BIT AND 64-BIT)
  M:    Johan Almbladh <johan.almbladh@anyfinetworks.com>
  M:    Paul Burton <paulburton@kernel.org>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Maintained
  F:    arch/mips/net/
  
  BPF JIT for NFP NICs
  M:    Jakub Kicinski <kuba@kernel.org>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
 -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 <naveen.n.rao@linux.ibm.com>
 -L:    netdev@vger.kernel.org
 +M:    Michael Ellerman <mpe@ellerman.id.au>
  L:    bpf@vger.kernel.org
 -S:    Maintained
 +S:    Supported
  F:    arch/powerpc/net/
  
  BPF JIT for RISC-V (32-bit)
  M:    Luke Nelson <luke.r.nels@gmail.com>
  M:    Xi Wang <xi.wang@gmail.com>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Maintained
  F:    arch/riscv/net/
@@@ -3702,6 -3707,7 +3702,6 @@@ X:      arch/riscv/net/bpf_jit_comp64.
  
  BPF JIT for RISC-V (64-bit)
  M:    Björn Töpel <bjorn@kernel.org>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Maintained
  F:    arch/riscv/net/
@@@ -3711,80 -3717,36 +3711,80 @@@ BPF JIT for S39
  M:    Ilya Leoshkevich <iii@linux.ibm.com>
  M:    Heiko Carstens <hca@linux.ibm.com>
  M:    Vasily Gorbik <gor@linux.ibm.com>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
 -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 <davem@davemloft.net>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/sparc/net/
  
  BPF JIT for X86 32-BIT
  M:    Wang YanQing <udknight@gmail.com>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/x86/net/bpf_jit_comp32.c
  
  BPF JIT for X86 64-BIT
  M:    Alexei Starovoitov <ast@kernel.org>
  M:    Daniel Borkmann <daniel@iogearbox.net>
 -L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  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 <ast@kernel.org>
 +M:    Daniel Borkmann <daniel@iogearbox.net>
 +R:    John Fastabend <john.fastabend@gmail.com>
 +L:    bpf@vger.kernel.org
 +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 <martin.lau@linux.dev>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    kernel/bpf/btf.c
 +F:    include/linux/btf*
 +
 +BPF [TRACING]
 +M:    Song Liu <song@kernel.org>
 +R:    Jiri Olsa <jolsa@kernel.org>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    kernel/trace/bpf_trace.c
 +F:    kernel/bpf/stackmap.c
 +
 +BPF [NETWORKING] (tc BPF, sock_addr)
 +M:    Martin KaFai Lau <martin.lau@linux.dev>
 +M:    Daniel Borkmann <daniel@iogearbox.net>
 +R:    John Fastabend <john.fastabend@gmail.com>
 +L:    bpf@vger.kernel.org
 +L:    netdev@vger.kernel.org
 +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 <martin.lau@linux.dev>
 +L:    bpf@vger.kernel.org
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    kernel/bpf/bpf_struct*
 +
 +BPF [SECURITY & LSM] (Security Audit and Enforcement using BPF)
  M:    KP Singh <kpsingh@kernel.org>
  R:    Florent Revest <revest@chromium.org>
  R:    Brendan Jackman <jackmanb@chromium.org>
@@@ -3795,64 -3757,6 +3795,64 @@@ F:    include/linux/bpf_lsm.
  F:    kernel/bpf/bpf_lsm.c
  F:    security/bpf/
  
 +BPF [STORAGE & CGROUPS]
 +M:    Martin KaFai Lau <martin.lau@linux.dev>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    kernel/bpf/cgroup.c
 +F:    kernel/bpf/*storage.c
 +F:    kernel/bpf/bpf_lru*
 +
 +BPF [RINGBUF]
 +M:    Andrii Nakryiko <andrii@kernel.org>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    kernel/bpf/ringbuf.c
 +
 +BPF [ITERATOR]
 +M:    Yonghong Song <yhs@fb.com>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    kernel/bpf/*iter.c
 +
 +BPF [L7 FRAMEWORK] (sockmap)
 +M:    John Fastabend <john.fastabend@gmail.com>
 +M:    Jakub Sitnicki <jakub@cloudflare.com>
 +L:    netdev@vger.kernel.org
 +L:    bpf@vger.kernel.org
 +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 <andrii@kernel.org>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    tools/lib/bpf/
 +
 +BPF [TOOLING] (bpftool)
 +M:    Quentin Monnet <quentin@isovalent.com>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    kernel/bpf/disasm.*
 +F:    tools/bpf/bpftool/
 +
 +BPF [SELFTESTS] (Test Runners & Infrastructure)
 +M:    Andrii Nakryiko <andrii@kernel.org>
 +R:    Mykola Lysenko <mykolal@fb.com>
 +L:    bpf@vger.kernel.org
 +S:    Maintained
 +F:    tools/testing/selftests/bpf/
 +
 +BPF [MISC]
 +L:    bpf@vger.kernel.org
 +S:    Odd Fixes
 +K:    (?:\b|_)bpf(?:\b|_)
 +
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <michael.chan@broadcom.com>
  L:    netdev@vger.kernel.org
@@@ -3885,12 -3789,12 +3885,12 @@@ N:   bcmbc
  N:    bcm[9]?47622
  
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
 -M:    Nicolas Saenz Julienne <nsaenz@kernel.org>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (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
@@@ -5048,7 -4952,6 +5048,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
@@@ -5099,7 -5002,7 +5099,7 @@@ COMPUTE EXPRESS LINK (CXL
  M:    Alison Schofield <alison.schofield@intel.com>
  M:    Vishal Verma <vishal.l.verma@intel.com>
  M:    Ira Weiny <ira.weiny@intel.com>
 -M:    Ben Widawsky <ben.widawsky@intel.com>
 +M:    Ben Widawsky <bwidawsk@kernel.org>
  M:    Dan Williams <dan.j.williams@intel.com>
  L:    linux-cxl@vger.kernel.org
  S:    Maintained
@@@ -6051,7 -5954,7 +6051,7 @@@ DMA MAPPING HELPER
  M:    Christoph Hellwig <hch@lst.de>
  M:    Marek Szyprowski <m.szyprowski@samsung.com>
  R:    Robin Murphy <robin.murphy@arm.com>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Supported
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  T:    git git://git.infradead.org/users/hch/dma-mapping.git
@@@ -6063,7 -5966,7 +6063,7 @@@ F:      kernel/dma
  
  DMA MAPPING BENCHMARK
  M:    Xiang Chen <chenxiang66@hisilicon.com>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  F:    kernel/dma/map_benchmark.c
  F:    tools/testing/selftests/dma/
  
@@@ -6175,7 -6078,7 +6175,7 @@@ M:      Sakari Ailus <sakari.ailus@linux.int
  L:    linux-media@vger.kernel.org
  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
@@@ -7647,7 -7550,7 +7647,7 @@@ F:      drivers/gpu/drm/exynos/exynos_dp
  
  EXYNOS SYSMMU (IOMMU) driver
  M:    Marek Szyprowski <m.szyprowski@samsung.com>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Maintained
  F:    drivers/iommu/exynos-iommu.c
  
@@@ -7744,7 -7647,6 +7744,7 @@@ F:      include/uapi/scsi/fc
  
  FILE LOCKING (flock() and fcntl()/lockf())
  M:    Jeff Layton <jlayton@kernel.org>
 +M:    Chuck Lever <chuck.lever@oracle.com>
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
  F:    fs/fcntl.c
@@@ -7905,21 -7807,6 +7905,21 @@@ F:    Documentation/fpga
  F:    drivers/fpga/
  F:    include/linux/fpga/
  
 +INTEL MAX10 BMC SECURE UPDATES
 +M:    Russ Weight <russell.h.weight@intel.com>
 +L:    linux-fpga@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-driver-intel-m10-bmc-sec-update
 +F:    drivers/fpga/intel-m10-bmc-sec-update.c
 +
 +MICROCHIP POLARFIRE FPGA DRIVERS
 +M:    Conor Dooley <conor.dooley@microchip.com>
 +R:    Ivan Bornyakov <i.bornyakov@metrotek.ru>
 +L:    linux-fpga@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml
 +F:    drivers/fpga/microchip-spi.c
 +
  FPU EMULATOR
  M:    Bill Metzenthen <billm@melbpc.org.au>
  S:    Maintained
@@@ -8584,7 -8471,6 +8584,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
@@@ -9195,7 -9081,7 +9195,7 @@@ HTE SUBSYSTE
  M:    Dipen Patel <dipenp@nvidia.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/timestamp/
 -F:    Documentation/hte/
 +F:    Documentation/driver-api/hte/
  F:    drivers/hte/
  F:    include/linux/hte.h
  
@@@ -9238,7 -9124,6 +9238,7 @@@ F:      drivers/media/platform/st/sti/hv
  
  HWPOISON MEMORY FAILURE HANDLING
  M:    Naoya Horiguchi <naoya.horiguchi@nec.com>
 +R:    Miaohe Lin <linmiaohe@huawei.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/hwpoison-inject.c
@@@ -9383,7 -9268,6 +9383,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
@@@ -9399,7 -9283,6 +9399,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 <jdelvare@suse.com>
@@@ -9724,6 -9607,7 +9724,7 @@@ F:      Documentation/ABI/testing/sysfs-bus-
  F:    Documentation/devicetree/bindings/iio/
  F:    drivers/iio/
  F:    drivers/staging/iio/
+ F:    include/dt-bindings/iio/
  F:    include/linux/iio/
  F:    tools/iio/
  
@@@ -9920,10 -9804,7 +9921,10 @@@ INTEL ASoC DRIVER
  M:    Cezary Rojewski <cezary.rojewski@intel.com>
  M:    Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  M:    Liam Girdwood <liam.r.girdwood@linux.intel.com>
 -M:    Jie Yang <yang.jie@linux.intel.com>
 +M:    Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
 +M:    Bard Liao <yung-chuan.liao@linux.intel.com>
 +M:    Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
 +M:    Kai Vehmanen <kai.vehmanen@linux.intel.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/intel/
@@@ -10086,7 -9967,7 +10087,7 @@@ F:    drivers/hid/intel-ish-hid
  INTEL IOMMU (VT-d)
  M:    David Woodhouse <dwmw2@infradead.org>
  M:    Lu Baolu <baolu.lu@linux.intel.com>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    drivers/iommu/intel/
@@@ -10465,7 -10346,7 +10466,7 @@@ F:   include/linux/iomap.
  IOMMU DRIVERS
  M:    Joerg Roedel <joro@8bytes.org>
  M:    Will Deacon <will@kernel.org>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    Documentation/devicetree/bindings/iommu/
@@@ -10859,7 -10740,6 +10860,7 @@@ W:   http://kernelnewbies.org/KernelJanit
  
  KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
  M:    Chuck Lever <chuck.lever@oracle.com>
 +M:    Jeff Layton <jlayton@kernel.org>
  L:    linux-nfs@vger.kernel.org
  S:    Supported
  W:    http://nfs.sourceforge.net/
@@@ -10942,7 -10822,6 +10943,7 @@@ M:   Marc Zyngier <maz@kernel.org
  R:    James Morse <james.morse@arm.com>
  R:    Alexandru Elisei <alexandru.elisei@arm.com>
  R:    Suzuki K Poulose <suzuki.poulose@arm.com>
 +R:    Oliver Upton <oliver.upton@linux.dev>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    kvmarm@lists.cs.columbia.edu (moderated for non-subscribers)
  S:    Maintained
@@@ -10985,6 -10864,7 +10986,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 <borntraeger@linux.ibm.com>
@@@ -11009,51 -10889,28 +11010,51 @@@ F:        tools/testing/selftests/kvm/*/s390x
  F:    tools/testing/selftests/kvm/s390x/
  
  KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
 +M:    Sean Christopherson <seanjc@google.com>
  M:    Paolo Bonzini <pbonzini@redhat.com>
 -R:    Sean Christopherson <seanjc@google.com>
 -R:    Vitaly Kuznetsov <vkuznets@redhat.com>
 -R:    Wanpeng Li <wanpengli@tencent.com>
 -R:    Jim Mattson <jmattson@google.com>
 -R:    Joerg Roedel <joro@8bytes.org>
  L:    kvm@vger.kernel.org
  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 <pbonzini@redhat.com>
 +R:    Wanpeng Li <wanpengli@tencent.com>
 +R:    Vitaly Kuznetsov <vkuznets@redhat.com>
 +L:    kvm@vger.kernel.org
 +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 <vkuznets@redhat.com>
 +M:    Sean Christopherson <seanjc@google.com>
 +M:    Paolo Bonzini <pbonzini@redhat.com>
 +L:    kvm@vger.kernel.org
 +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 <gregkh@linuxfoundation.org>
  M:    Tejun Heo <tj@kernel.org>
@@@ -11232,6 -11089,20 +11233,6 @@@ S:  Maintaine
  F:    include/net/l3mdev.h
  F:    net/l3mdev
  
 -L7 BPF FRAMEWORK
 -M:    John Fastabend <john.fastabend@gmail.com>
 -M:    Daniel Borkmann <daniel@iogearbox.net>
 -M:    Jakub Sitnicki <jakub@cloudflare.com>
 -L:    netdev@vger.kernel.org
 -L:    bpf@vger.kernel.org
 -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 <mic@digikod.net>
  L:    linux-security-module@vger.kernel.org
@@@ -11387,7 -11258,6 +11388,7 @@@ M:   Damien Le Moal <damien.lemoal@openso
  L:    linux-ide@vger.kernel.org
  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
@@@ -11711,7 -11581,6 +11712,7 @@@ F:   drivers/gpu/drm/bridge/lontium-lt891
  LOONGARCH
  M:    Huacai Chen <chenhuacai@kernel.org>
  R:    WANG Xuerui <kernel@xen0n.name>
 +L:    loongarch@lists.linux.dev
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git
  F:    arch/loongarch/
@@@ -12624,7 -12493,7 +12625,7 @@@ F:   drivers/i2c/busses/i2c-mt65xx.
  
  MEDIATEK IOMMU DRIVER
  M:    Yong Wu <yong.wu@mediatek.com>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/iommu/mediatek*
@@@ -12828,6 -12697,7 +12829,6 @@@ L:   netdev@vger.kernel.or
  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
@@@ -12967,8 -12837,9 +12968,8 @@@ M:   Andrew Morton <akpm@linux-foundation
  L:    linux-mm@kvack.org
  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
@@@ -12978,18 -12849,6 +12979,18 @@@ F: include/linux/vmalloc.
  F:    mm/
  F:    tools/testing/selftests/vm/
  
 +MEMORY HOT(UN)PLUG
 +M:    David Hildenbrand <david@redhat.com>
 +M:    Oscar Salvador <osalvador@suse.de>
 +L:    linux-mm@kvack.org
 +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 <miquel.raynal@bootlin.com>
  M:    Richard Weinberger <richard@nod.at>
@@@ -13242,14 -13101,6 +13243,14 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/mtd/atmel-nand.txt
  F:    drivers/mtd/nand/raw/atmel/*
  
 +MICROCHIP OTPC DRIVER
 +M:    Claudiu Beznea <claudiu.beznea@microchip.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Supported
 +F:    Documentation/devicetree/bindings/nvmem/microchip,sama7g5-otpc.yaml
 +F:    drivers/nvmem/microchip-otpc.c
 +F:    include/dt-bindings/nvmem/microchip,sama7g5-otpc.h
 +
  MICROCHIP PWM DRIVER
  M:    Claudiu Beznea <claudiu.beznea@microchip.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -13942,7 -13793,6 +13943,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
@@@ -14094,6 -13944,7 +14095,6 @@@ F:   net/ipv6/tcp*.
  NETWORKING [TLS]
  M:    Boris Pismenny <borisp@nvidia.com>
  M:    John Fastabend <john.fastabend@gmail.com>
 -M:    Daniel Borkmann <daniel@iogearbox.net>
  M:    Jakub Kicinski <kuba@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
@@@ -14402,7 -14253,7 +14403,7 @@@ F:   drivers/iio/gyro/fxas21002c_i2c.
  F:    drivers/iio/gyro/fxas21002c_spi.c
  
  NXP i.MX CLOCK DRIVERS
 -M:    Abel Vesa <abel.vesa@nxp.com>
 +M:    Abel Vesa <abelvesa@kernel.org>
  L:    linux-clk@vger.kernel.org
  L:    linux-imx@nxp.com
  S:    Maintained
@@@ -14490,8 -14341,9 +14491,8 @@@ F:   Documentation/devicetree/bindings/so
  F:    sound/soc/codecs/tfa989x.c
  
  NXP-NCI NFC DRIVER
 -R:    Charles Gorand <charles.gorand@effinnov.com>
  L:    linux-nfc@lists.01.org (subscribers-only)
 -S:    Supported
 +S:    Orphan
  F:    Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
  F:    drivers/nfc/nxp-nci
  
@@@ -15009,7 -14861,6 +15010,7 @@@ F:   include/dt-bindings
  
  OPENCOMPUTE PTP CLOCK DRIVER
  M:    Jonathan Lemon <jonathan.lemon@gmail.com>
 +M:    Vadim Fedorenko <vadfed@fb.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/ptp/ptp_ocp.c
@@@ -15880,7 -15731,7 +15881,7 @@@ F:   drivers/pinctrl/freescale
  PIN CONTROLLER - INTEL
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
  M:    Andy Shevchenko <andy@kernel.org>
 -S:    Maintained
 +S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel.git
  F:    drivers/pinctrl/intel/
  
@@@ -15974,14 -15825,6 +15975,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
  F:    drivers/iio/chemical/pms7003.c
  
 +PLATFORM FEATURE INFRASTRUCTURE
 +M:    Juergen Gross <jgross@suse.com>
 +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 <jacob.e.keller@intel.com>
  S:    Maintained
@@@ -16402,7 -16245,7 +16403,7 @@@ F:   drivers/crypto/qat
  
  QCOM AUDIO (ASoC) DRIVERS
  M:    Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 -M:    Banajit Goswami <bgoswami@codeaurora.org>
 +M:    Banajit Goswami <bgoswami@quicinc.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/codecs/lpass-va-macro.c
@@@ -16629,7 -16472,7 +16630,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:    linux-crypto@vger.kernel.org
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
@@@ -16683,7 -16526,7 +16684,7 @@@ F:   drivers/i2c/busses/i2c-qcom-cci.
  
  QUALCOMM IOMMU
  M:    Rob Clark <robdclark@gmail.com>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
  F:    drivers/iommu/arm/arm-smmu/qcom_iommu.c
@@@ -16739,7 -16582,7 +16740,7 @@@ F:   include/linux/if_rmnet.
  
  QUALCOMM TSENS THERMAL DRIVER
  M:    Amit Kucheria <amitk@kernel.org>
 -M:    Thara Gopinath <thara.gopinath@linaro.org>
 +M:    Thara Gopinath <thara.gopinath@gmail.com>
  L:    linux-pm@vger.kernel.org
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
@@@ -18196,7 -18039,6 +18197,7 @@@ F:   drivers/misc/sgi-xp
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
  M:    Karsten Graul <kgraul@linux.ibm.com>
 +M:    Wenjia Zhang <wenjia@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -18829,10 -18671,8 +18830,10 @@@ F: sound/soc
  SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS
  M:    Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  M:    Liam Girdwood <lgirdwood@gmail.com>
 +M:    Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
 +M:    Bard Liao <yung-chuan.liao@linux.intel.com>
  M:    Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
 -M:    Kai Vehmanen <kai.vehmanen@linux.intel.com>
 +R:    Kai Vehmanen <kai.vehmanen@linux.intel.com>
  M:    Daniel Baluta <daniel.baluta@nxp.com>
  L:    sound-open-firmware@alsa-project.org (moderated for non-subscribers)
  S:    Supported
@@@ -19311,7 -19151,7 +19312,7 @@@ F:   arch/x86/boot/video
  
  SWIOTLB SUBSYSTEM
  M:    Christoph Hellwig <hch@infradead.org>
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Supported
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  T:    git git://git.infradead.org/users/hch/dma-mapping.git
@@@ -19381,7 -19221,7 +19382,7 @@@ F:   arch/arc/plat-axs10
  SYNOPSYS AXS10x RESET CONTROLLER DRIVER
  M:    Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
  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
@@@ -19449,7 -19289,7 +19450,7 @@@ R:   Andy Shevchenko <andriy.shevchenko@l
  R:    Mika Westerberg <mika.westerberg@linux.intel.com>
  R:    Jan Dabros <jsd@semihalf.com>
  L:    linux-i2c@vger.kernel.org
 -S:    Maintained
 +S:    Supported
  F:    drivers/i2c/busses/i2c-designware-*
  
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
@@@ -20856,7 -20696,6 +20857,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/
  
@@@ -21211,7 -21050,6 +21212,7 @@@ M:   Jason Wang <jasowang@redhat.com
  L:    virtualization@lists.linux-foundation.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-vdpa
 +F:    Documentation/ABI/testing/sysfs-class-vduse
  F:    Documentation/devicetree/bindings/virtio/
  F:    drivers/block/virtio_blk.c
  F:    drivers/crypto/virtio/
@@@ -21987,7 -21825,7 +21988,7 @@@ XEN SWIOTLB SUBSYSTE
  M:    Juergen Gross <jgross@suse.com>
  M:    Stefano Stabellini <sstabellini@kernel.org>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
 -L:    iommu@lists.linux-foundation.org
 +L:    iommu@lists.linux.dev
  S:    Supported
  F:    arch/x86/xen/*swiotlb*
  F:    drivers/xen/*swiotlb*
@@@ -84,9 -84,10 +84,10 @@@ void *adi_axi_adc_conv_priv(struct adi_
  {
        struct adi_axi_adc_client *cl = conv_to_client(conv);
  
-       return (char *)cl + ALIGN(sizeof(struct adi_axi_adc_client), IIO_ALIGN);
+       return (char *)cl + ALIGN(sizeof(struct adi_axi_adc_client),
+                                 IIO_DMA_MINALIGN);
  }
- EXPORT_SYMBOL_GPL(adi_axi_adc_conv_priv);
+ EXPORT_SYMBOL_NS_GPL(adi_axi_adc_conv_priv, IIO_ADI_AXI);
  
  static void adi_axi_adc_write(struct adi_axi_adc_state *st,
                              unsigned int reg,
@@@ -169,9 -170,9 +170,9 @@@ static struct adi_axi_adc_conv *adi_axi
        struct adi_axi_adc_client *cl;
        size_t alloc_size;
  
-       alloc_size = ALIGN(sizeof(struct adi_axi_adc_client), IIO_ALIGN);
+       alloc_size = ALIGN(sizeof(struct adi_axi_adc_client), IIO_DMA_MINALIGN);
        if (sizeof_priv)
-               alloc_size += ALIGN(sizeof_priv, IIO_ALIGN);
+               alloc_size += ALIGN(sizeof_priv, IIO_DMA_MINALIGN);
  
        cl = kzalloc(alloc_size, GFP_KERNEL);
        if (!cl)
@@@ -224,7 -225,7 +225,7 @@@ struct adi_axi_adc_conv *devm_adi_axi_a
  
        return conv;
  }
- EXPORT_SYMBOL_GPL(devm_adi_axi_adc_conv_register);
+ EXPORT_SYMBOL_NS_GPL(devm_adi_axi_adc_conv_register, IIO_ADI_AXI);
  
  static ssize_t in_voltage_scale_available_show(struct device *dev,
                                               struct device_attribute *attr,
@@@ -322,19 -323,16 +323,19 @@@ static struct adi_axi_adc_client *adi_a
  
                if (!try_module_get(cl->dev->driver->owner)) {
                        mutex_unlock(&registered_clients_lock);
 +                      of_node_put(cln);
                        return ERR_PTR(-ENODEV);
                }
  
                get_device(cl->dev);
                cl->info = info;
                mutex_unlock(&registered_clients_lock);
 +              of_node_put(cln);
                return cl;
        }
  
        mutex_unlock(&registered_clients_lock);
 +      of_node_put(cln);
  
        return ERR_PTR(-EPROBE_DEFER);
  }
@@@ -18,6 -18,7 +18,7 @@@
  #include <linux/module.h>
  #include <linux/platform_device.h>
  #include <linux/pm_runtime.h>
+ #include <linux/property.h>
  #include <linux/reset.h>
  
  #define DRIVER_NAME           "rzg2l-adc"
@@@ -260,9 -261,6 +261,6 @@@ static int rzg2l_adc_read_label(struct 
                                const struct iio_chan_spec *chan,
                                char *label)
  {
-       if (chan->channel >= RZG2L_ADC_MAX_CHANNELS)
-               return -EINVAL;
        return sysfs_emit(label, "%s\n", rzg2l_adc_channel_name[chan->channel]);
  }
  
@@@ -334,15 -332,11 +332,15 @@@ static int rzg2l_adc_parse_properties(s
        i = 0;
        device_for_each_child_node(&pdev->dev, fwnode) {
                ret = fwnode_property_read_u32(fwnode, "reg", &channel);
 -              if (ret)
 +              if (ret) {
 +                      fwnode_handle_put(fwnode);
                        return ret;
 +              }
  
 -              if (channel >= RZG2L_ADC_MAX_CHANNELS)
 +              if (channel >= RZG2L_ADC_MAX_CHANNELS) {
 +                      fwnode_handle_put(fwnode);
                        return -EINVAL;
 +              }
  
                chan_array[i].type = IIO_VOLTAGE;
                chan_array[i].indexed = 1;
@@@ -64,7 -64,6 +64,7 @@@ struct stm32_adc_priv
   * @max_clk_rate_hz: maximum analog clock rate (Hz, from datasheet)
   * @has_syscfg: SYSCFG capability flags
   * @num_irqs: number of interrupt lines
 + * @num_adcs:   maximum number of ADC instances in the common registers
   */
  struct stm32_adc_priv_cfg {
        const struct stm32_adc_common_regs *regs;
@@@ -72,7 -71,6 +72,7 @@@
        u32 max_clk_rate_hz;
        unsigned int has_syscfg;
        unsigned int num_irqs;
 +      unsigned int num_adcs;
  };
  
  /**
@@@ -354,11 -352,11 +354,11 @@@ static void stm32_adc_irq_handler(struc
         * before invoking the interrupt handler (e.g. call ISR only for
         * IRQ-enabled ADCs).
         */
 -      for (i = 0; i < priv->cfg->num_irqs; i++) {
 +      for (i = 0; i < priv->cfg->num_adcs; i++) {
                if ((status & priv->cfg->regs->eoc_msk[i] &&
                     stm32_adc_eoc_enabled(priv, i)) ||
                     (status & priv->cfg->regs->ovr_msk[i]))
-                       generic_handle_irq(irq_find_mapping(priv->domain, i));
+                       generic_handle_domain_irq(priv->domain, i);
        }
  
        chained_irq_exit(chip, desc);
@@@ -794,7 -792,6 +794,7 @@@ static const struct stm32_adc_priv_cfg 
        .clk_sel = stm32f4_adc_clk_sel,
        .max_clk_rate_hz = 36000000,
        .num_irqs = 1,
 +      .num_adcs = 3,
  };
  
  static const struct stm32_adc_priv_cfg stm32h7_adc_priv_cfg = {
        .max_clk_rate_hz = 36000000,
        .has_syscfg = HAS_VBOOSTER,
        .num_irqs = 1,
 +      .num_adcs = 2,
  };
  
  static const struct stm32_adc_priv_cfg stm32mp1_adc_priv_cfg = {
        .regs = &stm32h7_adc_common_regs,
        .clk_sel = stm32h7_adc_clk_sel,
 -      .max_clk_rate_hz = 40000000,
 +      .max_clk_rate_hz = 36000000,
        .has_syscfg = HAS_VBOOSTER | HAS_ANASWVDD,
        .num_irqs = 2,
 +      .num_adcs = 2,
  };
  
  static const struct of_device_id stm32_adc_of_match[] = {
@@@ -876,6 -876,9 +876,9 @@@ static void stm32h7_adc_disable(struct 
        int ret;
        u32 val;
  
+       if (!(stm32_adc_readl(adc, STM32H7_ADC_CR) & STM32H7_ADEN))
+               return;
        /* Disable ADC and wait until it's effectively disabled */
        stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADDIS);
        ret = stm32_adc_readl_poll_timeout(STM32H7_ADC_CR, val,
@@@ -1016,6 -1019,9 +1019,9 @@@ static int stm32h7_adc_selfcalib(struc
        if (adc->cal.calibrated)
                return true;
  
+       /* ADC must be disabled for calibration */
+       stm32h7_adc_disable(indio_dev);
        /*
         * Select calibration mode:
         * - Offset calibration for single ended inputs
@@@ -1365,7 -1371,7 +1371,7 @@@ static int stm32_adc_read_raw(struct ii
                else
                        ret = -EINVAL;
  
 -              if (mask == IIO_CHAN_INFO_PROCESSED && adc->vrefint.vrefint_cal)
 +              if (mask == IIO_CHAN_INFO_PROCESSED)
                        *val = STM32_ADC_VREFINT_VOLTAGE * adc->vrefint.vrefint_cal / *val;
  
                iio_device_release_direct_mode(indio_dev);
@@@ -1407,6 -1413,7 +1413,6 @@@ static irqreturn_t stm32_adc_threaded_i
        struct stm32_adc *adc = iio_priv(indio_dev);
        const struct stm32_adc_regspec *regs = adc->cfg->regs;
        u32 status = stm32_adc_readl(adc, regs->isr_eoc.reg);
 -      u32 mask = stm32_adc_readl(adc, regs->ier_eoc.reg);
  
        /* Check ovr status right now, as ovr mask should be already disabled */
        if (status & regs->isr_ovr.mask) {
                return IRQ_HANDLED;
        }
  
 -      if (!(status & mask))
 -              dev_err_ratelimited(&indio_dev->dev,
 -                                  "Unexpected IRQ: IER=0x%08x, ISR=0x%08x\n",
 -                                  mask, status);
 -
        return IRQ_NONE;
  }
  
@@@ -1430,6 -1442,10 +1436,6 @@@ static irqreturn_t stm32_adc_isr(int ir
        struct stm32_adc *adc = iio_priv(indio_dev);
        const struct stm32_adc_regspec *regs = adc->cfg->regs;
        u32 status = stm32_adc_readl(adc, regs->isr_eoc.reg);
 -      u32 mask = stm32_adc_readl(adc, regs->ier_eoc.reg);
 -
 -      if (!(status & mask))
 -              return IRQ_WAKE_THREAD;
  
        if (status & regs->isr_ovr.mask) {
                /*
@@@ -1969,10 -1985,10 +1975,10 @@@ static int stm32_adc_populate_int_ch(st
  
        for (i = 0; i < STM32_ADC_INT_CH_NB; i++) {
                if (!strncmp(stm32_adc_ic[i].name, ch_name, STM32_ADC_CH_SZ)) {
 -                      adc->int_ch[i] = chan;
 -
 -                      if (stm32_adc_ic[i].idx != STM32_ADC_INT_CH_VREFINT)
 -                              continue;
 +                      if (stm32_adc_ic[i].idx != STM32_ADC_INT_CH_VREFINT) {
 +                              adc->int_ch[i] = chan;
 +                              break;
 +                      }
  
                        /* Get calibration data for vrefint channel */
                        ret = nvmem_cell_read_u16(&indio_dev->dev, "vrefint", &vrefint);
                                return dev_err_probe(indio_dev->dev.parent, ret,
                                                     "nvmem access error\n");
                        }
 -                      if (ret == -ENOENT)
 -                              dev_dbg(&indio_dev->dev, "vrefint calibration not found\n");
 -                      else
 -                              adc->vrefint.vrefint_cal = vrefint;
 +                      if (ret == -ENOENT) {
 +                              dev_dbg(&indio_dev->dev, "vrefint calibration not found. Skip vrefint channel\n");
 +                              return ret;
 +                      } else if (!vrefint) {
 +                              dev_dbg(&indio_dev->dev, "Null vrefint calibration value. Skip vrefint channel\n");
 +                              return -ENOENT;
 +                      }
 +                      adc->int_ch[i] = chan;
 +                      adc->vrefint.vrefint_cal = vrefint;
                }
        }
  
@@@ -2025,9 -2036,7 +2031,9 @@@ static int stm32_adc_generic_chan_init(
                        }
                        strncpy(adc->chan_name[val], name, STM32_ADC_CH_SZ);
                        ret = stm32_adc_populate_int_ch(indio_dev, name, val);
 -                      if (ret)
 +                      if (ret == -ENOENT)
 +                              continue;
 +                      else if (ret)
                                goto err;
                } else if (ret != -EINVAL) {
                        dev_err(&indio_dev->dev, "Invalid label %d\n", ret);
@@@ -105,7 -105,7 +105,7 @@@ struct ads131e08_state 
                s64 ts __aligned(8);
        } tmp_buf;
  
-       u8 tx_buf[3] ____cacheline_aligned;
+       u8 tx_buf[3] __aligned(IIO_DMA_MINALIGN);
        /*
         * Add extra one padding byte to be able to access the last channel
         * value using u32 pointer
@@@ -739,7 -739,7 +739,7 @@@ static int ads131e08_alloc_channels(str
        device_for_each_child_node(dev, node) {
                ret = fwnode_property_read_u32(node, "reg", &channel);
                if (ret)
 -                      return ret;
 +                      goto err_child_out;
  
                ret = fwnode_property_read_u32(node, "ti,gain", &tmp);
                if (ret) {
                } else {
                        ret = ads131e08_pga_gain_to_field_value(st, tmp);
                        if (ret < 0)
 -                              return ret;
 +                              goto err_child_out;
  
                        channel_config[i].pga_gain = tmp;
                }
                } else {
                        ret = ads131e08_validate_channel_mux(st, tmp);
                        if (ret)
 -                              return ret;
 +                              goto err_child_out;
  
                        channel_config[i].mux = tmp;
                }
        st->channel_config = channel_config;
  
        return 0;
 +
 +err_child_out:
 +      fwnode_handle_put(node);
 +      return ret;
  }
  
  static void ads131e08_regulator_disable(void *data)
@@@ -499,11 -499,11 +499,11 @@@ static int ccs811_probe(struct i2c_clie
  
                data->drdy_trig->ops = &ccs811_trigger_ops;
                iio_trigger_set_drvdata(data->drdy_trig, indio_dev);
 -              indio_dev->trig = data->drdy_trig;
 -              iio_trigger_get(indio_dev->trig);
                ret = iio_trigger_register(data->drdy_trig);
                if (ret)
                        goto err_poweroff;
 +
 +              indio_dev->trig = iio_trigger_get(data->drdy_trig);
        }
  
        ret = iio_triggered_buffer_setup(indio_dev, NULL,
@@@ -536,14 -536,20 +536,20 @@@ static int ccs811_remove(struct i2c_cli
  {
        struct iio_dev *indio_dev = i2c_get_clientdata(client);
        struct ccs811_data *data = iio_priv(indio_dev);
+       int ret;
  
        iio_device_unregister(indio_dev);
        iio_triggered_buffer_cleanup(indio_dev);
        if (data->drdy_trig)
                iio_trigger_unregister(data->drdy_trig);
  
-       return i2c_smbus_write_byte_data(client, CCS811_MEAS_MODE,
-                                        CCS811_MODE_IDLE);
+       ret = i2c_smbus_write_byte_data(client, CCS811_MEAS_MODE,
+                                       CCS811_MODE_IDLE);
+       if (ret)
+               dev_warn(&client->dev, "Failed to power down device (%pe)\n",
+                        ERR_PTR(ret));
+       return 0;
  }
  
  static const struct i2c_device_id ccs811_id[] = {
@@@ -127,7 -127,7 +127,7 @@@ struct admv1014_state 
        unsigned int                    quad_se_mode;
        unsigned int                    p1db_comp;
        bool                            det_en;
-       u8                              data[3] ____cacheline_aligned;
+       u8                              data[3] __aligned(IIO_DMA_MINALIGN);
  };
  
  static const int mixer_vgate_table[] = {106, 107, 108, 110, 111, 112, 113, 114,
@@@ -700,10 -700,8 +700,10 @@@ static int admv1014_init(struct admv101
                         ADMV1014_DET_EN_MSK;
  
        enable_reg = FIELD_PREP(ADMV1014_P1DB_COMPENSATION_MSK, st->p1db_comp ? 3 : 0) |
 -                   FIELD_PREP(ADMV1014_IF_AMP_PD_MSK, !(st->input_mode)) |
 -                   FIELD_PREP(ADMV1014_BB_AMP_PD_MSK, st->input_mode) |
 +                   FIELD_PREP(ADMV1014_IF_AMP_PD_MSK,
 +                              (st->input_mode == ADMV1014_IF_MODE) ? 0 : 1) |
 +                   FIELD_PREP(ADMV1014_BB_AMP_PD_MSK,
 +                              (st->input_mode == ADMV1014_IF_MODE) ? 1 : 0) |
                     FIELD_PREP(ADMV1014_DET_EN_MSK, st->det_en);
  
        return __admv1014_spi_update_bits(st, ADMV1014_REG_ENABLE, enable_reg_msk, enable_reg);
@@@ -875,7 -875,6 +875,7 @@@ static int mpu3050_power_up(struct mpu3
        ret = regmap_update_bits(mpu3050->map, MPU3050_PWR_MGM,
                                 MPU3050_PWR_MGM_SLEEP, 0);
        if (ret) {
 +              regulator_bulk_disable(ARRAY_SIZE(mpu3050->regs), mpu3050->regs);
                dev_err(mpu3050->dev, "error setting power mode\n");
                return ret;
        }
@@@ -1262,7 -1261,6 +1262,6 @@@ err_power_down
  
        return ret;
  }
- EXPORT_SYMBOL(mpu3050_common_probe);
  
  void mpu3050_common_remove(struct device *dev)
  {
        iio_device_unregister(indio_dev);
        mpu3050_power_down(mpu3050);
  }
- EXPORT_SYMBOL(mpu3050_common_remove);
  
- #ifdef CONFIG_PM
  static int mpu3050_runtime_suspend(struct device *dev)
  {
        return mpu3050_power_down(iio_priv(dev_get_drvdata(dev)));
@@@ -1290,16 -1286,9 +1287,9 @@@ static int mpu3050_runtime_resume(struc
  {
        return mpu3050_power_up(iio_priv(dev_get_drvdata(dev)));
  }
- #endif /* CONFIG_PM */
- const struct dev_pm_ops mpu3050_dev_pm_ops = {
-       SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
-                               pm_runtime_force_resume)
-       SET_RUNTIME_PM_OPS(mpu3050_runtime_suspend,
-                          mpu3050_runtime_resume, NULL)
- };
- EXPORT_SYMBOL(mpu3050_dev_pm_ops);
  
+ DEFINE_RUNTIME_DEV_PM_OPS(mpu3050_dev_pm_ops, mpu3050_runtime_suspend,
+                         mpu3050_runtime_resume, NULL);
  MODULE_AUTHOR("Linus Walleij");
  MODULE_DESCRIPTION("MPU3050 gyroscope driver");
  MODULE_LICENSE("GPL");
@@@ -11,6 -11,7 +11,7 @@@
  #include <linux/device.h>
  #include <linux/interrupt.h>
  #include <linux/irqreturn.h>
+ #include <linux/property.h>
  #include <linux/regmap.h>
  #include <linux/bitfield.h>
  
@@@ -135,12 -136,9 +136,12 @@@ int hts221_allocate_trigger(struct iio_
  
        iio_trigger_set_drvdata(hw->trig, iio_dev);
        hw->trig->ops = &hts221_trigger_ops;
 +
 +      err = devm_iio_trigger_register(hw->dev, hw->trig);
 +
        iio_dev->trig = iio_trigger_get(hw->trig);
  
 -      return devm_iio_trigger_register(hw->dev, hw->trig);
 +      return err;
  }
  
  static int hts221_buffer_preenable(struct iio_dev *iio_dev)
@@@ -17,7 -17,6 +17,7 @@@
  #include "inv_icm42600_buffer.h"
  
  enum inv_icm42600_chip {
 +      INV_CHIP_INVALID,
        INV_CHIP_ICM42600,
        INV_CHIP_ICM42602,
        INV_CHIP_ICM42605,
@@@ -141,7 -140,7 +141,7 @@@ struct inv_icm42600_state 
        struct inv_icm42600_suspended suspended;
        struct iio_dev *indio_gyro;
        struct iio_dev *indio_accel;
-       uint8_t buffer[2] ____cacheline_aligned;
+       uint8_t buffer[2] __aligned(IIO_DMA_MINALIGN);
        struct inv_icm42600_fifo fifo;
        struct {
                int64_t gyro;
  #define SX9324_REG_CLK_SPRD           0x15
  
  #define SX9324_REG_AFE_CTRL0          0x20
+ #define SX9324_REG_AFE_CTRL0_RINT_SHIFT               6
+ #define SX9324_REG_AFE_CTRL0_RINT_MASK \
+       GENMASK(SX9324_REG_AFE_CTRL0_RINT_SHIFT + 1, \
+               SX9324_REG_AFE_CTRL0_RINT_SHIFT)
+ #define SX9324_REG_AFE_CTRL0_RINT_LOWEST      0x00
+ #define SX9324_REG_AFE_CTRL0_CSIDLE_SHIFT     4
+ #define SX9324_REG_AFE_CTRL0_CSIDLE_MASK \
+       GENMASK(SX9324_REG_AFE_CTRL0_CSIDLE_SHIFT + 1, \
+               SX9324_REG_AFE_CTRL0_CSIDLE_SHIFT)
+ #define SX9324_REG_AFE_CTRL0_RINT_LOWEST      0x00
  #define SX9324_REG_AFE_CTRL1          0x21
  #define SX9324_REG_AFE_CTRL2          0x22
  #define SX9324_REG_AFE_CTRL3          0x23
@@@ -72,7 -82,9 +82,9 @@@
  #define SX9324_REG_AFE_CTRL8          0x2c
  #define SX9324_REG_AFE_CTRL8_RESERVED 0x10
  #define SX9324_REG_AFE_CTRL8_RESFILTIN_4KOHM 0x02
+ #define SX9324_REG_AFE_CTRL8_RESFILTIN_MASK GENMASK(3, 0)
  #define SX9324_REG_AFE_CTRL9          0x2d
+ #define SX9324_REG_AFE_CTRL9_AGAIN_MASK                       GENMASK(3, 0)
  #define SX9324_REG_AFE_CTRL9_AGAIN_1  0x08
  
  #define SX9324_REG_PROX_CTRL0         0x30
  #define SX9324_REG_PROX_CTRL4_AVGNEGFILT_MASK GENMASK(5, 3)
  #define SX9324_REG_PROX_CTRL4_AVGNEG_FILT_2 0x08
  #define SX9324_REG_PROX_CTRL4_AVGPOSFILT_MASK GENMASK(2, 0)
- #define SX9324_REG_PROX_CTRL3_AVGPOS_FILT_256 0x04
+ #define SX9324_REG_PROX_CTRL4_AVGPOS_FILT_256 0x04
  #define SX9324_REG_PROX_CTRL5         0x35
  #define SX9324_REG_PROX_CTRL5_HYST_MASK                       GENMASK(5, 4)
  #define SX9324_REG_PROX_CTRL5_CLOSE_DEBOUNCE_MASK     GENMASK(3, 2)
@@@ -782,7 -794,7 +794,7 @@@ static const struct sx_common_reg_defau
         */
        { SX9324_REG_GNRL_CTRL1, SX9324_REG_GNRL_CTRL1_PAUSECTRL },
  
-       { SX9324_REG_AFE_CTRL0, 0x00 },
+       { SX9324_REG_AFE_CTRL0, SX9324_REG_AFE_CTRL0_RINT_LOWEST },
        { SX9324_REG_AFE_CTRL3, 0x00 },
        { SX9324_REG_AFE_CTRL4, SX9324_REG_AFE_CTRL4_FREQ_83_33HZ |
                SX9324_REG_AFE_CTRL4_RES_100 },
        { SX9324_REG_PROX_CTRL3, SX9324_REG_PROX_CTRL3_AVGDEB_2SAMPLES |
                SX9324_REG_PROX_CTRL3_AVGPOS_THRESH_16K },
        { SX9324_REG_PROX_CTRL4, SX9324_REG_PROX_CTRL4_AVGNEG_FILT_2 |
-               SX9324_REG_PROX_CTRL3_AVGPOS_FILT_256 },
+               SX9324_REG_PROX_CTRL4_AVGPOS_FILT_256 },
        { SX9324_REG_PROX_CTRL5, 0x00 },
        { SX9324_REG_PROX_CTRL6, SX9324_REG_PROX_CTRL6_PROXTHRESH_32 },
        { SX9324_REG_PROX_CTRL7, SX9324_REG_PROX_CTRL6_PROXTHRESH_32 },
@@@ -863,6 -875,10 +875,10 @@@ static const struct sx_common_reg_defau
  sx9324_get_default_reg(struct device *dev, int idx,
                       struct sx_common_reg_default *reg_def)
  {
+       static const char * const sx9324_rints[] = { "lowest", "low", "high",
+               "highest" };
+       static const char * const sx9324_csidle[] = { "hi-z", "hi-z", "gnd",
+               "vdd" };
  #define SX9324_PIN_DEF "semtech,ph0-pin"
  #define SX9324_RESOLUTION_DEF "semtech,ph01-resolution"
  #define SX9324_PROXRAW_DEF "semtech,ph01-proxraw-strength"
        char prop[] = SX9324_PROXRAW_DEF;
        u32 start = 0, raw = 0, pos = 0;
        int ret, count, ph, pin;
+       const char *res;
  
        memcpy(reg_def, &sx9324_default_regs[idx], sizeof(*reg_def));
        switch (reg_def->reg) {
                        break;
                ret = device_property_read_u32_array(dev, prop, pin_defs,
                                                     ARRAY_SIZE(pin_defs));
 +              if (ret)
 +                      break;
 +
                for (pin = 0; pin < SX9324_NUM_PINS; pin++)
                        raw |= (pin_defs[pin] << (2 * pin)) &
                               SX9324_REG_AFE_PH0_PIN_MASK(pin);
                reg_def->def = raw;
                break;
+       case SX9324_REG_AFE_CTRL0:
+               ret = device_property_read_string(dev,
+                               "semtech,cs-idle-sleep", &res);
+               if (!ret)
+                       ret = match_string(sx9324_csidle, ARRAY_SIZE(sx9324_csidle), res);
+               if (ret >= 0) {
+                       reg_def->def &= ~SX9324_REG_AFE_CTRL0_CSIDLE_MASK;
+                       reg_def->def |= ret << SX9324_REG_AFE_CTRL0_CSIDLE_SHIFT;
+               }
+               ret = device_property_read_string(dev,
+                               "semtech,int-comp-resistor", &res);
+               if (ret)
+                       break;
+               ret = match_string(sx9324_rints, ARRAY_SIZE(sx9324_rints), res);
+               if (ret < 0)
+                       break;
+               reg_def->def &= ~SX9324_REG_AFE_CTRL0_RINT_MASK;
+               reg_def->def |= ret << SX9324_REG_AFE_CTRL0_RINT_SHIFT;
+               break;
        case SX9324_REG_AFE_CTRL4:
        case SX9324_REG_AFE_CTRL7:
                if (reg_def->reg == SX9324_REG_AFE_CTRL4)
                reg_def->def |= FIELD_PREP(SX9324_REG_AFE_CTRL4_RESOLUTION_MASK,
                                           raw);
                break;
+       case SX9324_REG_AFE_CTRL8:
+               ret = device_property_read_u32(dev,
+                               "semtech,input-precharge-resistor-ohms",
+                               &raw);
+               if (ret)
+                       break;
+               reg_def->def &= ~SX9324_REG_AFE_CTRL8_RESFILTIN_MASK;
+               reg_def->def |= FIELD_PREP(SX9324_REG_AFE_CTRL8_RESFILTIN_MASK,
+                                          raw / 2000);
+               break;
+       case SX9324_REG_AFE_CTRL9:
+               ret = device_property_read_u32(dev,
+                               "semtech,input-analog-gain", &raw);
+               if (ret)
+                       break;
+               /*
+                * The analog gain has the following setting:
+                * +---------+----------------+----------------+
+                * | dt(raw) | physical value | register value |
+                * +---------+----------------+----------------+
+                * |  0      |      x1.247    |      6         |
+                * |  1      |      x1        |      8         |
+                * |  2      |      x0.768    |     11         |
+                * |  3      |      x0.552    |     15         |
+                * +---------+----------------+----------------+
+                */
+               reg_def->def &= ~SX9324_REG_AFE_CTRL9_AGAIN_MASK;
+               reg_def->def |= FIELD_PREP(SX9324_REG_AFE_CTRL9_AGAIN_MASK,
+                                          6 + raw * (raw + 3) / 2);
+               break;
        case SX9324_REG_ADV_CTRL5:
                ret = device_property_read_u32(dev, "semtech,startup-sensor",
                                               &start);