Linux Sound subsystem development
 help / color / mirror / Atom feed
* Re: [PATCH] ASoC: meson: aiu: fifo-spdif: soft reset the S/PDIF datapath on start/stop
From: Martin Blumenstingl @ 2026-06-26 20:41 UTC (permalink / raw)
  To: Christian Hewitt
  Cc: Jerome Brunet, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai, Neil Armstrong, Kevin Hilman, linux-sound,
	linux-arm-kernel, linux-amlogic, linux-kernel
In-Reply-To: <20260626080422.4191435-1-christianshewitt@gmail.com>

On Fri, Jun 26, 2026 at 10:04 AM Christian Hewitt
<christianshewitt@gmail.com> wrote:
>
> The I2S FIFO soft-resets its fast domain on start (AIU_RST_SOFT bit 0 +
> AIU_I2S_SYNC read in aiu_fifo_i2s_trigger), mirroring the downstream
> vendor driver's audio_out_i2s_enable(). The S/PDIF FIFO has no equivalent:
> it only toggles the IEC958 DCU, so a stale datapath FIFO can be replayed,
> producing the "machine gun noise" buffer underrun - on start when switching
> outputs, and on stop when playback ends. The latter is audible on devices
> with an always-on S/PDIF-fed DAC (e.g. the ES7144 on the WeTek Play2).
>
> The vendor driver resets the IEC958 fast domain (AIU_RST_SOFT bit 2) on
> both enable and disable (audio_hw_958_enable), and when reconfiguring
> (audio_hw_958_reset clears AIU_958_DCU_FF_CTRL then resets). Do the same:
> reset before enabling the DCU on start, and after disabling it on stop.
>
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

This matches the vendor driver, references:
- fast-reset SPDIF is triggered on enable and disable: [0]
- fast-reset SPDIF is triggered after all of the configuration is
written, then DCU_FF_CTRL is enabled: [1]

[...]
>         case SNDRV_PCM_TRIGGER_SUSPEND:
>         case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
>         case SNDRV_PCM_TRIGGER_STOP:
>                 fifo_spdif_dcu_enable(component, false);
> +               snd_soc_component_write(component, AIU_RST_SOFT,
> +                                       AIU_RST_SOFT_958_FAST);
It doesn't seem to make any difference, so just for the record:
The vendor driver first triggers AIU_RST_SOFT_958_FAST then disables DCU: [2]


Best regards,
Martin


[0] https://github.com/endlessm/linux-s905x/blob/c1391ba1116aed801aaabfd9c7bbb76fda9801ec/sound/soc/aml/m8/aml_audio_hw.c#L1016
[1] https://github.com/endlessm/linux-s905x/blob/c1391ba1116aed801aaabfd9c7bbb76fda9801ec/sound/soc/aml/m8/aml_audio_hw.c#L979-L983
[2] https://github.com/endlessm/linux-s905x/blob/c1391ba1116aed801aaabfd9c7bbb76fda9801ec/sound/soc/aml/m8/aml_audio_hw.c#L1016-L1018

^ permalink raw reply

* [PATCH v2 13/17] ALSA: hda/core: Add include defining struct hda_device_id
From: Uwe Kleine-König (The Capable Hub) @ 2026-06-26 18:00 UTC (permalink / raw)
  To: Linus Torvalds, Greg Kroah-Hartman
  Cc: Jaroslav Kysela, Takashi Iwai, linux-sound, linux-kernel
In-Reply-To: <cover.1782490566.git.u.kleine-koenig@baylibre.com>

Traditionally all *_device_id were defined in a single header
<linux/mod_devicetable.h>. This was split now with the objective that
only the relevant bits are included. So including <linux/pci.h> won't be
enough to get a definition of (the unrelated to pci) struct
hda_device_id.

Add an explicit include for the header defining struct hda_device_id to
keep working when <linux/pci.h> stops providing this defintion.

Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
---
 include/sound/hdaudio.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
index f11bfc6b9f42..e268ff9e9aa0 100644
--- a/include/sound/hdaudio.h
+++ b/include/sound/hdaudio.h
@@ -11,6 +11,7 @@
 #include <linux/io.h>
 #include <linux/io-64-nonatomic-lo-hi.h>
 #include <linux/iopoll.h>
+#include <linux/mod_device_id/hda.h>
 #include <linux/pci.h>
 #include <linux/pm_runtime.h>
 #include <linux/timecounter.h>
-- 
2.47.3


^ permalink raw reply related

* [PATCH v2 03/17] ASoC: rockchip: rockchip_sai: #include <linux/platform_device.h> explicitly
From: Uwe Kleine-König (The Capable Hub) @ 2026-06-26 18:00 UTC (permalink / raw)
  To: Linus Torvalds, Greg Kroah-Hartman
  Cc: Nicolas Frattaroli, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai, Heiko Stuebner, linux-rockchip, linux-sound,
	linux-arm-kernel, linux-kernel
In-Reply-To: <cover.1782490566.git.u.kleine-koenig@baylibre.com>

Currently that header is only included via:

	<sound/dmaengine_pcm.h> ->
	<sound/soc.h> ->
	<linux/platform_device.h>

which doesn't look reliable, still more in the presence of the comment:

	/* For the current users of sound/soc.h to avoid build issues */

in <sound/soc.h>.

Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
---
 sound/soc/rockchip/rockchip_sai.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/rockchip/rockchip_sai.c b/sound/soc/rockchip/rockchip_sai.c
index a195e96fed0a..37e81d56bc16 100644
--- a/sound/soc/rockchip/rockchip_sai.c
+++ b/sound/soc/rockchip/rockchip_sai.c
@@ -11,6 +11,7 @@
 #include <linux/delay.h>
 #include <linux/of_device.h>
 #include <linux/clk.h>
+#include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 #include <linux/regmap.h>
 #include <linux/reset.h>
-- 
2.47.3


^ permalink raw reply related

* [PATCH v2 00/17] mod_devicetable.h: Split into per subsystem headers
From: Uwe Kleine-König (The Capable Hub) @ 2026-06-26 18:00 UTC (permalink / raw)
  To: Linus Torvalds, Greg Kroah-Hartman, Mark Brown
  Cc: Nathan Chancellor, Nick Desaulniers, Bill Wendling, Justin Stitt,
	Raag Jadav, Sohil Mehta, Dave Hansen, Rob Herring,
	Saravana Kannan, Bjorn Helgaas, Rafael J. Wysocki, Len Brown,
	Andi Shyti, linux-kernel, Yemike Abhilash Chandra,
	Mauro Carvalho Chehab, linux-media, Nicolas Frattaroli,
	Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Heiko Stuebner,
	linux-rockchip, linux-sound, linux-arm-kernel, Danilo Krummrich,
	driver-core, Jonathan Cameron, Dmitry Torokhov,
	Bartosz Golaszewski, Pei Xiao, Shashank Balaji, Ben Horgan,
	Johan Hovold, linux-usb, Nikita Kravets, Hans de Goede,
	Ilpo Järvinen, platform-driver-x86, devicetree, linux-i2c,
	Daniel Scally, Sakari Ailus, Minas Harutyunyan, Tianrui Zhao,
	Bibo Mao, Huacai Chen, WANG Xuerui, kvm, loongarch

Hello,

this is v2 of
https://lore.kernel.org/lkml/20260622210733.1743063-2-u.kleine-koenig@baylibre.com
which only consisted of the patch that is the first in this series.
Changes to this first patch are mostly cosmetic (whitespace cleanups)
and I renamed tee.h to tee_client.h to match tee_client_device_id.

The following 14 patches are preparations for patch #16 that replaces
the include of <linux/mod_devicetable.h> in several key header files by
a subset of the split headers that are needed for these. As there are
some drivers that rely on e.g. <linux/i2c.h> pulling in the definition
for usb_device_id, these must be prepared before <linux/i2c.h> stops
providing this definition.

patch #17 adapts various .c files to stop including
<linux/mod_devicetable.h>. These are easier as the device_ids that have
to be provided are only those used in that .c file. This last patch was
created by the Python script below. That also checks if the needed
headers are present for the files that don't explicitly include
<linux/mod_devicetable.h>. There are 131 files where the script was
unable to prove the includes to be sufficient. Most of them are covered
by build testing, the few remaining ones (12 .c files, 36 headers) were
checked semi-manually.

This series was compile tested for alpha, arc, arm64, loongarch, m68k,
mips, powerpc, riscv, s390, sh, sparc, and x86_64 using an allmodconfig
configuration. 

There are a few remaining usages of <linux/mod_devicetable.h>, I plan to
tackle them for the next merge window. These also shouldn't affect so
many files any more and so these changes will annoy less (i.e. result in
less recompilation during bisection and/or development).

Preparing this series took me longer than I hoped, so it's too late to
get it into next before -rc1. I will push this series to

	https://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git device-id-rework

Given that there are a few merge conflicts with what is in Linus's tree
in the meantime, my plan is to rebase this branch to v7.2-rc1, retest
and then hopefully consider it ready for v7.2-rc2 after cooking in next
for a few days. This has the advantage that hardly any new conflicts
should get introduced in Linus's tree then.

Sounds like a sensible plan?

@Mark: I hope to have the rebase ready before you start working on
next-20260629. If not, just drop this branch from your list for this
day.

Best regards
Uwe

------->8--------
#!/usr/bin/env python3

import re
import os

# Maps a struct name to a set of headers that are enough to provide that struct.
symbol_header_map = {
        'acpi_device_id': (
            'linux/mod_device_id/acpi.h',
            'linux/acpi.h',                         # includes <linux/mod_devicetable.h>
            'linux/i2c.h',                          # includes <linux/acpi.h>
            'linux/device.h',                       # includes <linux/device/driver.h> which includes linux/mod_device_id/acpi.h
            'linux/spi/spi.h',                      # includes <linux/device.h>
            'linux/backlight.h',                    # includes <linux/device.h>
            'linux/pci.h',                          # includes <linux/device.h>
            'linux/platform_device.h',              # includes <linux/device.h>
            'linux/auxiliary_bus.h',                # includes <linux/device.h>
            'sound/soc.h',                          # includes <linux/platform_device.h>
            'sound/sof.h',                          # includes <linux/device.h>
            ),
        'amba_id': (
            'linux/mod_device_id/amba.h',
            'linux/amba/bus.h',                     # includes <linux/mod_devicetable.h>
            ),
        'ap_device_id': (
            'linux/mod_device_id/ap.h',
            ),
        'apr_device_id': (
            'linux/mod_device_id/apr.h',
            'linux/soc/qcom/apr.h',                 # includes <linux/mod_devicetable.h>
            ),
        'auxiliary_device_id': (
            'linux/mod_device_id/auxiliary.h',
            'linux/auxiliary_bus.h',                # includes <linux/mod_devicetable.h>
            'linux/misc/keba.h',                    # includes <linux/auxiliary_bus.h>
            'linux/mlx4/driver.h',                  # includes <linux/auxiliary_bus.h>
            'linux/soc/cirrus/ep93xx.h',            # includes <linux/auxiliary_bus.h>
            ),
        'bcma_device_id': (
            'linux/mod_device_id/bcma.h',
            'linux/bcma/bcma.h',                    # includes <linux/mod_devicetable.h>
            ),
        'ccw_device_id': (
            'linux/mod_device_id/ccw.h',
            'asm/ccwdev.h',                         # includes <linux/mod_devicetable.h>
            ),
        'cdx_device_id': (
            'linux/mod_device_id/cdx.h',
            'linux/cdx/cdx_bus.h',                  # includes <linux/mod_devicetable.h>
            ),
        'coreboot_device_id': (
            'linux/mod_device_id/coreboot.h',
            ),
        'css_device_id': (
            'linux/mod_device_id/css.h',
            'css.h',
            ),
        'dfl_device_id': (
            'linux/mod_device_id/dfl.h',
            'linux/dfl.h',                          # includes <linux/mod_devicetable.h>
            ),
        'dmi_(device|system)_id': (
            'linux/mod_device_id/dmi.h',
            'linux/dmi.h',                          # includes <linux/mod_devicetable.h>
            ),
        'eisa_device_id': (
            'linux/mod_device_id/eisa.h',
            'linux/eisa.h',                         # includes <linux/mod_devicetable.h>
            ),
        'fsl_mc_device_id': (
            'linux/mod_device_id/fsl_mc.h',
            'linux/fsl/mc.h',                       # includes <linux/mod_devicetable.h>
            ),
        'hda_device_id': (
            'linux/mod_device_id/hda.h',
            'sound/hda_codec.h',                    # includes <linux/mod_devicetable.h>
            ),
        'hid_device_id': (
            'linux/mod_device_id/hid.h',
            'linux/hid.h',                          # includes <linux/mod_devicetable.h>
            'linux/hidraw.h',                       # includes <linux/hid.h> transitively
            ),
        'hv_vmbus_device_id': (
            'linux/mod_device_id/hv_vmbus.h',
            'linux/hyperv.h',                       # includes linux/mod_devicetable.h>
            'hyperv_net.h',                         # includes linux/hyperv.h
            ),
        'i2c_device_id': (
            'linux/mod_device_id/i2c.h',
            'linux/i2c.h',                          # includes <linux/mod_devicetable.h>
            'linux/mfd/lp873x.h',                   # includes <linux/i2c.h>
            'media/dvb_frontend.h',                 # includes <linux/i2c.h>
            ),
        'i3c_device_id': (
            'linux/mod_device_id/i3c.h',
            'linux/i3c/device.h',                   # includes <linux/mod_devicetable.h>
            'linux/i3c/master.h',                   # includes <linux/i3c/device.h>
            ),
        'ieee1394_device_id': (
            'linux/mod_device_id/ieee1394.h',
            'linux/firewire.h',                     # should include <linux/mod_device_id/ieee1394.h>, instead of fwd decl
            ),
        'input_device_id': (
            'linux/mod_device_id/input.h',
            'linux/input.h',                        # includes <linux/mod_devicetable.h>
            ),
        'ipack_device_id': (
            'linux/mod_device_id/ipack.h',
            'linux/ipack.h',                        # includes <linux/mod_devicetable.h>
            ),
        'isapnp_device_id': (
            'linux/mod_device_id/isapnp.h',
            'linux/isapnp.h',                       # includes <linux/mod_devicetable.h>
            ),
        'ishtp_device_id': (
            'linux/mod_device_id/ishtp.h',
            'linux/intel-ish-client-if.h',          # includes <linux/mod_devicetable.h>
            ),
        'mcb_device_id': (
            'linux/mod_device_id/mcb.h',
            'linux/mcb.h',                          # includes <linux/mod_devicetable.h>
            ),
        'mdio_device_id': (
            'linux/mod_device_id/mdio.h',
            'linux/phy.h',                          # includes <linux/mod_devicetable.h>
            ),
        'mei_cl_device_id': (
            'linux/mod_device_id/mei_cl.h',
            'linux/mei_cl_bus.h',                   # includes <linux/mod_devicetable.h>
            ),
        'mhi_device_id': (
            'linux/mod_device_id/mhi.h',
            'linux/mhi.h',                          # should include <linux/mod_device_id/mhi.h>
            ),
        'mips_cdmm_device_id': (
            'linux/mod_device_id/mips_cdmm.h',
            'asm/cdmm.h',                           # arch/mips/include/asm/cdmm.h includes mod_devicetable.h
            ),
        'of_device_id': (
            'linux/mod_device_id/of.h',
            'linux/of.h',                           # includes <linux/mod_devicetable.h>
            'linux/of_address.h',                   # includes <linux/of.h>
            'linux/of_platform.h',                  # includes <linux/mod_devicetable.h>
            'linux/device/driver.h',                # includes <linux/mod_device_id/of.h>
            'linux/device.h',                       # includes <linux/device/driver.h>
            'linux/acpi.h',                         # includes <linux/device.h>
            'linux/backlight.h',                    # includes <linux/device.h>
            'linux/moxtet.h',                       # includes <linux/device.h>
            'linux/greybus.h',                      # includes <linux/device.h>
            'linux/platform_device.h',              # includes <linux/device.h>
            'linux/powercap.h',                     # includes <linux/device.h>
            'linux/auxiliary_bus.h',                # includes <linux/device.h>
            'linux/i2c.h',                          # includes <linux/of.h>
            'linux/reset.h',                        # includes <linux/of.h>
            'linux/spi/spi.h',                      # includes <linux/device.h>
            'asm/machine.h',                        # arch/mips/include/asm/machine.h includes <linux/of.h>
            'asm/macio.h',                          # arch/powerpc/include/asm/macio.h includes <linux/of.h>
            'sound/soc.h',                          # includes <linux/platform_device.h>
            'sound/dmaengine_pcm.h',                # includes <sound/soc.h>
            'linux/pm_qos.h',                       # includes <linux/device.h>
            'linux/clk-provider.h',                 # includes <linux/of.h>
            ),
        'parisc_device_id': (
            'linux/mod_device_id/parisc.h',
            'asm/parisc-device.h',                  # should include <linux/mod_device_id/parisc.h>
            'asm/hardware.h',                       # includes <linux/mod_devicetable.h>
            ),
        'pci_device_id': (
            'linux/mod_device_id/pci.h',
            'linux/pci.h',                          # includes <linux/mod_devicetable.h>
            'linux/comedi/comedi_pci.h',            # includes <linux/pci.h>
            'sound/hdaudio.h',                      # includes <linux/pci.h>
            'sound/hdaudio_ext.h',                  # includes <sound/hdaudio.h>
            ),
        'pci_epf_device_id': (
            'linux/mod_device_id/pci.h',
            'linux/pci-epf.h',                      # includes <linux/mod_devicetable.h>
            ),
        'pcmcia_device_id': (
            'linux/mod_device_id/pcmcia.h',
            'pcmcia/ds.h',                          # includes <linux/mod_devicetable.h>
            'linux/comedi/comedi_pcmcia.h',         # includes <pcmcia/ds.h>
            ),
        'platform_device_id': (
            'linux/mod_device_id/platform.h',
            'linux/platform_device.h',              # includes <linux/mod_device_id/platform.h>
            'linux/mfd/core.h',                     # includes <linux/platform_device.h>
            'linux/ipmi_smi.h',                     # includes <linux/platform_device.h>
            'sound/soc.h',                          # includes <linux/platform_device.h>
            'sound/dmaengine_pcm.h',                # includes <sound/soc.h>
            ),
        'pnp_(card_)?device_id': (
            'linux/mod_device_id/pnp.h',
            'linux/pnp.h',                          # includes <linux/mod_devicetable.h>
            'linux/isapnp.h',                       # includes <linux/pnp.h>
            ),
        'rio_device_id': (
            'linux/mod_device_id/rio.h',
            'linux/rio.h',                          # includes <linux/mod_devicetable.h>
            ),
        'rpmsg_device_id': (
            'linux/mod_device_id/rpmsg.h',
            'linux/rpmsg.h',                        # includes <linux/mod_devicetable.h>
            ),
        'sdio_device_id': (
            'linux/mod_device_id/sdio.h',
            'linux/mmc/sdio_func.h',                # includes <linux/mod_devicetable.h>
            ),
        'sdw_device_id': (
            'linux/mod_device_id/sdw.h',
            'linux/soundwire/sdw.h',                # includes <linux/mod_devicetable.h>
            ),
        'serio_device_id': (
            'linux/mod_device_id/serio.h',
            'linux/serio.h',                        # includes <linux/mod_devicetable.h>
            'linux/hil_mlc.h',                      # includes <linux/serio.h>
            ),
        'slim_device_id': (
            'linux/mod_device_id/slim.h',
            'linux/slimbus.h',                      # includes <linux/mod_devicetable.h>
            ),
        'spi_device_id': (
            'linux/mod_device_id/spi.h',
            'linux/spi/spi.h',                      # includes <linux/mod_devicetable.h>
            ),
        'spmi_device_id': (
            'linux/mod_device_id/spmi.h',
            ),
        'ssam_device_id': (
            'linux/mod_device_id/ssam.h',
            'linux/surface_aggregator/device.h',    # includes <linux/mod_devicetable.h>
            ),
        'ssb_device_id': (
            'linux/mod_device_id/ssb.h',
            'linux/ssb/ssb.h',                      # includes <linux/mod_devicetable.h>
            ),
        'tb_service_id': (
            'linux/mod_device_id/tb.h',
            'linux/thunderbolt.h',                  # includes <linux/mod_devicetable.h>
            'tb.h',                                 # drivers/thunderbolt/tb.h includes <linux/thunderbolt.h>
            ),
        'tee_client_device_id': (
            'linux/mod_device_id/tee_client.h',
            'linux/tee_drv.h',                      # includes <linux/mod_devicetable.h>
            'linux/tee_core.h',                     # includes <linux/tee_drv.h>
            ),
        'typec_device_id': (
            'linux/mod_device_id/typec.h',
            'linux/usb/typec_altmode.h',            # includes <linux/mod_devicetable.h>
            'linux/usb/typec_dp.h',                 # includes <linux/usb/typec_altmode.h>
            ),
        'ulpi_device_id': (
            'linux/mod_device_id/ulpi.h',
            'linux/ulpi/driver.h',                  # includes <linux/mod_devicetable.h>
            ),
        'usb_device_id': (
            'linux/mod_device_id/usb.h',
            'linux/usb.h',                          # includes <linux/mod_devicetable.h>
            'linux/comedi/comedi_usb.h',            # includes <linux/usb.h>
            'linux/usb/input.h',                    # includes <linux/usb.h>
            ),
        'vchiq_device_id': (
            'linux/mod_device_id/vchiq.h',
            'linux/raspberrypi/vchiq_bus.h',        # includes <linux/mod_devicetable.h>
            ),
        'virtio_device_id': (
            'linux/mod_device_id/virtio.h',
            'linux/virtio.h',                       # includes <linux/mod_devicetable.h>
            'linux/virtio_config.h',                # includes <linux/virtio.h>
            'uapi/linux/virtio_pmem.h',             # includes <linux/virtio_config.h>
            ),
        'wmi_device_id': (
            'linux/mod_device_id/wmi.h',
            'linux/wmi.h',                          # includes <linux/mod_devicetable.h>
            ),
        'x86_(cpu|device)_id': (
            'linux/mod_device_id/x86_cpu.h',
            'linux/platform_data/x86/soc.h',        # includes <linux/mod_devicetable.h>
            'asm/cpu_device_id.h',                  # includes <linux/mod_devicetable.h>
            ),
        'zorro_device_id': (
            'linux/mod_device_id/zorro.h',
            'linux/zorro.h',                        # includes <linux/mod_devicetable.h>
            ),

        'cpu_feature': (
            'linux/mod_devicetable.h',
            'linux/cpufeature.h',                   # includes <linux/mod_devicetable.h>
            ),
    }

for dirpath, dirnames, filenames in os.walk('.'):
    for fn in (os.path.join(dirpath, f) for f in filenames if re.match(r'.*\.[ch]$', f)):
        if fn in ('./scripts/mod/devicetable-offsets.c', './scripts/mod/file2alias.c'):
            continue
        with open(fn) as f:
            try:
                filecontent = f.read()
            except Exception as e:
                print(f"Error { e } while reading { fn }")
                continue

        # If the file has an include of the legacy header, drop it
        if momdt := re.search(r'#[ \t]*include\s*[<"]linux/mod_devicetable.h[>"]([ \t]*/\*[^*]*\*/)?[ \t]*\n', filecontent):
            filecontent = filecontent[:momdt.start()] + filecontent[momdt.end():]

        for s, hs in symbol_header_map.items():
            if re.search(fr'\bstruct\s*{ s }\b\s*;', filecontent):
                # with a forward declaration assume we're fine (unsafe!)
                continue

            if re.search(fr'\bstruct\s*{ s }\b', filecontent):
                if fn.endswith(tuple('/' + h for h in hs)):
                    break

                # include local headers
                seenheaders = set()
                expanded_filecontent = filecontent
                while mo := re.search(r'#\s*include\s*"([^"]*)"', expanded_filecontent):
                    start, end = mo.span(0)
                    lhn = mo.group(1)
                    
                    if lhn in seenheaders:
                        expanded_filecontent = expanded_filecontent[:start] + expanded_filecontent[end:]
                    else:
                        seenheaders.add(lhn)
                        try:
                            with open(os.path.join(dirpath, lhn)) as lh:
                                lhcontent = lh.read()
                            expanded_filecontent = expanded_filecontent[:start] + lhcontent + expanded_filecontent[end:]
                        except Exception:
                            expanded_filecontent = expanded_filecontent[:start] + expanded_filecontent[end:]

                for h in hs:
                    if re.search(fr'#\s*include\s*[<"]{ h }[>"]', expanded_filecontent):
                        break
                else:
                    # only rewrite .c files, headers need more care
                    if momdt:
                        if fn.endswith('.c'):
                            filecontent = filecontent[:momdt.start()] + f'#include <{ hs[0] }>\n' + filecontent[momdt.start():]

                    else:
                        print(f"Header for { s } missing in { fn }")

        if momdt and fn.endswith('.c'):
            with open(fn, "w") as f:
                f.write(filecontent)
------->8--------


Uwe Kleine-König (The Capable Hub) (17):
  mod_devicetable.h: Split into per subsystem headers
  media: ti: vpe: #include <linux/platform_device.h> explicitly
  ASoC: rockchip: rockchip_sai: #include <linux/platform_device.h>
    explicitly
  driver: core: Include headers for acpi_device_id and of_device_id for
    struct device_driver
  driver core: platform: Include header for struct platform_device_id
  usb: serial: Include <linux/usb.h> in <linux/usb/serial.h>
  platform/x86: msi-ec: Ensure dmi_system_id is defined
  of: Explicitly include <linux/types.h> and <linux/err.h>
  i2c: Let i2c-core.h include <linux/i2c.h>
  platform/x86: x86-android-tablets: Add include defining struct
    dmi_system_id
  platform/x86: int3472: Add include defining struct dmi_system_id
  usb: dwc2: Add include defining struct pci_device_id
  ALSA: hda/core: Add include defining struct hda_device_id
  LoongArch: KVM: Add include defining struct cpu_feature
  media: em28xx: Add include for struct usb_device_id
  Replace <linux/mod_devicetable.h> by more specific
    <linux/mod_device_id/*.h> (headers)
  Replace <linux/mod_devicetable.h> by more specific
    <linux/mod_device_id/*.h> (c files)

 arch/arm/mach-omap2/board-generic.c           |    1 -
 arch/loongarch/kvm/main.c                     |    1 +
 arch/mips/include/asm/cdmm.h                  |    2 +-
 arch/mips/lantiq/xway/dcdc.c                  |    1 -
 arch/mips/lantiq/xway/gptu.c                  |    1 -
 arch/mips/lantiq/xway/vmmc.c                  |    1 -
 arch/mips/pci/pci-rt2880.c                    |    1 -
 arch/mips/ralink/timer.c                      |    1 -
 arch/parisc/include/asm/hardware.h            |    4 +-
 arch/parisc/include/asm/parisc-device.h       |    1 +
 .../powerpc/platforms/83xx/mcu_mpc8349emitx.c |    1 -
 arch/powerpc/platforms/86xx/common.c          |    1 -
 arch/powerpc/sysdev/fsl_lbc.c                 |    1 -
 arch/powerpc/sysdev/fsl_pmc.c                 |    1 -
 arch/s390/include/asm/ccwdev.h                |    2 +-
 arch/sh/drivers/platform_early.c              |    2 +-
 arch/sparc/crypto/crop_devid.c                |    2 +-
 arch/sparc/kernel/of_device_32.c              |    1 -
 arch/sparc/kernel/of_device_64.c              |    1 -
 arch/sparc/kernel/of_device_common.c          |    1 -
 arch/x86/include/asm/cpu_device_id.h          |    5 +-
 arch/x86/kvm/svm/svm.c                        |    1 -
 arch/x86/kvm/vmx/vmx.c                        |    1 -
 drivers/accel/ethosu/ethosu_drv.c             |    1 -
 drivers/accel/qaic/qaic_timesync.c            |    1 -
 drivers/accel/qaic/sahara.c                   |    1 -
 drivers/ata/ahci_platform.c                   |    1 -
 drivers/ata/ahci_sunxi.c                      |    1 -
 drivers/ata/pata_buddha.c                     |    1 -
 drivers/ata/pata_ep93xx.c                     |    1 -
 drivers/ata/pata_imx.c                        |    1 -
 drivers/auxdisplay/arm-charlcd.c              |    1 -
 drivers/auxdisplay/hd44780.c                  |    1 -
 drivers/auxdisplay/lcd2s.c                    |    1 -
 drivers/auxdisplay/max6959.c                  |    1 -
 drivers/auxdisplay/seg-led-gpio.c             |    1 -
 drivers/block/floppy.c                        |    2 +-
 drivers/bluetooth/hci_h5.c                    |    1 -
 drivers/bluetooth/hci_qca.c                   |    1 -
 drivers/bus/mhi/ep/main.c                     |    1 -
 drivers/bus/mhi/host/init.c                   |    1 -
 drivers/cache/hisi_soc_hha.c                  |    1 -
 drivers/cdx/controller/cdx_controller.c       |    1 -
 drivers/char/hw_random/airoha-trng.c          |    1 -
 drivers/char/hw_random/atmel-rng.c            |    1 -
 drivers/char/hw_random/ba431-rng.c            |    1 -
 drivers/char/hw_random/bcm74110-rng.c         |    1 -
 drivers/char/hw_random/exynos-trng.c          |    1 -
 drivers/char/hw_random/histb-rng.c            |    1 -
 drivers/char/hw_random/imx-rngc.c             |    1 -
 drivers/char/hw_random/ingenic-trng.c         |    1 -
 drivers/char/hw_random/iproc-rng200.c         |    1 -
 drivers/char/hw_random/pasemi-rng.c           |    1 -
 drivers/char/hw_random/pic32-rng.c            |    1 -
 drivers/char/hw_random/powernv-rng.c          |    1 -
 drivers/char/hw_random/xgene-rng.c            |    1 -
 drivers/char/hw_random/xilinx-trng.c          |    1 -
 drivers/char/hw_random/xiphera-trng.c         |    1 -
 drivers/clk/aspeed/clk-ast2600.c              |    1 -
 drivers/clk/aspeed/clk-ast2700.c              |    1 -
 drivers/clk/clk-axi-clkgen.c                  |    1 -
 drivers/clk/clk-bm1880.c                      |    1 -
 drivers/clk/clk-cdce706.c                     |    1 -
 drivers/clk/clk-eyeq.c                        |    1 -
 drivers/clk/clk-renesas-pcie.c                |    1 -
 drivers/clk/clk-si521xx.c                     |    1 -
 drivers/clk/clk-versaclock5.c                 |    1 -
 drivers/clk/imx/clk-imx8mp-audiomix.c         |    1 -
 drivers/clk/mediatek/clk-mt2701-g3d.c         |    1 -
 drivers/clk/mediatek/clk-mt2701.c             |    1 -
 drivers/clk/mediatek/clk-mt2712.c             |    1 -
 drivers/clk/mediatek/clk-mt6765.c             |    1 -
 drivers/clk/mediatek/clk-mt6779-aud.c         |    1 -
 drivers/clk/mediatek/clk-mt7622-eth.c         |    1 -
 drivers/clk/mediatek/clk-mt7622-hif.c         |    1 -
 drivers/clk/mediatek/clk-mt7622.c             |    1 -
 drivers/clk/mediatek/clk-mt7629-hif.c         |    1 -
 drivers/clk/mediatek/clk-mt7981-apmixed.c     |    1 -
 drivers/clk/mediatek/clk-mt7981-eth.c         |    1 -
 drivers/clk/mediatek/clk-mt7981-infracfg.c    |    1 -
 drivers/clk/mediatek/clk-mt7981-topckgen.c    |    1 -
 drivers/clk/mediatek/clk-mt7986-apmixed.c     |    1 -
 drivers/clk/mediatek/clk-mt7986-eth.c         |    1 -
 drivers/clk/mediatek/clk-mt7986-infracfg.c    |    1 -
 drivers/clk/mediatek/clk-mt7986-topckgen.c    |    1 -
 drivers/clk/mediatek/clk-mt8167-aud.c         |    1 -
 drivers/clk/mediatek/clk-mt8167-img.c         |    1 -
 drivers/clk/mediatek/clk-mt8167-mfgcfg.c      |    1 -
 drivers/clk/mediatek/clk-mt8167-mm.c          |    1 -
 drivers/clk/mediatek/clk-mt8167-vdec.c        |    1 -
 drivers/clk/mediatek/clk-mt8173-mm.c          |    1 -
 drivers/clk/mediatek/clk-mt8183.c             |    1 -
 .../clk/mediatek/clk-mt8188-adsp_audio26m.c   |    1 -
 drivers/clk/mediatek/clk-mt8188-apmixedsys.c  |    1 -
 .../clk/mediatek/clk-mt8188-imp_iic_wrap.c    |    1 -
 drivers/clk/mediatek/clk-mt8188-topckgen.c    |    1 -
 drivers/clk/mediatek/clk-mt8188-vdo0.c        |    1 -
 drivers/clk/mediatek/clk-mt8188-vdo1.c        |    1 -
 drivers/clk/mediatek/clk-mt8188-venc.c        |    1 -
 drivers/clk/mediatek/clk-mt8188-wpe.c         |    1 -
 drivers/clk/mediatek/clk-mt8192-cam.c         |    1 -
 drivers/clk/mediatek/clk-mt8192-img.c         |    1 -
 .../clk/mediatek/clk-mt8192-imp_iic_wrap.c    |    1 -
 drivers/clk/mediatek/clk-mt8192-ipe.c         |    1 -
 drivers/clk/mediatek/clk-mt8192-mdp.c         |    1 -
 drivers/clk/mediatek/clk-mt8192-mfg.c         |    1 -
 drivers/clk/mediatek/clk-mt8192-msdc.c        |    1 -
 drivers/clk/mediatek/clk-mt8192-scp_adsp.c    |    1 -
 drivers/clk/mediatek/clk-mt8192-vdec.c        |    1 -
 drivers/clk/mediatek/clk-mt8192-venc.c        |    1 -
 drivers/clk/mediatek/clk-mt8192.c             |    1 -
 drivers/clk/mediatek/clk-mt8195-apmixedsys.c  |    1 -
 drivers/clk/mediatek/clk-mt8195-topckgen.c    |    1 -
 drivers/clk/mediatek/clk-mt8365.c             |    1 -
 drivers/clk/mediatek/clk-mt8516-aud.c         |    1 -
 drivers/clk/meson/a1-peripherals.c            |    1 -
 drivers/clk/meson/a1-pll.c                    |    1 -
 drivers/clk/meson/axg.c                       |    1 -
 drivers/clk/meson/gxbb.c                      |    1 -
 drivers/clk/qcom/cambistmclkcc-kaanapali.c    |    1 -
 drivers/clk/qcom/cambistmclkcc-sm8750.c       |    1 -
 drivers/clk/qcom/camcc-kaanapali.c            |    1 -
 drivers/clk/qcom/camcc-milos.c                |    1 -
 drivers/clk/qcom/camcc-qcs615.c               |    1 -
 drivers/clk/qcom/camcc-sa8775p.c              |    1 -
 drivers/clk/qcom/camcc-sc7180.c               |    1 -
 drivers/clk/qcom/camcc-sc7280.c               |    1 -
 drivers/clk/qcom/camcc-sc8180x.c              |    1 -
 drivers/clk/qcom/camcc-sc8280xp.c             |    1 -
 drivers/clk/qcom/camcc-sdm845.c               |    1 -
 drivers/clk/qcom/camcc-sm4450.c               |    1 -
 drivers/clk/qcom/camcc-sm6350.c               |    1 -
 drivers/clk/qcom/camcc-sm7150.c               |    1 -
 drivers/clk/qcom/camcc-sm8150.c               |    1 -
 drivers/clk/qcom/camcc-sm8250.c               |    1 -
 drivers/clk/qcom/camcc-sm8450.c               |    1 -
 drivers/clk/qcom/camcc-sm8550.c               |    1 -
 drivers/clk/qcom/camcc-sm8650.c               |    1 -
 drivers/clk/qcom/camcc-sm8750.c               |    1 -
 drivers/clk/qcom/camcc-x1e80100.c             |    1 -
 drivers/clk/qcom/dispcc-eliza.c               |    1 -
 drivers/clk/qcom/dispcc-glymur.c              |    1 -
 drivers/clk/qcom/dispcc-kaanapali.c           |    1 -
 drivers/clk/qcom/dispcc-milos.c               |    1 -
 drivers/clk/qcom/dispcc-qcm2290.c             |    1 -
 drivers/clk/qcom/dispcc-qcs615.c              |    1 -
 drivers/clk/qcom/dispcc-sc7180.c              |    1 -
 drivers/clk/qcom/dispcc-sc7280.c              |    1 -
 drivers/clk/qcom/dispcc-sc8280xp.c            |    1 -
 drivers/clk/qcom/dispcc-sdm845.c              |    1 -
 drivers/clk/qcom/dispcc-sm4450.c              |    1 -
 drivers/clk/qcom/dispcc-sm6115.c              |    1 -
 drivers/clk/qcom/dispcc-sm6125.c              |    1 -
 drivers/clk/qcom/dispcc-sm6350.c              |    1 -
 drivers/clk/qcom/dispcc-sm6375.c              |    1 -
 drivers/clk/qcom/dispcc-sm7150.c              |    1 -
 drivers/clk/qcom/dispcc-sm8250.c              |    1 -
 drivers/clk/qcom/dispcc-sm8450.c              |    1 -
 drivers/clk/qcom/dispcc-sm8550.c              |    1 -
 drivers/clk/qcom/dispcc-sm8750.c              |    1 -
 drivers/clk/qcom/dispcc-x1e80100.c            |    1 -
 drivers/clk/qcom/dispcc0-sa8775p.c            |    1 -
 drivers/clk/qcom/dispcc1-sa8775p.c            |    1 -
 drivers/clk/qcom/ecpricc-qdu1000.c            |    1 -
 drivers/clk/qcom/gcc-eliza.c                  |    1 -
 drivers/clk/qcom/gcc-glymur.c                 |    1 -
 drivers/clk/qcom/gcc-ipq5018.c                |    1 -
 drivers/clk/qcom/gcc-ipq5332.c                |    1 -
 drivers/clk/qcom/gcc-kaanapali.c              |    1 -
 drivers/clk/qcom/gcc-milos.c                  |    1 -
 drivers/clk/qcom/gcc-nord.c                   |    1 -
 drivers/clk/qcom/gcc-qcs615.c                 |    1 -
 drivers/clk/qcom/gcc-qcs8300.c                |    1 -
 drivers/clk/qcom/gcc-sa8775p.c                |    1 -
 drivers/clk/qcom/gcc-sdx75.c                  |    1 -
 drivers/clk/qcom/gcc-sm4450.c                 |    1 -
 drivers/clk/qcom/gcc-sm7150.c                 |    1 -
 drivers/clk/qcom/gcc-sm8650.c                 |    1 -
 drivers/clk/qcom/gcc-sm8750.c                 |    1 -
 drivers/clk/qcom/gcc-x1e80100.c               |    1 -
 drivers/clk/qcom/gpucc-glymur.c               |    1 -
 drivers/clk/qcom/gpucc-kaanapali.c            |    1 -
 drivers/clk/qcom/gpucc-milos.c                |    1 -
 drivers/clk/qcom/gpucc-msm8998.c              |    1 -
 drivers/clk/qcom/gpucc-qcm2290.c              |    1 -
 drivers/clk/qcom/gpucc-qcs615.c               |    1 -
 drivers/clk/qcom/gpucc-sa8775p.c              |    1 -
 drivers/clk/qcom/gpucc-sar2130p.c             |    1 -
 drivers/clk/qcom/gpucc-sc7180.c               |    1 -
 drivers/clk/qcom/gpucc-sc7280.c               |    1 -
 drivers/clk/qcom/gpucc-sc8280xp.c             |    1 -
 drivers/clk/qcom/gpucc-sdm660.c               |    1 -
 drivers/clk/qcom/gpucc-sdm845.c               |    1 -
 drivers/clk/qcom/gpucc-sm4450.c               |    1 -
 drivers/clk/qcom/gpucc-sm6115.c               |    1 -
 drivers/clk/qcom/gpucc-sm6125.c               |    1 -
 drivers/clk/qcom/gpucc-sm6350.c               |    1 -
 drivers/clk/qcom/gpucc-sm6375.c               |    1 -
 drivers/clk/qcom/gpucc-sm8150.c               |    1 -
 drivers/clk/qcom/gpucc-sm8250.c               |    1 -
 drivers/clk/qcom/gpucc-sm8350.c               |    1 -
 drivers/clk/qcom/gpucc-sm8450.c               |    1 -
 drivers/clk/qcom/gpucc-sm8550.c               |    1 -
 drivers/clk/qcom/gpucc-sm8650.c               |    1 -
 drivers/clk/qcom/gpucc-sm8750.c               |    1 -
 drivers/clk/qcom/gpucc-x1e80100.c             |    1 -
 drivers/clk/qcom/gpucc-x1p42100.c             |    1 -
 drivers/clk/qcom/gxclkctl-kaanapali.c         |    1 -
 drivers/clk/qcom/ipq-cmn-pll.c                |    1 -
 drivers/clk/qcom/lpasscc-sc8280xp.c           |    1 -
 drivers/clk/qcom/lpasscc-sm6115.c             |    1 -
 drivers/clk/qcom/mmcc-apq8084.c               |    1 -
 drivers/clk/qcom/mmcc-msm8960.c               |    1 -
 drivers/clk/qcom/mmcc-msm8974.c               |    1 -
 drivers/clk/qcom/mmcc-msm8994.c               |    1 -
 drivers/clk/qcom/mmcc-msm8996.c               |    1 -
 drivers/clk/qcom/mmcc-msm8998.c               |    1 -
 drivers/clk/qcom/mmcc-sdm660.c                |    1 -
 drivers/clk/qcom/negcc-nord.c                 |    1 -
 drivers/clk/qcom/nwgcc-nord.c                 |    1 -
 drivers/clk/qcom/segcc-nord.c                 |    1 -
 drivers/clk/qcom/tcsrcc-eliza.c               |    1 -
 drivers/clk/qcom/tcsrcc-glymur.c              |    1 -
 drivers/clk/qcom/tcsrcc-nord.c                |    1 -
 drivers/clk/qcom/tcsrcc-sm8650.c              |    1 -
 drivers/clk/qcom/tcsrcc-sm8750.c              |    1 -
 drivers/clk/qcom/tcsrcc-x1e80100.c            |    1 -
 drivers/clk/qcom/videocc-glymur.c             |    1 -
 drivers/clk/qcom/videocc-kaanapali.c          |    1 -
 drivers/clk/qcom/videocc-milos.c              |    1 -
 drivers/clk/qcom/videocc-qcs615.c             |    1 -
 drivers/clk/qcom/videocc-sa8775p.c            |    1 -
 drivers/clk/qcom/videocc-sm7150.c             |    1 -
 drivers/clk/qcom/videocc-sm8450.c             |    1 -
 drivers/clk/qcom/videocc-sm8550.c             |    1 -
 drivers/clk/qcom/videocc-sm8750.c             |    1 -
 drivers/clk/renesas/clk-vbattb.c              |    1 -
 drivers/clk/renesas/renesas-cpg-mssr.c        |    1 -
 drivers/clk/renesas/rzg2l-cpg.c               |    1 -
 drivers/clk/renesas/rzv2h-cpg.c               |    1 -
 drivers/clk/samsung/clk-exynos-audss.c        |    1 -
 drivers/clk/samsung/clk-exynos-clkout.c       |    1 -
 drivers/clk/samsung/clk-exynos2200.c          |    1 -
 drivers/clk/samsung/clk-exynos3250.c          |    1 -
 drivers/clk/samsung/clk-exynos4.c             |    1 -
 drivers/clk/samsung/clk-exynos4412-isp.c      |    1 -
 drivers/clk/samsung/clk-exynos5-subcmu.c      |    1 -
 drivers/clk/samsung/clk-exynos5250.c          |    1 -
 drivers/clk/samsung/clk-exynos5420.c          |    1 -
 drivers/clk/samsung/clk-exynos5433.c          |    1 -
 drivers/clk/samsung/clk-exynos7870.c          |    1 -
 drivers/clk/samsung/clk-exynos7885.c          |    1 -
 drivers/clk/samsung/clk-exynos850.c           |    1 -
 drivers/clk/samsung/clk-exynos8895.c          |    1 -
 drivers/clk/samsung/clk-exynos990.c           |    1 -
 drivers/clk/samsung/clk-exynosautov9.c        |    1 -
 drivers/clk/samsung/clk-exynosautov920.c      |    1 -
 drivers/clk/samsung/clk-fsd.c                 |    1 -
 drivers/clk/samsung/clk-gs101.c               |    1 -
 drivers/clk/samsung/clk-s5pv210-audss.c       |    1 -
 drivers/clk/samsung/clk.c                     |    1 -
 drivers/clk/sprd/ums512-clk.c                 |    1 -
 .../clk/starfive/clk-starfive-jh7100-audio.c  |    1 -
 drivers/clk/starfive/clk-starfive-jh7100.c    |    1 -
 drivers/clk/tegra/clk-device.c                |    1 -
 drivers/clk/xilinx/xlnx_vcu.c                 |    1 -
 drivers/counter/interrupt-cnt.c               |    1 -
 drivers/counter/stm32-lptimer-cnt.c           |    1 -
 drivers/counter/stm32-timer-cnt.c             |    1 -
 drivers/counter/ti-ecap-capture.c             |    1 -
 drivers/counter/ti-eqep.c                     |    1 -
 drivers/cpufreq/amd_freq_sensitivity.c        |    1 -
 drivers/cpufreq/armada-37xx-cpufreq.c         |    1 -
 drivers/crypto/atmel-aes.c                    |    1 -
 drivers/crypto/atmel-sha.c                    |    1 -
 drivers/crypto/atmel-tdes.c                   |    1 -
 drivers/crypto/hifn_795x.c                    |    1 -
 drivers/crypto/img-hash.c                     |    1 -
 .../intel/keembay/keembay-ocs-hcu-core.c      |    1 -
 drivers/crypto/qce/core.c                     |    1 -
 drivers/crypto/starfive/jh7110-cryp.c         |    1 -
 drivers/crypto/talitos.c                      |    1 -
 drivers/crypto/tegra/tegra-se-main.c          |    1 -
 drivers/crypto/ti/dthev2-common.c             |    1 -
 drivers/crypto/xilinx/zynqmp-aes-gcm.c        |    1 -
 drivers/devfreq/hisi_uncore_freq.c            |    1 -
 drivers/devfreq/imx8m-ddrc.c                  |    1 -
 drivers/dma/amd/qdma/qdma.c                   |    1 -
 drivers/dma/ep93xx_dma.c                      |    1 -
 drivers/dma/qcom/hidma.c                      |    1 -
 drivers/dma/sf-pdma/sf-pdma.c                 |    1 -
 drivers/dma/xgene-dma.c                       |    1 -
 drivers/dma/xilinx/xdma.c                     |    1 -
 drivers/dpll/zl3073x/dpll.c                   |    1 -
 drivers/edac/fsl_ddr_edac.c                   |    1 -
 drivers/edac/mpc85xx_edac.c                   |    1 -
 drivers/edac/pnd2_edac.c                      |    1 -
 drivers/edac/sb_edac.c                        |    1 -
 drivers/extcon/extcon-intel-cht-wc.c          |    1 -
 drivers/extcon/extcon-intel-mrfld.c           |    1 -
 drivers/extcon/extcon-max14526.c              |    1 -
 drivers/extcon/extcon-max3355.c               |    1 -
 drivers/extcon/extcon-qcom-spmi-misc.c        |    1 -
 drivers/extcon/extcon-usb-gpio.c              |    1 -
 drivers/firewire/core-device.c                |    1 -
 drivers/firewire/net.c                        |    1 -
 drivers/firewire/sbp2.c                       |    1 -
 drivers/firmware/google/cbmem.c               |    2 +-
 drivers/firmware/google/coreboot_table.c      |    2 +-
 .../firmware/google/framebuffer-coreboot.c    |    2 +-
 drivers/firmware/google/memconsole-coreboot.c |    2 +-
 drivers/firmware/google/vpd.c                 |    2 +-
 drivers/firmware/qemu_fw_cfg.c                |    1 -
 drivers/fpga/altera-freeze-bridge.c           |    1 -
 drivers/fpga/altera-pr-ip-core-plat.c         |    1 -
 drivers/fpga/ice40-spi.c                      |    1 -
 drivers/fpga/intel-m10-bmc-sec-update.c       |    1 -
 drivers/fpga/xilinx-selectmap.c               |    1 -
 drivers/fpga/xilinx-spi.c                     |    1 -
 drivers/fsi/fsi-master-i2cr.c                 |    1 -
 drivers/fsi/fsi-scom.c                        |    2 +-
 drivers/fsi/i2cr-scom.c                       |    1 -
 drivers/gpib/eastwood/fluke_gpib.c            |    1 -
 drivers/gpio/gpio-74xx-mmio.c                 |    1 -
 drivers/gpio/gpio-adnp.c                      |    1 -
 drivers/gpio/gpio-aggregator.c                |    1 -
 drivers/gpio/gpio-altera-a10sr.c              |    2 +-
 drivers/gpio/gpio-altera.c                    |    1 -
 drivers/gpio/gpio-ath79.c                     |    1 -
 drivers/gpio/gpio-bcm-kona.c                  |    1 -
 drivers/gpio/gpio-by-pinctrl.c                |    1 -
 drivers/gpio/gpio-cros-ec.c                   |    1 -
 drivers/gpio/gpio-dwapb.c                     |    1 -
 drivers/gpio/gpio-en7523.c                    |    1 -
 drivers/gpio/gpio-ge.c                        |    1 -
 drivers/gpio/gpio-graniterapids.c             |    1 -
 drivers/gpio/gpio-hisi.c                      |    1 -
 drivers/gpio/gpio-idt3243x.c                  |    1 -
 drivers/gpio/gpio-latch.c                     |    1 -
 drivers/gpio/gpio-line-mux.c                  |    1 -
 drivers/gpio/gpio-ltc4283.c                   |    1 -
 drivers/gpio/gpio-max7360.c                   |    1 -
 drivers/gpio/gpio-max77759.c                  |    1 -
 drivers/gpio/gpio-mb86s7x.c                   |    1 -
 drivers/gpio/gpio-mlxbf2.c                    |    1 -
 drivers/gpio/gpio-mmio.c                      |    1 -
 drivers/gpio/gpio-mockup.c                    |    1 -
 drivers/gpio/gpio-mpc8xxx.c                   |    1 -
 drivers/gpio/gpio-mpfs.c                      |    1 -
 drivers/gpio/gpio-nomadik.c                   |    1 -
 drivers/gpio/gpio-pca953x.c                   |    1 -
 drivers/gpio/gpio-pcf857x.c                   |    1 -
 drivers/gpio/gpio-qixis-fpga.c                |    1 -
 drivers/gpio/gpio-realtek-otto.c              |    1 -
 drivers/gpio/gpio-shared-proxy.c              |    1 -
 drivers/gpio/gpio-sim.c                       |    1 -
 drivers/gpio/gpio-sl28cpld.c                  |    1 -
 drivers/gpio/gpio-sloppy-logic-analyzer.c     |    1 -
 drivers/gpio/gpio-sprd.c                      |    1 -
 drivers/gpio/gpio-tn48m.c                     |    1 -
 drivers/gpio/gpio-virtuser.c                  |    1 -
 drivers/gpio/gpio-wcd934x.c                   |    1 -
 drivers/gpio/gpio-xgene-sb.c                  |    1 -
 drivers/gpio/gpio-xra1403.c                   |    1 -
 drivers/gpio/gpio-zevio.c                     |    1 -
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c       |    1 -
 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c   |    1 -
 drivers/gpu/drm/bridge/inno-hdmi.c            |    1 -
 drivers/gpu/drm/bridge/ssd2825.c              |    1 -
 drivers/gpu/drm/bridge/tc358762.c             |    2 +-
 drivers/gpu/drm/bridge/tc358764.c             |    2 +-
 drivers/gpu/drm/bridge/th1520-dw-hdmi.c       |    1 -
 drivers/gpu/drm/drm_panel_backlight_quirks.c  |    1 -
 drivers/gpu/drm/etnaviv/etnaviv_gpu.c         |    1 -
 drivers/gpu/drm/exynos/exynos_drm_gsc.c       |    1 -
 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c  |    1 -
 drivers/gpu/drm/imagination/pvr_drv.c         |    1 -
 drivers/gpu/drm/imx/dc/dc-cf.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-de.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-drv.c               |    1 -
 drivers/gpu/drm/imx/dc/dc-ed.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-fg.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-fl.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-fw.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-lb.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-pe.c                |    1 -
 drivers/gpu/drm/imx/dc/dc-tc.c                |    1 -
 drivers/gpu/drm/imx/lcdc/imx-lcdc.c           |    1 -
 drivers/gpu/drm/mediatek/mtk_cec.c            |    1 -
 drivers/gpu/drm/mediatek/mtk_mdp_rdma.c       |    1 -
 drivers/gpu/drm/meson/meson_dw_mipi_dsi.c     |    1 -
 drivers/gpu/drm/mxsfb/mxsfb_drv.c             |    1 -
 drivers/gpu/drm/panel/panel-arm-versatile.c   |    1 -
 drivers/gpu/drm/panel/panel-auo-a030jtn01.c   |    1 -
 drivers/gpu/drm/panel/panel-boe-td4320.c      |    2 +-
 .../gpu/drm/panel/panel-feixin-k101-im2ba02.c |    2 +-
 .../drm/panel/panel-feiyang-fy07024di26a30d.c |    2 +-
 drivers/gpu/drm/panel/panel-himax-hx83112b.c  |    1 -
 drivers/gpu/drm/panel/panel-himax-hx83121a.c  |    1 -
 drivers/gpu/drm/panel/panel-himax-hx8394.c    |    1 -
 drivers/gpu/drm/panel/panel-hydis-hv101hd1.c  |    2 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9341.c  |    1 -
 .../gpu/drm/panel/panel-ilitek-ili9806e-dsi.c |    1 -
 drivers/gpu/drm/panel/panel-lg-ld070wx3.c     |    2 +-
 drivers/gpu/drm/panel/panel-motorola-mot.c    |    2 +-
 drivers/gpu/drm/panel/panel-novatek-nt35532.c |    2 +-
 drivers/gpu/drm/panel/panel-novatek-nt37801.c |    1 -
 .../gpu/drm/panel/panel-orisetech-otm8009a.c  |    1 -
 drivers/gpu/drm/panel/panel-raydium-rm67200.c |    2 +-
 drivers/gpu/drm/panel/panel-raydium-rm68200.c |    2 +-
 drivers/gpu/drm/panel/panel-renesas-r61307.c  |    2 +-
 drivers/gpu/drm/panel/panel-renesas-r69328.c  |    2 +-
 .../gpu/drm/panel/panel-samsung-ltl106hl02.c  |    2 +-
 drivers/gpu/drm/panel/panel-samsung-s6d16d0.c |    2 +-
 .../gpu/drm/panel/panel-samsung-s6e63j0x03.c  |    1 -
 .../gpu/drm/panel/panel-samsung-s6e63m0-dsi.c |    2 +-
 .../panel/panel-samsung-s6e88a0-ams427ap24.c  |    1 -
 .../drm/panel/panel-samsung-s6e8fc0-m1906f9.c |    1 -
 drivers/gpu/drm/panel/panel-sitronix-st7703.c |    1 -
 drivers/gpu/drm/panel/panel-summit.c          |    1 -
 .../gpu/drm/panel/panel-visionox-rm69299.c    |    1 -
 .../gpu/drm/panel/panel-visionox-rm692e5.c    |    1 -
 .../gpu/drm/renesas/rcar-du/rcar_dw_hdmi.c    |    1 -
 .../gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c  |    1 -
 drivers/gpu/drm/rockchip/inno_hdmi-rockchip.c |    1 -
 drivers/gpu/drm/rockchip/rockchip_vop2_reg.c  |    1 -
 drivers/gpu/drm/rockchip/rockchip_vop_reg.c   |    1 -
 drivers/gpu/drm/sprd/sprd_drm.c               |    1 -
 drivers/gpu/drm/sti/sti_hda.c                 |    1 -
 drivers/gpu/drm/stm/drv.c                     |    1 -
 drivers/gpu/drm/stm/dw_mipi_dsi-stm.c         |    1 -
 drivers/gpu/drm/sun4i/sun6i_drc.c             |    1 -
 drivers/gpu/drm/tilcdc/tilcdc_drv.c           |    1 -
 drivers/gpu/drm/tiny/sharp-memory.c           |    1 -
 drivers/gpu/drm/vc4/vc4_dpi.c                 |    1 -
 drivers/gpu/drm/vc4/vc4_txp.c                 |    1 -
 drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c      |    1 -
 drivers/hid/intel-ish-hid/ishtp/bus.h         |    2 +-
 drivers/hsi/controllers/omap_ssi_port.c       |    1 -
 drivers/hte/hte-tegra194-test.c               |    1 -
 drivers/hwmon/adcxx.c                         |    1 -
 drivers/hwmon/adt7410.c                       |    1 -
 drivers/hwmon/adt7462.c                       |    1 -
 drivers/hwmon/adt7475.c                       |    1 -
 drivers/hwmon/as370-hwmon.c                   |    1 -
 drivers/hwmon/axi-fan-control.c               |    1 -
 drivers/hwmon/cros_ec_hwmon.c                 |    1 -
 drivers/hwmon/gxp-fan-ctrl.c                  |    1 -
 drivers/hwmon/iio_hwmon.c                     |    1 -
 drivers/hwmon/intel-m10-bmc-hwmon.c           |    1 -
 drivers/hwmon/jc42.c                          |    1 -
 drivers/hwmon/lan966x-hwmon.c                 |    1 -
 drivers/hwmon/lm70.c                          |    1 -
 drivers/hwmon/lm75.c                          |    1 -
 drivers/hwmon/ltc2947-core.c                  |    1 -
 drivers/hwmon/ltc4282.c                       |    1 -
 drivers/hwmon/ltc4283.c                       |    1 -
 drivers/hwmon/ltq-cputemp.c                   |    1 -
 drivers/hwmon/max197.c                        |    1 -
 drivers/hwmon/mc13783-adc.c                   |    1 -
 drivers/hwmon/mr75203.c                       |    1 -
 drivers/hwmon/ntc_thermistor.c                |    1 -
 drivers/hwmon/occ/p9_sbe.c                    |    1 -
 drivers/hwmon/pmbus/adp1050.c                 |    1 -
 drivers/hwmon/pmbus/e50sn12051.c              |    1 -
 drivers/hwmon/pmbus/lt3074.c                  |    1 -
 drivers/hwmon/pmbus/max17616.c                |    1 -
 drivers/hwmon/pmbus/max20830.c                |    1 -
 drivers/hwmon/pmbus/mp2975.c                  |    1 -
 drivers/hwmon/pmbus/stef48h28.c               |    1 -
 drivers/hwmon/pwm-fan.c                       |    1 -
 drivers/hwmon/sch5627.c                       |    1 -
 drivers/hwmon/sch5636.c                       |    1 -
 drivers/hwmon/sl28cpld-hwmon.c                |    1 -
 drivers/hwmon/smpro-hwmon.c                   |    1 -
 drivers/hwmon/sparx5-temp.c                   |    1 -
 drivers/hwmon/tmp102.c                        |    1 -
 drivers/hwmon/tmp108.c                        |    1 -
 drivers/hwtracing/coresight/ultrasoc-smb.c    |    1 -
 drivers/i2c/busses/i2c-amd-asf-plat.c         |    1 -
 drivers/i2c/busses/i2c-gxp.c                  |    1 -
 drivers/i2c/busses/i2c-hisi.c                 |    1 -
 drivers/i2c/busses/i2c-rtl9300.c              |    1 -
 drivers/i2c/busses/i2c-rzv2m.c                |    1 -
 drivers/i2c/i2c-core.h                        |    1 +
 drivers/iio/accel/adxl313_i2c.c               |    1 -
 drivers/iio/accel/adxl313_spi.c               |    1 -
 drivers/iio/accel/adxl355_core.c              |    1 -
 drivers/iio/accel/adxl355_i2c.c               |    1 -
 drivers/iio/accel/adxl355_spi.c               |    1 -
 drivers/iio/accel/adxl367.c                   |    1 -
 drivers/iio/accel/adxl367_i2c.c               |    1 -
 drivers/iio/accel/adxl367_spi.c               |    1 -
 drivers/iio/accel/adxl372_i2c.c               |    1 -
 drivers/iio/accel/adxl372_spi.c               |    1 -
 drivers/iio/accel/adxl380_i2c.c               |    1 -
 drivers/iio/accel/adxl380_spi.c               |    1 -
 drivers/iio/accel/bma180.c                    |    1 -
 drivers/iio/accel/bma220_core.c               |    1 -
 drivers/iio/accel/bma220_i2c.c                |    1 -
 drivers/iio/accel/bma220_spi.c                |    1 -
 drivers/iio/accel/bma400_i2c.c                |    1 -
 drivers/iio/accel/bma400_spi.c                |    1 -
 drivers/iio/accel/bmc150-accel-i2c.c          |    1 -
 drivers/iio/accel/bmc150-accel-spi.c          |    1 -
 drivers/iio/accel/bmi088-accel-i2c.c          |    1 -
 drivers/iio/accel/dmard06.c                   |    1 -
 drivers/iio/accel/fxls8962af-core.c           |    1 -
 drivers/iio/accel/fxls8962af-i2c.c            |    1 -
 drivers/iio/accel/fxls8962af-spi.c            |    1 -
 drivers/iio/accel/hid-sensor-accel-3d.c       |    1 -
 drivers/iio/accel/kxcjk-1013.c                |    1 -
 drivers/iio/accel/kxsd9-i2c.c                 |    1 -
 drivers/iio/accel/kxsd9-spi.c                 |    1 -
 drivers/iio/accel/mma7660.c                   |    1 -
 drivers/iio/accel/mma8452.c                   |    1 -
 drivers/iio/accel/mma9551.c                   |    1 -
 drivers/iio/accel/mma9553.c                   |    1 -
 drivers/iio/accel/msa311.c                    |    1 -
 drivers/iio/accel/mxc4005.c                   |    1 -
 drivers/iio/accel/mxc6255.c                   |    1 -
 drivers/iio/accel/st_accel_i2c.c              |    1 -
 drivers/iio/accel/st_accel_spi.c              |    1 -
 drivers/iio/accel/stk8ba50.c                  |    1 -
 drivers/iio/adc/88pm886-gpadc.c               |    1 -
 drivers/iio/adc/ad4000.c                      |    1 -
 drivers/iio/adc/ad4080.c                      |    1 -
 drivers/iio/adc/ad4134.c                      |    1 -
 drivers/iio/adc/ad4851.c                      |    1 -
 drivers/iio/adc/ad7124.c                      |    1 -
 drivers/iio/adc/ad7173.c                      |    1 -
 drivers/iio/adc/ad7191.c                      |    1 -
 drivers/iio/adc/ad7192.c                      |    1 -
 drivers/iio/adc/ad7280a.c                     |    1 -
 drivers/iio/adc/ad7292.c                      |    1 -
 drivers/iio/adc/ad7298.c                      |    1 -
 drivers/iio/adc/ad7405.c                      |    1 -
 drivers/iio/adc/ad7606_par.c                  |    1 -
 drivers/iio/adc/ad7625.c                      |    1 -
 drivers/iio/adc/ad7779.c                      |    1 -
 drivers/iio/adc/adi-axi-adc.c                 |    1 -
 drivers/iio/adc/at91-sama5d2_adc.c            |    1 -
 drivers/iio/adc/axp20x_adc.c                  |    1 -
 drivers/iio/adc/bcm_iproc_adc.c               |    1 -
 drivers/iio/adc/berlin2-adc.c                 |    1 -
 drivers/iio/adc/cpcap-adc.c                   |    1 -
 drivers/iio/adc/envelope-detector.c           |    1 -
 drivers/iio/adc/fsl-imx25-gcq.c               |    1 -
 drivers/iio/adc/hi8435.c                      |    1 -
 drivers/iio/adc/hx711.c                       |    1 -
 drivers/iio/adc/imx7d_adc.c                   |    1 -
 drivers/iio/adc/imx8qxp-adc.c                 |    1 -
 drivers/iio/adc/imx93_adc.c                   |    1 -
 drivers/iio/adc/ingenic-adc.c                 |    1 -
 drivers/iio/adc/intel_dc_ti_adc.c             |    1 -
 drivers/iio/adc/intel_mrfld_adc.c             |    1 -
 drivers/iio/adc/lpc18xx_adc.c                 |    1 -
 drivers/iio/adc/lpc32xx_adc.c                 |    1 -
 drivers/iio/adc/ltc2496.c                     |    1 -
 drivers/iio/adc/ltc2497.c                     |    1 -
 drivers/iio/adc/max1027.c                     |    1 -
 drivers/iio/adc/max11100.c                    |    1 -
 drivers/iio/adc/max1118.c                     |    1 -
 drivers/iio/adc/max1363.c                     |    1 -
 drivers/iio/adc/max14001.c                    |    1 -
 drivers/iio/adc/max34408.c                    |    1 -
 drivers/iio/adc/max77541-adc.c                |    1 -
 drivers/iio/adc/max9611.c                     |    1 -
 drivers/iio/adc/mcp320x.c                     |    1 -
 drivers/iio/adc/mcp3422.c                     |    1 -
 drivers/iio/adc/mcp3911.c                     |    1 -
 drivers/iio/adc/mp2629_adc.c                  |    1 -
 drivers/iio/adc/mt6359-auxadc.c               |    1 -
 drivers/iio/adc/mt6360-adc.c                  |    1 -
 drivers/iio/adc/mt6370-adc.c                  |    1 -
 drivers/iio/adc/mt6577_auxadc.c               |    1 -
 drivers/iio/adc/nau7802.c                     |    1 -
 drivers/iio/adc/nct7201.c                     |    1 -
 drivers/iio/adc/npcm_adc.c                    |    1 -
 drivers/iio/adc/nxp-sar-adc.c                 |    1 -
 drivers/iio/adc/qcom-pm8xxx-xoadc.c           |    1 -
 drivers/iio/adc/qcom-spmi-adc5-gen3.c         |    1 -
 drivers/iio/adc/qcom-spmi-adc5.c              |    1 -
 drivers/iio/adc/qcom-spmi-rradc.c             |    1 -
 drivers/iio/adc/qcom-spmi-vadc.c              |    1 -
 drivers/iio/adc/rohm-bd79112.c                |    1 -
 drivers/iio/adc/rohm-bd79124.c                |    1 -
 drivers/iio/adc/rtq6056.c                     |    1 -
 drivers/iio/adc/rzg2l_adc.c                   |    1 -
 drivers/iio/adc/rzn1-adc.c                    |    1 -
 drivers/iio/adc/rzt2h_adc.c                   |    1 -
 drivers/iio/adc/sd_adc_modulator.c            |    1 -
 drivers/iio/adc/sophgo-cv1800b-adc.c          |    1 -
 drivers/iio/adc/spear_adc.c                   |    1 -
 drivers/iio/adc/stm32-adc.c                   |    1 -
 drivers/iio/adc/sun20i-gpadc-iio.c            |    1 -
 drivers/iio/adc/ti-adc081c.c                  |    1 -
 drivers/iio/adc/ti-adc0832.c                  |    1 -
 drivers/iio/adc/ti-adc084s021.c               |    1 -
 drivers/iio/adc/ti-adc108s102.c               |    1 -
 drivers/iio/adc/ti-adc128s052.c               |    1 -
 drivers/iio/adc/ti-adc161s626.c               |    1 -
 drivers/iio/adc/ti-ads1018.c                  |    1 -
 drivers/iio/adc/ti-ads124s08.c                |    1 -
 drivers/iio/adc/ti-ads131m02.c                |    1 -
 drivers/iio/adc/ti-ads8688.c                  |    1 -
 drivers/iio/adc/ti-tlc4541.c                  |    1 -
 drivers/iio/adc/twl4030-madc.c                |    1 -
 drivers/iio/adc/twl6030-gpadc.c               |    1 -
 drivers/iio/adc/vf610_adc.c                   |    1 -
 drivers/iio/adc/xilinx-ams.c                  |    1 -
 drivers/iio/adc/xilinx-xadc-core.c            |    1 -
 drivers/iio/addac/ad74413r.c                  |    1 -
 drivers/iio/afe/iio-rescale.c                 |    1 -
 drivers/iio/amplifiers/ad8366.c               |    1 -
 drivers/iio/amplifiers/adl8113.c              |    1 -
 drivers/iio/amplifiers/hmc425a.c              |    1 -
 drivers/iio/cdc/ad7150.c                      |    1 -
 drivers/iio/chemical/ams-iaq-core.c           |    1 -
 drivers/iio/chemical/atlas-ezo-sensor.c       |    1 -
 drivers/iio/chemical/atlas-sensor.c           |    1 -
 drivers/iio/chemical/bme680_spi.c             |    1 -
 drivers/iio/chemical/mhz19b.c                 |    1 -
 drivers/iio/chemical/pms7003.c                |    1 -
 drivers/iio/chemical/scd30_i2c.c              |    1 -
 drivers/iio/chemical/scd30_serial.c           |    1 -
 drivers/iio/chemical/sgp30.c                  |    1 -
 drivers/iio/chemical/sps30_i2c.c              |    1 -
 drivers/iio/chemical/sps30_serial.c           |    1 -
 drivers/iio/chemical/sunrise_co2.c            |    1 -
 drivers/iio/chemical/vz89x.c                  |    1 -
 .../cros_ec_sensors/cros_ec_lid_angle.c       |    1 -
 .../common/cros_ec_sensors/cros_ec_sensors.c  |    1 -
 drivers/iio/common/ssp_sensors/ssp_dev.c      |    1 -
 drivers/iio/dac/ad3530r.c                     |    1 -
 drivers/iio/dac/ad3552r-hs.c                  |    1 -
 drivers/iio/dac/ad5446-i2c.c                  |    1 -
 drivers/iio/dac/ad5446-spi.c                  |    1 -
 drivers/iio/dac/ad5592r.c                     |    1 -
 drivers/iio/dac/ad5593r.c                     |    1 -
 drivers/iio/dac/ad5758.c                      |    1 -
 drivers/iio/dac/ad7293.c                      |    1 -
 drivers/iio/dac/ad7303.c                      |    1 -
 drivers/iio/dac/ad8460.c                      |    1 -
 drivers/iio/dac/ad9739a.c                     |    1 -
 drivers/iio/dac/adi-axi-dac.c                 |    1 -
 drivers/iio/dac/dpot-dac.c                    |    1 -
 drivers/iio/dac/lpc18xx_dac.c                 |    1 -
 drivers/iio/dac/ltc2664.c                     |    1 -
 drivers/iio/dac/ltc2688.c                     |    1 -
 drivers/iio/dac/max22007.c                    |    1 -
 drivers/iio/dac/max5522.c                     |    1 -
 drivers/iio/dac/mcp4725.c                     |    1 -
 drivers/iio/dac/mcp4728.c                     |    1 -
 drivers/iio/dac/mcp47feb02.c                  |    1 -
 drivers/iio/dac/mcp4821.c                     |    1 -
 drivers/iio/dac/stm32-dac-core.c              |    1 -
 drivers/iio/dac/stm32-dac.c                   |    1 -
 drivers/iio/dac/ti-dac082s085.c               |    1 -
 drivers/iio/dac/ti-dac5571.c                  |    1 -
 drivers/iio/dac/vf610_dac.c                   |    1 -
 drivers/iio/filter/admv8818.c                 |    1 -
 drivers/iio/frequency/adf4350.c               |    1 -
 drivers/iio/frequency/admfm2000.c             |    1 -
 drivers/iio/frequency/admv1013.c              |    1 -
 drivers/iio/frequency/admv1014.c              |    1 -
 drivers/iio/frequency/adrf6780.c              |    1 -
 drivers/iio/gyro/bmg160_i2c.c                 |    1 -
 drivers/iio/gyro/fxas21002c_i2c.c             |    1 -
 drivers/iio/gyro/fxas21002c_spi.c             |    1 -
 drivers/iio/gyro/hid-sensor-gyro-3d.c         |    1 -
 drivers/iio/gyro/st_gyro_i2c.c                |    1 -
 drivers/iio/gyro/st_gyro_spi.c                |    1 -
 drivers/iio/health/max30102.c                 |    1 -
 drivers/iio/humidity/dht11.c                  |    1 -
 drivers/iio/humidity/ens210.c                 |    1 -
 drivers/iio/humidity/hdc100x.c                |    1 -
 drivers/iio/humidity/hid-sensor-humidity.c    |    1 -
 drivers/iio/humidity/hts221_i2c.c             |    1 -
 drivers/iio/humidity/htu21.c                  |    1 -
 drivers/iio/humidity/si7020.c                 |    1 -
 drivers/iio/imu/adis16475.c                   |    1 -
 drivers/iio/imu/adis16480.c                   |    1 -
 drivers/iio/imu/adis16550.c                   |    1 -
 drivers/iio/imu/bmi160/bmi160_i2c.c           |    1 -
 drivers/iio/imu/bmi160/bmi160_spi.c           |    1 -
 drivers/iio/imu/bmi270/bmi270_i2c.c           |    1 -
 drivers/iio/imu/bmi270/bmi270_spi.c           |    1 -
 drivers/iio/imu/bmi323/bmi323_i2c.c           |    1 -
 drivers/iio/imu/bmi323/bmi323_spi.c           |    1 -
 drivers/iio/imu/bno055/bno055_i2c.c           |    1 -
 drivers/iio/imu/bno055/bno055_ser_core.c      |    1 -
 drivers/iio/imu/fxos8700_i2c.c                |    1 -
 drivers/iio/imu/fxos8700_spi.c                |    1 -
 .../iio/imu/inv_icm42600/inv_icm42600_i2c.c   |    1 -
 .../iio/imu/inv_icm42600/inv_icm42600_spi.c   |    1 -
 .../iio/imu/inv_icm45600/inv_icm45600_i2c.c   |    1 -
 .../iio/imu/inv_icm45600/inv_icm45600_i3c.c   |    1 -
 .../iio/imu/inv_icm45600/inv_icm45600_spi.c   |    1 -
 drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c     |    1 -
 drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c     |    1 -
 drivers/iio/imu/kmx61.c                       |    1 -
 drivers/iio/imu/smi330/smi330_i2c.c           |    1 -
 drivers/iio/imu/smi330/smi330_spi.c           |    1 -
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i3c.c   |    1 -
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c   |    1 -
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c   |    1 -
 drivers/iio/light/al3000a.c                   |    1 -
 drivers/iio/light/al3010.c                    |    1 -
 drivers/iio/light/al3320a.c                   |    1 -
 drivers/iio/light/bh1780.c                    |    1 -
 drivers/iio/light/cm32181.c                   |    1 -
 drivers/iio/light/cm3232.c                    |    1 -
 drivers/iio/light/cm3605.c                    |    1 -
 drivers/iio/light/cros_ec_light_prox.c        |    1 -
 drivers/iio/light/gp2ap020a00f.c              |    1 -
 drivers/iio/light/hid-sensor-als.c            |    1 -
 drivers/iio/light/hid-sensor-prox.c           |    1 -
 drivers/iio/light/isl29018.c                  |    1 -
 drivers/iio/light/jsa1212.c                   |    1 -
 drivers/iio/light/ltr501.c                    |    1 -
 drivers/iio/light/ltrf216a.c                  |    1 -
 drivers/iio/light/max44000.c                  |    1 -
 drivers/iio/light/opt3001.c                   |    1 -
 drivers/iio/light/rpr0521.c                   |    1 -
 drivers/iio/light/st_uvis25_i2c.c             |    1 -
 drivers/iio/light/st_uvis25_spi.c             |    1 -
 drivers/iio/light/stk3310.c                   |    1 -
 drivers/iio/light/tsl2563.c                   |    1 -
 drivers/iio/light/us5182d.c                   |    1 -
 drivers/iio/light/veml6046x00.c               |    1 -
 drivers/iio/light/vl6180.c                    |    1 -
 drivers/iio/magnetometer/ak8974.c             |    1 -
 drivers/iio/magnetometer/ak8975.c             |    1 -
 drivers/iio/magnetometer/bmc150_magn_i2c.c    |    1 -
 drivers/iio/magnetometer/bmc150_magn_spi.c    |    1 -
 drivers/iio/magnetometer/hid-sensor-magn-3d.c |    1 -
 drivers/iio/magnetometer/mmc35240.c           |    1 -
 drivers/iio/magnetometer/mmc5633.c            |    1 -
 drivers/iio/magnetometer/si7210.c             |    1 -
 drivers/iio/magnetometer/st_magn_i2c.c        |    1 -
 drivers/iio/magnetometer/st_magn_spi.c        |    1 -
 drivers/iio/magnetometer/tlv493d.c            |    1 -
 drivers/iio/magnetometer/yamaha-yas530.c      |    1 -
 drivers/iio/multiplexer/iio-mux.c             |    1 -
 drivers/iio/orientation/hid-sensor-incl-3d.c  |    1 -
 drivers/iio/orientation/hid-sensor-rotation.c |    1 -
 .../position/hid-sensor-custom-intel-hinge.c  |    1 -
 drivers/iio/potentiometer/ad5272.c            |    1 -
 drivers/iio/potentiometer/ds1803.c            |    1 -
 drivers/iio/potentiometer/max5432.c           |    1 -
 drivers/iio/potentiometer/max5481.c           |    1 -
 drivers/iio/potentiometer/max5487.c           |    1 -
 drivers/iio/potentiometer/mcp4018.c           |    1 -
 drivers/iio/potentiometer/mcp41010.c          |    1 -
 drivers/iio/potentiometer/mcp4131.c           |    1 -
 drivers/iio/potentiometer/mcp4531.c           |    1 -
 drivers/iio/potentiostat/lmp91000.c           |    1 -
 drivers/iio/pressure/abp2030pa_i2c.c          |    1 -
 drivers/iio/pressure/abp2030pa_spi.c          |    1 -
 drivers/iio/pressure/adp810.c                 |    1 -
 drivers/iio/pressure/cros_ec_baro.c           |    1 -
 drivers/iio/pressure/hid-sensor-press.c       |    1 -
 drivers/iio/pressure/hp206c.c                 |    1 -
 drivers/iio/pressure/hsc030pa.c               |    1 -
 drivers/iio/pressure/hsc030pa_i2c.c           |    1 -
 drivers/iio/pressure/hsc030pa_spi.c           |    1 -
 drivers/iio/pressure/icp10100.c               |    1 -
 drivers/iio/pressure/mprls0025pa.c            |    1 -
 drivers/iio/pressure/mprls0025pa_i2c.c        |    1 -
 drivers/iio/pressure/mprls0025pa_spi.c        |    1 -
 drivers/iio/pressure/ms5611_i2c.c             |    1 -
 drivers/iio/pressure/ms5611_spi.c             |    1 -
 drivers/iio/pressure/ms5637.c                 |    1 -
 drivers/iio/pressure/sdp500.c                 |    1 -
 drivers/iio/pressure/st_pressure_i2c.c        |    1 -
 drivers/iio/pressure/st_pressure_spi.c        |    1 -
 drivers/iio/pressure/zpa2326_i2c.c            |    1 -
 drivers/iio/pressure/zpa2326_spi.c            |    1 -
 drivers/iio/proximity/as3935.c                |    1 -
 .../iio/proximity/cros_ec_mkbp_proximity.c    |    1 -
 drivers/iio/proximity/d3323aa.c               |    1 -
 drivers/iio/proximity/hx9023s.c               |    1 -
 drivers/iio/proximity/isl29501.c              |    1 -
 drivers/iio/proximity/mb1232.c                |    1 -
 drivers/iio/proximity/ping.c                  |    1 -
 .../iio/proximity/pulsedlight-lidar-lite-v2.c |    1 -
 drivers/iio/proximity/srf04.c                 |    1 -
 drivers/iio/proximity/sx9310.c                |    1 -
 drivers/iio/proximity/sx9324.c                |    1 -
 drivers/iio/proximity/sx9360.c                |    1 -
 drivers/iio/proximity/vl53l1x-i2c.c           |    1 -
 drivers/iio/resolver/ad2s1200.c               |    1 -
 .../iio/temperature/hid-sensor-temperature.c  |    1 -
 drivers/iio/temperature/ltc2983.c             |    1 -
 drivers/iio/temperature/max31856.c            |    1 -
 drivers/iio/temperature/max31865.c            |    1 -
 drivers/iio/temperature/maxim_thermocouple.c  |    1 -
 drivers/iio/temperature/mcp9600.c             |    1 -
 drivers/iio/temperature/mlx90614.c            |    1 -
 drivers/iio/temperature/mlx90632.c            |    1 -
 drivers/iio/temperature/mlx90635.c            |    1 -
 drivers/iio/temperature/tmp006.c              |    1 -
 drivers/iio/temperature/tmp007.c              |    1 -
 drivers/iio/temperature/tsys01.c              |    1 -
 drivers/iio/trigger/stm32-lptimer-trigger.c   |    1 -
 drivers/iio/trigger/stm32-timer-trigger.c     |    1 -
 drivers/input/keyboard/adp5585-keys.c         |    1 -
 drivers/input/keyboard/adp5588-keys.c         |    1 -
 drivers/input/keyboard/charlieplex_keypad.c   |    1 -
 drivers/input/keyboard/clps711x-keypad.c      |    1 -
 drivers/input/keyboard/ep93xx_keypad.c        |    1 -
 drivers/input/keyboard/max7360-keypad.c       |    1 -
 drivers/input/keyboard/pinephone-keyboard.c   |    1 -
 drivers/input/misc/ariel-pwrbutton.c          |    1 -
 drivers/input/misc/da9063_onkey.c             |    1 -
 drivers/input/misc/gpio_decoder.c             |    1 -
 drivers/input/misc/iqs269a.c                  |    1 -
 drivers/input/misc/iqs626a.c                  |    1 -
 drivers/input/misc/iqs7222.c                  |    1 -
 drivers/input/misc/mma8450.c                  |    1 -
 drivers/input/misc/rt5120-pwrkey.c            |    1 -
 drivers/input/misc/sc27xx-vibra.c             |    1 -
 drivers/input/misc/twl4030-pwrbutton.c        |    1 -
 drivers/input/serio/sun4i-ps2.c               |    1 -
 drivers/input/serio/xilinx_ps2.c              |    1 -
 drivers/input/touchscreen/cyttsp5.c           |    1 -
 drivers/input/touchscreen/himax_hx852x.c      |    1 -
 drivers/input/touchscreen/hynitron_cstxxx.c   |    1 -
 drivers/input/touchscreen/ili210x.c           |    1 -
 drivers/input/touchscreen/iqs5xx.c            |    1 -
 drivers/input/touchscreen/msg2638.c           |    1 -
 .../input/touchscreen/resistive-adc-touch.c   |    1 -
 drivers/input/touchscreen/tsc2007_core.c      |    1 -
 drivers/interconnect/mediatek/mt8183.c        |    1 -
 drivers/interconnect/mediatek/mt8195.c        |    1 -
 drivers/interconnect/mediatek/mt8196.c        |    1 -
 drivers/interconnect/qcom/msm8909.c           |    1 -
 drivers/interconnect/qcom/msm8937.c           |    1 -
 drivers/interconnect/qcom/msm8939.c           |    1 -
 drivers/interconnect/qcom/msm8953.c           |    1 -
 drivers/interconnect/qcom/msm8976.c           |    1 -
 drivers/interconnect/qcom/msm8996.c           |    1 -
 drivers/interconnect/qcom/qcm2290.c           |    1 -
 drivers/interconnect/qcom/qcs404.c            |    1 -
 drivers/interconnect/qcom/qdu1000.c           |    1 -
 drivers/interconnect/qcom/sa8775p.c           |    1 -
 drivers/interconnect/qcom/sc7180.c            |    1 -
 drivers/interconnect/qcom/sc7280.c            |    1 -
 drivers/interconnect/qcom/sc8180x.c           |    1 -
 drivers/interconnect/qcom/sc8280xp.c          |    1 -
 drivers/interconnect/qcom/sdm660.c            |    1 -
 drivers/interconnect/qcom/sdm670.c            |    1 -
 drivers/interconnect/qcom/sdm845.c            |    1 -
 drivers/interconnect/qcom/sdx55.c             |    1 -
 drivers/interconnect/qcom/sdx65.c             |    1 -
 drivers/interconnect/qcom/sm6115.c            |    1 -
 drivers/interconnect/qcom/sm6350.c            |    1 -
 drivers/interconnect/qcom/sm7150.c            |    1 -
 drivers/interconnect/qcom/sm8150.c            |    1 -
 drivers/interconnect/qcom/sm8250.c            |    1 -
 drivers/interconnect/qcom/sm8350.c            |    1 -
 drivers/interconnect/qcom/sm8450.c            |    1 -
 drivers/interconnect/qcom/sm8550.c            |    1 -
 .../iommu/arm/arm-smmu/arm-smmu-qcom-debug.c  |    1 -
 drivers/irqchip/irq-imx-intmux.c              |    1 -
 drivers/irqchip/irq-lan966x-oic.c             |    1 -
 drivers/irqchip/irq-sl28cpld.c                |    1 -
 drivers/irqchip/irq-stm32mp-exti.c            |    1 -
 drivers/leds/flash/leds-rt8515.c              |    1 -
 drivers/leds/leds-aw200xx.c                   |    1 -
 drivers/leds/leds-bd2606mvv.c                 |    1 -
 drivers/leds/leds-cht-wcove.c                 |    1 -
 drivers/leds/leds-cr0014114.c                 |    1 -
 drivers/leds/leds-cros_ec.c                   |    1 -
 drivers/leds/leds-el15203000.c                |    1 -
 drivers/leds/leds-gpio.c                      |    1 -
 drivers/leds/leds-is31fl319x.c                |    1 -
 drivers/leds/leds-lm36274.c                   |    1 -
 drivers/leds/leds-lm3692x.c                   |    1 -
 drivers/leds/leds-lm3697.c                    |    1 -
 drivers/leds/leds-lp50xx.c                    |    1 -
 drivers/leds/leds-lt3593.c                    |    1 -
 drivers/leds/leds-max5970.c                   |    1 -
 drivers/leds/leds-mlxcpld.c                   |    1 -
 drivers/leds/leds-nic78bx.c                   |    1 -
 drivers/leds/leds-pca995x.c                   |    1 -
 drivers/leds/leds-regulator.c                 |    1 -
 drivers/leds/leds-spi-byte.c                  |    1 -
 drivers/leds/leds-sun50i-a100.c               |    1 -
 drivers/leds/rgb/leds-group-multicolor.c      |    1 -
 drivers/leds/rgb/leds-mt6370-rgb.c            |    1 -
 drivers/leds/rgb/leds-pwm-multicolor.c        |    1 -
 drivers/mailbox/mailbox-mpfs.c                |    1 -
 drivers/mailbox/platform_mhu.c                |    1 -
 .../media/cec/platform/cros-ec/cros-ec-cec.c  |    1 -
 drivers/media/firewire/firedtv-fw.c           |    1 -
 drivers/media/i2c/adv7180.c                   |    1 -
 drivers/media/i2c/cvs/core.c                  |    1 -
 drivers/media/i2c/gc0308.c                    |    1 -
 drivers/media/i2c/gc05a2.c                    |    1 -
 drivers/media/i2c/gc08a3.c                    |    1 -
 drivers/media/i2c/lm3560.c                    |    1 -
 drivers/media/i2c/mt9m114.c                   |    1 -
 drivers/media/i2c/mt9p031.c                   |    1 -
 drivers/media/i2c/mt9v032.c                   |    1 -
 drivers/media/i2c/ov2680.c                    |    1 -
 drivers/media/i2c/ov5640.c                    |    1 -
 drivers/media/i2c/ov5670.c                    |    1 -
 drivers/media/i2c/ov5675.c                    |    1 -
 drivers/media/i2c/ov64a40.c                   |    1 -
 drivers/media/i2c/ov7251.c                    |    1 -
 drivers/media/i2c/ov7670.c                    |    1 -
 drivers/media/i2c/ov8865.c                    |    1 -
 drivers/media/i2c/t4ka3.c                     |    1 -
 drivers/media/i2c/tvp514x.c                   |    1 -
 drivers/media/i2c/video-i2c.c                 |    1 -
 .../platform/arm/mali-c55/mali-c55-core.c     |    1 -
 .../platform/chips-media/coda/imx-vdoa.c      |    1 -
 .../platform/mediatek/jpeg/mtk_jpeg_enc_hw.c  |    1 -
 .../platform/microchip/microchip-csi2dc.c     |    1 -
 drivers/media/platform/qcom/venus/vdec.c      |    1 -
 drivers/media/platform/qcom/venus/venc.c      |    1 -
 drivers/media/platform/renesas/rcar-fcp.c     |    1 -
 .../platform/renesas/rzg2l-cru/rzg2l-core.c   |    1 -
 drivers/media/platform/st/sti/hva/hva-v4l2.c  |    1 -
 .../media/platform/sunxi/sun8i-di/sun8i-di.c  |    1 -
 .../sunxi/sun8i-rotate/sun8i_rotate.c         |    1 -
 drivers/media/platform/ti/vpe/vip.c           |    1 +
 drivers/media/rc/ir-spi.c                     |    1 -
 drivers/media/usb/em28xx/em28xx.h             |    1 +
 drivers/memory/stm32_omm.c                    |    1 -
 drivers/memory/tegra/tegra186-emc.c           |    1 -
 drivers/memory/tegra/tegra186.c               |    1 -
 drivers/memory/tegra/tegra210-emc-core.c      |    1 -
 drivers/mfd/adp5585.c                         |    1 -
 drivers/mfd/atmel-hlcdc.c                     |    1 -
 drivers/mfd/atmel-smc.c                       |    1 -
 drivers/mfd/cros_ec_dev.c                     |    1 -
 drivers/mfd/cs42l43-i2c.c                     |    1 -
 drivers/mfd/cs42l43-sdw.c                     |    1 -
 drivers/mfd/hi655x-pmic.c                     |    1 -
 drivers/mfd/intel-lpss-acpi.c                 |    1 -
 drivers/mfd/intel-lpss-pci.c                  |    1 -
 drivers/mfd/intel_soc_pmic_bxtwc.c            |    1 -
 drivers/mfd/intel_soc_pmic_crc.c              |    1 -
 drivers/mfd/kempld-core.c                     |    1 -
 drivers/mfd/lochnagar-i2c.c                   |    1 -
 drivers/mfd/lp873x.c                          |    2 +-
 drivers/mfd/lp87565.c                         |    1 -
 drivers/mfd/max14577.c                        |    1 -
 drivers/mfd/max7360.c                         |    1 -
 drivers/mfd/max77759.c                        |    1 -
 drivers/mfd/max77843.c                        |    1 -
 drivers/mfd/mc13xxx-spi.c                     |    1 -
 drivers/mfd/motorola-cpcap.c                  |    1 -
 drivers/mfd/ocelot-spi.c                      |    1 -
 drivers/mfd/rt5033.c                          |    3 +-
 drivers/mfd/rt5120.c                          |    1 -
 drivers/mfd/rz-mtu3.c                         |    1 -
 drivers/mfd/sec-acpm.c                        |    1 -
 drivers/mfd/sec-i2c.c                         |    1 -
 drivers/mfd/simple-mfd-i2c.c                  |    1 -
 drivers/mfd/tps6594-i2c.c                     |    1 -
 drivers/mfd/tps6594-spi.c                     |    1 -
 drivers/mfd/upboard-fpga.c                    |    1 -
 drivers/mfd/wm831x-core.c                     |    2 +-
 drivers/misc/eeprom/at24.c                    |    1 -
 drivers/misc/eeprom/ee1004.c                  |    1 -
 drivers/misc/eeprom/eeprom_93xx46.c           |    1 -
 drivers/misc/eeprom/idt_89hpesx.c             |    1 -
 drivers/misc/hisi_hikey_usb.c                 |    1 -
 drivers/misc/pvpanic/pvpanic-mmio.c           |    1 -
 drivers/misc/pvpanic/pvpanic.c                |    1 -
 drivers/misc/smpro-errmon.c                   |    1 -
 drivers/misc/smpro-misc.c                     |    1 -
 drivers/mmc/host/litex_mmc.c                  |    1 -
 drivers/mmc/host/owl-mmc.c                    |    1 -
 drivers/mmc/host/renesas_sdhi_internal_dmac.c |    1 -
 drivers/mmc/host/renesas_sdhi_sys_dmac.c      |    1 -
 drivers/mmc/host/sdhci-npcm.c                 |    1 -
 drivers/mmc/host/sdhci-of-ma35d1.c            |    1 -
 drivers/mmc/host/sh_mmcif.c                   |    1 -
 drivers/mmc/host/sunxi-mmc.c                  |    1 -
 drivers/mtd/nand/raw/brcmnand/brcmstb_nand.c  |    1 -
 drivers/mux/adgs1408.c                        |    1 -
 drivers/mux/gpio.c                            |    1 -
 drivers/net/can/spi/hi311x.c                  |    1 -
 .../net/can/spi/mcp251xfd/mcp251xfd-core.c    |    1 -
 drivers/net/dsa/microchip/ksz8863_smi.c       |    2 +-
 drivers/net/dsa/mt7530-mmio.c                 |    1 -
 drivers/net/dsa/ocelot/seville_vsc9953.c      |    1 -
 drivers/net/ethernet/calxeda/xgmac.c          |    1 -
 drivers/net/ethernet/ezchip/nps_enet.c        |    1 -
 drivers/net/ethernet/faraday/ftmac100.c       |    1 -
 .../net/ethernet/freescale/dpaa/dpaa_eth.c    |    1 -
 .../net/ethernet/freescale/enetc/enetc_ierb.c |    1 -
 drivers/net/ethernet/ibm/emac/tah.c           |    1 -
 drivers/net/ethernet/ibm/emac/zmii.c          |    1 -
 drivers/net/ethernet/marvell/mvmdio.c         |    1 -
 .../mellanox/mlxbf_gige/mlxbf_gige_mdio.c     |    1 -
 drivers/net/ethernet/mellanox/mlxsw/i2c.c     |    1 -
 drivers/net/ethernet/mellanox/mlxsw/minimal.c |    1 -
 .../ethernet/stmicro/stmmac/dwmac-nuvoton.c   |    1 -
 .../ethernet/stmicro/stmmac/dwmac-sophgo.c    |    1 -
 .../ethernet/stmicro/stmmac/dwmac-spacemit.c  |    1 -
 .../ethernet/stmicro/stmmac/dwmac-starfive.c  |    1 -
 drivers/net/ethernet/xscale/ptp_ixp46x.c      |    1 -
 drivers/net/ieee802154/mrf24j40.c             |    1 -
 drivers/net/mdio/mdio-realtek-rtl9300.c       |    1 -
 drivers/net/mhi_net.c                         |    1 -
 drivers/net/wan/fsl_qmc_hdlc.c                |    1 -
 drivers/net/wireless/ath/ath9k/ahb.c          |    1 -
 .../broadcom/brcm80211/brcmfmac/dmi.c         |    1 -
 drivers/net/wireless/intersil/p54/p54spi.c    |    1 -
 drivers/net/wireless/ti/wl1251/sdio.c         |    1 -
 drivers/net/wireless/ti/wl12xx/main.c         |    1 -
 drivers/net/wireless/ti/wl18xx/main.c         |    1 -
 drivers/net/wwan/mhi_wwan_ctrl.c              |    1 -
 drivers/net/wwan/mhi_wwan_mbim.c              |    1 -
 drivers/net/wwan/qcom_bam_dmux.c              |    1 -
 drivers/net/wwan/rpmsg_wwan_ctrl.c            |    1 -
 drivers/nfc/microread/mei.c                   |    1 -
 drivers/nfc/pn544/mei.c                       |    1 -
 drivers/nfc/s3fwrn5/uart.c                    |    1 -
 drivers/nvmem/an8855-efuse.c                  |    1 -
 drivers/nvmem/apple-efuses.c                  |    1 -
 drivers/nvmem/brcm_nvram.c                    |    1 -
 drivers/nvmem/layerscape-sfp.c                |    1 -
 drivers/nvmem/lpc18xx_eeprom.c                |    1 -
 drivers/nvmem/max77759-nvmem.c                |    1 -
 drivers/nvmem/mtk-efuse.c                     |    1 -
 drivers/nvmem/nintendo-otp.c                  |    1 -
 drivers/nvmem/qfprom.c                        |    1 -
 drivers/nvmem/qoriq-efuse.c                   |    1 -
 drivers/nvmem/rcar-efuse.c                    |    1 -
 drivers/nvmem/sec-qfprom.c                    |    1 -
 drivers/nvmem/sunplus-ocotp.c                 |    1 -
 drivers/nvmem/u-boot-env.c                    |    1 -
 drivers/nvmem/uniphier-efuse.c                |    1 -
 drivers/of/device.c                           |    1 -
 drivers/pci/controller/cadence/pcie-sg2042.c  |    1 -
 drivers/pci/controller/dwc/pci-exynos.c       |    1 -
 drivers/pci/controller/dwc/pci-meson.c        |    1 -
 drivers/pci/controller/dwc/pcie-intel-gw.c    |    1 -
 drivers/pci/controller/dwc/pcie-keembay.c     |    1 -
 drivers/pci/controller/dwc/pcie-spacemit-k1.c |    1 -
 drivers/pci/controller/dwc/pcie-stm32.c       |    1 -
 drivers/pci/pwrctrl/generic.c                 |    1 -
 drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c      |    1 -
 drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c      |    1 -
 drivers/perf/arm-ccn.c                        |    1 -
 drivers/perf/fujitsu_uncore_pmu.c             |    1 -
 drivers/perf/hisilicon/hisi_uncore_mn_pmu.c   |    1 -
 drivers/perf/hisilicon/hisi_uncore_noc_pmu.c  |    1 -
 drivers/perf/hisilicon/hisi_uncore_uc_pmu.c   |    1 -
 drivers/perf/riscv_pmu_legacy.c               |    1 -
 drivers/perf/riscv_pmu_sbi.c                  |    1 -
 drivers/perf/starfive_starlink_pmu.c          |    1 -
 drivers/phy/allwinner/phy-sun50i-usb3.c       |    1 -
 drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c |    1 -
 drivers/phy/amlogic/phy-meson-axg-pcie.c      |    1 -
 drivers/phy/amlogic/phy-meson-gxl-usb2.c      |    1 -
 drivers/phy/amlogic/phy-meson8b-usb2.c        |    1 -
 drivers/phy/cadence/cdns-dphy-rx.c            |    1 -
 drivers/phy/hisilicon/phy-hi3670-pcie.c       |    1 -
 drivers/phy/hisilicon/phy-hi6220-usb.c        |    1 -
 drivers/phy/intel/phy-intel-keembay-usb.c     |    1 -
 drivers/phy/marvell/phy-mmp3-hsic.c           |    1 -
 drivers/phy/marvell/phy-mmp3-usb.c            |    1 -
 drivers/phy/marvell/phy-mvebu-sata.c          |    1 -
 drivers/phy/mediatek/phy-mtk-ufs.c            |    1 -
 drivers/phy/phy-snps-eusb2.c                  |    1 -
 drivers/phy/qualcomm/phy-ath79-usb.c          |    1 -
 .../phy/rockchip/phy-rockchip-samsung-dcphy.c |    1 -
 drivers/phy/rockchip/phy-rockchip-usbdp.c     |    1 -
 drivers/pinctrl/aspeed/pinctrl-aspeed-g4.c    |    1 -
 drivers/pinctrl/aspeed/pinctrl-aspeed-g5.c    |    1 -
 drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c    |    1 -
 drivers/pinctrl/bcm/pinctrl-bcm4908.c         |    1 -
 drivers/pinctrl/bcm/pinctrl-bcm63xx.c         |    1 -
 drivers/pinctrl/freescale/pinctrl-imx-scmi.c  |    1 -
 drivers/pinctrl/freescale/pinctrl-imx23.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx25.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx27.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx28.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx35.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx50.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx51.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx53.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx6dl.c    |    1 -
 drivers/pinctrl/freescale/pinctrl-imx6q.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx6sl.c    |    1 -
 drivers/pinctrl/freescale/pinctrl-imx6sll.c   |    1 -
 drivers/pinctrl/freescale/pinctrl-imx6sx.c    |    1 -
 drivers/pinctrl/freescale/pinctrl-imx7ulp.c   |    1 -
 drivers/pinctrl/freescale/pinctrl-imx8dxl.c   |    1 -
 drivers/pinctrl/freescale/pinctrl-imx8mq.c    |    1 -
 drivers/pinctrl/freescale/pinctrl-imx8qxp.c   |    1 -
 drivers/pinctrl/freescale/pinctrl-imx8ulp.c   |    1 -
 drivers/pinctrl/freescale/pinctrl-imx91.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-imx93.c     |    1 -
 drivers/pinctrl/freescale/pinctrl-vf610.c     |    1 -
 drivers/pinctrl/intel/pinctrl-alderlake.c     |    1 -
 drivers/pinctrl/intel/pinctrl-broxton.c       |    1 -
 drivers/pinctrl/intel/pinctrl-cannonlake.c    |    1 -
 drivers/pinctrl/intel/pinctrl-cedarfork.c     |    1 -
 drivers/pinctrl/intel/pinctrl-denverton.c     |    1 -
 drivers/pinctrl/intel/pinctrl-elkhartlake.c   |    1 -
 drivers/pinctrl/intel/pinctrl-emmitsburg.c    |    1 -
 drivers/pinctrl/intel/pinctrl-geminilake.c    |    1 -
 .../pinctrl/intel/pinctrl-intel-platform.c    |    1 -
 drivers/pinctrl/intel/pinctrl-jasperlake.c    |    1 -
 drivers/pinctrl/intel/pinctrl-lakefield.c     |    1 -
 drivers/pinctrl/intel/pinctrl-lewisburg.c     |    1 -
 drivers/pinctrl/intel/pinctrl-merrifield.c    |    1 -
 drivers/pinctrl/intel/pinctrl-meteorlake.c    |    1 -
 drivers/pinctrl/intel/pinctrl-meteorpoint.c   |    1 -
 drivers/pinctrl/intel/pinctrl-moorefield.c    |    1 -
 drivers/pinctrl/intel/pinctrl-sunrisepoint.c  |    1 -
 drivers/pinctrl/intel/pinctrl-tigerlake.c     |    1 -
 .../pinctrl/microchip/pinctrl-mpfs-iomux0.c   |    1 -
 .../pinctrl/microchip/pinctrl-mpfs-mssio.c    |    1 -
 .../pinctrl/microchip/pinctrl-pic64gx-gpio2.c |    1 -
 drivers/pinctrl/nuvoton/pinctrl-ma35d1.c      |    1 -
 drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c     |    1 -
 drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c     |    1 -
 drivers/pinctrl/nuvoton/pinctrl-wpcm450.c     |    1 -
 drivers/pinctrl/pinctrl-as3722.c              |    1 -
 drivers/pinctrl/pinctrl-cy8c95x0.c            |    1 -
 drivers/pinctrl/pinctrl-da850-pupd.c          |    1 -
 drivers/pinctrl/pinctrl-digicolor.c           |    1 -
 drivers/pinctrl/pinctrl-eic7700.c             |    1 -
 drivers/pinctrl/pinctrl-eyeq5.c               |    1 -
 drivers/pinctrl/pinctrl-ingenic.c             |    1 -
 drivers/pinctrl/pinctrl-loongson2.c           |    1 -
 drivers/pinctrl/pinctrl-lpc18xx.c             |    1 -
 drivers/pinctrl/pinctrl-max77620.c            |    1 -
 drivers/pinctrl/pinctrl-mcp23s08.c            |    1 -
 drivers/pinctrl/pinctrl-mcp23s08_i2c.c        |    1 -
 drivers/pinctrl/pinctrl-mcp23s08_spi.c        |    1 -
 drivers/pinctrl/pinctrl-microchip-sgpio.c     |    1 -
 drivers/pinctrl/pinctrl-mlxbf3.c              |    1 -
 drivers/pinctrl/pinctrl-pistachio.c           |    1 -
 drivers/pinctrl/pinctrl-scmi.c                |    1 -
 drivers/pinctrl/pinctrl-th1520.c              |    1 -
 drivers/pinctrl/pinctrl-tps6594.c             |    1 -
 drivers/pinctrl/qcom/pinctrl-ipq5018.c        |    1 -
 drivers/pinctrl/spear/pinctrl-spear1310.c     |    1 -
 drivers/pinctrl/spear/pinctrl-spear1340.c     |    1 -
 drivers/pinctrl/spear/pinctrl-spear300.c      |    1 -
 drivers/pinctrl/spear/pinctrl-spear310.c      |    1 -
 drivers/pinctrl/spear/pinctrl-spear320.c      |    1 -
 drivers/pinctrl/sprd/pinctrl-sprd-sc9860.c    |    1 -
 .../starfive/pinctrl-starfive-jh7100.c        |    1 -
 .../starfive/pinctrl-starfive-jh7110-aon.c    |    1 -
 .../starfive/pinctrl-starfive-jh7110-sys.c    |    1 -
 .../starfive/pinctrl-starfive-jh7110.c        |    1 -
 drivers/pinctrl/tegra/pinctrl-tegra234.c      |    1 -
 drivers/pinctrl/tegra/pinctrl-tegra238.c      |    1 -
 drivers/pinctrl/tegra/pinctrl-tegra264.c      |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-ld11.c  |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-ld20.c  |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-ld4.c   |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-ld6b.c  |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-nx1.c   |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-pro4.c  |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-pro5.c  |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-pxs2.c  |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-pxs3.c  |    1 -
 .../pinctrl/uniphier/pinctrl-uniphier-sld8.c  |    1 -
 drivers/platform/chrome/cros_ec_chardev.c     |    1 -
 drivers/platform/chrome/cros_ec_debugfs.c     |    1 -
 drivers/platform/chrome/cros_ec_lightbar.c    |    1 -
 drivers/platform/chrome/cros_ec_sensorhub.c   |    1 -
 drivers/platform/chrome/cros_ec_sysfs.c       |    1 -
 drivers/platform/chrome/cros_ec_vbc.c         |    1 -
 .../platform/chrome/cros_kbd_led_backlight.c  |    1 -
 drivers/platform/chrome/cros_usbpd_logger.c   |    1 -
 drivers/platform/chrome/cros_usbpd_notify.c   |    1 -
 drivers/platform/chrome/wilco_ec/core.c       |    1 -
 drivers/platform/chrome/wilco_ec/debugfs.c    |    1 -
 drivers/platform/chrome/wilco_ec/telemetry.c  |    1 -
 drivers/platform/goldfish/goldfish_pipe.c     |    1 -
 drivers/platform/x86/asus-tf103c-dock.c       |    1 -
 drivers/platform/x86/intel/atomisp2/led.c     |    1 -
 drivers/platform/x86/intel/atomisp2/pm.c      |    1 -
 drivers/platform/x86/intel/bxtwc_tmu.c        |    1 -
 drivers/platform/x86/intel/ehl_pse_io.c       |    1 -
 drivers/platform/x86/intel/plr_tpmi.c         |    1 -
 drivers/platform/x86/intel/punit_ipc.c        |    1 -
 drivers/platform/x86/intel_scu_pltdrv.c       |    1 -
 drivers/platform/x86/msi-ec.c                 |    1 +
 .../platform/x86/nvidia-wmi-ec-backlight.c    |    1 -
 drivers/platform/x86/quickstart.c             |    1 -
 drivers/platform/x86/uniwill/uniwill-wmi.c    |    1 -
 .../platform/x86/x86-android-tablets/dmi.c    |    1 -
 .../x86-android-tablets/x86-android-tablets.h |    1 +
 drivers/pmdomain/actions/owl-sps.c            |    1 -
 drivers/pmdomain/imx/imx93-pd.c               |    1 -
 .../marvell/pxa1908-power-controller.c        |    1 -
 drivers/pnp/pnpacpi/core.c                    |    1 -
 drivers/power/reset/brcm-kona-reset.c         |    1 -
 drivers/power/reset/ep93xx-restart.c          |    1 -
 drivers/power/reset/gpio-poweroff.c           |    1 -
 drivers/power/reset/ltc2952-poweroff.c        |    1 -
 drivers/power/reset/macsmc-reboot.c           |    1 -
 drivers/power/reset/ocelot-reset.c            |    1 -
 drivers/power/reset/pwr-mlxbf.c               |    1 -
 drivers/power/reset/qemu-virt-ctrl.c          |    1 -
 drivers/power/reset/sc27xx-poweroff.c         |    1 -
 drivers/power/reset/spacemit-p1-reboot.c      |    1 -
 drivers/power/reset/tdx-ec-poweroff.c         |    1 -
 drivers/power/reset/tps65086-restart.c        |    1 -
 drivers/power/sequencing/pwrseq-pcie-m2.c     |    1 -
 drivers/power/sequencing/pwrseq-qcom-wcn.c    |    1 -
 drivers/power/supply/adp5061.c                |    1 -
 drivers/power/supply/bd71828-power.c          |    1 -
 drivers/power/supply/bd99954-charger.c        |    1 -
 drivers/power/supply/bq24190_charger.c        |    1 -
 drivers/power/supply/chagall-battery.c        |    1 -
 drivers/power/supply/cpcap-charger.c          |    1 -
 drivers/power/supply/cros_charge-control.c    |    1 -
 .../power/supply/cros_peripheral_charger.c    |    1 -
 drivers/power/supply/cros_usbpd-charger.c     |    1 -
 drivers/power/supply/lego_ev3_battery.c       |    1 -
 .../power/supply/max14656_charger_detector.c  |    1 -
 drivers/power/supply/max17042_battery.c       |    1 -
 drivers/power/supply/max77759_charger.c       |    1 -
 drivers/power/supply/max8971_charger.c        |    1 -
 drivers/power/supply/max8998_charger.c        |    1 -
 drivers/power/supply/mp2629_charger.c         |    1 -
 drivers/power/supply/olpc_battery.c           |    1 -
 drivers/power/supply/pm8916_bms_vm.c          |    1 -
 drivers/power/supply/pm8916_lbc.c             |    1 -
 drivers/power/supply/rt5033_charger.c         |    1 -
 drivers/power/supply/rt9467-charger.c         |    1 -
 drivers/power/supply/rt9471.c                 |    1 -
 drivers/power/supply/rt9756.c                 |    1 -
 drivers/power/supply/s2mu005-battery.c        |    1 -
 drivers/power/supply/ug3105_battery.c         |    1 -
 drivers/pps/clients/pps-gpio.c                |    1 -
 drivers/pps/generators/pps_gen_tio.c          |    1 -
 drivers/ptp/ptp_dte.c                         |    1 -
 drivers/pwm/pwm-adp5585.c                     |    1 -
 drivers/pwm/pwm-airoha.c                      |    1 -
 drivers/pwm/pwm-apple.c                       |    1 -
 drivers/pwm/pwm-berlin.c                      |    1 -
 drivers/pwm/pwm-ep93xx.c                      |    1 -
 drivers/pwm/pwm-gpio.c                        |    1 -
 drivers/pwm/pwm-intel-lgm.c                   |    1 -
 drivers/pwm/pwm-keembay.c                     |    1 -
 drivers/pwm/pwm-lpc18xx-sct.c                 |    1 -
 drivers/pwm/pwm-lpss-platform.c               |    1 -
 drivers/pwm/pwm-max7360.c                     |    1 -
 drivers/pwm/pwm-pxa.c                         |    1 -
 drivers/pwm/pwm-sifive.c                      |    1 -
 drivers/pwm/pwm-sl28cpld.c                    |    1 -
 drivers/pwm/pwm-sprd.c                        |    1 -
 drivers/pwm/pwm-sunplus.c                     |    1 -
 drivers/pwm/pwm-vt8500.c                      |    1 -
 drivers/regulator/adp5055-regulator.c         |    1 -
 drivers/regulator/bd71828-regulator.c         |    1 -
 drivers/regulator/max77541-regulator.c        |    1 -
 drivers/regulator/max77675-regulator.c        |    1 -
 drivers/regulator/mt6370-regulator.c          |    1 -
 drivers/regulator/pv88080-regulator.c         |    1 -
 drivers/regulator/rt4803.c                    |    1 -
 drivers/regulator/rt5739.c                    |    1 -
 drivers/regulator/rt6190-regulator.c          |    1 -
 drivers/regulator/rt8092.c                    |    1 -
 drivers/regulator/rtq2208-regulator.c         |    1 -
 drivers/regulator/tps6287x-regulator.c        |    1 -
 drivers/regulator/tps65218-regulator.c        |    1 -
 drivers/regulator/tps65912-regulator.c        |    1 -
 drivers/regulator/vexpress-regulator.c        |    1 -
 drivers/reset/reset-ath79.c                   |    1 -
 drivers/reset/reset-axs10x.c                  |    1 -
 drivers/reset/reset-bcm6345.c                 |    1 -
 drivers/reset/reset-eyeq.c                    |    1 -
 drivers/reset/reset-gpio.c                    |    1 -
 drivers/reset/reset-sunplus.c                 |    1 -
 drivers/reset/reset-tn48m.c                   |    1 -
 .../reset/starfive/reset-starfive-jh7100.c    |    1 -
 drivers/rtc/rtc-88pm886.c                     |    1 -
 drivers/rtc/rtc-cpcap.c                       |    1 -
 drivers/rtc/rtc-cros-ec.c                     |    1 -
 drivers/rtc/rtc-ds1307.c                      |    1 -
 drivers/rtc/rtc-ep93xx.c                      |    1 -
 drivers/rtc/rtc-fsl-ftm-alarm.c               |    1 -
 drivers/rtc/rtc-ftrtc010.c                    |    1 -
 drivers/rtc/rtc-lpc24xx.c                     |    1 -
 drivers/rtc/rtc-m48t86.c                      |    1 -
 drivers/rtc/rtc-mc13xxx.c                     |    1 -
 drivers/rtc/rtc-moxart.c                      |    1 -
 drivers/rtc/rtc-msc313.c                      |    1 -
 drivers/rtc/rtc-mt6397.c                      |    1 -
 drivers/rtc/rtc-mt7622.c                      |    1 -
 drivers/rtc/rtc-mxc_v2.c                      |    1 -
 drivers/rtc/rtc-r7301.c                       |    1 -
 drivers/rtc/rtc-rzn1.c                        |    1 -
 drivers/rtc/rtc-sh.c                          |    1 -
 drivers/rtc/rtc-ssd202d.c                     |    1 -
 drivers/rtc/rtc-tegra.c                       |    1 -
 drivers/rtc/rtc-ti-k3.c                       |    1 -
 drivers/rtc/rtc-tps6594.c                     |    1 -
 drivers/s390/crypto/ap_bus.c                  |    2 +-
 drivers/s390/crypto/vfio_ap_drv.c             |    2 +-
 drivers/s390/crypto/zcrypt_cex4.c             |    2 +-
 drivers/siox/siox-bus-gpio.c                  |    1 -
 drivers/soc/fsl/qe/qe.c                       |    1 -
 drivers/soc/qcom/qcom_pd_mapper.c             |    1 -
 drivers/soc/renesas/rzn1_irqmux.c             |    1 -
 drivers/soc/sophgo/sg2044-topsys.c            |    2 +-
 drivers/soc/tegra/fuse/fuse-tegra.c           |    1 -
 drivers/soc/tegra/fuse/tegra-apbmisc.c        |    1 -
 drivers/soc/ti/smartreflex.c                  |    2 +-
 drivers/soundwire/bus.c                       |    1 -
 drivers/soundwire/bus_type.c                  |    1 -
 drivers/soundwire/cadence_master.c            |    1 -
 drivers/soundwire/debugfs.c                   |    1 -
 .../soundwire/generic_bandwidth_allocation.c  |    1 -
 drivers/soundwire/mipi_disco.c                |    1 -
 drivers/soundwire/stream.c                    |    1 -
 drivers/soundwire/sysfs_slave.c               |    1 -
 drivers/soundwire/sysfs_slave_dpn.c           |    1 -
 drivers/spi/spi-atcspi200.c                   |    1 -
 drivers/spi/spi-cs42l43.c                     |    1 -
 drivers/spi/spi-gpio.c                        |    1 -
 drivers/spi/spi-hisi-sfc-v3xx.c               |    1 -
 drivers/spi/spi-loongson-pci.c                |    1 -
 drivers/spi/spi-loongson-plat.c               |    1 -
 drivers/spi/spi-loopback-test.c               |    1 -
 ...spi-offload-trigger-adi-util-sigma-delta.c |    1 -
 drivers/spi/spi-offload-trigger-pwm.c         |    1 -
 drivers/spi/spi-pxa2xx-platform.c             |    1 -
 drivers/spi/spi-realtek-rtl-snand.c           |    1 -
 drivers/spi/spi-realtek-rtl.c                 |    1 -
 drivers/spi/spi-sc18is602.c                   |    1 -
 drivers/spi/spi-wpcm-fiu.c                    |    1 -
 drivers/spi/spi.c                             |    1 -
 drivers/spi/spidev.c                          |    1 -
 drivers/spmi/spmi-apple-controller.c          |    1 -
 drivers/staging/greybus/arche-apb-ctrl.c      |    1 -
 drivers/thermal/loongson2_thermal.c           |    1 -
 drivers/thermal/renesas/rzg2l_thermal.c       |    1 -
 drivers/tty/goldfish.c                        |    1 -
 drivers/tty/serial/8250/8250_dfl.c            |    1 -
 drivers/tty/serial/8250/8250_dw.c             |    1 -
 drivers/tty/serial/8250/8250_em.c             |    1 -
 drivers/tty/serial/8250/8250_keba.c           |    1 -
 drivers/tty/serial/8250/8250_loongson.c       |    1 -
 drivers/tty/serial/8250/8250_ni.c             |    1 -
 drivers/tty/serial/max3100.c                  |    1 -
 drivers/tty/serial/max310x.c                  |    1 -
 drivers/tty/serial/sc16is7xx.c                |    1 -
 drivers/tty/serial/sc16is7xx_i2c.c            |    1 -
 drivers/tty/serial/sc16is7xx_spi.c            |    1 -
 drivers/tty/serial/sccnxp.c                   |    1 -
 drivers/tty/serial/tegra-utc.c                |    1 -
 drivers/uio/uio_pdrv_genirq.c                 |    1 -
 drivers/usb/dwc2/core.h                       |    1 +
 drivers/usb/gadget/udc/renesas_usbf.c         |    1 -
 drivers/usb/misc/usb-ljca.c                   |    1 -
 drivers/usb/typec/mux/tusb1046.c              |    1 -
 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c |    1 -
 .../typec/tcpm/qcom/qcom_pmic_typec_pdphy.c   |    1 -
 .../tcpm/qcom/qcom_pmic_typec_pdphy_stub.c    |    1 -
 .../typec/tcpm/qcom/qcom_pmic_typec_port.c    |    1 -
 drivers/usb/typec/tcpm/tcpci_mt6370.c         |    1 -
 drivers/usb/typec/tcpm/tcpci_rt1711h.c        |    1 -
 drivers/usb/typec/ucsi/cros_ec_ucsi.c         |    1 -
 drivers/vdpa/vdpa.c                           |    1 -
 drivers/vdpa/vdpa_user/vduse_dev.c            |    1 -
 drivers/video/backlight/apple_dwi_bl.c        |    1 -
 drivers/video/backlight/da9052_bl.c           |    1 -
 drivers/video/backlight/hx8357.c              |    1 -
 drivers/video/backlight/ktd2801-backlight.c   |    1 -
 drivers/video/backlight/mp3309c.c             |    1 -
 drivers/video/backlight/mt6370-backlight.c    |    1 -
 drivers/video/backlight/rave-sp-backlight.c   |    1 -
 drivers/video/backlight/rt4831-backlight.c    |    1 -
 .../omap2/omapfb/displays/encoder-opa362.c    |    1 -
 .../omap2/omapfb/displays/encoder-tfp410.c    |    1 -
 .../omap2/omapfb/displays/encoder-tpd12s015.c |    1 -
 .../omap2/omapfb/displays/panel-dsi-cm.c      |    1 -
 .../virt/coco/arm-cca-guest/arm-cca-guest.c   |    2 +-
 drivers/virt/coco/tdx-guest/tdx-guest.c       |    1 -
 drivers/virt/coco/tdx-host/tdx-host.c         |    1 -
 drivers/w1/masters/amd_axi_w1.c               |    1 -
 drivers/w1/masters/ds2490.c                   |    1 -
 drivers/w1/masters/mxc_w1.c                   |    1 -
 drivers/w1/masters/sgi_w1.c                   |    1 -
 drivers/w1/masters/w1-gpio.c                  |    1 -
 drivers/watchdog/at91rm9200_wdt.c             |    1 -
 drivers/watchdog/cros_ec_wdt.c                |    1 -
 drivers/watchdog/davinci_wdt.c                |    1 -
 drivers/watchdog/ftwdt010_wdt.c               |    1 -
 drivers/watchdog/gpio_wdt.c                   |    1 -
 drivers/watchdog/gunyah_wdt.c                 |    1 -
 drivers/watchdog/imgpdc_wdt.c                 |    1 -
 drivers/watchdog/keembay_wdt.c                |    1 -
 drivers/watchdog/max63xx_wdt.c                |    1 -
 drivers/watchdog/max77620_wdt.c               |    1 -
 drivers/watchdog/meson_wdt.c                  |    1 -
 drivers/watchdog/moxart_wdt.c                 |    1 -
 drivers/watchdog/msc313e_wdt.c                |    1 -
 drivers/watchdog/mt7621_wdt.c                 |    1 -
 drivers/watchdog/nic7018_wdt.c                |    1 -
 drivers/watchdog/omap_wdt.c                   |    1 -
 drivers/watchdog/pseries-wdt.c                |    1 -
 drivers/watchdog/realtek_otto_wdt.c           |    1 -
 drivers/watchdog/rt2880_wdt.c                 |    1 -
 drivers/watchdog/rti_wdt.c                    |    1 -
 drivers/watchdog/sbsa_gwdt.c                  |    1 -
 drivers/watchdog/sl28cpld_wdt.c               |    1 -
 drivers/watchdog/sunplus_wdt.c                |    1 -
 drivers/watchdog/ts72xx_wdt.c                 |    1 -
 drivers/watchdog/twl4030_wdt.c                |    1 -
 drivers/watchdog/xilinx_wwdt.c                |    1 -
 include/linux/acpi.h                          |    2 +-
 include/linux/amba/bus.h                      |    2 +-
 include/linux/auxiliary_bus.h                 |    2 +-
 include/linux/bcma/bcma.h                     |    2 +-
 include/linux/cdx/cdx_bus.h                   |    2 +-
 include/linux/device/driver.h                 |    2 +
 include/linux/dfl.h                           |    2 +-
 include/linux/dmi.h                           |    2 +-
 include/linux/eisa.h                          |    2 +-
 include/linux/firewire.h                      |    3 +-
 include/linux/fsl/mc.h                        |    2 +-
 include/linux/hid.h                           |    2 +-
 include/linux/hyperv.h                        |    2 +-
 include/linux/i2c.h                           |    2 +-
 include/linux/i3c/device.h                    |    2 +-
 include/linux/input.h                         |    2 +-
 include/linux/intel-ish-client-if.h           |    2 +-
 include/linux/ipack.h                         |    2 +-
 include/linux/isapnp.h                        |    2 +-
 include/linux/mcb.h                           |    2 +-
 include/linux/mei_cl_bus.h                    |    2 +-
 include/linux/mhi.h                           |    1 +
 include/linux/mmc/sdio_func.h                 |    2 +-
 include/linux/mod_device_id/acpi.h            |   31 +
 include/linux/mod_device_id/amba.h            |   18 +
 include/linux/mod_device_id/ap.h              |   19 +
 include/linux/mod_device_id/apr.h             |   20 +
 include/linux/mod_device_id/auxiliary.h       |   16 +
 include/linux/mod_device_id/bcma.h            |   24 +
 include/linux/mod_device_id/ccw.h             |   26 +
 include/linux/mod_device_id/cdx.h             |   39 +
 include/linux/mod_device_id/coreboot.h        |   19 +
 include/linux/mod_device_id/css.h             |   16 +
 include/linux/mod_device_id/dfl.h             |   33 +
 include/linux/mod_device_id/dmi.h             |   57 +
 include/linux/mod_device_id/eisa.h            |   20 +
 include/linux/mod_device_id/fsl_mc.h          |   21 +
 include/linux/mod_device_id/hda.h             |   16 +
 include/linux/mod_device_id/hid.h             |   21 +
 include/linux/mod_device_id/hv_vmbus.h        |   17 +
 include/linux/mod_device_id/i2c.h             |   18 +
 include/linux/mod_device_id/i3c.h             |   25 +
 include/linux/mod_device_id/ieee1394.h        |   26 +
 include/linux/mod_device_id/input.h           |   61 +
 include/linux/mod_device_id/ipack.h           |   16 +
 include/linux/mod_device_id/isapnp.h          |   15 +
 include/linux/mod_device_id/ishtp.h           |   23 +
 include/linux/mod_device_id/mcb.h             |   14 +
 include/linux/mod_device_id/mdio.h            |   34 +
 include/linux/mod_device_id/mei_cl.h          |   30 +
 include/linux/mod_device_id/mhi.h             |   23 +
 include/linux/mod_device_id/mips_cdmm.h       |   16 +
 include/linux/mod_device_id/of.h              |   14 +
 include/linux/mod_device_id/parisc.h          |   20 +
 include/linux/mod_device_id/pci.h             |   53 +
 include/linux/mod_device_id/pcmcia.h          |   47 +
 include/linux/mod_device_id/platform.h        |   16 +
 include/linux/mod_device_id/pnp.h             |   25 +
 include/linux/mod_device_id/rio.h             |   27 +
 include/linux/mod_device_id/rpmsg.h           |   18 +
 include/linux/mod_device_id/sdio.h            |   20 +
 include/linux/mod_device_id/sdw.h             |   17 +
 include/linux/mod_device_id/serio.h           |   17 +
 include/linux/mod_device_id/slim.h            |   22 +
 include/linux/mod_device_id/spi.h             |   18 +
 include/linux/mod_device_id/spmi.h            |   16 +
 include/linux/mod_device_id/ssam.h            |   27 +
 include/linux/mod_device_id/ssb.h             |   23 +
 include/linux/mod_device_id/tb.h              |   36 +
 include/linux/mod_device_id/tee_client.h      |   17 +
 include/linux/mod_device_id/typec.h           |   25 +
 include/linux/mod_device_id/ulpi.h            |   15 +
 include/linux/mod_device_id/usb.h             |  110 ++
 include/linux/mod_device_id/vchiq.h           |    8 +
 include/linux/mod_device_id/vio.h             |   10 +
 include/linux/mod_device_id/virtio.h          |   15 +
 include/linux/mod_device_id/wmi.h             |   18 +
 include/linux/mod_device_id/x86_cpu.h         |   43 +
 include/linux/mod_device_id/zorro.h           |   18 +
 include/linux/mod_devicetable.h               | 1014 +----------------
 include/linux/of.h                            |    2 +-
 include/linux/of_platform.h                   |    4 +-
 include/linux/pci-epf.h                       |    2 +-
 include/linux/pci.h                           |    2 +-
 include/linux/phy.h                           |    2 +-
 include/linux/platform_data/x86/int3472.h     |    2 +-
 include/linux/platform_data/x86/soc.h         |    2 +-
 include/linux/platform_device.h               |    2 +-
 include/linux/pnp.h                           |    2 +-
 include/linux/raspberrypi/vchiq_bus.h         |    2 +-
 include/linux/rio.h                           |    2 +-
 include/linux/rpmsg.h                         |    2 +-
 include/linux/serio.h                         |    2 +-
 include/linux/slimbus.h                       |    2 +-
 include/linux/soc/qcom/apr.h                  |    2 +-
 include/linux/soundwire/sdw.h                 |    2 +-
 include/linux/spi/spi.h                       |    4 +-
 include/linux/ssb/ssb.h                       |    2 +-
 include/linux/surface_aggregator/device.h     |    2 +-
 include/linux/tee_drv.h                       |    2 +-
 include/linux/thunderbolt.h                   |    2 +-
 include/linux/ulpi/driver.h                   |    2 +-
 include/linux/usb.h                           |    2 +-
 include/linux/usb/serial.h                    |    1 +
 include/linux/usb/typec_altmode.h             |    2 +-
 include/linux/virtio.h                        |    2 +-
 include/linux/wmi.h                           |    2 +-
 include/linux/zorro.h                         |    2 +-
 include/pcmcia/ds.h                           |    2 +-
 include/sound/hda_codec.h                     |    2 +-
 include/sound/hdaudio.h                       |    1 +
 net/qrtr/mhi.c                                |    1 -
 net/rfkill/rfkill-gpio.c                      |    1 -
 sound/atmel/ac97c.c                           |    1 -
 sound/firewire/isight.c                       |    1 -
 .../hda/codecs/side-codecs/cs35l41_hda_i2c.c  |    1 -
 .../hda/codecs/side-codecs/cs35l41_hda_spi.c  |    1 -
 .../hda/codecs/side-codecs/tas2781_hda_i2c.c  |    1 -
 .../hda/codecs/side-codecs/tas2781_hda_spi.c  |    1 -
 sound/hda/core/hda_bus_type.c                 |    2 +-
 sound/soc/atmel/sam9x5_wm8731.c               |    1 -
 sound/soc/codecs/adau1372-i2c.c               |    1 -
 sound/soc/codecs/adau1372-spi.c               |    1 -
 sound/soc/codecs/adau1372.c                   |    1 -
 sound/soc/codecs/adau1761-i2c.c               |    1 -
 sound/soc/codecs/adau1761-spi.c               |    1 -
 sound/soc/codecs/adau1781-i2c.c               |    1 -
 sound/soc/codecs/adau1781-spi.c               |    1 -
 sound/soc/codecs/adau1977-i2c.c               |    1 -
 sound/soc/codecs/adau1977-spi.c               |    1 -
 sound/soc/codecs/adau7118-hw.c                |    1 -
 sound/soc/codecs/ak4104.c                     |    1 -
 sound/soc/codecs/audio-iio-aux.c              |    1 -
 sound/soc/codecs/cs4234.c                     |    1 -
 sound/soc/codecs/cs4270.c                     |    1 -
 sound/soc/codecs/cs42l42-sdw.c                |    1 -
 sound/soc/codecs/cs42l43.c                    |    1 -
 sound/soc/codecs/cs42xx8-i2c.c                |    1 -
 sound/soc/codecs/cs42xx8-spi.c                |    1 -
 sound/soc/codecs/cs4349.c                     |    1 -
 sound/soc/codecs/es8316.c                     |    1 -
 sound/soc/codecs/es8323.c                     |    1 -
 sound/soc/codecs/es9356.c                     |    1 -
 sound/soc/codecs/max98357a.c                  |    1 -
 sound/soc/codecs/max98373-i2c.c               |    1 -
 sound/soc/codecs/max98373-sdw.c               |    1 -
 sound/soc/codecs/max98388.c                   |    1 -
 sound/soc/codecs/mt6351.c                     |    1 -
 sound/soc/codecs/mt6358.c                     |    1 -
 sound/soc/codecs/pcm3168a-i2c.c               |    1 -
 sound/soc/codecs/rt1017-sdca-sdw.c            |    1 -
 sound/soc/codecs/rt1308-sdw.c                 |    1 -
 sound/soc/codecs/rt1316-sdw.c                 |    1 -
 sound/soc/codecs/rt1318-sdw.c                 |    1 -
 sound/soc/codecs/rt1320-sdw.c                 |    1 -
 sound/soc/codecs/rt700-sdw.c                  |    1 -
 sound/soc/codecs/rt711-sdca-sdw.c             |    1 -
 sound/soc/codecs/rt711-sdw.c                  |    1 -
 sound/soc/codecs/rt712-sdca-dmic.c            |    1 -
 sound/soc/codecs/rt712-sdca-sdw.c             |    1 -
 sound/soc/codecs/rt715-sdca-sdw.c             |    1 -
 sound/soc/codecs/rt715-sdw.c                  |    1 -
 sound/soc/codecs/rt721-sdca-sdw.c             |    1 -
 sound/soc/codecs/rt722-sdca-sdw.c             |    1 -
 sound/soc/codecs/rt9123.c                     |    1 -
 sound/soc/codecs/rt9123p.c                    |    1 -
 sound/soc/codecs/rtq9124.c                    |    1 -
 sound/soc/codecs/rtq9128.c                    |    1 -
 sound/soc/codecs/sdw-mockup.c                 |    1 -
 sound/soc/codecs/simple-amplifier.c           |    1 -
 sound/soc/codecs/sma1303.c                    |    1 -
 sound/soc/codecs/src4xxx-i2c.c                |    1 -
 sound/soc/codecs/uda1334.c                    |    1 -
 sound/soc/codecs/wm8510.c                     |    1 -
 sound/soc/codecs/wm8523.c                     |    1 -
 sound/soc/codecs/wm8524.c                     |    1 -
 sound/soc/codecs/wm8580.c                     |    1 -
 sound/soc/codecs/wm8711.c                     |    1 -
 sound/soc/codecs/wm8728.c                     |    1 -
 sound/soc/codecs/wm8731-i2c.c                 |    1 -
 sound/soc/codecs/wm8731-spi.c                 |    1 -
 sound/soc/codecs/wm8737.c                     |    1 -
 sound/soc/codecs/wm8753.c                     |    1 -
 sound/soc/codecs/wm8770.c                     |    1 -
 sound/soc/codecs/wm8776.c                     |    1 -
 sound/soc/fsl/fsl_aud2htx.c                   |    1 -
 sound/soc/fsl/mpc5200_psc_ac97.c              |    1 -
 .../generic/audio-graph-card2-custom-sample.c |    1 -
 sound/soc/jz4740/jz4740-i2s.c                 |    1 -
 sound/soc/mediatek/mt8365/mt8365-mt6357.c     |    1 -
 sound/soc/qcom/apq8096.c                      |    1 -
 sound/soc/qcom/sc7280.c                       |    1 -
 sound/soc/qcom/storm.c                        |    1 -
 sound/soc/rockchip/rockchip_sai.c             |    1 +
 sound/soc/sdca/sdca_class.c                   |    1 -
 sound/soc/sof/sof-client-ipc-flood-test.c     |    1 -
 .../soc/sof/sof-client-ipc-kernel-injector.c  |    1 -
 sound/soc/sof/sof-client-ipc-msg-injector.c   |    1 -
 sound/soc/sunxi/sun50i-codec-analog.c         |    1 -
 sound/soc/sunxi/sun50i-dmic.c                 |    1 -
 sound/soc/tegra/tegra186_asrc.c               |    1 -
 sound/soc/tegra/tegra186_dspk.c               |    1 -
 sound/soc/tegra/tegra20_spdif.c               |    1 -
 sound/soc/tegra/tegra210_adx.c                |    1 -
 sound/soc/tegra/tegra210_amx.c                |    1 -
 sound/soc/tegra/tegra210_dmic.c               |    1 -
 sound/soc/tegra/tegra210_i2s.c                |    1 -
 sound/soc/tegra/tegra210_mixer.c              |    1 -
 sound/soc/tegra/tegra210_mvc.c                |    1 -
 sound/soc/tegra/tegra210_ope.c                |    1 -
 sound/soc/ti/omap-dmic.c                      |    1 -
 sound/soc/ti/omap-mcpdm.c                     |    1 -
 tools/testing/cxl/test/mem.c                  |    1 -
 1633 files changed, 1576 insertions(+), 2527 deletions(-)
 create mode 100644 include/linux/mod_device_id/acpi.h
 create mode 100644 include/linux/mod_device_id/amba.h
 create mode 100644 include/linux/mod_device_id/ap.h
 create mode 100644 include/linux/mod_device_id/apr.h
 create mode 100644 include/linux/mod_device_id/auxiliary.h
 create mode 100644 include/linux/mod_device_id/bcma.h
 create mode 100644 include/linux/mod_device_id/ccw.h
 create mode 100644 include/linux/mod_device_id/cdx.h
 create mode 100644 include/linux/mod_device_id/coreboot.h
 create mode 100644 include/linux/mod_device_id/css.h
 create mode 100644 include/linux/mod_device_id/dfl.h
 create mode 100644 include/linux/mod_device_id/dmi.h
 create mode 100644 include/linux/mod_device_id/eisa.h
 create mode 100644 include/linux/mod_device_id/fsl_mc.h
 create mode 100644 include/linux/mod_device_id/hda.h
 create mode 100644 include/linux/mod_device_id/hid.h
 create mode 100644 include/linux/mod_device_id/hv_vmbus.h
 create mode 100644 include/linux/mod_device_id/i2c.h
 create mode 100644 include/linux/mod_device_id/i3c.h
 create mode 100644 include/linux/mod_device_id/ieee1394.h
 create mode 100644 include/linux/mod_device_id/input.h
 create mode 100644 include/linux/mod_device_id/ipack.h
 create mode 100644 include/linux/mod_device_id/isapnp.h
 create mode 100644 include/linux/mod_device_id/ishtp.h
 create mode 100644 include/linux/mod_device_id/mcb.h
 create mode 100644 include/linux/mod_device_id/mdio.h
 create mode 100644 include/linux/mod_device_id/mei_cl.h
 create mode 100644 include/linux/mod_device_id/mhi.h
 create mode 100644 include/linux/mod_device_id/mips_cdmm.h
 create mode 100644 include/linux/mod_device_id/of.h
 create mode 100644 include/linux/mod_device_id/parisc.h
 create mode 100644 include/linux/mod_device_id/pci.h
 create mode 100644 include/linux/mod_device_id/pcmcia.h
 create mode 100644 include/linux/mod_device_id/platform.h
 create mode 100644 include/linux/mod_device_id/pnp.h
 create mode 100644 include/linux/mod_device_id/rio.h
 create mode 100644 include/linux/mod_device_id/rpmsg.h
 create mode 100644 include/linux/mod_device_id/sdio.h
 create mode 100644 include/linux/mod_device_id/sdw.h
 create mode 100644 include/linux/mod_device_id/serio.h
 create mode 100644 include/linux/mod_device_id/slim.h
 create mode 100644 include/linux/mod_device_id/spi.h
 create mode 100644 include/linux/mod_device_id/spmi.h
 create mode 100644 include/linux/mod_device_id/ssam.h
 create mode 100644 include/linux/mod_device_id/ssb.h
 create mode 100644 include/linux/mod_device_id/tb.h
 create mode 100644 include/linux/mod_device_id/tee_client.h
 create mode 100644 include/linux/mod_device_id/typec.h
 create mode 100644 include/linux/mod_device_id/ulpi.h
 create mode 100644 include/linux/mod_device_id/usb.h
 create mode 100644 include/linux/mod_device_id/vchiq.h
 create mode 100644 include/linux/mod_device_id/vio.h
 create mode 100644 include/linux/mod_device_id/virtio.h
 create mode 100644 include/linux/mod_device_id/wmi.h
 create mode 100644 include/linux/mod_device_id/x86_cpu.h
 create mode 100644 include/linux/mod_device_id/zorro.h

base-commit: ef0c9f75a19532d7675384708fc8621e10850104
-- 
2.47.3


^ permalink raw reply

* Re: [PATCH v1] linux-firmware: Add firmware for new projects
From: Dmitry Baryshkov @ 2026-06-26 15:53 UTC (permalink / raw)
  To: Baojun Xu
  Cc: jwboyer, shenghao-ding, linux-firmware, 13916275206, linux-sound,
	linux-kernel
In-Reply-To: <20260626110547.23469-1-baojun.xu@ti.com>

On Fri, Jun 26, 2026 at 07:05:47PM +0800, Baojun Xu wrote:
> Add firmware binary files for new HP projects.
> 
> Signed-off-by: Baojun Xu <baojun.xu@ti.com>
> ---
>  WHENCE                           |   4 ++++
>  ti/audio/tas2781/TAS2XXX8F94.bin | Bin 0 -> 49824 bytes
>  ti/audio/tas2781/TAS2XXX8F95.bin | Bin 0 -> 49824 bytes
>  3 files changed, 4 insertions(+)
>  create mode 100644 ti/audio/tas2781/TAS2XXX8F94.bin
>  create mode 100644 ti/audio/tas2781/TAS2XXX8F95.bin

Thanks, Merged and pushed out: https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/1126


-- 
With best wishes
Dmitry

^ permalink raw reply

* [PATCH] ALSA: hda: Force resume if acomp notified during system suspend
From: Nícolas F. R. A. Prado @ 2026-06-26 15:47 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai
  Cc: kernel, linux-sound, linux-kernel, Nícolas F. R. A. Prado

Currently if an HDMI cable is connected while the system is suspended,
the HDMI audio jack status stays off after resume.

This is due to the jack state not being synced by the HDA HDMI codec
device's runtime resume, as that never happens if the device was runtime
suspended before the system suspended, or by the acomp notification
triggered from the DRM side if that happens before the HDA HDMI codec
device has resumed.

To fix this, if snd_hda_hdmi_acomp_pin_eld_notify() gets called before
the HDA HDMI codec device has resumed, mark it to be forcefully runtime
resumed at the next PM complete time.

Do this using a separate acomp_requested_resume flag that can be
temporarily set without overwriting forced_resume for drivers that
always want to force resume.

Assisted-by: Copilot:claude-sonnet-4.6
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
 include/sound/hda_codec.h    | 1 +
 sound/hda/codecs/hdmi/hdmi.c | 4 +++-
 sound/hda/common/codec.c     | 5 ++++-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/include/sound/hda_codec.h b/include/sound/hda_codec.h
index 17945ab5e6e2..c05b6d44c491 100644
--- a/include/sound/hda_codec.h
+++ b/include/sound/hda_codec.h
@@ -256,6 +256,7 @@ struct hda_codec {
 	unsigned int link_down_at_suspend:1; /* link down at runtime suspend */
 	unsigned int relaxed_resume:1;	/* don't resume forcibly for jack */
 	unsigned int forced_resume:1; /* forced resume for jack */
+	unsigned int acomp_requested_resume:1; /* resume requested by acomp */
 	unsigned int no_stream_clean_at_suspend:1; /* do not clean streams at suspend */
 	unsigned int ctl_dev_id:1; /* old control element id build behaviour */
 	unsigned int eld_jack_detect:1;	/* Machine jack-detection by ELD */
diff --git a/sound/hda/codecs/hdmi/hdmi.c b/sound/hda/codecs/hdmi/hdmi.c
index 1f4d646724ed..0b6816018a42 100644
--- a/sound/hda/codecs/hdmi/hdmi.c
+++ b/sound/hda/codecs/hdmi/hdmi.c
@@ -2233,8 +2233,10 @@ void snd_hda_hdmi_acomp_pin_eld_notify(void *audio_ptr, int port, int dev_id)
 	/* skip notification during system suspend (but not in runtime PM);
 	 * the state will be updated at resume
 	 */
-	if (codec->core.dev.power.power_state.event == PM_EVENT_SUSPEND)
+	if (codec->core.dev.power.power_state.event == PM_EVENT_SUSPEND) {
+		codec->acomp_requested_resume = 1;
 		return;
+	}
 
 	snd_hda_hdmi_check_presence_and_report(codec, pin_nid, dev_id);
 }
diff --git a/sound/hda/common/codec.c b/sound/hda/common/codec.c
index ef533770179b..b9ded149ea11 100644
--- a/sound/hda/common/codec.c
+++ b/sound/hda/common/codec.c
@@ -2967,8 +2967,11 @@ static void hda_codec_pm_complete(struct device *dev)
 		dev->power.power_state = PMSG_RESUME;
 
 	if (pm_runtime_suspended(dev) && (codec->jackpoll_interval ||
-	    hda_codec_need_resume(codec) || codec->forced_resume))
+	    hda_codec_need_resume(codec) || codec->forced_resume ||
+	    codec->acomp_requested_resume)) {
+		codec->acomp_requested_resume = 0;
 		pm_request_resume(dev);
+	}
 }
 
 static int hda_codec_pm_suspend(struct device *dev)

---
base-commit: 30ffa8de54e5cc80d93fd211ca134d1764a7011f
change-id: 20260626-hda-force-resume-eld-notify-1347e3b9667f

Best regards,
-- 
Nícolas F. R. A. Prado <nfraprado@collabora.com>


^ permalink raw reply related

* Re: [patch 09/24] timekeeping: Add CLOCK_AUX support for ktime_get_snapshot_id()
From: Thomas Gleixner @ 2026-06-26 15:17 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: LKML, David Woodhouse, Miroslav Lichvar, John Stultz,
	Stephen Boyd, Anna-Maria Behnsen, Frederic Weisbecker,
	Arthur Kiyanovski, Rodolfo Giometti, Vincent Donnefort,
	Marc Zyngier, Oliver Upton, kvmarm, Oliver Upton, Richard Cochran,
	netdev, Takashi Iwai, Miri Korenblit, Johannes Berg, Jacob Keller,
	Tony Nguyen, Saeed Mahameed, Peter Hilber, Michael S. Tsirkin,
	virtualization, linux-wireless, linux-sound
In-Reply-To: <20260626125819-d8b197fc-7671-4d12-a578-9025affc52d9@linutronix.de>

On Fri, Jun 26 2026 at 13:03, Thomas Weißschuh wrote:
> On Fri, Jun 26, 2026 at 12:49:41PM +0200, Thomas Gleixner wrote:
>> On Fri, Jun 26 2026 at 10:48, Thomas Weißschuh wrote:
>> > On Tue, May 26, 2026 at 07:14:13PM +0200, Thomas Gleixner wrote:
>> > (...)
>> >
>> >>  static inline void tk_update_aux_offs(struct timekeeper *tk, ktime_t offs)
>> >> @@ -1218,6 +1223,12 @@ bool ktime_get_snapshot_id(struct system
>> >>  		tkd = &tk_core;
>> >>  		offs = &tk_core.timekeeper.offs_boot;
>> >>  		break;
>> >> +	case CLOCK_AUX ... CLOCK_AUX_LAST:
>> >> +		tkd = aux_get_tk_data(clock_id);
>> >> +		if (!tkd)
>> >> +			return false;
>> >> +		offs = &tkd->timekeeper.offs_aux;
>> >> +		break;
>> >
>> > 'tkd' is also used to compute 'monoraw'. However 'tkr_raw' and 'tkr_mono'
>> > are the same for auxilary clocks, so this will compute a wrong 'monoraw'.
>> 
>> AUX clocks are independent in the first place and the MONORAW part is
>> the "MONORAW" related to the AUX clock itself. 
>> 
>> > Instead 'monoraw' should be computed based on 'tk_core'.
>> > Which then also requires the sequence locking of 'tk_core'.
>> 
>> No. From a PTP and steering point of view you want the "raw" value which
>> is related to the AUX clock itself and not the global one.
>
> Ack.
>
> However the kdocs call it 'CLOCK_MONOTONIC_RAW'. Can we clean this up?

Yes. Something like the below?

Thanks,

        tglx
---
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1202,10 +1202,21 @@ static inline u64 tk_clock_read_snapshot
 
 /**
  * ktime_get_snapshot_id -  Simultaneously snapshot a given clock ID with
- *			    CLOCK_MONOTONIC_RAW and the underlying
+ *			    the corresponding monotonic raw the underlying
  *			    clocksource counter value.
  * @clock_id:		The clock ID to snapshot
  * @systime_snapshot:	Pointer to struct receiving the system time snapshot
+ *
+ * For the system time keeping clocks (REALTIME, MONOTONIC and BOOTTIME) the
+ * monotonic raw clock is CLOCK_MONOTONIC_RAW. For AUX clocks this is the
+ * monotonic raw clock related to the AUX clock. These AUX clock related
+ * monotonic raw clocks have a strict linear offset to the system time
+ * CLOCK_MONOTONIC_RAW:
+ *
+ *	MONOTONIC_RAW(AUX$N) = CLOCK_MONOTONIC_RAW(system) + offset(AUX$N)
+ *
+ * The offset is established when a AUX clock is initialized, but it is
+ * currently not accessible.
  */
 void ktime_get_snapshot_id(clockid_t clock_id, struct system_time_snapshot *systime_snapshot)
 {
@@ -1512,6 +1523,9 @@ EXPORT_SYMBOL_GPL(ktime_real_to_base_clo
  * @xtstamp:		Receives simultaneously captured system and device time
  *
  * Reads a timestamp from a device and correlates it to system time
+ *
+ * See documentation for ktime_get_snapshot_id() for information about the raw
+ * monotonic time stamp which is used here.
  */
 int get_device_system_crosststamp(int (*get_time_fn)
 				  (ktime_t *device_time,


^ permalink raw reply

* RE: [PATCH] Fix possible strscpy() buffer overflows
From: Datta, Shubhrajyoti @ 2026-06-26 14:37 UTC (permalink / raw)
  To: David Laight, Borislav Petkov
  Cc: Andrei Purdea, Geraldo Nascimento, Alexander A. Klimov, Tony Luck,
	Kees Cook, Arnd Bergmann, Greg Kroah-Hartman, Nick Li,
	Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	linux-edac@vger.kernel.org, Linux Kernel Mailing List,
	linux-sound@vger.kernel.org
In-Reply-To: <20260511201559.2a9fc8e8@pumpkin>



> -----Original Message-----
> From: David Laight <david.laight.linux@gmail.com>
> Sent: Tuesday, May 12, 2026 12:46 AM
> To: Borislav Petkov <bp@alien8.de>
> Cc: Andrei Purdea <andrei@purdea.ro>; Datta, Shubhrajyoti
> <shubhrajyoti.datta@amd.com>; Geraldo Nascimento
> <geraldogabriel@gmail.com>; Alexander A. Klimov
> <grandmaster@al2klimov.de>; Tony Luck <tony.luck@intel.com>; Kees Cook
> <kees@kernel.org>; Arnd Bergmann <arnd@arndb.de>; Greg Kroah-Hartman
> <gregkh@linuxfoundation.org>; Nick Li <nick.li@foursemi.com>; Liam
> Girdwood <lgirdwood@gmail.com>; Mark Brown <broonie@kernel.org>;
> Jaroslav Kysela <perex@perex.cz>; Takashi Iwai <tiwai@suse.com>; linux-
> edac@vger.kernel.org; Linux Kernel Mailing List <linux-
> kernel@vger.kernel.org>; linux-sound@vger.kernel.org
> Subject: Re: [PATCH] Fix possible strscpy() buffer overflows
> 

...
> 
> It would be better if amd_rpmsg_id_table[] were 'const' - in that case the
> strscpy() call should 'degenerate' into a memcpy().

Here the channel is error_ipc 
So instead of copying we can initialize the name.

diff --git a/drivers/edac/versalnet_edac.c b/drivers/edac/versalnet_edac.c
index 18284c76651c..161bde2b14ba 100644
--- a/drivers/edac/versalnet_edac.c
+++ b/drivers/edac/versalnet_edac.c
@@ -720,14 +720,14 @@ MODULE_DEVICE_TABLE(rpmsg, amd_rpmsg_id_table);

 static int rpmsg_probe(struct rpmsg_device *rpdev)
 {
-       struct rpmsg_channel_info chinfo;
        struct mc_priv *pg;
+       struct rpmsg_channel_info chinfo = {
+               .src = RPMSG_ADDR_ANY,
+               .dst = rpdev->dst,
+               .name = "error_ipc",
+       };

        pg = (struct mc_priv *)amd_rpmsg_id_table[0].driver_data;
-       chinfo.src = RPMSG_ADDR_ANY;
-       chinfo.dst = rpdev->dst;
-       strscpy(chinfo.name, amd_rpmsg_id_table[0].name,
-               strlen(amd_rpmsg_id_table[0].name));

        pg->ept = rpmsg_create_ept(rpdev, rpmsg_cb, NULL, chinfo);
        if (!pg->ept)
> 
> -- David
> 
> 
> >
> > In case someone goes and changes that amd_rpmsg_id_table[0].name in
> > the future.
> >


^ permalink raw reply related

* Re: [PATCH 1/2] ASoC: sof: nocodec: tidyup sof_nocodec_bes_setup()
From: Mark Brown @ 2026-06-26 14:34 UTC (permalink / raw)
  To: Kuninori Morimoto
  Cc: Bard Liao, Daniel Baluta, Jaroslav Kysela, Kai Vehmanen,
	Liam Girdwood, linux-sound, Peter Ujfalusi, Pierre-Louis Bossart,
	Takashi Iwai
In-Reply-To: <87o6gxeu2m.wl-kuninori.morimoto.gx@renesas.com>

[-- Attachment #1: Type: text/plain, Size: 559 bytes --]

On Fri, Jun 26, 2026 at 05:42:33AM +0000, Kuninori Morimoto wrote:
> It has only 1 card (= sof_nocodec_card). No need to use parameter
> to get it.

>  static int sof_nocodec_bes_setup(struct device *dev,
>  				 struct snd_soc_dai_driver *drv,
>  				 struct snd_soc_dai_link *links,
> -				 int link_num, struct snd_soc_card *card)
> +				 int link_num)
>  {
> +	struct snd_soc_card *card = &sof_nocodec_card;
>  	struct snd_soc_dai_link_component *dlc;
>  	int i;
>  

The function still checks the card is non-NULL which is now redundant.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply

* Re: [PATCH v3 5/6] ASoC: codecs: ES8389: Add private members about HPF
From: Mark Brown @ 2026-06-26 14:08 UTC (permalink / raw)
  To: Zhang Yi; +Cc: linux-sound, tiwai
In-Reply-To: <20260626113614.27893-6-zhangyi@everest-semi.com>

[-- Attachment #1: Type: text/plain, Size: 561 bytes --]

On Fri, Jun 26, 2026 at 07:36:13PM +0800, Zhang Yi wrote:
> Add private members related to HPF.
> Add Kcontrol for HPF

> +static bool find_best_hpf_freq(u32 target_hz, u8 *hpf1, u8 *hpf2, u32 *out)
> +{
> +	int best_row = -1, best_col = -1;
> +	u32 min_diff = U32_MAX;
> +	u32 f, diff;
> +	int i, j;
> +
> +	if ((target_hz > 1020) | (target_hz < 0))
> +		return false;

This says the maximum target is 1020Hz...

> +	SOC_SINGLE_EXT("ADC HPF Freq Select", SND_SOC_NOPM, 0, 1021, 0,
> +				es8389_hpf_get, es8389_hpf_set),

...but the control goes up to 1021Hz?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply

* Re: [PATCH v3 3/6] ASoC: codecs: ES8389: Modify the clock table
From: Mark Brown @ 2026-06-26 14:06 UTC (permalink / raw)
  To: Zhang Yi; +Cc: linux-sound, tiwai
In-Reply-To: <20260626113614.27893-4-zhangyi@everest-semi.com>

[-- Attachment #1: Type: text/plain, Size: 283 bytes --]

On Fri, Jun 26, 2026 at 07:36:11PM +0800, Zhang Yi wrote:

> Updated the configuration for certain frequencies
> If get_coeff does not find a value that matches the condition, return -EINVAL

Do we have values for all advertised sample rates?  I'm not seeing
11.025kHz for exaample.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply

* Re: [PATCH v3 2/6] ASoC: codecs: ES8389: Fix the issue about mclk_src
From: Mark Brown @ 2026-06-26 14:04 UTC (permalink / raw)
  To: Zhang Yi; +Cc: linux-sound, tiwai
In-Reply-To: <20260626113614.27893-3-zhangyi@everest-semi.com>

[-- Attachment #1: Type: text/plain, Size: 1171 bytes --]

On Fri, Jun 26, 2026 at 07:36:10PM +0800, Zhang Yi wrote:
> Fix the issue with incorrect modifications to mclk_src
> When the system needs to be configured to use the MCLK from the SCLK pin,
> the code still sets the relevant registers to use the MCLK from the MCLK pin

>  	es8389->mclk = devm_clk_get_optional(component->dev, "mclk");
> -	if (IS_ERR(es8389->mclk))
> -		return dev_err_probe(component->dev, PTR_ERR(es8389->mclk),
> -			"ES8389 is unable to get mclk\n");
> -
> -	if (!es8389->mclk)
> -		dev_err(component->dev, "%s, assuming static mclk\n", __func__);
> +	if (IS_ERR(es8389->mclk)) {
> +		/*
> +		 * If the MCLK property cannot be accessed,
> +		 * switch the codec's internal MCLK_SOURCE to the SCLK pin.
> +		 */
> +		es8389->mclk_src = ES8389_SCLK_PIN;

If there's an actual error here I'd expect us to return the error code
rather than silently ignore the clock....

> +	} else {
> +		if (!es8389->mclk)
> +			dev_err(component->dev, "%s, assuming static mclk\n", __func__);

...if it's genuinely missing we'll end up in this case (which shouldn't
be reported as an error, that's a totally valid configuration).
Consider for example -EPROBE_DEFER.


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply

* Re: [PATCH 15/24] ASoC: codecs: cs42l43: Use guard() and PM runtime scope helpers
From: Bui Duc Phuc @ 2026-06-26 12:57 UTC (permalink / raw)
  To: Charles Keepax
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <aj5a7pgaDoN30Gs5@opensource.cirrus.com>

> > ---
> > -     if (!jack)
> > -             goto done;
> > +     if (!jack) {
> > +             regmap_update_bits(cs42l43->regmap, CS42L43_HS_BIAS_SENSE_AND_CLAMP_AUTOCONTROL,
> > +                                CS42L43_JACKDET_MODE_MASK |
> > +                                CS42L43_S0_AUTO_ADCMUTE_DISABLE_MASK |
> > +                                CS42L43_HSBIAS_SENSE_TRIP_MASK, autocontrol);
> > +             regmap_update_bits(cs42l43->regmap, CS42L43_PDNCNTL,
> > +                                CS42L43_RING_SENSE_EN_MASK, pdncntl);
> > +             dev_dbg(priv->dev, "Successfully configured accessory detect\n");
> > +
> > +             return 0;
>
> I really don't like this duplicating of code blocks, it takes us
> to a situation we always need to remember to update both blocks
> in sync which feels like it makes reviewing future patches very
> error prone.
>

Hi Charles,

I understand your concern about duplicating the code.

My reasoning is that duplicating this block once lets us eliminate 12
`goto` labels,
which I think makes the overall flow easier to follow. To me, that's a
reasonable trade-off.

If you have a cleaner approach that avoids both the duplicated block
and the 12 `goto` labels,
I'd be happy to adopt it.

Best regards,
Phuc

^ permalink raw reply

* Re: [PATCH 14/24] ASoC: codecs: cs42l42: Use guard() cleanup helpers
From: Charles Keepax @ 2026-06-26 12:18 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-15-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:19PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() helpers for mutex locking
> and PM runtime management.
> No functional change intended.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply

* Re: [PATCH 23/24] ASoC: codecs: cs48l32: Use guard() for mutex locks
From: Charles Keepax @ 2026-06-26 12:15 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-24-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:28PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---
> -		snd_soc_component_update_bits(component, base + CS48L32_ASP_CONTROL1,
> -					      CS48L32_ASP_RATE_MASK, target_asp_rate);
> -
> -		if (change_rate_domain) {
> -			cs48l32_spin_sysclk(cs48l32_codec);
> -			mutex_unlock(&cs48l32_codec->rate_lock);
> +			scoped_guard(mutex, &cs48l32_codec->rate_lock) {
> +				cs48l32_spin_sysclk(cs48l32_codec);
> +				snd_soc_component_update_bits(component,
> +							      base + CS48L32_ASP_CONTROL1,
> +							      CS48L32_ASP_RATE_MASK,
> +							      target_asp_rate);
> +				cs48l32_spin_sysclk(cs48l32_codec);
> +			}
> +		} else {
> +			snd_soc_component_update_bits(component, base + CS48L32_ASP_CONTROL1,
> +						      CS48L32_ASP_RATE_MASK, target_asp_rate);

We can just drop this second write, update_bits won't do a
write if the bits don't change and we know they won't from the
read earlier. The original code was a bit odd, but might as well
clean it up whilst we are shuffling this all around.

Thanks,
Charles

^ permalink raw reply

* Re: [PATCH 03/24] ASoC: codecs: arizona-jack: Use guard() cleanup helpers
From: Charles Keepax @ 2026-06-26 12:06 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-4-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:08PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() helpers for mutex locking
> and PM runtime management.
> No functional change intended.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---
> @@ -1057,7 +1051,14 @@ static irqreturn_t arizona_jackdet(int irq, void *data)
>  					   msecs_to_jiffies(micd_timeout));
>  		}
>  
> -		goto out;
> +		/* Clear trig_sts to make sure DCVDD is not forced up */
> +		regmap_write(arizona->regmap, ARIZONA_AOD_WKUP_AND_TRIG,
> +			     ARIZONA_MICD_CLAMP_FALL_TRIG_STS |
> +			     ARIZONA_MICD_CLAMP_RISE_TRIG_STS |
> +			     ARIZONA_JD1_FALL_TRIG_STS |
> +			     ARIZONA_JD1_RISE_TRIG_STS);
> +
> +		return IRQ_HANDLED;

Like cs42l43 I am really not sure about this duplicated code
block.

Thanks,
Charles

^ permalink raw reply

* Re: [PATCH 22/24] ASoC: codecs: cs47l92: Use guard() for mutex locks
From: Charles Keepax @ 2026-06-26 12:04 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-23-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:27PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply

* Re: [PATCH 21/24] ASoC: codecs: cs47l90: Use guard() for mutex locks
From: Charles Keepax @ 2026-06-26 12:03 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-22-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:26PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply

* Re: [PATCH 20/24] ASoC: codecs: cs47l85: Use guard() for mutex locks
From: Charles Keepax @ 2026-06-26 12:03 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-21-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:25PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply

* Re: [PATCH 19/24] ASoC: codecs: cs47l35: Use guard() for mutex locks
From: Charles Keepax @ 2026-06-26 12:03 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-20-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:24PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply

* Re: [PATCH 18/24] ASoC: codecs: cs47l15: Use guard() for mutex locks
From: Charles Keepax @ 2026-06-26 12:02 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Mark Brown, Takashi Iwai, Tzung-Bi Shih, David Rhodes,
	Liam Girdwood, Jaroslav Kysela, Cheng-Yi Chiang, Guenter Roeck,
	Benson Leung, Richard Fitzgerald, povik+lin, linux-sound,
	linux-kernel, patches, chrome-platform, asahi
In-Reply-To: <20260626061329.23264-19-phucduc.bui@gmail.com>

On Fri, Jun 26, 2026 at 01:13:23PM +0700, phucduc.bui@gmail.com wrote:
> From: bui duc phuc <phucduc.bui@gmail.com>
> 
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
> 
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply

* [PATCH v3 5/6] ASoC: codecs: ES8389: Add private members about HPF
From: Zhang Yi @ 2026-06-26 11:36 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi
In-Reply-To: <20260626113614.27893-1-zhangyi@everest-semi.com>

Add private members related to HPF.
Add Kcontrol for HPF

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
---
 sound/soc/codecs/es8389.c | 122 +++++++++++++++++++++++++++++++++++++-
 sound/soc/codecs/es8389.h |   3 +
 2 files changed, 123 insertions(+), 2 deletions(-)

diff --git a/sound/soc/codecs/es8389.c b/sound/soc/codecs/es8389.c
index 8ae0757aa..742c7f78b 100644
--- a/sound/soc/codecs/es8389.c
+++ b/sound/soc/codecs/es8389.c
@@ -36,6 +36,10 @@ struct	es8389_private {
 	unsigned int sysclk;
 	int mastermode;
 
+	u8 hpfl;
+	u8 hpfr;
+	u32 hpf_freq;
+	u32 capture_rate;
 	u8 mclk_src;
 	u8 vddd;
 	int version;
@@ -82,6 +86,92 @@ static const DECLARE_TLV_DB_SCALE(mix_vol_tlv, -9500, 100, 0);
 static const DECLARE_TLV_DB_SCALE(alc_target_tlv, -3200, 200, 0);
 static const DECLARE_TLV_DB_SCALE(alc_max_level, -3200, 200, 0);
 
+static const u32 hpf_table[10][10] = {
+	{1020, 754, 624, 559, 527, 511, 502, 498, 497, 496},
+	{754, 495, 368, 306, 274, 259, 251, 247, 246, 244},
+	{624, 368, 243, 182, 151, 136, 128, 124, 123, 121},
+	{559, 306, 182, 120, 90, 75, 68, 63, 62, 60},
+	{527, 274, 151, 90, 60, 45, 38, 33, 32, 31},
+	{511, 259, 136, 75, 45, 30, 23, 19, 18, 17},
+	{502, 251, 128, 68, 38, 23, 16, 13, 11, 11},
+	{498, 247, 124, 63, 33, 19, 13, 10, 8, 8},
+	{497, 246, 123, 62, 32, 18, 11, 8, 8, 0},
+	{496, 244, 121, 60, 31, 17, 11, 8, 0, 0}
+};
+
+static bool find_best_hpf_freq(u32 target_hz, u8 *hpf1, u8 *hpf2, u32 *out)
+{
+	int best_row = -1, best_col = -1;
+	u32 min_diff = U32_MAX;
+	u32 f, diff;
+	int i, j;
+
+	if ((target_hz > 1020) | (target_hz < 0))
+		return false;
+
+	for (i = 0; i < 10; i++) {
+		for (j = i; j < 10; j++) {
+			f = hpf_table[i][j];
+
+			diff = (target_hz > f) ? (target_hz - f) : (f - target_hz);
+			if (diff < min_diff) {
+				min_diff = diff;
+				best_row = i;
+				best_col = j;
+				*out = f;
+			}
+		}
+	}
+
+	*hpf1 = best_col + ES8389_HPF_OFFSET;
+	*hpf2 = best_row + ES8389_HPF_OFFSET;
+
+	return true;
+}
+
+static int es8389_hpf_get(struct snd_kcontrol *kcontrol,
+	struct snd_ctl_elem_value *ucontrol)
+{
+	struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
+	struct es8389_private *es8389 = snd_soc_component_get_drvdata(component);
+
+	ucontrol->value.integer.value[0] = es8389->hpf_freq;
+	return 0;
+}
+
+static int es8389_hpf_set(struct snd_kcontrol *kcontrol,
+	struct snd_ctl_elem_value *ucontrol)
+{
+	struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
+	struct es8389_private *es8389 = snd_soc_component_get_drvdata(component);
+	u32 freq;
+	bool hpf;
+
+	if (es8389->hpf_freq == ucontrol->value.integer.value[0])
+		return 0;
+
+	if (es8389->capture_rate) {
+		freq = (ucontrol->value.integer.value[0] * 48000) / es8389->capture_rate;
+
+		hpf = find_best_hpf_freq(freq, &es8389->hpfl, &es8389->hpfr, &es8389->hpf_freq);
+		if (!hpf)
+			return -EBUSY;
+
+		if (es8389->hpf_freq != ucontrol->value.integer.value[0])
+			dev_dbg(component->dev, "At the %u Hz sampling rate, %ld Hz could not be obtained."
+				"the frequency has been set to the closest value, %u Hz\n",
+				es8389->capture_rate, ucontrol->value.integer.value[0], es8389->hpf_freq);
+
+		regmap_update_bits(es8389->regmap, ES8389_ADC_HPF1, 0x0f, es8389->hpfl);
+		regmap_update_bits(es8389->regmap, ES8389_ADC_HPF2, 0x0f, es8389->hpfr);
+	} else {
+		es8389->hpf_freq = ucontrol->value.integer.value[0];
+		dev_dbg(component->dev, "PCM_STREAM_CAPTURE is not active.retain the input frequency\n");
+	}
+
+	return 1;
+}
+
 static int es8389_dmic_set(struct snd_kcontrol *kcontrol,
 	struct snd_ctl_elem_value *ucontrol)
 {
@@ -259,6 +349,8 @@ static const struct snd_kcontrol_new es8389_snd_controls[] = {
 	SOC_DOUBLE("ADC OSR Volume ON Switch", ES8389_ADC_MUTE, 6, 7, 1, 0),
 	SOC_SINGLE_TLV("ADC OSR Volume", ES8389_OSR_VOL, 0, 0xFF, 0, adc_vol_tlv),
 	SOC_DOUBLE("ADC OUTPUT Invert Switch", ES8389_ADC_HPF2, 5, 6, 1, 0),
+	SOC_SINGLE_EXT("ADC HPF Freq Select", SND_SOC_NOPM, 0, 1021, 0,
+				es8389_hpf_get, es8389_hpf_set),
 
 	SOC_SINGLE_TLV("DACL Playback Volume", ES8389_DACL_VOL, 0, 0xFF, 0, dac_vol_tlv),
 	SOC_SINGLE_TLV("DACR Playback Volume", ES8389_DACR_VOL, 0, 0xFF, 0, dac_vol_tlv),
@@ -585,6 +677,8 @@ static int es8389_pcm_hw_params(struct snd_pcm_substream *substream,
 	int coeff, ret;
 	u8 dmic_enable, state = 0;
 	unsigned int regv;
+	u32 freq;
+	bool hpf;
 
 	switch (params_format(params)) {
 	case SNDRV_PCM_FORMAT_S16_LE:
@@ -663,6 +757,28 @@ static int es8389_pcm_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
+	if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
+		es8389->capture_rate = params_rate(params);
+		freq = (es8389->hpf_freq * 48000) / params_rate(params);
+		hpf = find_best_hpf_freq(freq, &es8389->hpfl, &es8389->hpfr, &es8389->hpf_freq);
+		if (!hpf) {
+			dev_err(component->dev, "The HPF frequency is invalid\n");
+			return -EINVAL;
+		}
+	}
+
+	return 0;
+}
+
+static int es8389_pcm_hw_free(struct snd_pcm_substream *substream,
+		struct snd_soc_dai *dai)
+{
+	struct snd_soc_component *component = dai->component;
+	struct es8389_private *es8389 = snd_soc_component_get_drvdata(component);
+
+	if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
+		es8389->capture_rate = 0;
+
 	return 0;
 }
 
@@ -743,8 +859,8 @@ static int es8389_mute(struct snd_soc_dai *dai, int mute, int direction)
 			regmap_update_bits(es8389->regmap, ES8389_DAC_FORMAT_MUTE,
 						0x03, 0x00);
 		} else {
-			regmap_update_bits(es8389->regmap, ES8389_ADC_HPF1, 0x0f, 0x0a);
-			regmap_update_bits(es8389->regmap, ES8389_ADC_HPF2, 0x0f, 0x0a);
+			regmap_update_bits(es8389->regmap, ES8389_ADC_HPF1, 0x0f, es8389->hpfl);
+			regmap_update_bits(es8389->regmap, ES8389_ADC_HPF2, 0x0f, es8389->hpfr);
 			regmap_update_bits(es8389->regmap, ES8389_ADC_FORMAT_MUTE,
 						0x03, 0x00);
 		}
@@ -760,6 +876,7 @@ static int es8389_mute(struct snd_soc_dai *dai, int mute, int direction)
 
 static const struct snd_soc_dai_ops es8389_ops = {
 	.hw_params = es8389_pcm_hw_params,
+	.hw_free = es8389_pcm_hw_free,
 	.set_fmt = es8389_set_dai_fmt,
 	.set_sysclk = es8389_set_dai_sysclk,
 	.set_tdm_slot = es8389_set_tdm_slot,
@@ -939,6 +1056,7 @@ static int es8389_probe(struct snd_soc_component *component)
 		return ret;
 	}
 
+	es8389->hpf_freq = ES8389_HPF_DEFAULT;
 	es8389_init(component);
 	es8389_set_bias_level(component, SND_SOC_BIAS_STANDBY);
 
diff --git a/sound/soc/codecs/es8389.h b/sound/soc/codecs/es8389.h
index 57bf7c5f8..de39e9bf9 100644
--- a/sound/soc/codecs/es8389.h
+++ b/sound/soc/codecs/es8389.h
@@ -106,6 +106,9 @@
 #define ES8389_MIC_SEL_MASK           (7 << 4)
 #define ES8389_MIC_DEFAULT            (1 << 4)
 
+#define ES8389_HPF_DEFAULT            16
+#define ES8389_HPF_OFFSET             4
+
 #define ES8389_MASTER_MODE_EN         (1 << 0)
 
 #define ES8389_TDM_OFF                (0 << 0)
-- 
2.17.1


^ permalink raw reply related

* [PATCH v3 4/6] ASoC: codecs: ES8389: Modify the initial configuration
From: Zhang Yi @ 2026-06-26 11:36 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi
In-Reply-To: <20260626113614.27893-1-zhangyi@everest-semi.com>

Modify the initial configuration

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
---
 sound/soc/codecs/es8389.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/codecs/es8389.c b/sound/soc/codecs/es8389.c
index 14768e654..8ae0757aa 100644
--- a/sound/soc/codecs/es8389.c
+++ b/sound/soc/codecs/es8389.c
@@ -793,7 +793,7 @@ static void es8389_init(struct snd_soc_component *component)
 
 	regmap_read(es8389->regmap, ES8389_MAX_REGISTER, &reg);
 	es8389->version = reg;
-	regmap_write(es8389->regmap, ES8389_ISO_CTL, 0x00);
+	regmap_write(es8389->regmap, ES8389_ISO_CTL, 0x56);
 	regmap_write(es8389->regmap, ES8389_RESET, 0x7E);
 	regmap_write(es8389->regmap, ES8389_ISO_CTL, 0x38);
 	regmap_write(es8389->regmap, ES8389_ADC_HPF1, 0x64);
@@ -845,7 +845,7 @@ static void es8389_init(struct snd_soc_component *component)
 	regmap_write(es8389->regmap, ES8389_SCLK_DIV, 0x04);
 	regmap_write(es8389->regmap, ES8389_LRCK_DIV1, 0x01);
 	regmap_write(es8389->regmap, ES8389_LRCK_DIV2, 0x00);
-	regmap_write(es8389->regmap, ES8389_OSC_CLK, 0x00);
+	regmap_write(es8389->regmap, ES8389_OSC_CLK, 0x10);
 	regmap_write(es8389->regmap, ES8389_ADC_OSR, 0x1F);
 	regmap_write(es8389->regmap, ES8389_ADC_DSP, 0x7F);
 	regmap_write(es8389->regmap, ES8389_ADC_MUTE, 0xC0);
-- 
2.17.1


^ permalink raw reply related

* [PATCH v3 6/6] ASoC: codecs: ES8389: Add INPUTL MUX and INPUTR MUX
From: Zhang Yi @ 2026-06-26 11:36 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi
In-Reply-To: <20260626113614.27893-1-zhangyi@everest-semi.com>

Add INPUTL MUX and INPUTR MUX in route

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
---
 sound/soc/codecs/es8389.c | 35 +++++++++++++++++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/sound/soc/codecs/es8389.c b/sound/soc/codecs/es8389.c
index 742c7f78b..8c4a90586 100644
--- a/sound/soc/codecs/es8389.c
+++ b/sound/soc/codecs/es8389.c
@@ -252,6 +252,16 @@ static const struct soc_enum alc_ramprate =
 static const struct soc_enum alc_winsize =
 	SOC_ENUM_SINGLE(ES8389_ALC_CTL, 0, 16, winsize);
 
+static const char *const es8389_adcl_mux_txt[] = {
+	"Normal",
+	"ADC2 channel to ADC1 channel",
+};
+
+static const char *const es8389_adcr_mux_txt[] = {
+	"Normal",
+	"ADC1 channel to ADC2 channel",
+};
+
 static const char *const es8389_outl_mux_txt[] = {
 	"Normal",
 	"DAC2 channel to DAC1 channel",
@@ -279,6 +289,20 @@ static const unsigned int es8389_pga_values[] = {
 	1, 5, 6
 };
 
+static const struct soc_enum es8389_adcl_mux_enum =
+	SOC_ENUM_SINGLE(ES8389_ADC_MODE, 5,
+			ARRAY_SIZE(es8389_adcl_mux_txt), es8389_adcl_mux_txt);
+
+static const struct snd_kcontrol_new es8389_adcl_mux_controls =
+	SOC_DAPM_ENUM("INPUTL MUX", es8389_adcl_mux_enum);
+
+static const struct soc_enum es8389_adcr_mux_enum =
+	SOC_ENUM_SINGLE(ES8389_ADC_MODE, 4,
+			ARRAY_SIZE(es8389_adcr_mux_txt), es8389_adcr_mux_txt);
+
+static const struct snd_kcontrol_new es8389_adcr_mux_controls =
+	SOC_DAPM_ENUM("INPUTR MUX", es8389_adcr_mux_enum);
+
 static const struct soc_enum es8389_outl_mux_enum =
 	SOC_ENUM_SINGLE(ES8389_DAC_MIX, 5,
 			ARRAY_SIZE(es8389_outl_mux_txt), es8389_outl_mux_txt);
@@ -409,6 +433,8 @@ static const struct snd_soc_dapm_widget es8389_dapm_widgets[] = {
 			   &es8389_adc_mixer_controls[0],
 			   ARRAY_SIZE(es8389_adc_mixer_controls)),
 	SND_SOC_DAPM_MUX("ADC MUX", SND_SOC_NOPM, 0, 0, &es8389_dmic_mux_controls),
+	SND_SOC_DAPM_MUX("INPUTL MUX", SND_SOC_NOPM, 0, 0, &es8389_adcl_mux_controls),
+	SND_SOC_DAPM_MUX("INPUTR MUX", SND_SOC_NOPM, 0, 0, &es8389_adcr_mux_controls),
 
 	SND_SOC_DAPM_MUX("OUTL MUX", SND_SOC_NOPM, 0, 0, &es8389_outl_mux_controls),
 	SND_SOC_DAPM_MUX("OUTR MUX", SND_SOC_NOPM, 0, 0, &es8389_outr_mux_controls),
@@ -422,10 +448,15 @@ static const struct snd_soc_dapm_route es8389_dapm_routes[] = {
 	{"ADCL", NULL, "PGAL"},
 	{"ADCR", NULL, "PGAR"},
 
+	{"INPUTL MUX", "Normal", "ADCL"},
+	{"INPUTL MUX", "ADC2 channel to ADC1 channel", "ADCR"},
+	{"INPUTR MUX", "Normal", "ADCR"},
+	{"INPUTR MUX", "ADC1 channel to ADC2 channel", "ADCL"},
+
 	{"ADC Mixer", "DACL ADCL Mixer", "DACL"},
 	{"ADC Mixer", "DACR ADCR Mixer", "DACR"},
-	{"ADC Mixer", NULL, "ADCL"},
-	{"ADC Mixer", NULL, "ADCR"},
+	{"ADC Mixer", NULL, "INPUTL MUX"},
+	{"ADC Mixer", NULL, "INPUTR MUX"},
 
 	{"ADC MUX", "AMIC", "ADC Mixer"},
 	{"ADC MUX", "DMIC", "DMIC"},
-- 
2.17.1


^ permalink raw reply related

* [PATCH v3 3/6] ASoC: codecs: ES8389: Modify the clock table
From: Zhang Yi @ 2026-06-26 11:36 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi
In-Reply-To: <20260626113614.27893-1-zhangyi@everest-semi.com>

Updated the configuration for certain frequencies
If get_coeff does not find a value that matches the condition, return -EINVAL

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
---
 sound/soc/codecs/es8389.c | 49 +++++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/sound/soc/codecs/es8389.c b/sound/soc/codecs/es8389.c
index 6834508ee..14768e654 100644
--- a/sound/soc/codecs/es8389.c
+++ b/sound/soc/codecs/es8389.c
@@ -434,52 +434,54 @@ static const struct _coeff_div  coeff_div[] = {
 	{36, 576000, 16000, 0x00, 0x55, 0x84, 0xD0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x23, 0x8F, 0xBF, 0xC0, 0x1F, 0x8F, 0x01, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{48, 768000, 16000, 0x02, 0x57, 0x04, 0xC0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{50, 800000, 16000, 0x00, 0x7E, 0x01, 0xD9, 0x00, 0xC2, 0x80, 0x00, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0xC7, 0x95, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
-	{64, 1024000, 16000, 0x00, 0x45, 0x24, 0xC0, 0x01, 0xD1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
-	{72, 1152000, 16000, 0x00, 0x45, 0x24, 0xC0, 0x01, 0xD1, 0x90, 0x00, 0x00, 0x23, 0x8F, 0xBF, 0xC0, 0x1F, 0x8F, 0x01, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{64, 1024000, 16000, 0x00, 0x45, 0x24, 0xC0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{72, 1152000, 16000, 0x00, 0x45, 0x24, 0xC0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x23, 0x8F, 0xBF, 0xC0, 0x1F, 0x8F, 0x01, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{96, 1536000, 16000, 0x02, 0x55, 0x84, 0xD0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{128, 2048000, 16000, 0x00, 0x51, 0x04, 0xD0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{144, 2304000, 16000, 0x00, 0x51, 0x00, 0xC0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x23, 0x8F, 0xBF, 0xC0, 0x1F, 0x8F, 0x01, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{150, 2400000, 16000, 0x02, 0x7E, 0x01, 0xC9, 0x00, 0xC2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0xC7, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{192, 3072000, 16000, 0x02, 0x65, 0x25, 0xE0, 0x00, 0xE1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
-	{256, 4096000, 16000, 0x00, 0x41, 0x04, 0xC0, 0x01, 0xD1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{256, 4096000, 16000, 0x00, 0x41, 0x04, 0xC0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{300, 4800000, 16000, 0x02, 0x66, 0x01, 0xD9, 0x00, 0xC2, 0x80, 0x00, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0xC7, 0x95, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{384, 6144000, 16000, 0x02, 0x51, 0x04, 0xD0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
-	{512, 8192000, 16000, 0x01, 0x41, 0x04, 0xC0, 0x01, 0xD1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{512, 8192000, 16000, 0x01, 0x41, 0x04, 0xC0, 0x01, 0xC1, 0x90, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{750, 12000000, 16000, 0x0E, 0x7E, 0x01, 0xC9, 0x00, 0xC2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0xC7, 0x95, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
-	{768, 12288000, 16000, 0x02, 0x41, 0x04, 0xC0, 0x01, 0xD1, 0x90, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
-	{1024, 16384000, 16000, 0x03, 0x41, 0x04, 0xC0, 0x01, 0xD1, 0x90, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{768, 12288000, 16000, 0x02, 0x41, 0x04, 0xC0, 0x01, 0xC1, 0x90, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{1024, 16384000, 16000, 0x03, 0x41, 0x04, 0xC0, 0x01, 0xC1, 0x90, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{1152, 18432000, 16000, 0x08, 0x51, 0x04, 0xD0, 0x01, 0xC1, 0x90, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{1200, 19200000, 16000, 0x0B, 0x66, 0x01, 0xD9, 0x00, 0xC2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0xC7, 0x95, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{1500, 24000000, 16000, 0x0E, 0x26, 0x01, 0xD9, 0x00, 0xC2, 0x80, 0xC0, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0xC7, 0x95, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
-	{1536, 24576000, 16000, 0x05, 0x41, 0x04, 0xC0, 0x01, 0xD1, 0x90, 0xC0, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
+	{1536, 24576000, 16000, 0x05, 0x41, 0x04, 0xC0, 0x01, 0xC1, 0x90, 0xC0, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0xFF, 0x7F, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{1625, 26000000, 16000, 0x40, 0x6E, 0x05, 0xC8, 0x01, 0xC2, 0x90, 0xC0, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x12, 0x31, 0x0E, 2, 2},
 	{800, 19200000, 24000, 0x07, 0x66, 0x01, 0xD9, 0x00, 0xC2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0xC7, 0x95, 0x00, 0x12, 0x00, 0x1A, 0x49, 0x14, 2, 2},
 	{375, 12000000, 32000, 0x0E, 0x2E, 0x05, 0xC8, 0x00, 0xC2, 0x80, 0x40, 0x01, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x23, 0x61, 0x1B, 2, 0},
-	{600, 19200000, 32000, 0x05, 0x46, 0x01, 0xD8, 0x10, 0xD2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x23, 0x61, 0x1B, 2, 2},
-	{32, 1411200, 44100, 0x00, 0x45, 0xA4, 0xD0, 0x10, 0xD1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{600, 19200000, 32000, 0x05, 0x46, 0x01, 0xD8, 0x10, 0xC2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x23, 0x61, 0x1B, 2, 2},
+	{32, 1411200, 44100, 0x00, 0x45, 0xA4, 0xD0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{64, 2822400, 44100, 0x00, 0x51, 0x00, 0xC0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{128, 5644800, 44100, 0x00, 0x41, 0x04, 0xD0, 0x10, 0xD1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{256, 11289600, 44100, 0x01, 0x41, 0x04, 0xD0, 0x10, 0xD1, 0x80, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{512, 22579200, 44100, 0x03, 0x41, 0x04, 0xD0, 0x10, 0xD1, 0x80, 0xC0, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{32, 1536000, 48000, 0x00, 0x45, 0xA4, 0xD0, 0x10, 0xD1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{128, 5644800, 44100, 0x00, 0x41, 0x04, 0xD0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{256, 11289600, 44100, 0x01, 0x41, 0x04, 0xD0, 0x10, 0xC1, 0x80, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{512, 22579200, 44100, 0x03, 0x41, 0x04, 0xD0, 0x10, 0xC1, 0x80, 0xC0, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{32, 1536000, 48000, 0x00, 0x45, 0xA4, 0xD0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{48, 2304000, 48000, 0x02, 0x55, 0x04, 0xC0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{50, 2400000, 48000, 0x00, 0x76, 0x01, 0xC8, 0x10, 0xC2, 0x80, 0x00, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{64, 3072000, 48000, 0x00, 0x51, 0x04, 0xC0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{100, 4800000, 48000, 0x00, 0x46, 0x01, 0xD8, 0x10, 0xD2, 0x80, 0x00, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{100, 4800000, 48000, 0x00, 0x46, 0x01, 0xD8, 0x10, 0xC2, 0x80, 0x00, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{125, 6000000, 48000, 0x04, 0x6E, 0x05, 0xC8, 0x10, 0xC2, 0x80, 0x00, 0x01, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{128, 6144000, 48000, 0x00, 0x41, 0x04, 0xD0, 0x10, 0xD1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{200, 9600000, 48000, 0x01, 0x46, 0x01, 0xD8, 0x10, 0xD2, 0x80, 0x00, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{128, 6144000, 48000, 0x00, 0x41, 0x04, 0xD0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{200, 9600000, 48000, 0x01, 0x46, 0x01, 0xD8, 0x10, 0xC2, 0x80, 0x00, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{250, 12000000, 48000, 0x04, 0x76, 0x01, 0xC8, 0x10, 0xC2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{256, 12288000, 48000, 0x01, 0x41, 0x04, 0xD0, 0x10, 0xD1, 0x80, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{384, 18432000, 48000, 0x02, 0x41, 0x04, 0xD0, 0x10, 0xD1, 0x80, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{400, 19200000, 48000, 0x03, 0x46, 0x01, 0xD8, 0x10, 0xD2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{500, 24000000, 48000, 0x04, 0x46, 0x01, 0xD8, 0x10, 0xD2, 0x80, 0xC0, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
-	{512, 24576000, 48000, 0x03, 0x41, 0x04, 0xD0, 0x10, 0xD1, 0x80, 0xC0, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{256, 12288000, 48000, 0x01, 0x41, 0x04, 0xD0, 0x10, 0xC1, 0x80, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{384, 18432000, 48000, 0x02, 0x41, 0x04, 0xD0, 0x10, 0xC1, 0x80, 0x40, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{400, 19200000, 48000, 0x03, 0x46, 0x01, 0xD8, 0x10, 0xC2, 0x80, 0x40, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{500, 24000000, 48000, 0x04, 0x46, 0x01, 0xD8, 0x10, 0xC2, 0x80, 0xC0, 0x00, 0x18, 0x95, 0xD0, 0xC0, 0x63, 0x95, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
+	{512, 24576000, 48000, 0x03, 0x41, 0x04, 0xD0, 0x10, 0xC1, 0x80, 0xC0, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{800, 38400000, 48000, 0x18, 0x45, 0x04, 0xC0, 0x10, 0xC1, 0x80, 0xC0, 0x00, 0x1F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x12, 0x00, 0x35, 0x91, 0x28, 2, 2},
 	{128, 11289600, 88200, 0x00, 0x50, 0x00, 0xC0, 0x10, 0xC1, 0x80, 0x40, 0x00, 0x9F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x80, 0x12, 0xC0, 0x32, 0x89, 0x25, 2, 2},
-	{64, 6144000, 96000, 0x00, 0x41, 0x00, 0xD0, 0x10, 0xD1, 0x80, 0x00, 0x00, 0x9F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x80, 0x12, 0xC0, 0x35, 0x91, 0x28, 2, 2},
+	{64, 6144000, 96000, 0x00, 0x41, 0x00, 0xD0, 0x10, 0xC1, 0x80, 0x00, 0x00, 0x9F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x80, 0x12, 0xC0, 0x35, 0x91, 0x28, 2, 2},
 	{96, 9216000, 96000, 0x02, 0x43, 0x00, 0xC0, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x9F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x80, 0x12, 0xC0, 0x35, 0x91, 0x28, 2, 2},
 	{256, 24576000, 96000, 0x00, 0x40, 0x00, 0xC0, 0x10, 0xC1, 0x80, 0xC0, 0x00, 0x9F, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x80, 0x12, 0xC0, 0x35, 0x91, 0x28, 2, 2},
 	{128, 24576000, 192000, 0x00, 0x50, 0x00, 0xC0, 0x18, 0xC1, 0x81, 0xC0, 0x00, 0x8F, 0x7F, 0xBF, 0xC0, 0x3F, 0x7F, 0x80, 0x12, 0xC0, 0x3F, 0xF9, 0x3F, 2, 2},
+	{64, 12288000, 192000, 0x00, 0x41, 0x00, 0xC0, 0x18, 0xC1, 0x80, 0x00, 0x00, 0x8F, 0x7F, 0xEF, 0xC0, 0x7F, 0x7F, 0x80, 0x12, 0xC0, 0x3F, 0xF9, 0x3F, 1, 0},
 };
 
 static inline int get_coeff(u8 vddd, u8 dmic, int mclk, int rate)
@@ -657,7 +659,8 @@ static int es8389_pcm_hw_params(struct snd_pcm_substream *substream,
 		regmap_write(es8389->regmap, ES8389_SYSTEM18, coeff_div[coeff].Reg0x18);
 		regmap_write(es8389->regmap, ES8389_SYSTEM19, coeff_div[coeff].Reg0x19);
 	} else {
-		dev_warn(component->dev, "Clock coefficients do not match");
+		dev_err(component->dev, "Clock coefficients do not match");
+		return -EINVAL;
 	}
 
 	return 0;
-- 
2.17.1


^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox