Alsa-devel
Threads by month
- ----- 2025 -----
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2024
- 89 participants
- 145 discussions
This patch set includes two updates for the Atmel SSC DAI driver:
- Address the limitation with the S24_LE format.
- Add stream names for DPCM and future use-cases.
Codrin Ciubotariu (2):
ASoC: atmel: atmel_ssc_dai: Add stream names
ASoC: atmel: atmel_ssc_dai: Drop S24_LE support due to single channel
limitation
sound/soc/atmel/atmel_ssc_dai.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
base-commit: 5acd9952f95fb4b7da6d09a3be39195a80845eb6
--
2.34.1
2
5

[PATCH stable-6.10 regression] Revert "soundwire: stream: fix programming slave ports for non-continous port maps"
by Peter Ujfalusi 16 Sep '24
by Peter Ujfalusi 16 Sep '24
16 Sep '24
The prop->src_dpn_prop and prop.sink_dpn_prop is allocated for the _number_
of ports and it is forced as 0 index based.
The original code was correct while the change to walk the bits and use
their position as index into the arrays is not correct.
For exmple we can have the prop.source_ports=0x2, which means we have one
port, but the prop.src_dpn_prop[1] is accessing outside of the allocated
memory.
This reverts commit 6fa78e9c41471fe43052cd6feba6eae1b0277ae3.
Cc: stable(a)vger.kernel.org # 6.10.y
Signed-off-by: Peter Ujfalusi <peter.ujfalusi(a)linux.intel.com>
---
Hi,
The reverted patch causes major regression on soundwire causing all audio
to fail.
Interestingly the patch is only in 6.10.8 and 6.10.9, not in mainline or linux-next.
soundwire sdw-master-0-1: Program transport params failed: -22
soundwire sdw-master-0-1: Program params failed: -22
SDW1-Playback: ASoC: error at snd_soc_link_prepare on SDW1-Playback: -22
Regards,
Peter
drivers/soundwire/stream.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c
index 00191b1d2260..4e9e7d2a942d 100644
--- a/drivers/soundwire/stream.c
+++ b/drivers/soundwire/stream.c
@@ -1286,18 +1286,18 @@ struct sdw_dpn_prop *sdw_get_slave_dpn_prop(struct sdw_slave *slave,
unsigned int port_num)
{
struct sdw_dpn_prop *dpn_prop;
- unsigned long mask;
+ u8 num_ports;
int i;
if (direction == SDW_DATA_DIR_TX) {
- mask = slave->prop.source_ports;
+ num_ports = hweight32(slave->prop.source_ports);
dpn_prop = slave->prop.src_dpn_prop;
} else {
- mask = slave->prop.sink_ports;
+ num_ports = hweight32(slave->prop.sink_ports);
dpn_prop = slave->prop.sink_dpn_prop;
}
- for_each_set_bit(i, &mask, 32) {
+ for (i = 0; i < num_ports; i++) {
if (dpn_prop[i].num == port_num)
return &dpn_prop[i];
}
--
2.46.0
4
8
The following changes since commit 839a4ec06f75cec8fec2cc5fc14e921d0c3f7369:
ASoC: Intel: soc-acpi-cht: Make Lenovo Yoga Tab 3 X90F DMI match less strict (2024-08-23 11:02:53 +0100)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git tags/asoc-v6.12
for you to fetch changes up to 2772ee6de6cf94e5f2a0c0ce6067d0796a4170ba:
ASoC: topology: Fix redundant logical jump (2024-09-13 19:40:38 +0100)
----------------------------------------------------------------
ASoC: Updates for v6.12
This is a very large set of changes, almost all in drivers rather than
the core. Even with the addition of several quite large drivers the
overall diffstat is negative thanks to the removal of some old Intel
board support which has been obsoleted by the AVS driver, helped a bit
by some factoring out into helpers (especially around the Soundwire
machine drivers for x86).
Highlights include:
- More simplifications and cleanups throughout the subsystem from
Morimoto-san.
- Extensive cleanups and refactoring of the Soundwire drivers to make
better use of helpers.
- Removal of Intel machine support obsoleted by the AVS driver.
- Lots of DT schema conversions.
- Machine support for many AMD and Intel x86 platforms.
- Support for AMD ACP 7.1, Mediatek MT6367 and MT8365, Realtek RTL1320
SoundWire and rev C, and Texas Instruments TAS2563
----------------------------------------------------------------
Alexandre Mergnat (11):
ASoC: dt-bindings: mediatek,mt8365-afe: Add audio afe document
ASoC: dt-bindings: mediatek,mt8365-mt6357: Add audio sound card document
dt-bindings: mfd: mediatek: Add codec property for MT6357 PMIC
ASoC: mediatek: mt8365: Add common header
ASoC: mediatek: mt8365: Add audio clock control support
ASoC: mediatek: mt8365: Add I2S DAI support
ASoC: mediatek: mt8365: Add ADDA DAI support
ASoC: mediatek: mt8365: Add DMIC DAI support
ASoC: mediatek: mt8365: Add PCM DAI support
ASoC: mediatek: mt8365: Add the AFE driver support
ASoC: mediatek: Add MT8365 support
Andrei Simion (1):
ASoC: dt-bindings: microchip,sama7g5-spdifrx: Add common DAI reference
Andrew Kreimer (1):
ASoC: tlv320aic31xx: Fix typos
Animesh Agarwal (2):
ASoC: dt-bindings: ti,pcm512x: Convert to dtschema
ASoC: dt-bindings: fsl,imx-audio-es8328: Convert to dtschema
Arnd Bergmann (2):
ASoC: mediatek: mt8365: include linux/bitfield.h
ASoC: mediatek: mt8365: remove unused mt8365_i2s_hd_str
Balamurugan C (4):
ASoC: Intel: soc-acpi: Add entry for sof_es8336 in ARL match table.
ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in ARL match table
ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for ARL.
ASoC: Intel: ARL: Add entry for HDMI-In capture support to non-I2S codec boards.
Baojun Xu (1):
ASoC: tas2781: Remove unnecessary line feed for tasdevice_codec_remove
Bard Liao (6):
ASoC: Intel: soc-acpi-intel-ptl-match: add rt711-sdca table
ASoC: Intel: soc-acpi-intel-ptl-match: Add rt722 support
ASoC: Intel: sof_sdw: add rt1320 amp support
ASoC: SOF: Intel: hda: refactoring topology name fixup for HDA mach
ASoC: Intel: sof_sdw: move ignore_internal_dmic check earlier
ASoC: Intel: sof_sdw: overwrite mach_params->dmic_num
Biju Das (2):
ASoC: dt-bindings: renesas,rz-ssi: Document port property
ASoC: sh: rz-ssi: Add full duplex support
Binbin Zhou (7):
ASoC: loongson: Use BIT() macro
ASoC: loongson: Simplify probe() with local dev variable
ASoC: loongson: Simplify with dev_err_probe()
ASoC: loongson: Simplify if statment in loongson_card_hw_params()
ASoC: loongson: Replace if with ternary operator
ASoC: loongson: Factor out loongson_card_acpi_find_device() function
ASoC: loongson: Factor out loongson i2s enable clock functions
Brent Lu (10):
ASoC: SOF: Intel: hda: refactoring topology name fixup for SDW mach
ASoC: SOF: Intel: hda: support BT link mask in mach_params
ASoC: Intel: skl_hda_dsp_generic: support BT audio offload
ASoC: Intel: skl_hda_dsp_generic: remove hdac-hdmi support
ASoC: Intel: skl_hda_dsp_generic: use sof_hdmi_private to init HDMI
ASoC: Intel: board_helpers: support HDA link initialization
ASoC: Intel: skl_hda_dsp_generic: use common module for DAI links
ASoC: Intel: ehl_rt5660: do not check common_hdmi_codec_drv
ASoC: Intel: sof_pcm512x: do not check common_hdmi_codec_drv
ASoC: SOF: Intel: hda: remove common_hdmi_codec_drv
Cezary Rojewski (14):
ALSA: hda: Move SST device entries to AVS
ASoC: Intel: Drop skl_machine_pdata usage
ASoC: Intel: Remove bxt_rt298 board driver
ASoC: Intel: Remove bxt_da7219_max98357a board driver
ASoC: Intel: Remove kbl_rt5663_rt5514_max98927 board driver
ASoC: Intel: Remove kbl_rt5663_max98927 board driver
ASoC: Intel: Remove kbl_rt5660 board driver
ASoC: Intel: Remove kbl_da7219_max98927 board driver
ASoC: Intel: Remove kbl_da7219_max98357a board driver
ASoC: Intel: Remove skl_rt286 board driver
ASoC: Intel: Remove skl_nau88l25_ssm4567 board driver
ASoC: Intel: Remove skl_nau88l25_max98357a board driver
ASoC: Intel: Remove skylake driver
ASoC: Intel: avs: Enable by default for all SST configurations
Charles Keepax (3):
ASoC: Intel: soc-acpi: arl: Add match entries for new cs42l43 laptops
ASoC: Intel: soc-acpi: adl: Add match entries for new cs42l43 laptops
ASoC: Intel: soc-acpi: lnl: Add match entries for new cs42l43 laptops
Chen Ni (4):
ASoC: mediatek: mt8192: remove redundant null pointer check before of_node_put
ASoC: cs42l42: Convert comma to semicolon
ASoC: topology-test: Convert comma to semicolon
ASoC: Intel: skl_hda_dsp_generic: convert comma to semicolon
Christophe JAILLET (4):
ASoC: sti-sas: Constify snd_soc_component_driver struct
ASoC: cs43130: Constify snd_soc_component_driver struct
ASoC: cs43130: Constify struct reg_sequence and reg_sequences
ASoC: rt1318: Constify struct reg_sequence
Codrin Ciubotariu (5):
ASoC: atmel: mchp-i2s-mcc: Improve maxburst calculation for better performance
ASoC: atmel: mchp-i2s-mcc: Remove interface name from stream_name
ASoC: atmel: mchp-pdmc: Improve maxburst calculation for better performance
ASoC: atmel: mchp-pdmc: Add snd_soc_dai_driver name
ASoC: atmel: mchp-pdmc: Retain Non-Runtime Controls
Colin Ian King (1):
ASoC: codecs: wcd934x: make read-only array minCode_param static const
Dmitry Torokhov (1):
ASoC: tas5086: use sleeping variants of gpiod API
Fabio Estevam (7):
ASoC: fsl_audmix: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
ASoC: fsl_mqs: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
ASoC: fsl_rpmsg: Switch to RUNTIME_PM_OPS()
ASoC: fsl_spdif: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
ASoC: fsl_ssi: Switch to SYSTEM_SLEEP_PM_OPS
ASoC: imx-audmux: Switch to SYSTEM_SLEEP_PM_OPS
ASoC: imx-pcm-rpmsg: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
Frank Li (2):
ASoC: dt-bindings: convert tlv320aic31xx.txt to yaml
ASoC: dt-bindings: Convert tpa6130a2.txt to yaml
Fred Oh (1):
ASoC: SOF: Intel: add PTL specific power control register
Geert Uytterhoeven (1):
ASoC: dt-bindings: dlg,da7213: Convert to json-schema
Gustavo A. R. Silva (1):
ASoC: SOF: sof-audio: Avoid -Wflex-array-member-not-at-end warnings
Heiko Stuebner (2):
ASoC: dt-bindings: realtek,rt5616: document mclk clock
ASoC: dt-bindings: realtek,rt5616: Document audio graph port
Hongbo Li (2):
ASoC: dapm: Use IS_ERR_OR_NULL() helper function
ASoC: adi: Use str_enabled_disabled() helper
Jens Reidel (1):
ASoC: qcom: sm8250: enable primary mi2s
Jerome Brunet (1):
ASoC: amlogic: do not use dpcm_playback/capture flags
Krzysztof Kozlowski (16):
ASoC: codecs: wsa881x: Drop unused version readout
ASoC: codecs: wsa883x: Handle reading version failure
ASoC: codecs: wsa883x: Simplify handling variant/version
ASoC: codecs: wsa884x: Simplify handling variant
ASoC: dt-bindings: qcom,apq8016-sbc-sndcard: move to separate binding
ASoC: codecs: lpass-wsa-macro: Do not hard-code dai in VI mixer
ASoC: codecs: wsa881x: Use designator array initializers for Soundwire ports
ASoC: codecs: wsa883x: Use designator array initializers for Soundwire ports
ASoC: codecs: wsa884x: Use designator array initializers for Soundwire ports
ASoC: codecs: wcd938x: Drop unused defines and enums
ASoC: codecs: wcd937x: Move max port number defines to enum
ASoC: codecs: wcd938x: Move max port number defines to enum
ASoC: codecs: wcd939x: Move max port number defines to enum
ASoC: dt-bindings: samsung,odroid: drop stale clocks
ASoC: MAINTAINERS: Drop incorrect tlv320aic31xx.txt path
ASoC: codecs: wsa884x: Implement temperature reading and hwmon
Kuninori Morimoto (19):
ASoC: rsnd: remove rsnd_mod_confirm_ssi() under DEBUG
ASoC: rsnd: use pcm_dmaengine code
ASoC: stm: use snd_pcm_direction_name()
ASoC: sof: pcm: use snd_pcm_direction_name()
ASoC: sof: intel: use snd_pcm_direction_name()
ASoC: fsl: lpc3xxx-i2s: use snd_pcm_direction_name()
ASoC: tegra: use snd_pcm_direction_name()
ASoC: soc-pcm: use snd_pcm_direction_name()
ASoC: soc-dapm: use snd_pcm_direction_name()
ASoC: remove bespoke trigger support
ASoC: soc-pcm: remove snd_soc_dpcm_stream_{lock/unlock}_irq()
ASoC: soc-pcm: remove snd_soc_dpcm_stream_lock_irqsave_nested()
ASoC: soc-pcm: Indicate warning if dpcm_playback/capture were used for availability limition
ASoC: remove snd_soc_dai_link_set_capabilities()
ASoC: Intel: sof_sdw: use playback/capture_only flags
ASoC: soc-pcm: move snd_soc_dpcm_can_be_xxx() to top
ASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local function
ASoC: makes rtd->initialized bit field
ASoC: dt-bindings: renesas,rsnd: add post-init-providers property
Linus Walleij (3):
ASoC: tas2781-i2c: Drop weird GPIO code
ASoC: tas2781-i2c: Get the right GPIO line
ASoC: tas*: Drop unused GPIO includes
Liu Jing (1):
ASoC: mediatek: mt2701-cs42448: Optimize redundant code in mt2701_cs42448_machine_probe
Luca Ceresoli (3):
ASoC: dapm-graph: remove the "ROOT" cluster
ASoC: dapm-graph: visualize component On/Off bias level
ASoC: dapm-graph: show path name for non-static routes
Lukasz Majewski (1):
ASoC: dt-bindings: Convert mxs-saif.txt to fsl,saif.yaml (imx28 saif)
Ma Ke (2):
ASoC: rt5682s: Return devm_of_clk_add_hw_provider to transfer the error
ASoC: rt5682: Return devm_of_clk_add_hw_provider to transfer the error
Maciej Strozek (1):
ASoC: Intel: sof_sdw: Add quirks from some new Dell laptops
Marek Vasut (1):
ASoC: tlv320aic32x4: Add multi endpoint support
Mark Brown (37):
Add HDMI Audio support
ASoC: codecs: wsa88xx: Few cleanups
ASoC: codecs: wsa88xx and wcd93xx: Soundwire port
AMD SOF based generic SoundWire machine driver
ALSA/ASoC: use snd_pcm_direction_name()
ASoC: SOF: reshuffle and optimize structures
ASoC/SOF/PCI/Intel: add PantherLake support
ASoC: Merge fixes
ASoC: tas*: Fix up GPIO usage
ASoC: Intel: Remove skylake driver
ALSA/ASoC/SoundWire: Intel: update maximum number
ASoC: Merge up fixes
ASoC: grace time for DPCM cleanup
ASoC: Merge up fixes
ASoC: dapm-graph: add component on/off and route names
Add SOF support for ACP7.0 based platform
ASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local
ASoC: Intel: boards: updates for 6.12
ASoC: dt-bindings: amlogic-sound-cards: document
Add audio support for the MediaTek Genio 350-evk
Fixes for the audio setup on the rk3588-nanopc-t6
Add i2s/tdm support for acp7.0 and acp7.1 platforms
Some clean up with helper fucntion
Add audio support for the MediaTek Genio 350-evk
ASoC: mt8365: Open code BIT() to avoid spurious warnings
ASoC: mt8365: Remove spurious unsigned long casts
ASoC: mt8365: Remove unused prototype for mt8365_afe_clk_group_48k()
ASoC: mt8365: Make non-exported functions static
ASoC: mt8365: Remove unused variables
ASoC: mt8365: Remove unused DMIC IIR coefficient configuration
ASoC: mt8365: Allow build coverage
ASoC: loongson: Simplify code formatting
ASoC: mt8365: Fix -Werror builds
Add support for primary mi2s on SM8250
ASoC: Improvements for mchp-pdmc
ASoC: Intel: boards: updates for 6.12 - part 2
AMD SoundWire machine driver code refactor
Muhammad Usama Anjum (3):
ASoC: amd: acp: Return in-case of error
ASoC: mediatek: mt8365: check validity before usage of i2s_data
ASoc: mediatek: mt8365: Remove unneeded assignment
Neil Armstrong (2):
ASoC: dt-bindings: amlogic,axg-sound-card: document clocks property
ASoC: dt-bindings: amlogic,gx-sound-card: document clocks property
Nicolas Belin (2):
ASoc: mediatek: mt8365: Add a specific soundcard for EVK
ASoC: codecs: add MT6357 support
Nikita Shubin (1):
ASoC: dt-bindings: cirrus,cs4271: Convert to dtschema
Pierre-Louis Bossart (11):
ASoC: Intel: soc-acpi: add PTL match tables
ASoC: SOF: Intel: add initial support for PTL
ASoC: SOF: sof-priv.h: optimize snd_sof_platform_stream_params
ASoC: SOF: sof-priv.h: optimize snd_sof_mailbox
ASoC: SOF: sof-priv.h: optimize snd_sof_ipc_msg
ASoC: SOF: sof-audio.h: optimize snd_sof_pcm_stream_pipeline_list
ALSA/ASoC/SoundWire: Intel: use single definition for SDW_INTEL_MAX_LINKS
soundwire: intel: add probe-time check on link id
soundwire: intel: increase maximum number of links
ASoC: Intel: sof_sdw: make sof_sdw_quirk static
ASoC: Intel: boards: always check the result of acpi_dev_get_first_match_dev()
Richard Fitzgerald (2):
ASoC: cs35l56: Make struct regmap_config const
ASoC: cs-amp-lib: Add KUnit test case for empty calibration entries
Rob Herring (Arm) (2):
ASoC: Use of_property_present()
ASoC: Use of_property_read_bool()
Romain Gantois (1):
ASoC: tlv320aic31xx: Add support for loading filter coefficients
Shen Lichuan (1):
ASoC: SOF: topology: Use kmemdup_array instead of kmemdup for multiple allocation
Shenghao Ding (7):
ASoC: tas2781: Add TAS2563 into the Header
ASoC: tas2781: Fix a compiling warning reported by robot kernel test due to adding tas2563_dvc_table
ASoc: tas2781: Rename dai_driver name to unify the name between TAS2563 and TAS2781
ASoc: tas2781: Remove unnecessary line feed and space
ASoC: tas2781: mark const variables tas2563_dvc_table as __maybe_unused
ASoC: tas2781: replace devm_kzalloc and scnprintf with devm_kstrdup
ASoC: tas2781: Add Calibration Kcontrols for Chromebook
Shuming Fan (1):
ASoC: rt1320: Add support for version C
Simon Trimmer (1):
ASoC: cs35l56: Use regmap_read_bypassed() to wake the device
Srinivas Kandagatla (1):
ASoC: dt-bindings: qcom,lpass-wsa-macro: correct clocks on SM8250
Takashi Iwai (1):
ASoC: Use __counted_by() annotation for snd_soc_pcm_runtime
Tang Bin (6):
ASoC: loongson: remove redundant variable assignments
ASoC: codecs: fix the right check and simplify code
ASoC: soc-ac97: Fix the incorrect description
ASoC: loongson: Add the correct judgement return
ASoC: mediatek: mt7986-afe-pcm: Remove redundant error message
ASoC: topology: Fix redundant logical jump
Uwe Kleine-König (1):
ASoC: Switch back to struct platform_driver::remove()
Venkata Prasad Potturu (12):
ASoC: amd: acp: Refactor TDM slots selction based on acp revision id
ASoC: amd: acp: Refactor I2S dai driver
ASoC: amd: acp: Update pcm hardware capabilities for acp6.3 platform
ASoC: amd: acp: Add I2S TDM support for acp6.3 platform
ASoC: amd: acp: Update pcm hardware capabilities for acp7.0 platform
ASoC: amd: acp: Add I2S master clock generation support for acp7.0 platform
ASoC: amd: acp: Set i2s clock for acp7.0 platform
ASoC: amd: acp: Modify max channels and sample rate support for acp70 dai driver
ASoC: amd: acp: Add I2S TDM support for acp7.0 platform
ASoC: amd: acp: Add pte configuration for ACP7.0 platform
ASoC: amd: acp: Add i2s master clock generation support for acp7.1 platform
ASoC: amd: acp: Add I2S TDM support for acp7.1 platform
Vijendar Mukunda (47):
ASoC: intel: rename codec_info and dai_info structures names
ASoC: intel: rename soundwire common header macros
ASoC: intel: rename soundwire machine driver soc ops
ASoC: intel: rename soundwire codec helper functions
ASoC: intel: rename maxim codec macros
ASoC: intel: rename ignore_pch_dmic variable name
ASoC: intel/sdw-utils: move soundwire machine driver soc ops
ASoC: intel: move soundwire machine driver common structures
ASoC: intel/sdw_utils: move soundwire machine driver helper functions
ASoC: intel/sdw_utils: move dmic codec helper function
ASoC: intel/sdw_utils: move rtk dmic helper functions
ASoC: intel/sdw_utils: move rt712 sdca helper functions
ASoC: intel/sdw_utils: move rt722 sdca helper functions
ASoC: intel: split soundwire machine driver private data
ASoC: intel/sdw_utils: move rt5682 codec helper function
ASoC: intel/sdw_utils: move rtk jack common helper functions
ASoC: intel/sdw_utils: move rt700 and rt711 codec helper functions
ASoC: intel/sdw_utils: move rtk amp codec helper functions
ASoC: intel/sdw_utils: move cirrus soundwire codec helper functions
ASoC: intel/sdw_utils: move maxim codec helper functions
ASoC: intel/sdw_utils: move dai id common macros
ASoC: intel/sdw_utils: move soundwire dai type macros
ASoC: intel/sdw_utils: move soundwire codec_info_list structure
ASoC: intel/sdw_utils: move machine driver dai link helper functions
ASoC: sdw_utils: refactor sof_sdw_card_late_probe function
ASoC: intel/sdw_utils: refactor init_dai_link() and init_simple_dai_link()
ASoC: soc-acpi: add pci revision id field in mach params structure
ASoC: amd: acp: add soundwire machines for acp6.3 based platform
ASoC: SOF: amd: add alternate machines for acp6.3 based platform
ASoC: SOF: amd: update mach params subsystem_rev variable
ASoC: amd/sdw_utils: add sof based soundwire generic machine driver
ASoC: amd: acp: remove MODULE_ALIAS for SoundWire machine driver
ASoC: amd: acp: add ZSC control register programming sequence
ASoC: SOF: amd: update conditional check for cache register update
ASoC: amd: acp: Convert comma to semicolon
ASoC: amd: acp: add legacy driver support for ACP7.1 based platforms
ASoC: amd: acp: replace desc->rev check with acp pci revision id
ASoC: SOF: amd: remove unused variable from sof_amd_acp_desc structure
ASoC: amd: Add acpi machine id for acp7.0 version based platform
ASoC: SOF: amd: add support for acp7.0 based platform
ASoC: amd: acp: remove MODULE_ALIAS for legacy machine driver
ASoC: amd: acp: remove MODULE_ALIAS for sof based generic machine driver
ASoC: intel: sof_sdw: rename soundwire endpoint and dailink structures
ASoC: intel: sof_sdw: rename soundwire parsing helper functions
ASoC: sdw_util/intel: move soundwire endpoint and dai link structures
ASoC: sdw_utils/intel: move soundwire endpoint parsing helper functions
ASoC: amd: acp: refactor SoundWire machine driver code
Wu Bo (1):
ASoC: dwc: change to use devm_clk_get_enabled() helpers
Yue Haibing (2):
ASoC: fsl: lpc3xxx-i2s: Remove set but not used variable 'savedbitclkrate'
ASoC: fsl: lpc3xxx: Make some symbols static
Zhang Yi (2):
ASoC: codecs: ES8326: suspend issue
ASoC: codecs: ES8326: input issue after init
Zhang Zekun (3):
ASoC: audio-graph-card: Use for_each_child_of_node_scoped() to simplify code
ASoC: audio-graph-card2: Use helper function of_get_child_count()
ASoC: meson: Remove unused declartion in header file
tangbin (3):
ASoC: loongson: Remove useless variable definitions
ASoC: loongson: remove unnecessary assignment in i2s_resume()
ASoC: loongson: fix error release
ying zuxin (1):
ASoC: codecs: Use devm_clk_get_enabled() helpers
.mailmap | 1 +
.../testing/sysfs-bus-i2c-devices-turris-omnia-mcu | 6 +-
Documentation/admin-guide/cifs/usage.rst | 2 +-
Documentation/admin-guide/kernel-parameters.txt | 4 +-
Documentation/arch/arm64/silicon-errata.rst | 18 +
.../devicetree/bindings/ata/rockchip,dwc-ahci.yaml | 3 +
.../bindings/display/panel/samsung,atna33xc20.yaml | 9 +-
.../devicetree/bindings/mfd/mediatek,mt6357.yaml | 21 +
.../bindings/sound/amlogic,axg-sound-card.yaml | 7 +
.../bindings/sound/amlogic,gx-sound-card.yaml | 7 +
.../devicetree/bindings/sound/cirrus,cs4271.yaml | 101 +
Documentation/devicetree/bindings/sound/cs4271.txt | 57 -
Documentation/devicetree/bindings/sound/da7213.txt | 45 -
.../devicetree/bindings/sound/dlg,da7213.yaml | 103 +
.../bindings/sound/fsl,imx-audio-es8328.yaml | 111 +
.../devicetree/bindings/sound/fsl,saif.yaml | 83 +
.../devicetree/bindings/sound/imx-audio-es8328.txt | 60 -
.../bindings/sound/mediatek,mt8365-afe.yaml | 130 +
.../bindings/sound/mediatek,mt8365-mt6357.yaml | 107 +
.../bindings/sound/microchip,sama7g5-spdifrx.yaml | 5 +-
.../devicetree/bindings/sound/mxs-saif.txt | 41 -
.../devicetree/bindings/sound/pcm512x.txt | 53 -
.../bindings/sound/qcom,apq8016-sbc-sndcard.yaml | 205 ++
.../bindings/sound/qcom,lpass-wsa-macro.yaml | 22 +-
.../devicetree/bindings/sound/qcom,sm8250.yaml | 137 -
.../devicetree/bindings/sound/realtek,rt5616.yaml | 12 +
.../devicetree/bindings/sound/renesas,rsnd.yaml | 6 +
.../devicetree/bindings/sound/renesas,rz-ssi.yaml | 4 +
.../devicetree/bindings/sound/samsung,odroid.yaml | 5 -
.../devicetree/bindings/sound/ti,pcm512x.yaml | 101 +
.../bindings/sound/ti,tlv320dac3100.yaml | 127 +
.../devicetree/bindings/sound/ti,tpa6130a2.yaml | 55 +
.../devicetree/bindings/sound/tlv320aic31xx.txt | 77 -
.../devicetree/bindings/sound/tpa6130a2.txt | 27 -
.../devicetree/bindings/usb/microchip,usb2514.yaml | 1 +
Documentation/driver-api/thermal/sysfs-api.rst | 65 +-
Documentation/netlink/specs/ethtool.yaml | 2 +-
Documentation/networking/ethtool-netlink.rst | 1 +
.../process/embargoed-hardware-issues.rst | 153 +-
.../userspace-api/media/v4l/pixfmt-yuv-luma.rst | 4 +-
Documentation/virt/kvm/api.rst | 8 +-
Documentation/wmi/devices/msi-wmi-platform.rst | 6 +-
MAINTAINERS | 13 +-
Makefile | 2 +-
arch/alpha/include/asm/io.h | 4 +-
arch/arm/Kconfig | 4 +-
arch/arm/boot/compressed/Makefile | 1 +
arch/arm/boot/compressed/vmlinux.lds.S | 2 +-
arch/arm/boot/dts/arm/versatile-ab.dts | 2 +-
arch/arm/include/asm/stacktrace.h | 7 +
arch/arm/include/asm/vmlinux.lds.h | 2 +-
arch/arm/kernel/entry-armv.S | 3 +
arch/arm/kernel/entry-common.S | 3 +
arch/arm/kernel/module.c | 5 -
arch/arm/kernel/perf_callchain.c | 3 +-
arch/arm/kernel/vmlinux-xip.lds.S | 4 +-
arch/arm/kernel/vmlinux.lds.S | 6 +-
arch/arm/mach-alpine/alpine_cpu_pm.c | 2 +-
arch/arm/mach-pxa/gumstix.c | 11 +-
arch/arm/mm/proc.c | 20 +-
arch/arm64/Kconfig | 22 +-
arch/arm64/boot/dts/ti/k3-am62-verdin-dahlia.dtsi | 22 -
arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi | 6 -
.../boot/dts/ti/k3-am62p-j722s-common-mcu.dtsi | 2 +
arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 3 +-
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 3 +-
arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 25 +-
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 4 +-
arch/arm64/include/asm/cputype.h | 4 +
arch/arm64/include/asm/jump_label.h | 1 +
arch/arm64/kernel/Makefile.syscalls | 2 +-
arch/arm64/kernel/cpu_errata.c | 11 +-
arch/arm64/kernel/jump_label.c | 11 +-
arch/loongarch/include/asm/hugetlb.h | 4 +-
arch/loongarch/include/asm/kfence.h | 6 +-
arch/loongarch/include/asm/kvm_host.h | 2 -
arch/loongarch/include/asm/kvm_para.h | 4 +-
arch/loongarch/include/asm/pgtable.h | 48 +-
arch/loongarch/kernel/Makefile.syscalls | 3 +-
arch/loongarch/kernel/efi.c | 6 +
arch/loongarch/kvm/mmu.c | 8 +-
arch/loongarch/mm/hugetlbpage.c | 6 +-
arch/loongarch/mm/init.c | 10 +-
arch/loongarch/mm/kasan_init.c | 10 +-
arch/loongarch/mm/pgtable.c | 2 +-
arch/parisc/Kconfig | 1 +
arch/parisc/include/asm/cache.h | 11 +-
arch/parisc/net/bpf_jit_core.c | 2 +-
arch/riscv/kernel/Makefile.syscalls | 2 +-
arch/riscv/kernel/cpufeature.c | 14 +-
arch/riscv/kernel/sbi-ipi.c | 2 +-
arch/riscv/mm/fault.c | 17 +-
arch/riscv/mm/init.c | 15 +-
arch/riscv/purgatory/entry.S | 2 +
arch/s390/kernel/alternative.h | 0
arch/s390/kernel/fpu.c | 2 +-
arch/s390/kernel/vmlinux.lds.S | 17 +-
arch/s390/mm/dump_pagetables.c | 140 +-
arch/s390/mm/init.c | 9 +-
arch/s390/mm/vmem.c | 13 +-
arch/um/drivers/mconsole_user.c | 2 +
arch/x86/coco/sev/core.c | 2 +-
arch/x86/entry/syscalls/syscall_64.tbl | 2 +-
arch/x86/events/core.c | 22 +-
arch/x86/events/intel/cstate.c | 5 +-
arch/x86/include/asm/cmdline.h | 4 +
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/include/asm/qspinlock.h | 12 +-
arch/x86/kernel/acpi/madt_wakeup.c | 2 +-
arch/x86/kernel/cpu/amd.c | 2 +-
arch/x86/kernel/cpu/aperfmperf.c | 6 +-
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
arch/x86/kernel/paravirt.c | 7 +-
arch/x86/kernel/setup.c | 2 +-
arch/x86/kvm/Kconfig | 4 +-
arch/x86/kvm/lapic.c | 2 +-
arch/x86/kvm/mmu/mmu.c | 7 +-
arch/x86/kvm/svm/sev.c | 17 +-
arch/x86/kvm/svm/svm.c | 1 +
arch/x86/kvm/x86.c | 12 +-
arch/x86/lib/cmdline.c | 25 +-
arch/x86/lib/getuser.S | 4 +-
arch/x86/mm/pti.c | 51 +-
block/blk-throttle.c | 11 -
drivers/android/binder.c | 15 +-
drivers/android/binder_alloc.c | 2 +-
drivers/android/dbitmap.h | 22 +-
drivers/base/core.c | 13 +-
drivers/base/module.c | 4 +
drivers/bluetooth/Kconfig | 2 +
drivers/bluetooth/btintel.c | 3 +
drivers/bluetooth/btmtk.c | 5 +-
drivers/bluetooth/hci_qca.c | 19 +-
drivers/cache/Kconfig | 1 +
drivers/char/ds1620.c | 1 +
drivers/char/nwbutton.c | 1 +
drivers/char/nwflash.c | 1 +
drivers/cpufreq/intel_pstate.c | 1 +
drivers/edac/skx_common.h | 1 -
drivers/firmware/efi/libstub/Makefile | 7 +-
drivers/fsi/fsi-core.c | 1 +
drivers/fsi/fsi-master-aspeed.c | 1 +
drivers/fsi/fsi-master-ast-cf.c | 3 +-
drivers/fsi/fsi-master-gpio.c | 1 +
drivers/fsi/fsi-master-hub.c | 1 +
drivers/fsi/fsi-scom.c | 1 +
drivers/gpu/drm/Kconfig | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 36 +-
drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 27 +
drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 18 +
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 2 +
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v4_1_0.c | 3 +-
drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 7 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 3 +
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 +
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c | 3 +-
drivers/gpu/drm/amd/display/dc/dml/Makefile | 2 +
.../drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 2 +
.../drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 2 +
.../display/dc/resource/dcn401/dcn401_resource.c | 1 +
.../display/dc/resource/dcn401/dcn401_resource.h | 4 +-
.../gpu/drm/amd/display/modules/hdcp/hdcp_ddc.c | 2 +
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 3 +
drivers/gpu/drm/amd/include/mes_v12_api_def.h | 3 +
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 3 +-
drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppevvmath.h | 14 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v14_0_2_pptable.h | 52 +-
.../gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c | 86 +-
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 2 +-
drivers/gpu/drm/ast/ast_dp.c | 7 +
drivers/gpu/drm/ast/ast_drv.c | 5 +
drivers/gpu/drm/ast/ast_drv.h | 1 +
drivers/gpu/drm/ast/ast_mode.c | 29 +-
drivers/gpu/drm/drm_atomic_uapi.c | 14 +-
drivers/gpu/drm/drm_bridge_connector.c | 8 +-
drivers/gpu/drm/drm_buddy.c | 25 +-
drivers/gpu/drm/drm_client.c | 2 +-
drivers/gpu/drm/drm_client_modeset.c | 5 +
drivers/gpu/drm/drm_fb_helper.c | 11 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/i915/display/intel_backlight.c | 3 +
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 6 +-
drivers/gpu/drm/i915/display/intel_hdcp_regs.h | 2 +-
drivers/gpu/drm/i915/display/intel_pps.c | 3 +
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 55 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 13 +-
drivers/gpu/drm/i915/i915_perf.c | 33 -
drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_chan.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_fence.c | 30 +-
drivers/gpu/drm/nouveau/nouveau_fence.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_prime.c | 3 +-
drivers/gpu/drm/nouveau/nouveau_uvmm.c | 1 +
drivers/gpu/drm/omapdrm/Kconfig | 1 +
drivers/gpu/drm/radeon/evergreen_cs.c | 2 +
drivers/gpu/drm/tests/drm_gem_shmem_test.c | 11 +
drivers/gpu/drm/v3d/v3d_drv.h | 4 +
drivers/gpu/drm/v3d/v3d_sched.c | 44 +-
drivers/gpu/drm/v3d/v3d_submit.c | 121 +-
drivers/gpu/drm/virtio/virtgpu_submit.c | 2 +-
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 127 +-
drivers/gpu/drm/vmwgfx/vmwgfx_bo.h | 15 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 40 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 17 +-
drivers/gpu/drm/vmwgfx/vmwgfx_gem.c | 62 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 502 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 17 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 14 +-
drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_prime.c | 32 +-
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 27 +-
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 33 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 174 +-
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 280 +-
drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c | 40 +-
drivers/gpu/drm/xe/xe_hwmon.c | 3 +-
drivers/gpu/drm/xe/xe_lrc.c | 15 +-
drivers/gpu/drm/xe/xe_rtp.c | 2 +-
drivers/gpu/drm/xe/xe_sync.c | 2 +-
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 18 +-
drivers/hid/bpf/Kconfig | 2 +-
drivers/hid/bpf/hid_bpf_struct_ops.c | 5 +
drivers/hid/wacom_wac.c | 67 +-
drivers/hwmon/adt7475.c | 24 +-
drivers/i2c/busses/i2c-qcom-geni.c | 5 +-
drivers/i2c/i2c-slave-testunit.c | 4 +-
drivers/i2c/i2c-smbus.c | 64 +-
drivers/input/input-mt.c | 3 +
drivers/input/touchscreen/cyttsp4_core.c | 2 +-
drivers/irqchip/irq-loongarch-cpu.c | 6 +-
drivers/irqchip/irq-mbigen.c | 20 +-
drivers/irqchip/irq-meson-gpio.c | 14 +-
drivers/irqchip/irq-pic32-evic.c | 6 +-
drivers/irqchip/irq-riscv-aplic-msi.c | 32 +-
drivers/irqchip/irq-sun6i-r.c | 2 +-
drivers/irqchip/irq-xilinx-intc.c | 2 +-
drivers/media/dvb-frontends/stv0367_priv.h | 3 +
drivers/media/pci/intel/ipu6/Kconfig | 3 +-
drivers/media/usb/uvc/uvc_ctrl.c | 8 +-
drivers/misc/Kconfig | 2 +-
drivers/misc/eeprom/ee1004.c | 85 +-
drivers/net/can/usb/etas_es58x/es58x_devlink.c | 2 +-
drivers/net/dsa/bcm_sf2.c | 4 +-
drivers/net/dsa/microchip/ksz_common.c | 16 +
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 16 +-
drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 14 +-
drivers/net/ethernet/freescale/fec_ptp.c | 3 +
drivers/net/ethernet/google/gve/gve_ethtool.c | 2 +-
drivers/net/ethernet/google/gve/gve_main.c | 12 +-
drivers/net/ethernet/intel/ice/ice.h | 11 +-
drivers/net/ethernet/intel/ice/ice_base.c | 4 +-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 8 +-
drivers/net/ethernet/intel/ice/ice_main.c | 4 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 4 +
drivers/net/ethernet/intel/ice/ice_txrx.c | 10 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 184 +-
drivers/net/ethernet/intel/ice/ice_xsk.h | 14 +-
drivers/net/ethernet/intel/idpf/idpf_lib.c | 48 +-
drivers/net/ethernet/intel/idpf/idpf_txrx.c | 43 +-
drivers/net/ethernet/intel/igc/igc_main.c | 33 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 1 +
.../mellanox/mlx5/core/en_accel/ipsec_offload.c | 7 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 5 +-
.../net/ethernet/mellanox/mlx5/core/irq_affinity.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 2 +-
.../ethernet/mellanox/mlx5/core/sf/dev/driver.c | 1 +
.../ethernet/mellanox/mlx5/core/steering/dr_rule.c | 2 +-
drivers/net/ethernet/meta/Kconfig | 2 +-
drivers/net/ethernet/realtek/r8169_main.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 2 -
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
drivers/net/fjes/fjes_main.c | 4 +-
drivers/net/phy/aquantia/aquantia_main.c | 29 +-
drivers/net/phy/micrel.c | 34 +-
drivers/net/phy/realtek.c | 7 +
drivers/net/pse-pd/tps23881.c | 5 +-
drivers/net/usb/qmi_wwan.c | 2 +
drivers/net/usb/sr9700.c | 11 +-
drivers/net/virtio_net.c | 14 +-
drivers/net/wan/fsl_qmc_hdlc.c | 31 +-
drivers/net/wireless/ath/ath12k/pci.c | 3 +-
drivers/net/wireless/ath/ath12k/wow.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 1 +
drivers/nfc/pn544/i2c.c | 2 -
drivers/nvme/host/core.c | 18 +-
drivers/nvme/host/nvme.h | 13 +-
drivers/pci/hotplug/pciehp_hpc.c | 4 +-
drivers/pci/pci.c | 15 +-
drivers/perf/riscv_pmu_sbi.c | 2 +-
drivers/platform/chrome/cros_ec_proto.c | 2 +
drivers/platform/cznic/Kconfig | 80 +-
drivers/platform/cznic/Makefile | 8 +-
drivers/platform/cznic/turris-omnia-mcu-base.c | 4 +
drivers/platform/cznic/turris-omnia-mcu.h | 42 +-
drivers/platform/x86/amd/pmc/pmc.c | 2 +
drivers/platform/x86/amd/pmc/pmc.h | 1 +
drivers/platform/x86/amd/pmf/core.c | 3 +
drivers/platform/x86/amd/pmf/pmf-quirks.c | 9 +-
drivers/platform/x86/intel/ifs/runtest.c | 2 +-
drivers/platform/x86/intel/vbtn.c | 9 +
drivers/platform/x86/sony-laptop.c | 1 -
drivers/power/supply/axp288_charger.c | 22 +-
drivers/power/supply/qcom_battmgr.c | 12 +-
drivers/power/supply/rt5033_battery.c | 1 +
drivers/s390/cio/ccwgroup.c | 1 +
drivers/s390/cio/vfio_ccw_drv.c | 1 +
drivers/scsi/isci/init.c | 6 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 11 +
drivers/scsi/mpt3sas/mpt3sas_base.c | 20 +-
drivers/scsi/sd.c | 20 +-
drivers/scsi/sr_ioctl.c | 2 +-
drivers/soundwire/intel.h | 7 +
drivers/soundwire/intel_ace2x.c | 20 +
drivers/soundwire/intel_auxdevice.c | 14 +
drivers/spi/spi-fsl-lpspi.c | 6 +-
drivers/spi/spi-hisi-kunpeng.c | 4 +
drivers/spi/spidev.c | 1 +
drivers/spmi/spmi-pmic-arb.c | 11 +-
.../pci/hive_isp_css_include/math_support.h | 5 -
.../int340x_thermal/processor_thermal_device_pci.c | 29 +-
drivers/thermal/thermal_trip.c | 4 +-
drivers/tty/serial/sc16is7xx.c | 25 +-
drivers/tty/serial/serial_core.c | 8 +
drivers/tty/vt/conmakehash.c | 20 +-
drivers/ufs/core/ufshcd-priv.h | 5 +
drivers/ufs/core/ufshcd.c | 38 +-
drivers/ufs/host/ufs-exynos.c | 3 +
drivers/usb/gadget/function/f_fs.c | 32 +-
drivers/usb/gadget/function/f_midi2.c | 21 +-
drivers/usb/gadget/function/u_audio.c | 42 +-
drivers/usb/gadget/function/u_serial.c | 1 +
drivers/usb/gadget/udc/core.c | 10 +-
drivers/usb/serial/ch341.c | 1 +
drivers/usb/serial/garmin_gps.c | 5 +-
drivers/usb/serial/mxuport.c | 1 +
drivers/usb/serial/navman.c | 1 +
drivers/usb/serial/qcaux.c | 1 +
drivers/usb/serial/spcp8x5.c | 10 -
drivers/usb/serial/symbolserial.c | 1 +
drivers/usb/serial/usb-serial-simple.c | 1 +
drivers/usb/serial/usb_debug.c | 8 +
drivers/usb/typec/mux/fsa4480.c | 14 +
drivers/usb/typec/tcpm/tcpci.c | 2 +-
drivers/usb/typec/tcpm/tcpm.c | 2 +-
drivers/usb/typec/tipd/core.c | 4 +-
drivers/usb/typec/ucsi/ucsi.c | 11 +-
drivers/usb/usbip/vhci_hcd.c | 9 +-
drivers/vdpa/octeon_ep/octep_vdpa_hw.c | 2 +-
drivers/vhost/vdpa.c | 8 +-
drivers/virtio/virtio.c | 28 +-
drivers/virtio/virtio_pci_common.c | 190 +-
drivers/virtio/virtio_pci_common.h | 16 +-
drivers/virtio/virtio_pci_modern.c | 159 +-
fs/bcachefs/acl.c | 11 +-
fs/bcachefs/acl.h | 2 +-
fs/bcachefs/alloc_background.h | 12 +-
fs/bcachefs/alloc_foreground.c | 34 +-
fs/bcachefs/alloc_foreground.h | 9 +-
fs/bcachefs/bcachefs.h | 2 +
fs/bcachefs/bcachefs_format.h | 5 +-
fs/bcachefs/btree_iter.c | 5 +
fs/bcachefs/btree_update_interior.c | 2 +-
fs/bcachefs/buckets.c | 12 +-
fs/bcachefs/buckets.h | 2 +-
fs/bcachefs/disk_accounting.c | 65 +-
fs/bcachefs/disk_accounting_format.h | 15 +-
fs/bcachefs/ec.c | 34 +-
fs/bcachefs/fs.c | 8 +-
fs/bcachefs/io_misc.c | 6 +-
fs/bcachefs/io_read.c | 1 +
fs/bcachefs/io_write.c | 5 +-
fs/bcachefs/opts.h | 5 +
fs/bcachefs/replicas.c | 1 -
fs/bcachefs/sb-downgrade.c | 27 +-
fs/bcachefs/sb-errors_format.h | 6 +-
fs/bcachefs/super-io.c | 4 +
fs/bcachefs/super.c | 1 -
fs/bcachefs/sysfs.c | 6 +-
fs/btrfs/block-group.c | 13 +-
fs/btrfs/ctree.h | 1 +
fs/btrfs/direct-io.c | 38 +-
fs/btrfs/extent-tree.c | 3 +-
fs/btrfs/extent_map.c | 2 +-
fs/btrfs/file.c | 22 +-
fs/btrfs/free-space-cache.c | 4 +-
fs/btrfs/inode.c | 28 +-
fs/btrfs/print-tree.c | 2 +-
fs/btrfs/scrub.c | 25 +-
fs/btrfs/space-info.c | 5 +-
fs/btrfs/space-info.h | 1 +
fs/btrfs/super.c | 5 +-
fs/btrfs/tests/extent-map-tests.c | 99 +
fs/btrfs/tree-checker.c | 49 +-
fs/ceph/caps.c | 35 +-
fs/ceph/super.h | 7 +-
fs/file.c | 1 +
fs/nfsd/nfsctl.c | 3 +-
fs/smb/client/cifs_debug.c | 2 +-
fs/smb/client/cifsfs.h | 4 +-
fs/smb/client/cifsglob.h | 36 +-
fs/smb/client/cifsproto.h | 2 -
fs/smb/client/inode.c | 17 +-
fs/smb/client/ioctl.c | 32 +-
fs/smb/client/misc.c | 65 +-
fs/smb/client/reparse.c | 4 +
fs/smb/client/reparse.h | 19 +-
fs/smb/client/smb2inode.c | 8 +-
fs/smb/client/smb2pdu.c | 3 +
fs/smb/client/smbdirect.c | 8 +-
fs/smb/client/trace.h | 51 +-
fs/smb/client/transport.c | 2 +-
fs/tracefs/event_inode.c | 4 +-
fs/tracefs/inode.c | 12 +-
fs/tracefs/internal.h | 5 +-
fs/xfs/libxfs/xfs_quota_defs.h | 2 +-
fs/xfs/libxfs/xfs_trans_resv.c | 28 +-
fs/xfs/scrub/agheader_repair.c | 2 +-
fs/xfs/scrub/parent.c | 2 +-
fs/xfs/scrub/trace.h | 10 +-
fs/xfs/xfs_attr_list.c | 2 +-
fs/xfs/xfs_trace.h | 10 +-
fs/xfs/xfs_xattr.c | 19 +-
include/asm-generic/vmlinux.lds.h | 11 +-
include/drm/drm_buddy.h | 2 +
include/linux/compiler.h | 9 +
include/linux/cpuhotplug.h | 2 +-
include/linux/cpumask.h | 2 +-
include/linux/ethtool.h | 10 +-
include/linux/i2c.h | 2 +-
include/linux/kvm_host.h | 9 +-
include/linux/minmax.h | 115 +-
include/linux/profile.h | 1 -
include/linux/ring_buffer.h | 1 -
include/linux/soundwire/sdw_intel.h | 8 +
include/linux/trace_events.h | 3 +-
include/linux/virtio.h | 3 +
include/linux/virtio_config.h | 4 -
include/linux/virtio_net.h | 16 +-
include/sound/cs35l56.h | 6 +-
include/sound/soc-acpi-intel-match.h | 2 +
include/sound/soc-acpi.h | 6 +-
include/sound/soc-dai.h | 6 +-
include/sound/soc-dpcm.h | 19 -
include/sound/soc.h | 7 +-
include/sound/soc_sdw_utils.h | 247 ++
include/sound/tas2563-tlv.h | 279 ++
include/sound/tas2781-tlv.h | 260 --
include/sound/tas2781.h | 71 +-
include/sound/ump_convert.h | 1 +
include/trace/events/btrfs.h | 8 +
include/trace/events/mptcp.h | 2 +-
include/uapi/asm-generic/unistd.h | 5 +-
include/ufs/ufshcd.h | 1 +
include/ufs/ufshci.h | 1 +
init/Kconfig | 1 +
io_uring/napi.c | 2 -
io_uring/net.c | 7 +-
io_uring/poll.c | 1 +
kernel/dma/debug.c | 5 +-
kernel/irq/irqdesc.c | 1 +
kernel/jump_label.c | 4 +-
kernel/kcov.c | 15 +-
kernel/kprobes.c | 4 +-
kernel/ksysfs.c | 7 +
kernel/locking/lockdep.c | 6 +
kernel/locking/qspinlock_paravirt.h | 2 +-
kernel/module/main.c | 41 +-
kernel/padata.c | 7 +
kernel/profile.c | 242 +-
kernel/sched/core.c | 68 +-
kernel/sched/cputime.c | 6 +
kernel/sched/stats.c | 10 -
kernel/task_work.c | 6 +
kernel/time/clocksource.c | 2 +-
kernel/time/ntp.c | 9 +-
kernel/time/tick-broadcast.c | 3 +-
kernel/time/timekeeping.c | 2 +-
kernel/trace/fgraph.c | 2 +-
kernel/trace/preemptirq_delay_test.c | 2 -
kernel/trace/ring_buffer.c | 12 -
kernel/trace/trace.h | 23 +
kernel/trace/trace_events.c | 41 +-
kernel/trace/trace_events_hist.c | 4 +-
kernel/trace/trace_events_inject.c | 2 +-
kernel/trace/trace_events_trigger.c | 6 +-
kernel/trace/tracing_map.c | 6 +-
lib/btree.c | 1 -
lib/decompress_unlzma.c | 2 +
lib/vsprintf.c | 2 +-
mm/list_lru.c | 28 +-
mm/memcontrol.c | 22 +-
mm/shmem.c | 14 +-
mm/slub.c | 3 +
mm/zsmalloc.c | 2 -
net/bluetooth/hci_core.c | 7 -
net/bluetooth/hci_event.c | 5 +-
net/bluetooth/hci_sync.c | 35 +
net/bluetooth/l2cap_core.c | 1 +
net/bridge/br_multicast.c | 4 +-
net/core/dev.c | 1 +
net/core/link_watch.c | 4 +-
net/core/rtnetlink.c | 2 +-
net/ethtool/ioctl.c | 61 +-
net/ethtool/rss.c | 8 +-
net/ipv4/netfilter/iptable_nat.c | 18 +-
net/ipv4/tcp_ao.c | 43 +-
net/ipv4/tcp_input.c | 23 +-
net/ipv4/tcp_offload.c | 3 +
net/ipv4/udp_offload.c | 4 +
net/ipv6/ndisc.c | 34 +-
net/ipv6/netfilter/ip6table_nat.c | 14 +-
net/iucv/af_iucv.c | 4 +-
net/l2tp/l2tp_core.c | 15 +-
net/mac80211/cfg.c | 7 +-
net/mac80211/tx.c | 5 +-
net/mac80211/util.c | 2 +-
net/mptcp/mib.c | 2 +
net/mptcp/mib.h | 2 +
net/mptcp/options.c | 5 +-
net/mptcp/pm.c | 12 +
net/mptcp/pm_netlink.c | 93 +-
net/mptcp/pm_userspace.c | 18 +
net/mptcp/protocol.c | 18 +-
net/mptcp/protocol.h | 4 +
net/mptcp/subflow.c | 26 +-
net/sched/act_ct.c | 4 +-
net/sctp/input.c | 19 +-
net/smc/af_smc.c | 7 +-
net/smc/smc_stats.h | 2 +-
net/sunrpc/svc.c | 2 +-
net/wireless/scan.c | 11 +-
net/wireless/sme.c | 1 +
rust/kernel/firmware.rs | 2 +-
scripts/syscall.tbl | 6 +-
sound/core/seq/seq_ports.h | 14 +-
sound/core/seq/seq_ump_convert.c | 132 +-
sound/core/ump_convert.c | 60 +-
sound/firewire/amdtp-stream.c | 38 +-
sound/firewire/amdtp-stream.h | 1 +
sound/hda/intel-dsp-config.c | 57 +-
sound/hda/intel-sdw-acpi.c | 5 +-
sound/pci/hda/cs35l41_hda.c | 13 -
sound/pci/hda/cs35l56_hda.c | 38 +-
sound/pci/hda/cs35l56_hda.h | 1 -
sound/pci/hda/hda_controller.h | 2 +-
sound/pci/hda/hda_generic.c | 63 +
sound/pci/hda/hda_generic.h | 1 +
sound/pci/hda/hda_intel.c | 10 +-
sound/pci/hda/patch_conexant.c | 56 +-
sound/pci/hda/patch_hdmi.c | 2 +
sound/pci/hda/patch_realtek.c | 2 +
sound/pci/hda/tas2781_hda_i2c.c | 2 +-
sound/soc/Kconfig | 2 +
sound/soc/Makefile | 1 +
sound/soc/adi/axi-i2s.c | 6 +-
sound/soc/adi/axi-spdif.c | 2 +-
sound/soc/amd/acp-config.c | 12 +
sound/soc/amd/acp-pcm-dma.c | 2 +-
sound/soc/amd/acp/Kconfig | 22 +
sound/soc/amd/acp/Makefile | 4 +
sound/soc/amd/acp/acp-i2s.c | 188 +-
sound/soc/amd/acp/acp-legacy-common.c | 40 +-
sound/soc/amd/acp/acp-legacy-mach.c | 7 -
sound/soc/amd/acp/acp-mach-common.c | 2 +-
sound/soc/amd/acp/acp-mach.h | 1 +
sound/soc/amd/acp/acp-pci.c | 4 +
sound/soc/amd/acp/acp-pdm.c | 7 +-
sound/soc/amd/acp/acp-platform.c | 117 +-
sound/soc/amd/acp/acp-rembrandt.c | 2 +-
sound/soc/amd/acp/acp-renoir.c | 2 +-
sound/soc/amd/acp/acp-sdw-sof-mach.c | 509 +++
sound/soc/amd/acp/acp-sof-mach.c | 7 -
sound/soc/amd/acp/acp63.c | 2 +-
sound/soc/amd/acp/acp70.c | 87 +-
sound/soc/amd/acp/amd-acp63-acpi-match.c | 90 +
sound/soc/amd/acp/amd.h | 27 +-
sound/soc/amd/acp/chip_offset_byte.h | 84 +-
sound/soc/amd/acp/soc_amd_sdw_common.h | 44 +
sound/soc/amd/mach-config.h | 2 +
sound/soc/amd/ps/ps-pdm-dma.c | 2 +-
sound/soc/amd/ps/ps-sdw-dma.c | 2 +-
sound/soc/amd/raven/acp3x-pcm-dma.c | 2 +-
sound/soc/amd/renoir/acp3x-pdm-dma.c | 2 +-
sound/soc/amd/vangogh/acp5x-pcm-dma.c | 2 +-
sound/soc/amd/yc/acp6x-pdm-dma.c | 2 +-
sound/soc/apple/mca.c | 2 +-
sound/soc/atmel/atmel-i2s.c | 2 +-
sound/soc/atmel/atmel_wm8904.c | 2 +-
sound/soc/atmel/mchp-i2s-mcc.c | 44 +-
sound/soc/atmel/mchp-pdmc.c | 99 +-
sound/soc/atmel/mchp-spdifrx.c | 2 +-
sound/soc/atmel/mchp-spdiftx.c | 2 +-
sound/soc/atmel/sam9g20_wm8731.c | 2 +-
sound/soc/atmel/sam9x5_wm8731.c | 2 +-
sound/soc/atmel/tse850-pcm5142.c | 2 +-
sound/soc/au1x/ac97c.c | 2 +-
sound/soc/au1x/i2sc.c | 2 +-
sound/soc/au1x/psc-ac97.c | 2 +-
sound/soc/au1x/psc-i2s.c | 2 +-
sound/soc/bcm/bcm63xx-i2s-whistler.c | 2 +-
sound/soc/bcm/cygnus-ssp.c | 2 +-
sound/soc/cirrus/edb93xx.c | 2 +-
sound/soc/cirrus/ep93xx-i2s.c | 2 +-
sound/soc/codecs/Kconfig | 7 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/ak4613.c | 4 +-
sound/soc/codecs/cs-amp-lib-test.c | 44 +
sound/soc/codecs/cs35l56-shared.c | 25 +-
sound/soc/codecs/cs42l42-sdw.c | 12 +-
sound/soc/codecs/cs42l43.c | 2 +-
sound/soc/codecs/cs43130.c | 113 +-
sound/soc/codecs/cs47l15.c | 2 +-
sound/soc/codecs/cs47l24.c | 2 +-
sound/soc/codecs/cs47l35.c | 2 +-
sound/soc/codecs/cs47l85.c | 2 +-
sound/soc/codecs/cs47l90.c | 2 +-
sound/soc/codecs/cs47l92.c | 2 +-
sound/soc/codecs/es8326.c | 6 +-
sound/soc/codecs/inno_rk3036.c | 2 +-
sound/soc/codecs/lpass-rx-macro.c | 2 +-
sound/soc/codecs/lpass-tx-macro.c | 2 +-
sound/soc/codecs/lpass-va-macro.c | 2 +-
sound/soc/codecs/lpass-wsa-macro.c | 27 +-
sound/soc/codecs/msm8916-wcd-digital.c | 2 +-
sound/soc/codecs/mt6357.c | 1855 ++++++++++
sound/soc/codecs/mt6357.h | 660 ++++
sound/soc/codecs/peb2466.c | 14 +-
sound/soc/codecs/rk817_codec.c | 2 +-
sound/soc/codecs/rt1318.c | 3 +-
sound/soc/codecs/rt1320-sdw.c | 2147 +++++++++++-
sound/soc/codecs/rt1320-sdw.h | 3 +
sound/soc/codecs/rt5682.c | 4 +-
sound/soc/codecs/rt5682s.c | 4 +-
sound/soc/codecs/sti-sas.c | 21 +-
sound/soc/codecs/tas2552.c | 1 -
sound/soc/codecs/tas2764.c | 1 -
sound/soc/codecs/tas2770.c | 1 -
sound/soc/codecs/tas2780.c | 1 -
sound/soc/codecs/tas2781-comlib.c | 35 +-
sound/soc/codecs/tas2781-fmwlib.c | 61 +-
sound/soc/codecs/tas2781-i2c.c | 953 +++++-
sound/soc/codecs/tas5086.c | 9 +-
sound/soc/codecs/tlv320aic31xx.c | 102 +-
sound/soc/codecs/tlv320aic32x4.c | 9 +
sound/soc/codecs/wcd934x.c | 4 +-
sound/soc/codecs/wcd937x.c | 2 +-
sound/soc/codecs/wcd937x.h | 34 +-
sound/soc/codecs/wcd938x.c | 20 +-
sound/soc/codecs/wcd938x.h | 4 +-
sound/soc/codecs/wcd939x.c | 2 +-
sound/soc/codecs/wcd939x.h | 6 +-
sound/soc/codecs/wm5102.c | 2 +-
sound/soc/codecs/wm5110.c | 2 +-
sound/soc/codecs/wm8994.c | 2 +-
sound/soc/codecs/wm8997.c | 2 +-
sound/soc/codecs/wm8998.c | 2 +-
sound/soc/codecs/wsa881x.c | 44 +-
sound/soc/codecs/wsa883x.c | 75 +-
sound/soc/codecs/wsa884x.c | 240 +-
sound/soc/dwc/dwc-i2s.c | 18 +-
sound/soc/fsl/fsl_asrc.c | 2 +-
sound/soc/fsl/fsl_aud2htx.c | 2 +-
sound/soc/fsl/fsl_audmix.c | 14 +-
sound/soc/fsl/fsl_dma.c | 2 +-
sound/soc/fsl/fsl_easrc.c | 2 +-
sound/soc/fsl/fsl_esai.c | 2 +-
sound/soc/fsl/fsl_micfil.c | 2 +-
sound/soc/fsl/fsl_mqs.c | 13 +-
sound/soc/fsl/fsl_rpmsg.c | 11 +-
sound/soc/fsl/fsl_sai.c | 2 +-
sound/soc/fsl/fsl_spdif.c | 13 +-
sound/soc/fsl/fsl_ssi.c | 8 +-
sound/soc/fsl/fsl_xcvr.c | 2 +-
sound/soc/fsl/imx-audmux.c | 8 +-
sound/soc/fsl/imx-card.c | 3 -
sound/soc/fsl/imx-pcm-rpmsg.c | 16 +-
sound/soc/fsl/imx-sgtl5000.c | 2 +-
sound/soc/fsl/lpc3xxx-i2s.c | 11 +-
sound/soc/fsl/lpc3xxx-pcm.c | 2 +-
sound/soc/fsl/mpc5200_psc_ac97.c | 2 +-
sound/soc/fsl/mpc5200_psc_i2s.c | 4 +-
sound/soc/fsl/p1022_ds.c | 2 +-
sound/soc/fsl/p1022_rdk.c | 2 +-
sound/soc/fsl/pcm030-audio-fabric.c | 2 +-
sound/soc/generic/audio-graph-card.c | 16 +-
.../soc/generic/audio-graph-card2-custom-sample.c | 2 +-
sound/soc/generic/audio-graph-card2.c | 15 +-
sound/soc/generic/simple-card.c | 4 +-
sound/soc/generic/test-component.c | 11 +-
sound/soc/img/img-i2s-in.c | 2 +-
sound/soc/img/img-i2s-out.c | 2 +-
sound/soc/img/img-parallel-out.c | 2 +-
sound/soc/img/img-spdif-in.c | 2 +-
sound/soc/img/img-spdif-out.c | 2 +-
sound/soc/img/pistachio-internal-dac.c | 2 +-
sound/soc/intel/Kconfig | 120 -
sound/soc/intel/Makefile | 1 -
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 2 +-
sound/soc/intel/atom/sst/sst_acpi.c | 2 +-
sound/soc/intel/avs/core.c | 8 +-
sound/soc/intel/boards/Kconfig | 156 +-
sound/soc/intel/boards/Makefile | 31 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 720 ----
sound/soc/intel/boards/bxt_rt298.c | 670 ----
sound/soc/intel/boards/bytcht_cx2072x.c | 4 +
sound/soc/intel/boards/bytcht_da7213.c | 4 +
sound/soc/intel/boards/bytcht_es8316.c | 4 +-
sound/soc/intel/boards/bytcr_rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5651.c | 4 +-
sound/soc/intel/boards/bytcr_wm5102.c | 2 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 4 +
sound/soc/intel/boards/cht_bsw_rt5672.c | 4 +
sound/soc/intel/boards/ehl_rt5660.c | 3 +-
sound/soc/intel/boards/kbl_da7219_max98357a.c | 688 ----
sound/soc/intel/boards/kbl_da7219_max98927.c | 1175 -------
sound/soc/intel/boards/kbl_rt5660.c | 567 ---
sound/soc/intel/boards/kbl_rt5663_max98927.c | 1073 ------
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 869 -----
sound/soc/intel/boards/skl_hda_dsp_common.c | 168 -
sound/soc/intel/boards/skl_hda_dsp_common.h | 67 -
sound/soc/intel/boards/skl_hda_dsp_generic.c | 242 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 704 ----
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 751 ----
sound/soc/intel/boards/skl_rt286.c | 568 ---
sound/soc/intel/boards/sof_board_helpers.c | 152 +
sound/soc/intel/boards/sof_board_helpers.h | 3 +
sound/soc/intel/boards/sof_es8336.c | 14 +-
sound/soc/intel/boards/sof_pcm512x.c | 5 +-
sound/soc/intel/boards/sof_rt5682.c | 7 +
sound/soc/intel/boards/sof_sdw.c | 1384 +-------
sound/soc/intel/boards/sof_sdw_common.h | 172 +-
sound/soc/intel/boards/sof_sdw_hdmi.c | 16 +-
sound/soc/intel/boards/sof_ssp_amp.c | 6 +
sound/soc/intel/boards/sof_wm8804.c | 6 +-
sound/soc/intel/catpt/device.c | 2 +-
sound/soc/intel/common/Makefile | 1 +
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 105 +
sound/soc/intel/common/soc-acpi-intel-arl-match.c | 263 ++
sound/soc/intel/common/soc-acpi-intel-cnl-match.c | 6 -
sound/soc/intel/common/soc-acpi-intel-ehl-match.c | 1 -
sound/soc/intel/common/soc-acpi-intel-hda-match.c | 18 +-
sound/soc/intel/common/soc-acpi-intel-icl-match.c | 6 -
sound/soc/intel/common/soc-acpi-intel-kbl-match.c | 11 -
sound/soc/intel/common/soc-acpi-intel-lnl-match.c | 104 +
sound/soc/intel/common/soc-acpi-intel-ptl-match.c | 145 +
sound/soc/intel/common/soc-acpi-intel-skl-match.c | 5 -
sound/soc/intel/skylake/Makefile | 15 -
sound/soc/intel/skylake/bxt-sst.c | 629 ----
sound/soc/intel/skylake/cnl-sst-dsp.c | 266 --
sound/soc/intel/skylake/cnl-sst-dsp.h | 103 -
sound/soc/intel/skylake/cnl-sst.c | 508 ---
sound/soc/intel/skylake/skl-debug.c | 248 --
sound/soc/intel/skylake/skl-i2s.h | 87 -
sound/soc/intel/skylake/skl-messages.c | 1419 --------
sound/soc/intel/skylake/skl-nhlt.c | 269 --
sound/soc/intel/skylake/skl-pcm.c | 1507 --------
sound/soc/intel/skylake/skl-ssp-clk.c | 428 ---
sound/soc/intel/skylake/skl-ssp-clk.h | 108 -
sound/soc/intel/skylake/skl-sst-cldma.c | 373 --
sound/soc/intel/skylake/skl-sst-cldma.h | 243 --
sound/soc/intel/skylake/skl-sst-dsp.c | 462 ---
sound/soc/intel/skylake/skl-sst-dsp.h | 256 --
sound/soc/intel/skylake/skl-sst-ipc.c | 1071 ------
sound/soc/intel/skylake/skl-sst-ipc.h | 169 -
sound/soc/intel/skylake/skl-sst-utils.c | 425 ---
sound/soc/intel/skylake/skl-sst.c | 599 ----
sound/soc/intel/skylake/skl-topology.c | 3605 --------------------
sound/soc/intel/skylake/skl-topology.h | 524 ---
sound/soc/intel/skylake/skl.c | 1177 -------
sound/soc/intel/skylake/skl.h | 207 --
sound/soc/kirkwood/kirkwood-i2s.c | 2 +-
sound/soc/loongson/loongson_card.c | 125 +-
sound/soc/loongson/loongson_dma.c | 25 +-
sound/soc/loongson/loongson_i2s.c | 115 +-
sound/soc/loongson/loongson_i2s.h | 24 +-
sound/soc/loongson/loongson_i2s_pci.c | 51 +-
sound/soc/mediatek/Kconfig | 20 +
sound/soc/mediatek/Makefile | 1 +
sound/soc/mediatek/common/mtk-btcvsd.c | 2 +-
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 2 +-
sound/soc/mediatek/mt2701/mt2701-cs42448.c | 16 +-
sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 2 +-
sound/soc/mediatek/mt7986/mt7986-afe-pcm.c | 9 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 2 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 4 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8365/Makefile | 15 +
sound/soc/mediatek/mt8365/mt8365-afe-clk.c | 421 +++
sound/soc/mediatek/mt8365/mt8365-afe-clk.h | 32 +
sound/soc/mediatek/mt8365/mt8365-afe-common.h | 448 +++
sound/soc/mediatek/mt8365/mt8365-afe-pcm.c | 2274 ++++++++++++
sound/soc/mediatek/mt8365/mt8365-dai-adda.c | 311 ++
sound/soc/mediatek/mt8365/mt8365-dai-dmic.c | 310 ++
sound/soc/mediatek/mt8365/mt8365-dai-i2s.c | 846 +++++
sound/soc/mediatek/mt8365/mt8365-dai-pcm.c | 293 ++
sound/soc/mediatek/mt8365/mt8365-mt6357.c | 343 ++
sound/soc/mediatek/mt8365/mt8365-reg.h | 993 ++++++
sound/soc/meson/aiu-fifo.h | 2 -
sound/soc/meson/aiu.c | 2 +-
sound/soc/meson/axg-card.c | 13 +-
sound/soc/meson/gx-card.c | 3 +-
sound/soc/meson/meson-card-utils.c | 4 +-
sound/soc/mxs/mxs-sgtl5000.c | 2 +-
sound/soc/pxa/mmp-sspa.c | 2 +-
sound/soc/pxa/pxa2xx-ac97.c | 2 +-
sound/soc/qcom/common.c | 1 -
sound/soc/qcom/lpass-apq8016.c | 2 +-
sound/soc/qcom/lpass-ipq806x.c | 2 +-
sound/soc/qcom/lpass-sc7180.c | 2 +-
sound/soc/qcom/lpass-sc7280.c | 2 +-
sound/soc/qcom/qdsp6/q6routing.c | 2 +-
sound/soc/qcom/sm8250.c | 8 +
sound/soc/rockchip/rockchip_i2s.c | 2 +-
sound/soc/rockchip/rockchip_i2s_tdm.c | 2 +-
sound/soc/rockchip/rockchip_pdm.c | 2 +-
sound/soc/rockchip/rockchip_rt5645.c | 2 +-
sound/soc/rockchip/rockchip_spdif.c | 2 +-
sound/soc/samsung/arndale.c | 2 +-
sound/soc/samsung/i2s.c | 2 +-
sound/soc/samsung/odroid.c | 2 +-
sound/soc/samsung/pcm.c | 2 +-
sound/soc/samsung/snow.c | 2 +-
sound/soc/samsung/spdif.c | 2 +-
sound/soc/sdw_utils/Kconfig | 6 +
sound/soc/sdw_utils/Makefile | 11 +
.../soc_sdw_bridge_cs35l56.c} | 56 +-
.../soc_sdw_cs42l42.c} | 13 +-
.../soc_sdw_cs42l43.c} | 38 +-
.../soc_sdw_cs_amp.c} | 18 +-
.../sof_sdw_dmic.c => sdw_utils/soc_sdw_dmic.c} | 10 +-
.../sof_sdw_maxim.c => sdw_utils/soc_sdw_maxim.c} | 56 +-
.../soc_sdw_rt5682.c} | 12 +-
.../sof_sdw_rt700.c => sdw_utils/soc_sdw_rt700.c} | 12 +-
.../sof_sdw_rt711.c => sdw_utils/soc_sdw_rt711.c} | 38 +-
.../soc_sdw_rt712_sdca.c} | 10 +-
.../soc_sdw_rt722_sdca.c} | 10 +-
.../soc_sdw_rt_amp.c} | 43 +-
.../soc_sdw_rt_amp_coeff_tables.h} | 6 +-
.../soc_sdw_rt_dmic.c} | 11 +-
.../soc_sdw_rt_sdca_jack_common.c} | 40 +-
sound/soc/sdw_utils/soc_sdw_utils.c | 1170 +++++++
sound/soc/sh/Kconfig | 1 +
sound/soc/sh/fsi.c | 2 +-
sound/soc/sh/hac.c | 2 +-
sound/soc/sh/rcar/adg.c | 4 +-
sound/soc/sh/rcar/core.c | 19 +-
sound/soc/sh/rcar/dma.c | 75 +-
sound/soc/sh/rcar/rsnd.h | 10 -
sound/soc/sh/rcar/ssi.c | 2 +-
sound/soc/sh/rz-ssi.c | 259 +-
sound/soc/sh/siu_dai.c | 2 +-
sound/soc/soc-ac97.c | 4 +-
sound/soc/soc-core.c | 21 +-
sound/soc/soc-dai.c | 58 -
sound/soc/soc-dapm.c | 5 +-
sound/soc/soc-pcm.c | 362 +-
sound/soc/soc-topology-test.c | 132 +-
sound/soc/soc-topology.c | 9 +-
sound/soc/sof/amd/Kconfig | 11 +
sound/soc/sof/amd/Makefile | 4 +-
sound/soc/sof/amd/acp-common.c | 3 +
sound/soc/sof/amd/acp-dsp-offset.h | 24 +-
sound/soc/sof/amd/acp-loader.c | 2 +-
sound/soc/sof/amd/acp.c | 88 +-
sound/soc/sof/amd/acp.h | 11 +-
sound/soc/sof/amd/acp70.c | 142 +
sound/soc/sof/amd/pci-acp63.c | 2 +-
sound/soc/sof/amd/pci-acp70.c | 112 +
sound/soc/sof/amd/pci-rmb.c | 1 -
sound/soc/sof/amd/pci-rn.c | 1 -
sound/soc/sof/amd/pci-vangogh.c | 1 -
sound/soc/sof/imx/imx8.c | 2 +-
sound/soc/sof/imx/imx8m.c | 2 +-
sound/soc/sof/imx/imx8ulp.c | 2 +-
sound/soc/sof/intel/Kconfig | 17 +
sound/soc/sof/intel/Makefile | 2 +
sound/soc/sof/intel/bdw.c | 2 +-
sound/soc/sof/intel/byt.c | 2 +-
sound/soc/sof/intel/hda-dsp.c | 1 +
sound/soc/sof/intel/hda-stream.c | 4 +-
sound/soc/sof/intel/hda.c | 282 +-
sound/soc/sof/intel/hda.h | 1 +
sound/soc/sof/intel/lnl.c | 27 +
sound/soc/sof/intel/mtl.c | 16 +-
sound/soc/sof/intel/mtl.h | 2 +
sound/soc/sof/intel/pci-ptl.c | 77 +
sound/soc/sof/intel/shim.h | 1 +
sound/soc/sof/mediatek/mt8186/mt8186.c | 2 +-
sound/soc/sof/mediatek/mt8195/mt8195.c | 2 +-
sound/soc/sof/pcm.c | 2 +-
sound/soc/sof/sof-audio.h | 8 +-
sound/soc/sof/sof-priv.h | 16 +-
sound/soc/sof/topology.c | 8 +-
sound/soc/sprd/sprd-mcdt.c | 2 +-
sound/soc/starfive/jh7110_pwmdac.c | 2 +-
sound/soc/starfive/jh7110_tdm.c | 2 +-
sound/soc/stm/stm32_adfsdm.c | 2 +-
sound/soc/stm/stm32_i2s.c | 6 +-
sound/soc/stm/stm32_sai_sub.c | 2 +-
sound/soc/stm/stm32_spdifrx.c | 2 +-
sound/soc/sunxi/sun4i-codec.c | 2 +-
sound/soc/sunxi/sun4i-i2s.c | 2 +-
sound/soc/sunxi/sun4i-spdif.c | 2 +-
sound/soc/sunxi/sun50i-dmic.c | 2 +-
sound/soc/sunxi/sun8i-codec.c | 2 +-
sound/soc/tegra/tegra186_asrc.c | 2 +-
sound/soc/tegra/tegra186_dspk.c | 2 +-
sound/soc/tegra/tegra20_ac97.c | 2 +-
sound/soc/tegra/tegra20_i2s.c | 2 +-
sound/soc/tegra/tegra210_admaif.c | 2 +-
sound/soc/tegra/tegra210_adx.c | 2 +-
sound/soc/tegra/tegra210_ahub.c | 2 +-
sound/soc/tegra/tegra210_amx.c | 2 +-
sound/soc/tegra/tegra210_dmic.c | 2 +-
sound/soc/tegra/tegra210_i2s.c | 18 +-
sound/soc/tegra/tegra210_mixer.c | 2 +-
sound/soc/tegra/tegra210_mvc.c | 2 +-
sound/soc/tegra/tegra210_ope.c | 2 +-
sound/soc/tegra/tegra210_sfc.c | 2 +-
sound/soc/tegra/tegra30_ahub.c | 2 +-
sound/soc/tegra/tegra30_i2s.c | 2 +-
sound/soc/tegra/tegra_audio_graph_card.c | 2 +-
sound/soc/tegra/tegra_pcm.c | 2 +-
sound/soc/ti/ams-delta.c | 2 +-
sound/soc/ti/davinci-i2s.c | 2 +-
sound/soc/ti/davinci-mcasp.c | 2 +-
sound/soc/ti/omap-mcbsp.c | 2 +-
sound/soc/uniphier/aio-ld11.c | 2 +-
sound/soc/uniphier/aio-pxs2.c | 2 +-
sound/soc/uniphier/evea.c | 2 +-
sound/soc/ux500/mop500.c | 2 +-
sound/soc/ux500/ux500_msp_dai.c | 2 +-
sound/soc/xilinx/xlnx_formatter_pcm.c | 2 +-
sound/soc/xilinx/xlnx_spdif.c | 2 +-
sound/soc/xtensa/xtfpga-i2s.c | 2 +-
sound/usb/line6/driver.c | 5 +
sound/usb/quirks-table.h | 4 +
sound/usb/stream.c | 4 +-
tools/build/feature/Makefile | 53 +-
tools/perf/Documentation/Build.txt | 28 +
tools/perf/Makefile.config | 20 +-
tools/perf/Makefile.perf | 27 +-
.../pmu-events/arch/riscv/andes/ax45/firmware.json | 2 +-
.../pmu-events/arch/riscv/riscv-sbi-firmware.json | 2 +-
.../pmu-events/arch/riscv/sifive/u74/firmware.json | 2 +-
.../arch/riscv/starfive/dubhe-80/firmware.json | 2 +-
.../arch/riscv/thead/c900-legacy/firmware.json | 2 +-
tools/perf/util/callchain.c | 2 +-
tools/sound/dapm-graph | 44 +-
tools/testing/selftests/bpf/Makefile | 2 +-
.../selftests/bpf/prog_tests/uprobe_syscall.c | 4 +-
tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c | 4 +-
tools/testing/selftests/drivers/net/hw/rss_ctx.py | 37 +-
tools/testing/selftests/hid/hid_bpf.c | 26 +
tools/testing/selftests/hid/progs/hid.c | 2 +-
.../testing/selftests/hid/progs/hid_bpf_helpers.h | 2 +-
tools/testing/selftests/kselftest/ksft.py | 2 +-
tools/testing/selftests/kvm/riscv/get-reg-list.c | 8 +-
tools/testing/selftests/mm/Makefile | 2 +-
tools/testing/selftests/mm/mremap_test.c | 2 +
tools/testing/selftests/net/mptcp/mptcp_connect.c | 8 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 158 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +
virt/kvm/Kconfig | 4 +-
virt/kvm/guest_memfd.c | 227 +-
virt/kvm/kvm_main.c | 49 +-
984 files changed, 25292 insertions(+), 30662 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/cirrus,cs4271.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/cs4271.txt
delete mode 100644 Documentation/devicetree/bindings/sound/da7213.txt
create mode 100644 Documentation/devicetree/bindings/sound/dlg,da7213.yaml
create mode 100644 Documentation/devicetree/bindings/sound/fsl,imx-audio-es8328.yaml
create mode 100644 Documentation/devicetree/bindings/sound/fsl,saif.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/imx-audio-es8328.txt
create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt8365-afe.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt8365-mt6357.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/mxs-saif.txt
delete mode 100644 Documentation/devicetree/bindings/sound/pcm512x.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,apq8016-sbc-sndcard.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ti,pcm512x.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ti,tlv320dac3100.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ti,tpa6130a2.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
delete mode 100644 Documentation/devicetree/bindings/sound/tpa6130a2.txt
delete mode 100644 arch/s390/kernel/alternative.h
create mode 100644 include/sound/soc_sdw_utils.h
create mode 100644 include/sound/tas2563-tlv.h
create mode 100644 sound/soc/amd/acp/acp-sdw-sof-mach.c
create mode 100644 sound/soc/amd/acp/amd-acp63-acpi-match.c
create mode 100644 sound/soc/amd/acp/soc_amd_sdw_common.h
create mode 100644 sound/soc/codecs/mt6357.c
create mode 100644 sound/soc/codecs/mt6357.h
delete mode 100644 sound/soc/intel/boards/bxt_da7219_max98357a.c
delete mode 100644 sound/soc/intel/boards/bxt_rt298.c
delete mode 100644 sound/soc/intel/boards/kbl_da7219_max98357a.c
delete mode 100644 sound/soc/intel/boards/kbl_da7219_max98927.c
delete mode 100644 sound/soc/intel/boards/kbl_rt5660.c
delete mode 100644 sound/soc/intel/boards/kbl_rt5663_max98927.c
delete mode 100644 sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
delete mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.c
delete mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.h
delete mode 100644 sound/soc/intel/boards/skl_nau88l25_max98357a.c
delete mode 100644 sound/soc/intel/boards/skl_nau88l25_ssm4567.c
delete mode 100644 sound/soc/intel/boards/skl_rt286.c
create mode 100644 sound/soc/intel/common/soc-acpi-intel-ptl-match.c
delete mode 100644 sound/soc/intel/skylake/Makefile
delete mode 100644 sound/soc/intel/skylake/bxt-sst.c
delete mode 100644 sound/soc/intel/skylake/cnl-sst-dsp.c
delete mode 100644 sound/soc/intel/skylake/cnl-sst-dsp.h
delete mode 100644 sound/soc/intel/skylake/cnl-sst.c
delete mode 100644 sound/soc/intel/skylake/skl-debug.c
delete mode 100644 sound/soc/intel/skylake/skl-i2s.h
delete mode 100644 sound/soc/intel/skylake/skl-messages.c
delete mode 100644 sound/soc/intel/skylake/skl-nhlt.c
delete mode 100644 sound/soc/intel/skylake/skl-pcm.c
delete mode 100644 sound/soc/intel/skylake/skl-ssp-clk.c
delete mode 100644 sound/soc/intel/skylake/skl-ssp-clk.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-cldma.c
delete mode 100644 sound/soc/intel/skylake/skl-sst-cldma.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-dsp.c
delete mode 100644 sound/soc/intel/skylake/skl-sst-dsp.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-ipc.c
delete mode 100644 sound/soc/intel/skylake/skl-sst-ipc.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-utils.c
delete mode 100644 sound/soc/intel/skylake/skl-sst.c
delete mode 100644 sound/soc/intel/skylake/skl-topology.c
delete mode 100644 sound/soc/intel/skylake/skl-topology.h
delete mode 100644 sound/soc/intel/skylake/skl.c
delete mode 100644 sound/soc/intel/skylake/skl.h
create mode 100644 sound/soc/mediatek/mt8365/Makefile
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-clk.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-clk.h
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-common.h
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-pcm.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-adda.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-dmic.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-i2s.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-pcm.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-mt6357.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-reg.h
create mode 100644 sound/soc/sdw_utils/Kconfig
create mode 100644 sound/soc/sdw_utils/Makefile
rename sound/soc/{intel/boards/bridge_cs35l56.c => sdw_utils/soc_sdw_bridge_cs35l56.c} (63%)
rename sound/soc/{intel/boards/sof_sdw_cs42l42.c => sdw_utils/soc_sdw_cs42l42.c} (82%)
rename sound/soc/{intel/boards/sof_sdw_cs42l43.c => sdw_utils/soc_sdw_cs42l43.c} (73%)
rename sound/soc/{intel/boards/sof_sdw_cs_amp.c => sdw_utils/soc_sdw_cs_amp.c} (66%)
rename sound/soc/{intel/boards/sof_sdw_dmic.c => sdw_utils/soc_sdw_dmic.c} (71%)
rename sound/soc/{intel/boards/sof_sdw_maxim.c => sdw_utils/soc_sdw_maxim.c} (63%)
rename sound/soc/{intel/boards/sof_sdw_rt5682.c => sdw_utils/soc_sdw_rt5682.c} (82%)
rename sound/soc/{intel/boards/sof_sdw_rt700.c => sdw_utils/soc_sdw_rt700.c} (81%)
rename sound/soc/{intel/boards/sof_sdw_rt711.c => sdw_utils/soc_sdw_rt711.c} (70%)
rename sound/soc/{intel/boards/sof_sdw_rt712_sdca.c => sdw_utils/soc_sdw_rt712_sdca.c} (74%)
rename sound/soc/{intel/boards/sof_sdw_rt722_sdca.c => sdw_utils/soc_sdw_rt722_sdca.c} (68%)
rename sound/soc/{intel/boards/sof_sdw_rt_amp.c => sdw_utils/soc_sdw_rt_amp.c} (84%)
rename sound/soc/{intel/boards/sof_sdw_amp_coeff_tables.h => sdw_utils/soc_sdw_rt_amp_coeff_tables.h} (97%)
rename sound/soc/{intel/boards/sof_sdw_rt_dmic.c => sdw_utils/soc_sdw_rt_dmic.c} (70%)
rename sound/soc/{intel/boards/sof_sdw_rt_sdca_jack_common.c => sdw_utils/soc_sdw_rt_sdca_jack_common.c} (78%)
create mode 100644 sound/soc/sdw_utils/soc_sdw_utils.c
create mode 100644 sound/soc/sof/amd/acp70.c
create mode 100644 sound/soc/sof/amd/pci-acp70.c
create mode 100644 sound/soc/sof/intel/pci-ptl.c
1
1
The following changes since commit 839a4ec06f75cec8fec2cc5fc14e921d0c3f7369:
ASoC: Intel: soc-acpi-cht: Make Lenovo Yoga Tab 3 X90F DMI match less strict (2024-08-23 11:02:53 +0100)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git tags/asoc-v6.12
for you to fetch changes up to 2772ee6de6cf94e5f2a0c0ce6067d0796a4170ba:
ASoC: topology: Fix redundant logical jump (2024-09-13 19:40:38 +0100)
----------------------------------------------------------------
ASoC: Updates for v6.12
This is a very large set of changes, almost all in drivers rather than
the core. Even with the addition of several quite large drivers the
overall diffstat is negative thanks to the removal of some old Intel
board support which has been obsoleted by the AVS driver, helped a bit
by some factoring out into helpers (especially around the Soundwire
machine drivers for x86).
Highlights include:
- More simplifications and cleanups throughout the subsystem from
Morimoto-san.
- Extensive cleanups and refactoring of the Soundwire drivers to make
better use of helpers.
- Removal of Intel machine support obsoleted by the AVS driver.
- Lots of DT schema conversions.
- Machine support for many AMD and Intel x86 platforms.
- Support for AMD ACP 7.1, Mediatek MT6367 and MT8365, Realtek RTL1320
SoundWire and rev C, and Texas Instruments TAS2563
----------------------------------------------------------------
Alexandre Mergnat (11):
ASoC: dt-bindings: mediatek,mt8365-afe: Add audio afe document
ASoC: dt-bindings: mediatek,mt8365-mt6357: Add audio sound card document
dt-bindings: mfd: mediatek: Add codec property for MT6357 PMIC
ASoC: mediatek: mt8365: Add common header
ASoC: mediatek: mt8365: Add audio clock control support
ASoC: mediatek: mt8365: Add I2S DAI support
ASoC: mediatek: mt8365: Add ADDA DAI support
ASoC: mediatek: mt8365: Add DMIC DAI support
ASoC: mediatek: mt8365: Add PCM DAI support
ASoC: mediatek: mt8365: Add the AFE driver support
ASoC: mediatek: Add MT8365 support
Andrei Simion (1):
ASoC: dt-bindings: microchip,sama7g5-spdifrx: Add common DAI reference
Andrew Kreimer (1):
ASoC: tlv320aic31xx: Fix typos
Animesh Agarwal (2):
ASoC: dt-bindings: ti,pcm512x: Convert to dtschema
ASoC: dt-bindings: fsl,imx-audio-es8328: Convert to dtschema
Arnd Bergmann (2):
ASoC: mediatek: mt8365: include linux/bitfield.h
ASoC: mediatek: mt8365: remove unused mt8365_i2s_hd_str
Balamurugan C (4):
ASoC: Intel: soc-acpi: Add entry for sof_es8336 in ARL match table.
ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in ARL match table
ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for ARL.
ASoC: Intel: ARL: Add entry for HDMI-In capture support to non-I2S codec boards.
Baojun Xu (1):
ASoC: tas2781: Remove unnecessary line feed for tasdevice_codec_remove
Bard Liao (6):
ASoC: Intel: soc-acpi-intel-ptl-match: add rt711-sdca table
ASoC: Intel: soc-acpi-intel-ptl-match: Add rt722 support
ASoC: Intel: sof_sdw: add rt1320 amp support
ASoC: SOF: Intel: hda: refactoring topology name fixup for HDA mach
ASoC: Intel: sof_sdw: move ignore_internal_dmic check earlier
ASoC: Intel: sof_sdw: overwrite mach_params->dmic_num
Biju Das (2):
ASoC: dt-bindings: renesas,rz-ssi: Document port property
ASoC: sh: rz-ssi: Add full duplex support
Binbin Zhou (7):
ASoC: loongson: Use BIT() macro
ASoC: loongson: Simplify probe() with local dev variable
ASoC: loongson: Simplify with dev_err_probe()
ASoC: loongson: Simplify if statment in loongson_card_hw_params()
ASoC: loongson: Replace if with ternary operator
ASoC: loongson: Factor out loongson_card_acpi_find_device() function
ASoC: loongson: Factor out loongson i2s enable clock functions
Brent Lu (10):
ASoC: SOF: Intel: hda: refactoring topology name fixup for SDW mach
ASoC: SOF: Intel: hda: support BT link mask in mach_params
ASoC: Intel: skl_hda_dsp_generic: support BT audio offload
ASoC: Intel: skl_hda_dsp_generic: remove hdac-hdmi support
ASoC: Intel: skl_hda_dsp_generic: use sof_hdmi_private to init HDMI
ASoC: Intel: board_helpers: support HDA link initialization
ASoC: Intel: skl_hda_dsp_generic: use common module for DAI links
ASoC: Intel: ehl_rt5660: do not check common_hdmi_codec_drv
ASoC: Intel: sof_pcm512x: do not check common_hdmi_codec_drv
ASoC: SOF: Intel: hda: remove common_hdmi_codec_drv
Cezary Rojewski (14):
ALSA: hda: Move SST device entries to AVS
ASoC: Intel: Drop skl_machine_pdata usage
ASoC: Intel: Remove bxt_rt298 board driver
ASoC: Intel: Remove bxt_da7219_max98357a board driver
ASoC: Intel: Remove kbl_rt5663_rt5514_max98927 board driver
ASoC: Intel: Remove kbl_rt5663_max98927 board driver
ASoC: Intel: Remove kbl_rt5660 board driver
ASoC: Intel: Remove kbl_da7219_max98927 board driver
ASoC: Intel: Remove kbl_da7219_max98357a board driver
ASoC: Intel: Remove skl_rt286 board driver
ASoC: Intel: Remove skl_nau88l25_ssm4567 board driver
ASoC: Intel: Remove skl_nau88l25_max98357a board driver
ASoC: Intel: Remove skylake driver
ASoC: Intel: avs: Enable by default for all SST configurations
Charles Keepax (3):
ASoC: Intel: soc-acpi: arl: Add match entries for new cs42l43 laptops
ASoC: Intel: soc-acpi: adl: Add match entries for new cs42l43 laptops
ASoC: Intel: soc-acpi: lnl: Add match entries for new cs42l43 laptops
Chen Ni (4):
ASoC: mediatek: mt8192: remove redundant null pointer check before of_node_put
ASoC: cs42l42: Convert comma to semicolon
ASoC: topology-test: Convert comma to semicolon
ASoC: Intel: skl_hda_dsp_generic: convert comma to semicolon
Christophe JAILLET (4):
ASoC: sti-sas: Constify snd_soc_component_driver struct
ASoC: cs43130: Constify snd_soc_component_driver struct
ASoC: cs43130: Constify struct reg_sequence and reg_sequences
ASoC: rt1318: Constify struct reg_sequence
Codrin Ciubotariu (5):
ASoC: atmel: mchp-i2s-mcc: Improve maxburst calculation for better performance
ASoC: atmel: mchp-i2s-mcc: Remove interface name from stream_name
ASoC: atmel: mchp-pdmc: Improve maxburst calculation for better performance
ASoC: atmel: mchp-pdmc: Add snd_soc_dai_driver name
ASoC: atmel: mchp-pdmc: Retain Non-Runtime Controls
Colin Ian King (1):
ASoC: codecs: wcd934x: make read-only array minCode_param static const
Dmitry Torokhov (1):
ASoC: tas5086: use sleeping variants of gpiod API
Fabio Estevam (7):
ASoC: fsl_audmix: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
ASoC: fsl_mqs: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
ASoC: fsl_rpmsg: Switch to RUNTIME_PM_OPS()
ASoC: fsl_spdif: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
ASoC: fsl_ssi: Switch to SYSTEM_SLEEP_PM_OPS
ASoC: imx-audmux: Switch to SYSTEM_SLEEP_PM_OPS
ASoC: imx-pcm-rpmsg: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS()
Frank Li (2):
ASoC: dt-bindings: convert tlv320aic31xx.txt to yaml
ASoC: dt-bindings: Convert tpa6130a2.txt to yaml
Fred Oh (1):
ASoC: SOF: Intel: add PTL specific power control register
Geert Uytterhoeven (1):
ASoC: dt-bindings: dlg,da7213: Convert to json-schema
Gustavo A. R. Silva (1):
ASoC: SOF: sof-audio: Avoid -Wflex-array-member-not-at-end warnings
Heiko Stuebner (2):
ASoC: dt-bindings: realtek,rt5616: document mclk clock
ASoC: dt-bindings: realtek,rt5616: Document audio graph port
Hongbo Li (2):
ASoC: dapm: Use IS_ERR_OR_NULL() helper function
ASoC: adi: Use str_enabled_disabled() helper
Jens Reidel (1):
ASoC: qcom: sm8250: enable primary mi2s
Jerome Brunet (1):
ASoC: amlogic: do not use dpcm_playback/capture flags
Krzysztof Kozlowski (16):
ASoC: codecs: wsa881x: Drop unused version readout
ASoC: codecs: wsa883x: Handle reading version failure
ASoC: codecs: wsa883x: Simplify handling variant/version
ASoC: codecs: wsa884x: Simplify handling variant
ASoC: dt-bindings: qcom,apq8016-sbc-sndcard: move to separate binding
ASoC: codecs: lpass-wsa-macro: Do not hard-code dai in VI mixer
ASoC: codecs: wsa881x: Use designator array initializers for Soundwire ports
ASoC: codecs: wsa883x: Use designator array initializers for Soundwire ports
ASoC: codecs: wsa884x: Use designator array initializers for Soundwire ports
ASoC: codecs: wcd938x: Drop unused defines and enums
ASoC: codecs: wcd937x: Move max port number defines to enum
ASoC: codecs: wcd938x: Move max port number defines to enum
ASoC: codecs: wcd939x: Move max port number defines to enum
ASoC: dt-bindings: samsung,odroid: drop stale clocks
ASoC: MAINTAINERS: Drop incorrect tlv320aic31xx.txt path
ASoC: codecs: wsa884x: Implement temperature reading and hwmon
Kuninori Morimoto (19):
ASoC: rsnd: remove rsnd_mod_confirm_ssi() under DEBUG
ASoC: rsnd: use pcm_dmaengine code
ASoC: stm: use snd_pcm_direction_name()
ASoC: sof: pcm: use snd_pcm_direction_name()
ASoC: sof: intel: use snd_pcm_direction_name()
ASoC: fsl: lpc3xxx-i2s: use snd_pcm_direction_name()
ASoC: tegra: use snd_pcm_direction_name()
ASoC: soc-pcm: use snd_pcm_direction_name()
ASoC: soc-dapm: use snd_pcm_direction_name()
ASoC: remove bespoke trigger support
ASoC: soc-pcm: remove snd_soc_dpcm_stream_{lock/unlock}_irq()
ASoC: soc-pcm: remove snd_soc_dpcm_stream_lock_irqsave_nested()
ASoC: soc-pcm: Indicate warning if dpcm_playback/capture were used for availability limition
ASoC: remove snd_soc_dai_link_set_capabilities()
ASoC: Intel: sof_sdw: use playback/capture_only flags
ASoC: soc-pcm: move snd_soc_dpcm_can_be_xxx() to top
ASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local function
ASoC: makes rtd->initialized bit field
ASoC: dt-bindings: renesas,rsnd: add post-init-providers property
Linus Walleij (3):
ASoC: tas2781-i2c: Drop weird GPIO code
ASoC: tas2781-i2c: Get the right GPIO line
ASoC: tas*: Drop unused GPIO includes
Liu Jing (1):
ASoC: mediatek: mt2701-cs42448: Optimize redundant code in mt2701_cs42448_machine_probe
Luca Ceresoli (3):
ASoC: dapm-graph: remove the "ROOT" cluster
ASoC: dapm-graph: visualize component On/Off bias level
ASoC: dapm-graph: show path name for non-static routes
Lukasz Majewski (1):
ASoC: dt-bindings: Convert mxs-saif.txt to fsl,saif.yaml (imx28 saif)
Ma Ke (2):
ASoC: rt5682s: Return devm_of_clk_add_hw_provider to transfer the error
ASoC: rt5682: Return devm_of_clk_add_hw_provider to transfer the error
Maciej Strozek (1):
ASoC: Intel: sof_sdw: Add quirks from some new Dell laptops
Marek Vasut (1):
ASoC: tlv320aic32x4: Add multi endpoint support
Mark Brown (37):
Add HDMI Audio support
ASoC: codecs: wsa88xx: Few cleanups
ASoC: codecs: wsa88xx and wcd93xx: Soundwire port
AMD SOF based generic SoundWire machine driver
ALSA/ASoC: use snd_pcm_direction_name()
ASoC: SOF: reshuffle and optimize structures
ASoC/SOF/PCI/Intel: add PantherLake support
ASoC: Merge fixes
ASoC: tas*: Fix up GPIO usage
ASoC: Intel: Remove skylake driver
ALSA/ASoC/SoundWire: Intel: update maximum number
ASoC: Merge up fixes
ASoC: grace time for DPCM cleanup
ASoC: Merge up fixes
ASoC: dapm-graph: add component on/off and route names
Add SOF support for ACP7.0 based platform
ASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local
ASoC: Intel: boards: updates for 6.12
ASoC: dt-bindings: amlogic-sound-cards: document
Add audio support for the MediaTek Genio 350-evk
Fixes for the audio setup on the rk3588-nanopc-t6
Add i2s/tdm support for acp7.0 and acp7.1 platforms
Some clean up with helper fucntion
Add audio support for the MediaTek Genio 350-evk
ASoC: mt8365: Open code BIT() to avoid spurious warnings
ASoC: mt8365: Remove spurious unsigned long casts
ASoC: mt8365: Remove unused prototype for mt8365_afe_clk_group_48k()
ASoC: mt8365: Make non-exported functions static
ASoC: mt8365: Remove unused variables
ASoC: mt8365: Remove unused DMIC IIR coefficient configuration
ASoC: mt8365: Allow build coverage
ASoC: loongson: Simplify code formatting
ASoC: mt8365: Fix -Werror builds
Add support for primary mi2s on SM8250
ASoC: Improvements for mchp-pdmc
ASoC: Intel: boards: updates for 6.12 - part 2
AMD SoundWire machine driver code refactor
Muhammad Usama Anjum (3):
ASoC: amd: acp: Return in-case of error
ASoC: mediatek: mt8365: check validity before usage of i2s_data
ASoc: mediatek: mt8365: Remove unneeded assignment
Neil Armstrong (2):
ASoC: dt-bindings: amlogic,axg-sound-card: document clocks property
ASoC: dt-bindings: amlogic,gx-sound-card: document clocks property
Nicolas Belin (2):
ASoc: mediatek: mt8365: Add a specific soundcard for EVK
ASoC: codecs: add MT6357 support
Nikita Shubin (1):
ASoC: dt-bindings: cirrus,cs4271: Convert to dtschema
Pierre-Louis Bossart (11):
ASoC: Intel: soc-acpi: add PTL match tables
ASoC: SOF: Intel: add initial support for PTL
ASoC: SOF: sof-priv.h: optimize snd_sof_platform_stream_params
ASoC: SOF: sof-priv.h: optimize snd_sof_mailbox
ASoC: SOF: sof-priv.h: optimize snd_sof_ipc_msg
ASoC: SOF: sof-audio.h: optimize snd_sof_pcm_stream_pipeline_list
ALSA/ASoC/SoundWire: Intel: use single definition for SDW_INTEL_MAX_LINKS
soundwire: intel: add probe-time check on link id
soundwire: intel: increase maximum number of links
ASoC: Intel: sof_sdw: make sof_sdw_quirk static
ASoC: Intel: boards: always check the result of acpi_dev_get_first_match_dev()
Richard Fitzgerald (2):
ASoC: cs35l56: Make struct regmap_config const
ASoC: cs-amp-lib: Add KUnit test case for empty calibration entries
Rob Herring (Arm) (2):
ASoC: Use of_property_present()
ASoC: Use of_property_read_bool()
Romain Gantois (1):
ASoC: tlv320aic31xx: Add support for loading filter coefficients
Shen Lichuan (1):
ASoC: SOF: topology: Use kmemdup_array instead of kmemdup for multiple allocation
Shenghao Ding (7):
ASoC: tas2781: Add TAS2563 into the Header
ASoC: tas2781: Fix a compiling warning reported by robot kernel test due to adding tas2563_dvc_table
ASoc: tas2781: Rename dai_driver name to unify the name between TAS2563 and TAS2781
ASoc: tas2781: Remove unnecessary line feed and space
ASoC: tas2781: mark const variables tas2563_dvc_table as __maybe_unused
ASoC: tas2781: replace devm_kzalloc and scnprintf with devm_kstrdup
ASoC: tas2781: Add Calibration Kcontrols for Chromebook
Shuming Fan (1):
ASoC: rt1320: Add support for version C
Simon Trimmer (1):
ASoC: cs35l56: Use regmap_read_bypassed() to wake the device
Srinivas Kandagatla (1):
ASoC: dt-bindings: qcom,lpass-wsa-macro: correct clocks on SM8250
Takashi Iwai (1):
ASoC: Use __counted_by() annotation for snd_soc_pcm_runtime
Tang Bin (6):
ASoC: loongson: remove redundant variable assignments
ASoC: codecs: fix the right check and simplify code
ASoC: soc-ac97: Fix the incorrect description
ASoC: loongson: Add the correct judgement return
ASoC: mediatek: mt7986-afe-pcm: Remove redundant error message
ASoC: topology: Fix redundant logical jump
Uwe Kleine-König (1):
ASoC: Switch back to struct platform_driver::remove()
Venkata Prasad Potturu (12):
ASoC: amd: acp: Refactor TDM slots selction based on acp revision id
ASoC: amd: acp: Refactor I2S dai driver
ASoC: amd: acp: Update pcm hardware capabilities for acp6.3 platform
ASoC: amd: acp: Add I2S TDM support for acp6.3 platform
ASoC: amd: acp: Update pcm hardware capabilities for acp7.0 platform
ASoC: amd: acp: Add I2S master clock generation support for acp7.0 platform
ASoC: amd: acp: Set i2s clock for acp7.0 platform
ASoC: amd: acp: Modify max channels and sample rate support for acp70 dai driver
ASoC: amd: acp: Add I2S TDM support for acp7.0 platform
ASoC: amd: acp: Add pte configuration for ACP7.0 platform
ASoC: amd: acp: Add i2s master clock generation support for acp7.1 platform
ASoC: amd: acp: Add I2S TDM support for acp7.1 platform
Vijendar Mukunda (47):
ASoC: intel: rename codec_info and dai_info structures names
ASoC: intel: rename soundwire common header macros
ASoC: intel: rename soundwire machine driver soc ops
ASoC: intel: rename soundwire codec helper functions
ASoC: intel: rename maxim codec macros
ASoC: intel: rename ignore_pch_dmic variable name
ASoC: intel/sdw-utils: move soundwire machine driver soc ops
ASoC: intel: move soundwire machine driver common structures
ASoC: intel/sdw_utils: move soundwire machine driver helper functions
ASoC: intel/sdw_utils: move dmic codec helper function
ASoC: intel/sdw_utils: move rtk dmic helper functions
ASoC: intel/sdw_utils: move rt712 sdca helper functions
ASoC: intel/sdw_utils: move rt722 sdca helper functions
ASoC: intel: split soundwire machine driver private data
ASoC: intel/sdw_utils: move rt5682 codec helper function
ASoC: intel/sdw_utils: move rtk jack common helper functions
ASoC: intel/sdw_utils: move rt700 and rt711 codec helper functions
ASoC: intel/sdw_utils: move rtk amp codec helper functions
ASoC: intel/sdw_utils: move cirrus soundwire codec helper functions
ASoC: intel/sdw_utils: move maxim codec helper functions
ASoC: intel/sdw_utils: move dai id common macros
ASoC: intel/sdw_utils: move soundwire dai type macros
ASoC: intel/sdw_utils: move soundwire codec_info_list structure
ASoC: intel/sdw_utils: move machine driver dai link helper functions
ASoC: sdw_utils: refactor sof_sdw_card_late_probe function
ASoC: intel/sdw_utils: refactor init_dai_link() and init_simple_dai_link()
ASoC: soc-acpi: add pci revision id field in mach params structure
ASoC: amd: acp: add soundwire machines for acp6.3 based platform
ASoC: SOF: amd: add alternate machines for acp6.3 based platform
ASoC: SOF: amd: update mach params subsystem_rev variable
ASoC: amd/sdw_utils: add sof based soundwire generic machine driver
ASoC: amd: acp: remove MODULE_ALIAS for SoundWire machine driver
ASoC: amd: acp: add ZSC control register programming sequence
ASoC: SOF: amd: update conditional check for cache register update
ASoC: amd: acp: Convert comma to semicolon
ASoC: amd: acp: add legacy driver support for ACP7.1 based platforms
ASoC: amd: acp: replace desc->rev check with acp pci revision id
ASoC: SOF: amd: remove unused variable from sof_amd_acp_desc structure
ASoC: amd: Add acpi machine id for acp7.0 version based platform
ASoC: SOF: amd: add support for acp7.0 based platform
ASoC: amd: acp: remove MODULE_ALIAS for legacy machine driver
ASoC: amd: acp: remove MODULE_ALIAS for sof based generic machine driver
ASoC: intel: sof_sdw: rename soundwire endpoint and dailink structures
ASoC: intel: sof_sdw: rename soundwire parsing helper functions
ASoC: sdw_util/intel: move soundwire endpoint and dai link structures
ASoC: sdw_utils/intel: move soundwire endpoint parsing helper functions
ASoC: amd: acp: refactor SoundWire machine driver code
Wu Bo (1):
ASoC: dwc: change to use devm_clk_get_enabled() helpers
Yue Haibing (2):
ASoC: fsl: lpc3xxx-i2s: Remove set but not used variable 'savedbitclkrate'
ASoC: fsl: lpc3xxx: Make some symbols static
Zhang Yi (2):
ASoC: codecs: ES8326: suspend issue
ASoC: codecs: ES8326: input issue after init
Zhang Zekun (3):
ASoC: audio-graph-card: Use for_each_child_of_node_scoped() to simplify code
ASoC: audio-graph-card2: Use helper function of_get_child_count()
ASoC: meson: Remove unused declartion in header file
tangbin (3):
ASoC: loongson: Remove useless variable definitions
ASoC: loongson: remove unnecessary assignment in i2s_resume()
ASoC: loongson: fix error release
ying zuxin (1):
ASoC: codecs: Use devm_clk_get_enabled() helpers
.mailmap | 1 +
.../testing/sysfs-bus-i2c-devices-turris-omnia-mcu | 6 +-
Documentation/admin-guide/cifs/usage.rst | 2 +-
Documentation/admin-guide/kernel-parameters.txt | 4 +-
Documentation/arch/arm64/silicon-errata.rst | 18 +
.../devicetree/bindings/ata/rockchip,dwc-ahci.yaml | 3 +
.../bindings/display/panel/samsung,atna33xc20.yaml | 9 +-
.../devicetree/bindings/mfd/mediatek,mt6357.yaml | 21 +
.../bindings/sound/amlogic,axg-sound-card.yaml | 7 +
.../bindings/sound/amlogic,gx-sound-card.yaml | 7 +
.../devicetree/bindings/sound/cirrus,cs4271.yaml | 101 +
Documentation/devicetree/bindings/sound/cs4271.txt | 57 -
Documentation/devicetree/bindings/sound/da7213.txt | 45 -
.../devicetree/bindings/sound/dlg,da7213.yaml | 103 +
.../bindings/sound/fsl,imx-audio-es8328.yaml | 111 +
.../devicetree/bindings/sound/fsl,saif.yaml | 83 +
.../devicetree/bindings/sound/imx-audio-es8328.txt | 60 -
.../bindings/sound/mediatek,mt8365-afe.yaml | 130 +
.../bindings/sound/mediatek,mt8365-mt6357.yaml | 107 +
.../bindings/sound/microchip,sama7g5-spdifrx.yaml | 5 +-
.../devicetree/bindings/sound/mxs-saif.txt | 41 -
.../devicetree/bindings/sound/pcm512x.txt | 53 -
.../bindings/sound/qcom,apq8016-sbc-sndcard.yaml | 205 ++
.../bindings/sound/qcom,lpass-wsa-macro.yaml | 22 +-
.../devicetree/bindings/sound/qcom,sm8250.yaml | 137 -
.../devicetree/bindings/sound/realtek,rt5616.yaml | 12 +
.../devicetree/bindings/sound/renesas,rsnd.yaml | 6 +
.../devicetree/bindings/sound/renesas,rz-ssi.yaml | 4 +
.../devicetree/bindings/sound/samsung,odroid.yaml | 5 -
.../devicetree/bindings/sound/ti,pcm512x.yaml | 101 +
.../bindings/sound/ti,tlv320dac3100.yaml | 127 +
.../devicetree/bindings/sound/ti,tpa6130a2.yaml | 55 +
.../devicetree/bindings/sound/tlv320aic31xx.txt | 77 -
.../devicetree/bindings/sound/tpa6130a2.txt | 27 -
.../devicetree/bindings/usb/microchip,usb2514.yaml | 1 +
Documentation/driver-api/thermal/sysfs-api.rst | 65 +-
Documentation/netlink/specs/ethtool.yaml | 2 +-
Documentation/networking/ethtool-netlink.rst | 1 +
.../process/embargoed-hardware-issues.rst | 153 +-
.../userspace-api/media/v4l/pixfmt-yuv-luma.rst | 4 +-
Documentation/virt/kvm/api.rst | 8 +-
Documentation/wmi/devices/msi-wmi-platform.rst | 6 +-
MAINTAINERS | 13 +-
Makefile | 2 +-
arch/alpha/include/asm/io.h | 4 +-
arch/arm/Kconfig | 4 +-
arch/arm/boot/compressed/Makefile | 1 +
arch/arm/boot/compressed/vmlinux.lds.S | 2 +-
arch/arm/boot/dts/arm/versatile-ab.dts | 2 +-
arch/arm/include/asm/stacktrace.h | 7 +
arch/arm/include/asm/vmlinux.lds.h | 2 +-
arch/arm/kernel/entry-armv.S | 3 +
arch/arm/kernel/entry-common.S | 3 +
arch/arm/kernel/module.c | 5 -
arch/arm/kernel/perf_callchain.c | 3 +-
arch/arm/kernel/vmlinux-xip.lds.S | 4 +-
arch/arm/kernel/vmlinux.lds.S | 6 +-
arch/arm/mach-alpine/alpine_cpu_pm.c | 2 +-
arch/arm/mach-pxa/gumstix.c | 11 +-
arch/arm/mm/proc.c | 20 +-
arch/arm64/Kconfig | 22 +-
arch/arm64/boot/dts/ti/k3-am62-verdin-dahlia.dtsi | 22 -
arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi | 6 -
.../boot/dts/ti/k3-am62p-j722s-common-mcu.dtsi | 2 +
arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 3 +-
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 3 +-
arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 25 +-
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 4 +-
arch/arm64/include/asm/cputype.h | 4 +
arch/arm64/include/asm/jump_label.h | 1 +
arch/arm64/kernel/Makefile.syscalls | 2 +-
arch/arm64/kernel/cpu_errata.c | 11 +-
arch/arm64/kernel/jump_label.c | 11 +-
arch/loongarch/include/asm/hugetlb.h | 4 +-
arch/loongarch/include/asm/kfence.h | 6 +-
arch/loongarch/include/asm/kvm_host.h | 2 -
arch/loongarch/include/asm/kvm_para.h | 4 +-
arch/loongarch/include/asm/pgtable.h | 48 +-
arch/loongarch/kernel/Makefile.syscalls | 3 +-
arch/loongarch/kernel/efi.c | 6 +
arch/loongarch/kvm/mmu.c | 8 +-
arch/loongarch/mm/hugetlbpage.c | 6 +-
arch/loongarch/mm/init.c | 10 +-
arch/loongarch/mm/kasan_init.c | 10 +-
arch/loongarch/mm/pgtable.c | 2 +-
arch/parisc/Kconfig | 1 +
arch/parisc/include/asm/cache.h | 11 +-
arch/parisc/net/bpf_jit_core.c | 2 +-
arch/riscv/kernel/Makefile.syscalls | 2 +-
arch/riscv/kernel/cpufeature.c | 14 +-
arch/riscv/kernel/sbi-ipi.c | 2 +-
arch/riscv/mm/fault.c | 17 +-
arch/riscv/mm/init.c | 15 +-
arch/riscv/purgatory/entry.S | 2 +
arch/s390/kernel/alternative.h | 0
arch/s390/kernel/fpu.c | 2 +-
arch/s390/kernel/vmlinux.lds.S | 17 +-
arch/s390/mm/dump_pagetables.c | 140 +-
arch/s390/mm/init.c | 9 +-
arch/s390/mm/vmem.c | 13 +-
arch/um/drivers/mconsole_user.c | 2 +
arch/x86/coco/sev/core.c | 2 +-
arch/x86/entry/syscalls/syscall_64.tbl | 2 +-
arch/x86/events/core.c | 22 +-
arch/x86/events/intel/cstate.c | 5 +-
arch/x86/include/asm/cmdline.h | 4 +
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/include/asm/qspinlock.h | 12 +-
arch/x86/kernel/acpi/madt_wakeup.c | 2 +-
arch/x86/kernel/cpu/amd.c | 2 +-
arch/x86/kernel/cpu/aperfmperf.c | 6 +-
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
arch/x86/kernel/paravirt.c | 7 +-
arch/x86/kernel/setup.c | 2 +-
arch/x86/kvm/Kconfig | 4 +-
arch/x86/kvm/lapic.c | 2 +-
arch/x86/kvm/mmu/mmu.c | 7 +-
arch/x86/kvm/svm/sev.c | 17 +-
arch/x86/kvm/svm/svm.c | 1 +
arch/x86/kvm/x86.c | 12 +-
arch/x86/lib/cmdline.c | 25 +-
arch/x86/lib/getuser.S | 4 +-
arch/x86/mm/pti.c | 51 +-
block/blk-throttle.c | 11 -
drivers/android/binder.c | 15 +-
drivers/android/binder_alloc.c | 2 +-
drivers/android/dbitmap.h | 22 +-
drivers/base/core.c | 13 +-
drivers/base/module.c | 4 +
drivers/bluetooth/Kconfig | 2 +
drivers/bluetooth/btintel.c | 3 +
drivers/bluetooth/btmtk.c | 5 +-
drivers/bluetooth/hci_qca.c | 19 +-
drivers/cache/Kconfig | 1 +
drivers/char/ds1620.c | 1 +
drivers/char/nwbutton.c | 1 +
drivers/char/nwflash.c | 1 +
drivers/cpufreq/intel_pstate.c | 1 +
drivers/edac/skx_common.h | 1 -
drivers/firmware/efi/libstub/Makefile | 7 +-
drivers/fsi/fsi-core.c | 1 +
drivers/fsi/fsi-master-aspeed.c | 1 +
drivers/fsi/fsi-master-ast-cf.c | 3 +-
drivers/fsi/fsi-master-gpio.c | 1 +
drivers/fsi/fsi-master-hub.c | 1 +
drivers/fsi/fsi-scom.c | 1 +
drivers/gpu/drm/Kconfig | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 36 +-
drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 27 +
drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 18 +
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 2 +
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v4_1_0.c | 3 +-
drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 7 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 3 +
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 +
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c | 3 +-
drivers/gpu/drm/amd/display/dc/dml/Makefile | 2 +
.../drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 2 +
.../drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 2 +
.../display/dc/resource/dcn401/dcn401_resource.c | 1 +
.../display/dc/resource/dcn401/dcn401_resource.h | 4 +-
.../gpu/drm/amd/display/modules/hdcp/hdcp_ddc.c | 2 +
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 3 +
drivers/gpu/drm/amd/include/mes_v12_api_def.h | 3 +
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 3 +-
drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppevvmath.h | 14 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v14_0_2_pptable.h | 52 +-
.../gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c | 86 +-
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 2 +-
drivers/gpu/drm/ast/ast_dp.c | 7 +
drivers/gpu/drm/ast/ast_drv.c | 5 +
drivers/gpu/drm/ast/ast_drv.h | 1 +
drivers/gpu/drm/ast/ast_mode.c | 29 +-
drivers/gpu/drm/drm_atomic_uapi.c | 14 +-
drivers/gpu/drm/drm_bridge_connector.c | 8 +-
drivers/gpu/drm/drm_buddy.c | 25 +-
drivers/gpu/drm/drm_client.c | 2 +-
drivers/gpu/drm/drm_client_modeset.c | 5 +
drivers/gpu/drm/drm_fb_helper.c | 11 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/i915/display/intel_backlight.c | 3 +
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 6 +-
drivers/gpu/drm/i915/display/intel_hdcp_regs.h | 2 +-
drivers/gpu/drm/i915/display/intel_pps.c | 3 +
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 55 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 13 +-
drivers/gpu/drm/i915/i915_perf.c | 33 -
drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_chan.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_fence.c | 30 +-
drivers/gpu/drm/nouveau/nouveau_fence.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_prime.c | 3 +-
drivers/gpu/drm/nouveau/nouveau_uvmm.c | 1 +
drivers/gpu/drm/omapdrm/Kconfig | 1 +
drivers/gpu/drm/radeon/evergreen_cs.c | 2 +
drivers/gpu/drm/tests/drm_gem_shmem_test.c | 11 +
drivers/gpu/drm/v3d/v3d_drv.h | 4 +
drivers/gpu/drm/v3d/v3d_sched.c | 44 +-
drivers/gpu/drm/v3d/v3d_submit.c | 121 +-
drivers/gpu/drm/virtio/virtgpu_submit.c | 2 +-
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 127 +-
drivers/gpu/drm/vmwgfx/vmwgfx_bo.h | 15 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 40 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 17 +-
drivers/gpu/drm/vmwgfx/vmwgfx_gem.c | 62 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 502 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 17 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 14 +-
drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_prime.c | 32 +-
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 27 +-
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 33 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 174 +-
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 280 +-
drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c | 40 +-
drivers/gpu/drm/xe/xe_hwmon.c | 3 +-
drivers/gpu/drm/xe/xe_lrc.c | 15 +-
drivers/gpu/drm/xe/xe_rtp.c | 2 +-
drivers/gpu/drm/xe/xe_sync.c | 2 +-
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 18 +-
drivers/hid/bpf/Kconfig | 2 +-
drivers/hid/bpf/hid_bpf_struct_ops.c | 5 +
drivers/hid/wacom_wac.c | 67 +-
drivers/hwmon/adt7475.c | 24 +-
drivers/i2c/busses/i2c-qcom-geni.c | 5 +-
drivers/i2c/i2c-slave-testunit.c | 4 +-
drivers/i2c/i2c-smbus.c | 64 +-
drivers/input/input-mt.c | 3 +
drivers/input/touchscreen/cyttsp4_core.c | 2 +-
drivers/irqchip/irq-loongarch-cpu.c | 6 +-
drivers/irqchip/irq-mbigen.c | 20 +-
drivers/irqchip/irq-meson-gpio.c | 14 +-
drivers/irqchip/irq-pic32-evic.c | 6 +-
drivers/irqchip/irq-riscv-aplic-msi.c | 32 +-
drivers/irqchip/irq-sun6i-r.c | 2 +-
drivers/irqchip/irq-xilinx-intc.c | 2 +-
drivers/media/dvb-frontends/stv0367_priv.h | 3 +
drivers/media/pci/intel/ipu6/Kconfig | 3 +-
drivers/media/usb/uvc/uvc_ctrl.c | 8 +-
drivers/misc/Kconfig | 2 +-
drivers/misc/eeprom/ee1004.c | 85 +-
drivers/net/can/usb/etas_es58x/es58x_devlink.c | 2 +-
drivers/net/dsa/bcm_sf2.c | 4 +-
drivers/net/dsa/microchip/ksz_common.c | 16 +
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 16 +-
drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 14 +-
drivers/net/ethernet/freescale/fec_ptp.c | 3 +
drivers/net/ethernet/google/gve/gve_ethtool.c | 2 +-
drivers/net/ethernet/google/gve/gve_main.c | 12 +-
drivers/net/ethernet/intel/ice/ice.h | 11 +-
drivers/net/ethernet/intel/ice/ice_base.c | 4 +-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 8 +-
drivers/net/ethernet/intel/ice/ice_main.c | 4 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 4 +
drivers/net/ethernet/intel/ice/ice_txrx.c | 10 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 184 +-
drivers/net/ethernet/intel/ice/ice_xsk.h | 14 +-
drivers/net/ethernet/intel/idpf/idpf_lib.c | 48 +-
drivers/net/ethernet/intel/idpf/idpf_txrx.c | 43 +-
drivers/net/ethernet/intel/igc/igc_main.c | 33 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 1 +
.../mellanox/mlx5/core/en_accel/ipsec_offload.c | 7 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 5 +-
.../net/ethernet/mellanox/mlx5/core/irq_affinity.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 2 +-
.../ethernet/mellanox/mlx5/core/sf/dev/driver.c | 1 +
.../ethernet/mellanox/mlx5/core/steering/dr_rule.c | 2 +-
drivers/net/ethernet/meta/Kconfig | 2 +-
drivers/net/ethernet/realtek/r8169_main.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 2 -
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
drivers/net/fjes/fjes_main.c | 4 +-
drivers/net/phy/aquantia/aquantia_main.c | 29 +-
drivers/net/phy/micrel.c | 34 +-
drivers/net/phy/realtek.c | 7 +
drivers/net/pse-pd/tps23881.c | 5 +-
drivers/net/usb/qmi_wwan.c | 2 +
drivers/net/usb/sr9700.c | 11 +-
drivers/net/virtio_net.c | 14 +-
drivers/net/wan/fsl_qmc_hdlc.c | 31 +-
drivers/net/wireless/ath/ath12k/pci.c | 3 +-
drivers/net/wireless/ath/ath12k/wow.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 1 +
drivers/nfc/pn544/i2c.c | 2 -
drivers/nvme/host/core.c | 18 +-
drivers/nvme/host/nvme.h | 13 +-
drivers/pci/hotplug/pciehp_hpc.c | 4 +-
drivers/pci/pci.c | 15 +-
drivers/perf/riscv_pmu_sbi.c | 2 +-
drivers/platform/chrome/cros_ec_proto.c | 2 +
drivers/platform/cznic/Kconfig | 80 +-
drivers/platform/cznic/Makefile | 8 +-
drivers/platform/cznic/turris-omnia-mcu-base.c | 4 +
drivers/platform/cznic/turris-omnia-mcu.h | 42 +-
drivers/platform/x86/amd/pmc/pmc.c | 2 +
drivers/platform/x86/amd/pmc/pmc.h | 1 +
drivers/platform/x86/amd/pmf/core.c | 3 +
drivers/platform/x86/amd/pmf/pmf-quirks.c | 9 +-
drivers/platform/x86/intel/ifs/runtest.c | 2 +-
drivers/platform/x86/intel/vbtn.c | 9 +
drivers/platform/x86/sony-laptop.c | 1 -
drivers/power/supply/axp288_charger.c | 22 +-
drivers/power/supply/qcom_battmgr.c | 12 +-
drivers/power/supply/rt5033_battery.c | 1 +
drivers/s390/cio/ccwgroup.c | 1 +
drivers/s390/cio/vfio_ccw_drv.c | 1 +
drivers/scsi/isci/init.c | 6 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 11 +
drivers/scsi/mpt3sas/mpt3sas_base.c | 20 +-
drivers/scsi/sd.c | 20 +-
drivers/scsi/sr_ioctl.c | 2 +-
drivers/soundwire/intel.h | 7 +
drivers/soundwire/intel_ace2x.c | 20 +
drivers/soundwire/intel_auxdevice.c | 14 +
drivers/spi/spi-fsl-lpspi.c | 6 +-
drivers/spi/spi-hisi-kunpeng.c | 4 +
drivers/spi/spidev.c | 1 +
drivers/spmi/spmi-pmic-arb.c | 11 +-
.../pci/hive_isp_css_include/math_support.h | 5 -
.../int340x_thermal/processor_thermal_device_pci.c | 29 +-
drivers/thermal/thermal_trip.c | 4 +-
drivers/tty/serial/sc16is7xx.c | 25 +-
drivers/tty/serial/serial_core.c | 8 +
drivers/tty/vt/conmakehash.c | 20 +-
drivers/ufs/core/ufshcd-priv.h | 5 +
drivers/ufs/core/ufshcd.c | 38 +-
drivers/ufs/host/ufs-exynos.c | 3 +
drivers/usb/gadget/function/f_fs.c | 32 +-
drivers/usb/gadget/function/f_midi2.c | 21 +-
drivers/usb/gadget/function/u_audio.c | 42 +-
drivers/usb/gadget/function/u_serial.c | 1 +
drivers/usb/gadget/udc/core.c | 10 +-
drivers/usb/serial/ch341.c | 1 +
drivers/usb/serial/garmin_gps.c | 5 +-
drivers/usb/serial/mxuport.c | 1 +
drivers/usb/serial/navman.c | 1 +
drivers/usb/serial/qcaux.c | 1 +
drivers/usb/serial/spcp8x5.c | 10 -
drivers/usb/serial/symbolserial.c | 1 +
drivers/usb/serial/usb-serial-simple.c | 1 +
drivers/usb/serial/usb_debug.c | 8 +
drivers/usb/typec/mux/fsa4480.c | 14 +
drivers/usb/typec/tcpm/tcpci.c | 2 +-
drivers/usb/typec/tcpm/tcpm.c | 2 +-
drivers/usb/typec/tipd/core.c | 4 +-
drivers/usb/typec/ucsi/ucsi.c | 11 +-
drivers/usb/usbip/vhci_hcd.c | 9 +-
drivers/vdpa/octeon_ep/octep_vdpa_hw.c | 2 +-
drivers/vhost/vdpa.c | 8 +-
drivers/virtio/virtio.c | 28 +-
drivers/virtio/virtio_pci_common.c | 190 +-
drivers/virtio/virtio_pci_common.h | 16 +-
drivers/virtio/virtio_pci_modern.c | 159 +-
fs/bcachefs/acl.c | 11 +-
fs/bcachefs/acl.h | 2 +-
fs/bcachefs/alloc_background.h | 12 +-
fs/bcachefs/alloc_foreground.c | 34 +-
fs/bcachefs/alloc_foreground.h | 9 +-
fs/bcachefs/bcachefs.h | 2 +
fs/bcachefs/bcachefs_format.h | 5 +-
fs/bcachefs/btree_iter.c | 5 +
fs/bcachefs/btree_update_interior.c | 2 +-
fs/bcachefs/buckets.c | 12 +-
fs/bcachefs/buckets.h | 2 +-
fs/bcachefs/disk_accounting.c | 65 +-
fs/bcachefs/disk_accounting_format.h | 15 +-
fs/bcachefs/ec.c | 34 +-
fs/bcachefs/fs.c | 8 +-
fs/bcachefs/io_misc.c | 6 +-
fs/bcachefs/io_read.c | 1 +
fs/bcachefs/io_write.c | 5 +-
fs/bcachefs/opts.h | 5 +
fs/bcachefs/replicas.c | 1 -
fs/bcachefs/sb-downgrade.c | 27 +-
fs/bcachefs/sb-errors_format.h | 6 +-
fs/bcachefs/super-io.c | 4 +
fs/bcachefs/super.c | 1 -
fs/bcachefs/sysfs.c | 6 +-
fs/btrfs/block-group.c | 13 +-
fs/btrfs/ctree.h | 1 +
fs/btrfs/direct-io.c | 38 +-
fs/btrfs/extent-tree.c | 3 +-
fs/btrfs/extent_map.c | 2 +-
fs/btrfs/file.c | 22 +-
fs/btrfs/free-space-cache.c | 4 +-
fs/btrfs/inode.c | 28 +-
fs/btrfs/print-tree.c | 2 +-
fs/btrfs/scrub.c | 25 +-
fs/btrfs/space-info.c | 5 +-
fs/btrfs/space-info.h | 1 +
fs/btrfs/super.c | 5 +-
fs/btrfs/tests/extent-map-tests.c | 99 +
fs/btrfs/tree-checker.c | 49 +-
fs/ceph/caps.c | 35 +-
fs/ceph/super.h | 7 +-
fs/file.c | 1 +
fs/nfsd/nfsctl.c | 3 +-
fs/smb/client/cifs_debug.c | 2 +-
fs/smb/client/cifsfs.h | 4 +-
fs/smb/client/cifsglob.h | 36 +-
fs/smb/client/cifsproto.h | 2 -
fs/smb/client/inode.c | 17 +-
fs/smb/client/ioctl.c | 32 +-
fs/smb/client/misc.c | 65 +-
fs/smb/client/reparse.c | 4 +
fs/smb/client/reparse.h | 19 +-
fs/smb/client/smb2inode.c | 8 +-
fs/smb/client/smb2pdu.c | 3 +
fs/smb/client/smbdirect.c | 8 +-
fs/smb/client/trace.h | 51 +-
fs/smb/client/transport.c | 2 +-
fs/tracefs/event_inode.c | 4 +-
fs/tracefs/inode.c | 12 +-
fs/tracefs/internal.h | 5 +-
fs/xfs/libxfs/xfs_quota_defs.h | 2 +-
fs/xfs/libxfs/xfs_trans_resv.c | 28 +-
fs/xfs/scrub/agheader_repair.c | 2 +-
fs/xfs/scrub/parent.c | 2 +-
fs/xfs/scrub/trace.h | 10 +-
fs/xfs/xfs_attr_list.c | 2 +-
fs/xfs/xfs_trace.h | 10 +-
fs/xfs/xfs_xattr.c | 19 +-
include/asm-generic/vmlinux.lds.h | 11 +-
include/drm/drm_buddy.h | 2 +
include/linux/compiler.h | 9 +
include/linux/cpuhotplug.h | 2 +-
include/linux/cpumask.h | 2 +-
include/linux/ethtool.h | 10 +-
include/linux/i2c.h | 2 +-
include/linux/kvm_host.h | 9 +-
include/linux/minmax.h | 115 +-
include/linux/profile.h | 1 -
include/linux/ring_buffer.h | 1 -
include/linux/soundwire/sdw_intel.h | 8 +
include/linux/trace_events.h | 3 +-
include/linux/virtio.h | 3 +
include/linux/virtio_config.h | 4 -
include/linux/virtio_net.h | 16 +-
include/sound/cs35l56.h | 6 +-
include/sound/soc-acpi-intel-match.h | 2 +
include/sound/soc-acpi.h | 6 +-
include/sound/soc-dai.h | 6 +-
include/sound/soc-dpcm.h | 19 -
include/sound/soc.h | 7 +-
include/sound/soc_sdw_utils.h | 247 ++
include/sound/tas2563-tlv.h | 279 ++
include/sound/tas2781-tlv.h | 260 --
include/sound/tas2781.h | 71 +-
include/sound/ump_convert.h | 1 +
include/trace/events/btrfs.h | 8 +
include/trace/events/mptcp.h | 2 +-
include/uapi/asm-generic/unistd.h | 5 +-
include/ufs/ufshcd.h | 1 +
include/ufs/ufshci.h | 1 +
init/Kconfig | 1 +
io_uring/napi.c | 2 -
io_uring/net.c | 7 +-
io_uring/poll.c | 1 +
kernel/dma/debug.c | 5 +-
kernel/irq/irqdesc.c | 1 +
kernel/jump_label.c | 4 +-
kernel/kcov.c | 15 +-
kernel/kprobes.c | 4 +-
kernel/ksysfs.c | 7 +
kernel/locking/lockdep.c | 6 +
kernel/locking/qspinlock_paravirt.h | 2 +-
kernel/module/main.c | 41 +-
kernel/padata.c | 7 +
kernel/profile.c | 242 +-
kernel/sched/core.c | 68 +-
kernel/sched/cputime.c | 6 +
kernel/sched/stats.c | 10 -
kernel/task_work.c | 6 +
kernel/time/clocksource.c | 2 +-
kernel/time/ntp.c | 9 +-
kernel/time/tick-broadcast.c | 3 +-
kernel/time/timekeeping.c | 2 +-
kernel/trace/fgraph.c | 2 +-
kernel/trace/preemptirq_delay_test.c | 2 -
kernel/trace/ring_buffer.c | 12 -
kernel/trace/trace.h | 23 +
kernel/trace/trace_events.c | 41 +-
kernel/trace/trace_events_hist.c | 4 +-
kernel/trace/trace_events_inject.c | 2 +-
kernel/trace/trace_events_trigger.c | 6 +-
kernel/trace/tracing_map.c | 6 +-
lib/btree.c | 1 -
lib/decompress_unlzma.c | 2 +
lib/vsprintf.c | 2 +-
mm/list_lru.c | 28 +-
mm/memcontrol.c | 22 +-
mm/shmem.c | 14 +-
mm/slub.c | 3 +
mm/zsmalloc.c | 2 -
net/bluetooth/hci_core.c | 7 -
net/bluetooth/hci_event.c | 5 +-
net/bluetooth/hci_sync.c | 35 +
net/bluetooth/l2cap_core.c | 1 +
net/bridge/br_multicast.c | 4 +-
net/core/dev.c | 1 +
net/core/link_watch.c | 4 +-
net/core/rtnetlink.c | 2 +-
net/ethtool/ioctl.c | 61 +-
net/ethtool/rss.c | 8 +-
net/ipv4/netfilter/iptable_nat.c | 18 +-
net/ipv4/tcp_ao.c | 43 +-
net/ipv4/tcp_input.c | 23 +-
net/ipv4/tcp_offload.c | 3 +
net/ipv4/udp_offload.c | 4 +
net/ipv6/ndisc.c | 34 +-
net/ipv6/netfilter/ip6table_nat.c | 14 +-
net/iucv/af_iucv.c | 4 +-
net/l2tp/l2tp_core.c | 15 +-
net/mac80211/cfg.c | 7 +-
net/mac80211/tx.c | 5 +-
net/mac80211/util.c | 2 +-
net/mptcp/mib.c | 2 +
net/mptcp/mib.h | 2 +
net/mptcp/options.c | 5 +-
net/mptcp/pm.c | 12 +
net/mptcp/pm_netlink.c | 93 +-
net/mptcp/pm_userspace.c | 18 +
net/mptcp/protocol.c | 18 +-
net/mptcp/protocol.h | 4 +
net/mptcp/subflow.c | 26 +-
net/sched/act_ct.c | 4 +-
net/sctp/input.c | 19 +-
net/smc/af_smc.c | 7 +-
net/smc/smc_stats.h | 2 +-
net/sunrpc/svc.c | 2 +-
net/wireless/scan.c | 11 +-
net/wireless/sme.c | 1 +
rust/kernel/firmware.rs | 2 +-
scripts/syscall.tbl | 6 +-
sound/core/seq/seq_ports.h | 14 +-
sound/core/seq/seq_ump_convert.c | 132 +-
sound/core/ump_convert.c | 60 +-
sound/firewire/amdtp-stream.c | 38 +-
sound/firewire/amdtp-stream.h | 1 +
sound/hda/intel-dsp-config.c | 57 +-
sound/hda/intel-sdw-acpi.c | 5 +-
sound/pci/hda/cs35l41_hda.c | 13 -
sound/pci/hda/cs35l56_hda.c | 38 +-
sound/pci/hda/cs35l56_hda.h | 1 -
sound/pci/hda/hda_controller.h | 2 +-
sound/pci/hda/hda_generic.c | 63 +
sound/pci/hda/hda_generic.h | 1 +
sound/pci/hda/hda_intel.c | 10 +-
sound/pci/hda/patch_conexant.c | 56 +-
sound/pci/hda/patch_hdmi.c | 2 +
sound/pci/hda/patch_realtek.c | 2 +
sound/pci/hda/tas2781_hda_i2c.c | 2 +-
sound/soc/Kconfig | 2 +
sound/soc/Makefile | 1 +
sound/soc/adi/axi-i2s.c | 6 +-
sound/soc/adi/axi-spdif.c | 2 +-
sound/soc/amd/acp-config.c | 12 +
sound/soc/amd/acp-pcm-dma.c | 2 +-
sound/soc/amd/acp/Kconfig | 22 +
sound/soc/amd/acp/Makefile | 4 +
sound/soc/amd/acp/acp-i2s.c | 188 +-
sound/soc/amd/acp/acp-legacy-common.c | 40 +-
sound/soc/amd/acp/acp-legacy-mach.c | 7 -
sound/soc/amd/acp/acp-mach-common.c | 2 +-
sound/soc/amd/acp/acp-mach.h | 1 +
sound/soc/amd/acp/acp-pci.c | 4 +
sound/soc/amd/acp/acp-pdm.c | 7 +-
sound/soc/amd/acp/acp-platform.c | 117 +-
sound/soc/amd/acp/acp-rembrandt.c | 2 +-
sound/soc/amd/acp/acp-renoir.c | 2 +-
sound/soc/amd/acp/acp-sdw-sof-mach.c | 509 +++
sound/soc/amd/acp/acp-sof-mach.c | 7 -
sound/soc/amd/acp/acp63.c | 2 +-
sound/soc/amd/acp/acp70.c | 87 +-
sound/soc/amd/acp/amd-acp63-acpi-match.c | 90 +
sound/soc/amd/acp/amd.h | 27 +-
sound/soc/amd/acp/chip_offset_byte.h | 84 +-
sound/soc/amd/acp/soc_amd_sdw_common.h | 44 +
sound/soc/amd/mach-config.h | 2 +
sound/soc/amd/ps/ps-pdm-dma.c | 2 +-
sound/soc/amd/ps/ps-sdw-dma.c | 2 +-
sound/soc/amd/raven/acp3x-pcm-dma.c | 2 +-
sound/soc/amd/renoir/acp3x-pdm-dma.c | 2 +-
sound/soc/amd/vangogh/acp5x-pcm-dma.c | 2 +-
sound/soc/amd/yc/acp6x-pdm-dma.c | 2 +-
sound/soc/apple/mca.c | 2 +-
sound/soc/atmel/atmel-i2s.c | 2 +-
sound/soc/atmel/atmel_wm8904.c | 2 +-
sound/soc/atmel/mchp-i2s-mcc.c | 44 +-
sound/soc/atmel/mchp-pdmc.c | 99 +-
sound/soc/atmel/mchp-spdifrx.c | 2 +-
sound/soc/atmel/mchp-spdiftx.c | 2 +-
sound/soc/atmel/sam9g20_wm8731.c | 2 +-
sound/soc/atmel/sam9x5_wm8731.c | 2 +-
sound/soc/atmel/tse850-pcm5142.c | 2 +-
sound/soc/au1x/ac97c.c | 2 +-
sound/soc/au1x/i2sc.c | 2 +-
sound/soc/au1x/psc-ac97.c | 2 +-
sound/soc/au1x/psc-i2s.c | 2 +-
sound/soc/bcm/bcm63xx-i2s-whistler.c | 2 +-
sound/soc/bcm/cygnus-ssp.c | 2 +-
sound/soc/cirrus/edb93xx.c | 2 +-
sound/soc/cirrus/ep93xx-i2s.c | 2 +-
sound/soc/codecs/Kconfig | 7 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/ak4613.c | 4 +-
sound/soc/codecs/cs-amp-lib-test.c | 44 +
sound/soc/codecs/cs35l56-shared.c | 25 +-
sound/soc/codecs/cs42l42-sdw.c | 12 +-
sound/soc/codecs/cs42l43.c | 2 +-
sound/soc/codecs/cs43130.c | 113 +-
sound/soc/codecs/cs47l15.c | 2 +-
sound/soc/codecs/cs47l24.c | 2 +-
sound/soc/codecs/cs47l35.c | 2 +-
sound/soc/codecs/cs47l85.c | 2 +-
sound/soc/codecs/cs47l90.c | 2 +-
sound/soc/codecs/cs47l92.c | 2 +-
sound/soc/codecs/es8326.c | 6 +-
sound/soc/codecs/inno_rk3036.c | 2 +-
sound/soc/codecs/lpass-rx-macro.c | 2 +-
sound/soc/codecs/lpass-tx-macro.c | 2 +-
sound/soc/codecs/lpass-va-macro.c | 2 +-
sound/soc/codecs/lpass-wsa-macro.c | 27 +-
sound/soc/codecs/msm8916-wcd-digital.c | 2 +-
sound/soc/codecs/mt6357.c | 1855 ++++++++++
sound/soc/codecs/mt6357.h | 660 ++++
sound/soc/codecs/peb2466.c | 14 +-
sound/soc/codecs/rk817_codec.c | 2 +-
sound/soc/codecs/rt1318.c | 3 +-
sound/soc/codecs/rt1320-sdw.c | 2147 +++++++++++-
sound/soc/codecs/rt1320-sdw.h | 3 +
sound/soc/codecs/rt5682.c | 4 +-
sound/soc/codecs/rt5682s.c | 4 +-
sound/soc/codecs/sti-sas.c | 21 +-
sound/soc/codecs/tas2552.c | 1 -
sound/soc/codecs/tas2764.c | 1 -
sound/soc/codecs/tas2770.c | 1 -
sound/soc/codecs/tas2780.c | 1 -
sound/soc/codecs/tas2781-comlib.c | 35 +-
sound/soc/codecs/tas2781-fmwlib.c | 61 +-
sound/soc/codecs/tas2781-i2c.c | 953 +++++-
sound/soc/codecs/tas5086.c | 9 +-
sound/soc/codecs/tlv320aic31xx.c | 102 +-
sound/soc/codecs/tlv320aic32x4.c | 9 +
sound/soc/codecs/wcd934x.c | 4 +-
sound/soc/codecs/wcd937x.c | 2 +-
sound/soc/codecs/wcd937x.h | 34 +-
sound/soc/codecs/wcd938x.c | 20 +-
sound/soc/codecs/wcd938x.h | 4 +-
sound/soc/codecs/wcd939x.c | 2 +-
sound/soc/codecs/wcd939x.h | 6 +-
sound/soc/codecs/wm5102.c | 2 +-
sound/soc/codecs/wm5110.c | 2 +-
sound/soc/codecs/wm8994.c | 2 +-
sound/soc/codecs/wm8997.c | 2 +-
sound/soc/codecs/wm8998.c | 2 +-
sound/soc/codecs/wsa881x.c | 44 +-
sound/soc/codecs/wsa883x.c | 75 +-
sound/soc/codecs/wsa884x.c | 240 +-
sound/soc/dwc/dwc-i2s.c | 18 +-
sound/soc/fsl/fsl_asrc.c | 2 +-
sound/soc/fsl/fsl_aud2htx.c | 2 +-
sound/soc/fsl/fsl_audmix.c | 14 +-
sound/soc/fsl/fsl_dma.c | 2 +-
sound/soc/fsl/fsl_easrc.c | 2 +-
sound/soc/fsl/fsl_esai.c | 2 +-
sound/soc/fsl/fsl_micfil.c | 2 +-
sound/soc/fsl/fsl_mqs.c | 13 +-
sound/soc/fsl/fsl_rpmsg.c | 11 +-
sound/soc/fsl/fsl_sai.c | 2 +-
sound/soc/fsl/fsl_spdif.c | 13 +-
sound/soc/fsl/fsl_ssi.c | 8 +-
sound/soc/fsl/fsl_xcvr.c | 2 +-
sound/soc/fsl/imx-audmux.c | 8 +-
sound/soc/fsl/imx-card.c | 3 -
sound/soc/fsl/imx-pcm-rpmsg.c | 16 +-
sound/soc/fsl/imx-sgtl5000.c | 2 +-
sound/soc/fsl/lpc3xxx-i2s.c | 11 +-
sound/soc/fsl/lpc3xxx-pcm.c | 2 +-
sound/soc/fsl/mpc5200_psc_ac97.c | 2 +-
sound/soc/fsl/mpc5200_psc_i2s.c | 4 +-
sound/soc/fsl/p1022_ds.c | 2 +-
sound/soc/fsl/p1022_rdk.c | 2 +-
sound/soc/fsl/pcm030-audio-fabric.c | 2 +-
sound/soc/generic/audio-graph-card.c | 16 +-
.../soc/generic/audio-graph-card2-custom-sample.c | 2 +-
sound/soc/generic/audio-graph-card2.c | 15 +-
sound/soc/generic/simple-card.c | 4 +-
sound/soc/generic/test-component.c | 11 +-
sound/soc/img/img-i2s-in.c | 2 +-
sound/soc/img/img-i2s-out.c | 2 +-
sound/soc/img/img-parallel-out.c | 2 +-
sound/soc/img/img-spdif-in.c | 2 +-
sound/soc/img/img-spdif-out.c | 2 +-
sound/soc/img/pistachio-internal-dac.c | 2 +-
sound/soc/intel/Kconfig | 120 -
sound/soc/intel/Makefile | 1 -
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 2 +-
sound/soc/intel/atom/sst/sst_acpi.c | 2 +-
sound/soc/intel/avs/core.c | 8 +-
sound/soc/intel/boards/Kconfig | 156 +-
sound/soc/intel/boards/Makefile | 31 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 720 ----
sound/soc/intel/boards/bxt_rt298.c | 670 ----
sound/soc/intel/boards/bytcht_cx2072x.c | 4 +
sound/soc/intel/boards/bytcht_da7213.c | 4 +
sound/soc/intel/boards/bytcht_es8316.c | 4 +-
sound/soc/intel/boards/bytcr_rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5651.c | 4 +-
sound/soc/intel/boards/bytcr_wm5102.c | 2 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 4 +
sound/soc/intel/boards/cht_bsw_rt5672.c | 4 +
sound/soc/intel/boards/ehl_rt5660.c | 3 +-
sound/soc/intel/boards/kbl_da7219_max98357a.c | 688 ----
sound/soc/intel/boards/kbl_da7219_max98927.c | 1175 -------
sound/soc/intel/boards/kbl_rt5660.c | 567 ---
sound/soc/intel/boards/kbl_rt5663_max98927.c | 1073 ------
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 869 -----
sound/soc/intel/boards/skl_hda_dsp_common.c | 168 -
sound/soc/intel/boards/skl_hda_dsp_common.h | 67 -
sound/soc/intel/boards/skl_hda_dsp_generic.c | 242 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 704 ----
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 751 ----
sound/soc/intel/boards/skl_rt286.c | 568 ---
sound/soc/intel/boards/sof_board_helpers.c | 152 +
sound/soc/intel/boards/sof_board_helpers.h | 3 +
sound/soc/intel/boards/sof_es8336.c | 14 +-
sound/soc/intel/boards/sof_pcm512x.c | 5 +-
sound/soc/intel/boards/sof_rt5682.c | 7 +
sound/soc/intel/boards/sof_sdw.c | 1384 +-------
sound/soc/intel/boards/sof_sdw_common.h | 172 +-
sound/soc/intel/boards/sof_sdw_hdmi.c | 16 +-
sound/soc/intel/boards/sof_ssp_amp.c | 6 +
sound/soc/intel/boards/sof_wm8804.c | 6 +-
sound/soc/intel/catpt/device.c | 2 +-
sound/soc/intel/common/Makefile | 1 +
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 105 +
sound/soc/intel/common/soc-acpi-intel-arl-match.c | 263 ++
sound/soc/intel/common/soc-acpi-intel-cnl-match.c | 6 -
sound/soc/intel/common/soc-acpi-intel-ehl-match.c | 1 -
sound/soc/intel/common/soc-acpi-intel-hda-match.c | 18 +-
sound/soc/intel/common/soc-acpi-intel-icl-match.c | 6 -
sound/soc/intel/common/soc-acpi-intel-kbl-match.c | 11 -
sound/soc/intel/common/soc-acpi-intel-lnl-match.c | 104 +
sound/soc/intel/common/soc-acpi-intel-ptl-match.c | 145 +
sound/soc/intel/common/soc-acpi-intel-skl-match.c | 5 -
sound/soc/intel/skylake/Makefile | 15 -
sound/soc/intel/skylake/bxt-sst.c | 629 ----
sound/soc/intel/skylake/cnl-sst-dsp.c | 266 --
sound/soc/intel/skylake/cnl-sst-dsp.h | 103 -
sound/soc/intel/skylake/cnl-sst.c | 508 ---
sound/soc/intel/skylake/skl-debug.c | 248 --
sound/soc/intel/skylake/skl-i2s.h | 87 -
sound/soc/intel/skylake/skl-messages.c | 1419 --------
sound/soc/intel/skylake/skl-nhlt.c | 269 --
sound/soc/intel/skylake/skl-pcm.c | 1507 --------
sound/soc/intel/skylake/skl-ssp-clk.c | 428 ---
sound/soc/intel/skylake/skl-ssp-clk.h | 108 -
sound/soc/intel/skylake/skl-sst-cldma.c | 373 --
sound/soc/intel/skylake/skl-sst-cldma.h | 243 --
sound/soc/intel/skylake/skl-sst-dsp.c | 462 ---
sound/soc/intel/skylake/skl-sst-dsp.h | 256 --
sound/soc/intel/skylake/skl-sst-ipc.c | 1071 ------
sound/soc/intel/skylake/skl-sst-ipc.h | 169 -
sound/soc/intel/skylake/skl-sst-utils.c | 425 ---
sound/soc/intel/skylake/skl-sst.c | 599 ----
sound/soc/intel/skylake/skl-topology.c | 3605 --------------------
sound/soc/intel/skylake/skl-topology.h | 524 ---
sound/soc/intel/skylake/skl.c | 1177 -------
sound/soc/intel/skylake/skl.h | 207 --
sound/soc/kirkwood/kirkwood-i2s.c | 2 +-
sound/soc/loongson/loongson_card.c | 125 +-
sound/soc/loongson/loongson_dma.c | 25 +-
sound/soc/loongson/loongson_i2s.c | 115 +-
sound/soc/loongson/loongson_i2s.h | 24 +-
sound/soc/loongson/loongson_i2s_pci.c | 51 +-
sound/soc/mediatek/Kconfig | 20 +
sound/soc/mediatek/Makefile | 1 +
sound/soc/mediatek/common/mtk-btcvsd.c | 2 +-
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 2 +-
sound/soc/mediatek/mt2701/mt2701-cs42448.c | 16 +-
sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 2 +-
sound/soc/mediatek/mt7986/mt7986-afe-pcm.c | 9 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 2 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 4 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8365/Makefile | 15 +
sound/soc/mediatek/mt8365/mt8365-afe-clk.c | 421 +++
sound/soc/mediatek/mt8365/mt8365-afe-clk.h | 32 +
sound/soc/mediatek/mt8365/mt8365-afe-common.h | 448 +++
sound/soc/mediatek/mt8365/mt8365-afe-pcm.c | 2274 ++++++++++++
sound/soc/mediatek/mt8365/mt8365-dai-adda.c | 311 ++
sound/soc/mediatek/mt8365/mt8365-dai-dmic.c | 310 ++
sound/soc/mediatek/mt8365/mt8365-dai-i2s.c | 846 +++++
sound/soc/mediatek/mt8365/mt8365-dai-pcm.c | 293 ++
sound/soc/mediatek/mt8365/mt8365-mt6357.c | 343 ++
sound/soc/mediatek/mt8365/mt8365-reg.h | 993 ++++++
sound/soc/meson/aiu-fifo.h | 2 -
sound/soc/meson/aiu.c | 2 +-
sound/soc/meson/axg-card.c | 13 +-
sound/soc/meson/gx-card.c | 3 +-
sound/soc/meson/meson-card-utils.c | 4 +-
sound/soc/mxs/mxs-sgtl5000.c | 2 +-
sound/soc/pxa/mmp-sspa.c | 2 +-
sound/soc/pxa/pxa2xx-ac97.c | 2 +-
sound/soc/qcom/common.c | 1 -
sound/soc/qcom/lpass-apq8016.c | 2 +-
sound/soc/qcom/lpass-ipq806x.c | 2 +-
sound/soc/qcom/lpass-sc7180.c | 2 +-
sound/soc/qcom/lpass-sc7280.c | 2 +-
sound/soc/qcom/qdsp6/q6routing.c | 2 +-
sound/soc/qcom/sm8250.c | 8 +
sound/soc/rockchip/rockchip_i2s.c | 2 +-
sound/soc/rockchip/rockchip_i2s_tdm.c | 2 +-
sound/soc/rockchip/rockchip_pdm.c | 2 +-
sound/soc/rockchip/rockchip_rt5645.c | 2 +-
sound/soc/rockchip/rockchip_spdif.c | 2 +-
sound/soc/samsung/arndale.c | 2 +-
sound/soc/samsung/i2s.c | 2 +-
sound/soc/samsung/odroid.c | 2 +-
sound/soc/samsung/pcm.c | 2 +-
sound/soc/samsung/snow.c | 2 +-
sound/soc/samsung/spdif.c | 2 +-
sound/soc/sdw_utils/Kconfig | 6 +
sound/soc/sdw_utils/Makefile | 11 +
.../soc_sdw_bridge_cs35l56.c} | 56 +-
.../soc_sdw_cs42l42.c} | 13 +-
.../soc_sdw_cs42l43.c} | 38 +-
.../soc_sdw_cs_amp.c} | 18 +-
.../sof_sdw_dmic.c => sdw_utils/soc_sdw_dmic.c} | 10 +-
.../sof_sdw_maxim.c => sdw_utils/soc_sdw_maxim.c} | 56 +-
.../soc_sdw_rt5682.c} | 12 +-
.../sof_sdw_rt700.c => sdw_utils/soc_sdw_rt700.c} | 12 +-
.../sof_sdw_rt711.c => sdw_utils/soc_sdw_rt711.c} | 38 +-
.../soc_sdw_rt712_sdca.c} | 10 +-
.../soc_sdw_rt722_sdca.c} | 10 +-
.../soc_sdw_rt_amp.c} | 43 +-
.../soc_sdw_rt_amp_coeff_tables.h} | 6 +-
.../soc_sdw_rt_dmic.c} | 11 +-
.../soc_sdw_rt_sdca_jack_common.c} | 40 +-
sound/soc/sdw_utils/soc_sdw_utils.c | 1170 +++++++
sound/soc/sh/Kconfig | 1 +
sound/soc/sh/fsi.c | 2 +-
sound/soc/sh/hac.c | 2 +-
sound/soc/sh/rcar/adg.c | 4 +-
sound/soc/sh/rcar/core.c | 19 +-
sound/soc/sh/rcar/dma.c | 75 +-
sound/soc/sh/rcar/rsnd.h | 10 -
sound/soc/sh/rcar/ssi.c | 2 +-
sound/soc/sh/rz-ssi.c | 259 +-
sound/soc/sh/siu_dai.c | 2 +-
sound/soc/soc-ac97.c | 4 +-
sound/soc/soc-core.c | 21 +-
sound/soc/soc-dai.c | 58 -
sound/soc/soc-dapm.c | 5 +-
sound/soc/soc-pcm.c | 362 +-
sound/soc/soc-topology-test.c | 132 +-
sound/soc/soc-topology.c | 9 +-
sound/soc/sof/amd/Kconfig | 11 +
sound/soc/sof/amd/Makefile | 4 +-
sound/soc/sof/amd/acp-common.c | 3 +
sound/soc/sof/amd/acp-dsp-offset.h | 24 +-
sound/soc/sof/amd/acp-loader.c | 2 +-
sound/soc/sof/amd/acp.c | 88 +-
sound/soc/sof/amd/acp.h | 11 +-
sound/soc/sof/amd/acp70.c | 142 +
sound/soc/sof/amd/pci-acp63.c | 2 +-
sound/soc/sof/amd/pci-acp70.c | 112 +
sound/soc/sof/amd/pci-rmb.c | 1 -
sound/soc/sof/amd/pci-rn.c | 1 -
sound/soc/sof/amd/pci-vangogh.c | 1 -
sound/soc/sof/imx/imx8.c | 2 +-
sound/soc/sof/imx/imx8m.c | 2 +-
sound/soc/sof/imx/imx8ulp.c | 2 +-
sound/soc/sof/intel/Kconfig | 17 +
sound/soc/sof/intel/Makefile | 2 +
sound/soc/sof/intel/bdw.c | 2 +-
sound/soc/sof/intel/byt.c | 2 +-
sound/soc/sof/intel/hda-dsp.c | 1 +
sound/soc/sof/intel/hda-stream.c | 4 +-
sound/soc/sof/intel/hda.c | 282 +-
sound/soc/sof/intel/hda.h | 1 +
sound/soc/sof/intel/lnl.c | 27 +
sound/soc/sof/intel/mtl.c | 16 +-
sound/soc/sof/intel/mtl.h | 2 +
sound/soc/sof/intel/pci-ptl.c | 77 +
sound/soc/sof/intel/shim.h | 1 +
sound/soc/sof/mediatek/mt8186/mt8186.c | 2 +-
sound/soc/sof/mediatek/mt8195/mt8195.c | 2 +-
sound/soc/sof/pcm.c | 2 +-
sound/soc/sof/sof-audio.h | 8 +-
sound/soc/sof/sof-priv.h | 16 +-
sound/soc/sof/topology.c | 8 +-
sound/soc/sprd/sprd-mcdt.c | 2 +-
sound/soc/starfive/jh7110_pwmdac.c | 2 +-
sound/soc/starfive/jh7110_tdm.c | 2 +-
sound/soc/stm/stm32_adfsdm.c | 2 +-
sound/soc/stm/stm32_i2s.c | 6 +-
sound/soc/stm/stm32_sai_sub.c | 2 +-
sound/soc/stm/stm32_spdifrx.c | 2 +-
sound/soc/sunxi/sun4i-codec.c | 2 +-
sound/soc/sunxi/sun4i-i2s.c | 2 +-
sound/soc/sunxi/sun4i-spdif.c | 2 +-
sound/soc/sunxi/sun50i-dmic.c | 2 +-
sound/soc/sunxi/sun8i-codec.c | 2 +-
sound/soc/tegra/tegra186_asrc.c | 2 +-
sound/soc/tegra/tegra186_dspk.c | 2 +-
sound/soc/tegra/tegra20_ac97.c | 2 +-
sound/soc/tegra/tegra20_i2s.c | 2 +-
sound/soc/tegra/tegra210_admaif.c | 2 +-
sound/soc/tegra/tegra210_adx.c | 2 +-
sound/soc/tegra/tegra210_ahub.c | 2 +-
sound/soc/tegra/tegra210_amx.c | 2 +-
sound/soc/tegra/tegra210_dmic.c | 2 +-
sound/soc/tegra/tegra210_i2s.c | 18 +-
sound/soc/tegra/tegra210_mixer.c | 2 +-
sound/soc/tegra/tegra210_mvc.c | 2 +-
sound/soc/tegra/tegra210_ope.c | 2 +-
sound/soc/tegra/tegra210_sfc.c | 2 +-
sound/soc/tegra/tegra30_ahub.c | 2 +-
sound/soc/tegra/tegra30_i2s.c | 2 +-
sound/soc/tegra/tegra_audio_graph_card.c | 2 +-
sound/soc/tegra/tegra_pcm.c | 2 +-
sound/soc/ti/ams-delta.c | 2 +-
sound/soc/ti/davinci-i2s.c | 2 +-
sound/soc/ti/davinci-mcasp.c | 2 +-
sound/soc/ti/omap-mcbsp.c | 2 +-
sound/soc/uniphier/aio-ld11.c | 2 +-
sound/soc/uniphier/aio-pxs2.c | 2 +-
sound/soc/uniphier/evea.c | 2 +-
sound/soc/ux500/mop500.c | 2 +-
sound/soc/ux500/ux500_msp_dai.c | 2 +-
sound/soc/xilinx/xlnx_formatter_pcm.c | 2 +-
sound/soc/xilinx/xlnx_spdif.c | 2 +-
sound/soc/xtensa/xtfpga-i2s.c | 2 +-
sound/usb/line6/driver.c | 5 +
sound/usb/quirks-table.h | 4 +
sound/usb/stream.c | 4 +-
tools/build/feature/Makefile | 53 +-
tools/perf/Documentation/Build.txt | 28 +
tools/perf/Makefile.config | 20 +-
tools/perf/Makefile.perf | 27 +-
.../pmu-events/arch/riscv/andes/ax45/firmware.json | 2 +-
.../pmu-events/arch/riscv/riscv-sbi-firmware.json | 2 +-
.../pmu-events/arch/riscv/sifive/u74/firmware.json | 2 +-
.../arch/riscv/starfive/dubhe-80/firmware.json | 2 +-
.../arch/riscv/thead/c900-legacy/firmware.json | 2 +-
tools/perf/util/callchain.c | 2 +-
tools/sound/dapm-graph | 44 +-
tools/testing/selftests/bpf/Makefile | 2 +-
.../selftests/bpf/prog_tests/uprobe_syscall.c | 4 +-
tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c | 4 +-
tools/testing/selftests/drivers/net/hw/rss_ctx.py | 37 +-
tools/testing/selftests/hid/hid_bpf.c | 26 +
tools/testing/selftests/hid/progs/hid.c | 2 +-
.../testing/selftests/hid/progs/hid_bpf_helpers.h | 2 +-
tools/testing/selftests/kselftest/ksft.py | 2 +-
tools/testing/selftests/kvm/riscv/get-reg-list.c | 8 +-
tools/testing/selftests/mm/Makefile | 2 +-
tools/testing/selftests/mm/mremap_test.c | 2 +
tools/testing/selftests/net/mptcp/mptcp_connect.c | 8 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 158 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +
virt/kvm/Kconfig | 4 +-
virt/kvm/guest_memfd.c | 227 +-
virt/kvm/kvm_main.c | 49 +-
984 files changed, 25292 insertions(+), 30662 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/cirrus,cs4271.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/cs4271.txt
delete mode 100644 Documentation/devicetree/bindings/sound/da7213.txt
create mode 100644 Documentation/devicetree/bindings/sound/dlg,da7213.yaml
create mode 100644 Documentation/devicetree/bindings/sound/fsl,imx-audio-es8328.yaml
create mode 100644 Documentation/devicetree/bindings/sound/fsl,saif.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/imx-audio-es8328.txt
create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt8365-afe.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt8365-mt6357.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/mxs-saif.txt
delete mode 100644 Documentation/devicetree/bindings/sound/pcm512x.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,apq8016-sbc-sndcard.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ti,pcm512x.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ti,tlv320dac3100.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ti,tpa6130a2.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
delete mode 100644 Documentation/devicetree/bindings/sound/tpa6130a2.txt
delete mode 100644 arch/s390/kernel/alternative.h
create mode 100644 include/sound/soc_sdw_utils.h
create mode 100644 include/sound/tas2563-tlv.h
create mode 100644 sound/soc/amd/acp/acp-sdw-sof-mach.c
create mode 100644 sound/soc/amd/acp/amd-acp63-acpi-match.c
create mode 100644 sound/soc/amd/acp/soc_amd_sdw_common.h
create mode 100644 sound/soc/codecs/mt6357.c
create mode 100644 sound/soc/codecs/mt6357.h
delete mode 100644 sound/soc/intel/boards/bxt_da7219_max98357a.c
delete mode 100644 sound/soc/intel/boards/bxt_rt298.c
delete mode 100644 sound/soc/intel/boards/kbl_da7219_max98357a.c
delete mode 100644 sound/soc/intel/boards/kbl_da7219_max98927.c
delete mode 100644 sound/soc/intel/boards/kbl_rt5660.c
delete mode 100644 sound/soc/intel/boards/kbl_rt5663_max98927.c
delete mode 100644 sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
delete mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.c
delete mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.h
delete mode 100644 sound/soc/intel/boards/skl_nau88l25_max98357a.c
delete mode 100644 sound/soc/intel/boards/skl_nau88l25_ssm4567.c
delete mode 100644 sound/soc/intel/boards/skl_rt286.c
create mode 100644 sound/soc/intel/common/soc-acpi-intel-ptl-match.c
delete mode 100644 sound/soc/intel/skylake/Makefile
delete mode 100644 sound/soc/intel/skylake/bxt-sst.c
delete mode 100644 sound/soc/intel/skylake/cnl-sst-dsp.c
delete mode 100644 sound/soc/intel/skylake/cnl-sst-dsp.h
delete mode 100644 sound/soc/intel/skylake/cnl-sst.c
delete mode 100644 sound/soc/intel/skylake/skl-debug.c
delete mode 100644 sound/soc/intel/skylake/skl-i2s.h
delete mode 100644 sound/soc/intel/skylake/skl-messages.c
delete mode 100644 sound/soc/intel/skylake/skl-nhlt.c
delete mode 100644 sound/soc/intel/skylake/skl-pcm.c
delete mode 100644 sound/soc/intel/skylake/skl-ssp-clk.c
delete mode 100644 sound/soc/intel/skylake/skl-ssp-clk.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-cldma.c
delete mode 100644 sound/soc/intel/skylake/skl-sst-cldma.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-dsp.c
delete mode 100644 sound/soc/intel/skylake/skl-sst-dsp.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-ipc.c
delete mode 100644 sound/soc/intel/skylake/skl-sst-ipc.h
delete mode 100644 sound/soc/intel/skylake/skl-sst-utils.c
delete mode 100644 sound/soc/intel/skylake/skl-sst.c
delete mode 100644 sound/soc/intel/skylake/skl-topology.c
delete mode 100644 sound/soc/intel/skylake/skl-topology.h
delete mode 100644 sound/soc/intel/skylake/skl.c
delete mode 100644 sound/soc/intel/skylake/skl.h
create mode 100644 sound/soc/mediatek/mt8365/Makefile
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-clk.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-clk.h
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-common.h
create mode 100644 sound/soc/mediatek/mt8365/mt8365-afe-pcm.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-adda.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-dmic.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-i2s.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-dai-pcm.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-mt6357.c
create mode 100644 sound/soc/mediatek/mt8365/mt8365-reg.h
create mode 100644 sound/soc/sdw_utils/Kconfig
create mode 100644 sound/soc/sdw_utils/Makefile
rename sound/soc/{intel/boards/bridge_cs35l56.c => sdw_utils/soc_sdw_bridge_cs35l56.c} (63%)
rename sound/soc/{intel/boards/sof_sdw_cs42l42.c => sdw_utils/soc_sdw_cs42l42.c} (82%)
rename sound/soc/{intel/boards/sof_sdw_cs42l43.c => sdw_utils/soc_sdw_cs42l43.c} (73%)
rename sound/soc/{intel/boards/sof_sdw_cs_amp.c => sdw_utils/soc_sdw_cs_amp.c} (66%)
rename sound/soc/{intel/boards/sof_sdw_dmic.c => sdw_utils/soc_sdw_dmic.c} (71%)
rename sound/soc/{intel/boards/sof_sdw_maxim.c => sdw_utils/soc_sdw_maxim.c} (63%)
rename sound/soc/{intel/boards/sof_sdw_rt5682.c => sdw_utils/soc_sdw_rt5682.c} (82%)
rename sound/soc/{intel/boards/sof_sdw_rt700.c => sdw_utils/soc_sdw_rt700.c} (81%)
rename sound/soc/{intel/boards/sof_sdw_rt711.c => sdw_utils/soc_sdw_rt711.c} (70%)
rename sound/soc/{intel/boards/sof_sdw_rt712_sdca.c => sdw_utils/soc_sdw_rt712_sdca.c} (74%)
rename sound/soc/{intel/boards/sof_sdw_rt722_sdca.c => sdw_utils/soc_sdw_rt722_sdca.c} (68%)
rename sound/soc/{intel/boards/sof_sdw_rt_amp.c => sdw_utils/soc_sdw_rt_amp.c} (84%)
rename sound/soc/{intel/boards/sof_sdw_amp_coeff_tables.h => sdw_utils/soc_sdw_rt_amp_coeff_tables.h} (97%)
rename sound/soc/{intel/boards/sof_sdw_rt_dmic.c => sdw_utils/soc_sdw_rt_dmic.c} (70%)
rename sound/soc/{intel/boards/sof_sdw_rt_sdca_jack_common.c => sdw_utils/soc_sdw_rt_sdca_jack_common.c} (78%)
create mode 100644 sound/soc/sdw_utils/soc_sdw_utils.c
create mode 100644 sound/soc/sof/amd/acp70.c
create mode 100644 sound/soc/sof/amd/pci-acp70.c
create mode 100644 sound/soc/sof/intel/pci-ptl.c
2
1
The following changes since commit 77212f300bfd6fb3edaabd1daf863cabb521854a:
ASoC: codecs: lpass-va-macro: set the default codec version for sm8250 (2024-08-30 13:54:24 +0100)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git tags/asoc-fix-v6.11-rc7
for you to fetch changes up to 4f9a71435953f941969a4f017e2357db62d85a86:
ASoC: meson: axg-card: fix 'use-after-free' (2024-09-11 16:16:34 +0100)
----------------------------------------------------------------
ASoC: Fixes for v6.11
A few last minute fixes, plus an update for Pierre's contact details and
status. It'd be good to get these into v6.11 (especially the
MAINTAINERS update) but it wouldn't be the end of the world if they
waited for the merge window, none of them are super remarkable and it's
just a question of timing that they're last minute.
----------------------------------------------------------------
Arseniy Krasnov (1):
ASoC: meson: axg-card: fix 'use-after-free'
Bard Liao (2):
ASoC: Intel: soc-acpi-intel-lnl-match: add missing empty item
ASoC: Intel: soc-acpi-intel-mtl-match: add missing empty item
Pierre-Louis Bossart (1):
MAINTAINERS: update Pierre Bossart's email and role
Shenghao Ding (1):
ASoC: tas2781: fix to save the dsp bin file name into the correct array in case name_prefix is not NULL
Su Hui (1):
ASoC: codecs: avoid possible garbage value in peb2466_reg_read()
.mailmap | 1 +
MAINTAINERS | 6 +++---
sound/soc/codecs/peb2466.c | 3 ++-
sound/soc/codecs/tas2781-i2c.c | 2 +-
sound/soc/intel/common/soc-acpi-intel-lnl-match.c | 1 +
sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 1 +
sound/soc/meson/axg-card.c | 3 ++-
7 files changed, 11 insertions(+), 6 deletions(-)
2
1

13 Sep '24
Add calibration related kcontrol for speaker impedance calibration and
speaker leakage check for Chromebook.
Signed-off-by: Shenghao Ding <shenghao-ding(a)ti.com>
---
v3:
- Add missing grammatical period
- Refer to the functions as func() in comments.
- Create a macro for calibration register setting to reduce the line
- | Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409030627.SFdj22Xs-lkp@intel.com/
v2:
- Add channel no into the log for error debug
- | Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://urldefense.com/v3/__https://lore.kernel.org/oe-kbuild-all/202407131…
- renamae tasdevice_chn_switch to put it in a single line
- With inverted check this entire function becomes neater in
tasdev_chn_switch.
- Add registers for TAS2563 and TAS2781 calibration.
- Add cali_data_backup for regsiter restore after calibration.
- Add is_user_space_calidata to store the flag where the calibrated
from, user space or bin file from driver parsing.
- tasdevice_chn_switch for chip switch among multiple chips(tas2563
or tas2781)
- Add loading the calibrated values from user space in
tasdev_load_calibrated_data
- Correct no dsp no work, it can still work in bypass mode.
- Add calibrated register setting for tas2563&tas2781.
- Define tas2781_cali_control and tas2563_cali_control for calibration
---
include/sound/tas2781.h | 68 +++
sound/soc/codecs/tas2781-comlib.c | 26 +
sound/soc/codecs/tas2781-fmwlib.c | 60 +-
sound/soc/codecs/tas2781-i2c.c | 887 +++++++++++++++++++++++++++++-
4 files changed, 1030 insertions(+), 11 deletions(-)
diff --git a/include/sound/tas2781.h b/include/sound/tas2781.h
index dbda552398b5..8cd6da0480b7 100644
--- a/include/sound/tas2781.h
+++ b/include/sound/tas2781.h
@@ -49,12 +49,59 @@
/*I2C Checksum */
#define TASDEVICE_I2CChecksum TASDEVICE_REG(0x0, 0x0, 0x7E)
+/* XM_340 */
+#define TASDEVICE_XM_A1_REG TASDEVICE_REG(0x64, 0x63, 0x3c)
+/* XM_341 */
+#define TASDEVICE_XM_A2_REG TASDEVICE_REG(0x64, 0x63, 0x38)
+
/* Volume control */
#define TAS2563_DVC_LVL TASDEVICE_REG(0x00, 0x02, 0x0C)
#define TAS2781_DVC_LVL TASDEVICE_REG(0x0, 0x0, 0x1A)
#define TAS2781_AMP_LEVEL TASDEVICE_REG(0x0, 0x0, 0x03)
#define TAS2781_AMP_LEVEL_MASK GENMASK(5, 1)
+#define TAS2563_IDLE TASDEVICE_REG(0x00, 0x00, 0x3e)
+#define TAS2563_PRM_R0_REG TASDEVICE_REG(0x00, 0x0f, 0x34)
+
+#define TAS2563_RUNTIME_RE_REG_TF TASDEVICE_REG(0x64, 0x02, 0x70)
+#define TAS2563_RUNTIME_RE_REG TASDEVICE_REG(0x64, 0x02, 0x48)
+
+#define TAS2563_PRM_ENFF_REG TASDEVICE_REG(0x00, 0x0d, 0x54)
+#define TAS2563_PRM_DISTCK_REG TASDEVICE_REG(0x00, 0x0d, 0x58)
+#define TAS2563_PRM_TE_SCTHR_REG TASDEVICE_REG(0x00, 0x0f, 0x60)
+#define TAS2563_PRM_PLT_FLAG_REG TASDEVICE_REG(0x00, 0x0d, 0x74)
+#define TAS2563_PRM_SINEGAIN_REG TASDEVICE_REG(0x00, 0x0d, 0x7c)
+/* prm_Int_B0 */
+#define TAS2563_TE_TA1_REG TASDEVICE_REG(0x00, 0x10, 0x0c)
+/* prm_Int_A1 */
+#define TAS2563_TE_TA1_AT_REG TASDEVICE_REG(0x00, 0x10, 0x10)
+/* prm_TE_Beta */
+#define TAS2563_TE_TA2_REG TASDEVICE_REG(0x00, 0x0f, 0x64)
+/* prm_TE_Beta1 */
+#define TAS2563_TE_AT_REG TASDEVICE_REG(0x00, 0x0f, 0x68)
+/* prm_TE_1_Beta1 */
+#define TAS2563_TE_DT_REG TASDEVICE_REG(0x00, 0x0f, 0x70)
+
+#define TAS2781_PRM_INT_MASK_REG TASDEVICE_REG(0x00, 0x00, 0x3b)
+#define TAS2781_PRM_CLK_CFG_REG TASDEVICE_REG(0x00, 0x00, 0x5c)
+#define TAS2781_PRM_RSVD_REG TASDEVICE_REG(0x00, 0x01, 0x19)
+#define TAS2781_PRM_TEST_57_REG TASDEVICE_REG(0x00, 0xfd, 0x39)
+#define TAS2781_PRM_TEST_62_REG TASDEVICE_REG(0x00, 0xfd, 0x3e)
+#define TAS2781_PRM_PVDD_UVLO_REG TASDEVICE_REG(0x00, 0x00, 0x71)
+#define TAS2781_PRM_CHNL_0_REG TASDEVICE_REG(0x00, 0x00, 0x03)
+#define TAS2781_PRM_NG_CFG0_REG TASDEVICE_REG(0x00, 0x00, 0x35)
+#define TAS2781_PRM_IDLE_CH_DET_REG TASDEVICE_REG(0x00, 0x00, 0x66)
+#define TAS2781_PRM_PLT_FLAG_REG TASDEVICE_REG(0x00, 0x14, 0x38)
+#define TAS2781_PRM_SINEGAIN_REG TASDEVICE_REG(0x00, 0x14, 0x40)
+#define TAS2781_PRM_SINEGAIN2_REG TASDEVICE_REG(0x00, 0x14, 0x44)
+
+#define TAS2781_TEST_UNLOCK_REG TASDEVICE_REG(0x00, 0xFD, 0x0D)
+#define TAS2781_TEST_PAGE_UNLOCK 0x0D
+
+#define TAS2781_RUNTIME_LATCH_RE_REG TASDEVICE_REG(0x00, 0x00, 0x49)
+#define TAS2781_RUNTIME_RE_REG_TF TASDEVICE_REG(0x64, 0x62, 0x48)
+#define TAS2781_RUNTIME_RE_REG TASDEVICE_REG(0x64, 0x63, 0x44)
+
#define TASDEVICE_CMD_SING_W 0x1
#define TASDEVICE_CMD_BURST 0x2
#define TASDEVICE_CMD_DELAY 0x3
@@ -70,7 +117,15 @@ enum device_catlog_id {
OTHERS
};
+struct bulk_reg_val {
+ int reg;
+ unsigned char val[4];
+ unsigned char val_len;
+ bool is_locked;
+};
+
struct tasdevice {
+ struct bulk_reg_val *cali_data_backup;
struct tasdevice_fw *cali_data_fmw;
unsigned int dev_addr;
unsigned int err_code;
@@ -81,9 +136,19 @@ struct tasdevice {
bool is_loaderr;
};
+struct cali_reg {
+ unsigned int r0_reg;
+ unsigned int r0_low_reg;
+ unsigned int invr0_reg;
+ unsigned int pow_reg;
+ unsigned int tlimit_reg;
+};
+
struct calidata {
unsigned char *data;
unsigned long total_sz;
+ struct cali_reg cali_reg_array;
+ unsigned int cali_dat_sz_per_dev;
};
struct tasdevice_priv {
@@ -119,6 +184,7 @@ struct tasdevice_priv {
bool force_fwload_status;
bool playback_started;
bool isacpi;
+ bool is_user_space_calidata;
unsigned int global_addr;
int (*fw_parse_variable_header)(struct tasdevice_priv *tas_priv,
@@ -145,6 +211,8 @@ int tasdevice_init(struct tasdevice_priv *tas_priv);
void tasdevice_remove(struct tasdevice_priv *tas_priv);
int tasdevice_save_calibration(struct tasdevice_priv *tas_priv);
void tasdevice_apply_calibration(struct tasdevice_priv *tas_priv);
+int tasdev_chn_switch(struct tasdevice_priv *tas_priv,
+ unsigned short chn);
int tasdevice_dev_read(struct tasdevice_priv *tas_priv,
unsigned short chn, unsigned int reg, unsigned int *value);
int tasdevice_dev_write(struct tasdevice_priv *tas_priv,
diff --git a/sound/soc/codecs/tas2781-comlib.c b/sound/soc/codecs/tas2781-comlib.c
index 664c371796d6..1e0b3aa95749 100644
--- a/sound/soc/codecs/tas2781-comlib.c
+++ b/sound/soc/codecs/tas2781-comlib.c
@@ -88,6 +88,32 @@ static int tasdevice_change_chn_book(struct tasdevice_priv *tas_priv,
return ret;
}
+int tasdev_chn_switch(struct tasdevice_priv *tas_priv,
+ unsigned short chn)
+{
+ struct i2c_client *client = (struct i2c_client *)tas_priv->client;
+ struct tasdevice *tasdev = &tas_priv->tasdevice[chn];
+ struct regmap *map = tas_priv->regmap;
+ int ret;
+
+ if (client->addr != tasdev->dev_addr) {
+ client->addr = tasdev->dev_addr;
+ /* All devices share the same regmap, clear the page
+ * inside regmap once switching to another device.
+ * Register 0 at any pages and any books inside tas2781
+ * is the same one for page-switching.
+ */
+ ret = regmap_write(map, TASDEVICE_PAGE_SELECT, 0);
+ if (ret < 0) {
+ dev_err(tas_priv->dev, "%s, E=%d\n", __func__, ret);
+ return ret;
+ }
+ return 1;
+ }
+ return 0;
+}
+EXPORT_SYMBOL_GPL(tasdev_chn_switch);
+
int tasdevice_dev_read(struct tasdevice_priv *tas_priv,
unsigned short chn, unsigned int reg, unsigned int *val)
{
diff --git a/sound/soc/codecs/tas2781-fmwlib.c b/sound/soc/codecs/tas2781-fmwlib.c
index f3a7605f0710..3de0132c345d 100644
--- a/sound/soc/codecs/tas2781-fmwlib.c
+++ b/sound/soc/codecs/tas2781-fmwlib.c
@@ -2151,20 +2151,61 @@ static int tasdevice_load_data(struct tasdevice_priv *tas_priv,
static void tasdev_load_calibrated_data(struct tasdevice_priv *priv, int i)
{
+ struct tasdevice_fw *cal_fmw = priv->tasdevice[i].cali_data_fmw;
+ struct calidata *cali_data = &priv->cali_data;
+ struct cali_reg *p = &cali_data->cali_reg_array;
+ unsigned char *data = cali_data->data;
struct tasdevice_calibration *cal;
- struct tasdevice_fw *cal_fmw;
+ int k = i * (cali_data->cali_dat_sz_per_dev + 1);
+ int rc;
- cal_fmw = priv->tasdevice[i].cali_data_fmw;
+ /* Load the calibrated data from cal bin file */
+ if (!priv->is_user_space_calidata && cal_fmw) {
+ cal = cal_fmw->calibrations;
- /* No calibrated data for current devices, playback will go ahead. */
- if (!cal_fmw)
+ if (cal)
+ load_calib_data(priv, &cal->dev_data);
return;
-
- cal = cal_fmw->calibrations;
- if (!cal)
+ }
+ if (!priv->is_user_space_calidata)
+ return;
+ /* load calibrated data from user space */
+ if (data[k] != i) {
+ dev_err(priv->dev, "%s: no cal-data for dev %d from usr-spc\n",
+ __func__, i);
return;
+ }
+ k++;
- load_calib_data(priv, &cal->dev_data);
+ rc = tasdevice_dev_bulk_write(priv, i, p->r0_reg, &(data[k]), 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d r0_reg bulk_wr err = %d\n", i, rc);
+ return;
+ }
+ k += 4;
+ rc = tasdevice_dev_bulk_write(priv, i, p->r0_low_reg, &(data[k]), 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d r0_low_reg err = %d\n", i, rc);
+ return;
+ }
+ k += 4;
+ rc = tasdevice_dev_bulk_write(priv, i, p->invr0_reg, &(data[k]), 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d invr0_reg err = %d\n", i, rc);
+ return;
+ }
+ k += 4;
+ rc = tasdevice_dev_bulk_write(priv, i, p->pow_reg, &(data[k]), 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d pow_reg bulk_wr err = %d\n", i, rc);
+ return;
+ }
+ k += 4;
+ rc = tasdevice_dev_bulk_write(priv, i, p->tlimit_reg, &(data[k]), 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d tlimit_reg err = %d\n", i, rc);
+ return;
+ }
}
int tasdevice_select_tuningprm_cfg(void *context, int prm_no,
@@ -2259,9 +2300,10 @@ int tasdevice_select_tuningprm_cfg(void *context, int prm_no,
tas_priv->tasdevice[i].cur_conf = cfg_no;
}
}
- } else
+ } else {
dev_dbg(tas_priv->dev, "%s: Unneeded loading dsp conf %d\n",
__func__, cfg_no);
+ }
status |= cfg_info[rca_conf_no]->active_dev;
diff --git a/sound/soc/codecs/tas2781-i2c.c b/sound/soc/codecs/tas2781-i2c.c
index 3bc10d615fd3..d0ba7cbe03a8 100644
--- a/sound/soc/codecs/tas2781-i2c.c
+++ b/sound/soc/codecs/tas2781-i2c.c
@@ -33,6 +33,69 @@
#include <sound/tas2781-tlv.h>
#include <asm/unaligned.h>
+#define X2563_CL_STT_VAL(xreg, xval) \
+{ .reg = xreg, \
+ .val = { xval }, \
+ .val_len = 1, }
+
+#define X2563_CL_STT_4BYTS(xreg, byte0, byte1, byte2, byte3) \
+{ .reg = xreg, \
+ .val = { byte0, byte1, byte2, byte3 }, \
+ .val_len = 4, }
+
+static const struct bulk_reg_val tas2563_cali_start_reg[] = {
+ X2563_CL_STT_VAL(TAS2563_IDLE, 0x00),
+ X2563_CL_STT_4BYTS(TAS2563_PRM_ENFF_REG, 0x40, 0x00, 0x00, 0x00),
+ X2563_CL_STT_4BYTS(TAS2563_PRM_DISTCK_REG, 0x40, 0x00, 0x00, 0x00),
+ X2563_CL_STT_4BYTS(TAS2563_PRM_TE_SCTHR_REG, 0x7f, 0xff, 0xff, 0xff),
+ X2563_CL_STT_4BYTS(TAS2563_PRM_PLT_FLAG_REG, 0x40, 0x00, 0x00, 0x00),
+ X2563_CL_STT_4BYTS(TAS2563_PRM_SINEGAIN_REG, 0x0a, 0x3d, 0x70, 0xa4),
+ X2563_CL_STT_4BYTS(TAS2563_TE_TA1_REG, 0x00, 0x36, 0x91, 0x5e),
+ X2563_CL_STT_4BYTS(TAS2563_TE_TA1_AT_REG, 0x00, 0x36, 0x91, 0x5e),
+ X2563_CL_STT_4BYTS(TAS2563_TE_TA2_REG, 0x00, 0x06, 0xd3, 0x72),
+ X2563_CL_STT_4BYTS(TAS2563_TE_AT_REG, 0x00, 0x36, 0x91, 0x5e),
+ X2563_CL_STT_4BYTS(TAS2563_TE_DT_REG, 0x00, 0x36, 0x91, 0x5e),
+};
+
+#define X2781_CL_STT_VAL(xreg, xval, xlocked) \
+{ .reg = xreg, \
+ .val = { xval }, \
+ .val_len = 1, \
+ .is_locked = xlocked, }
+
+#define X2781_CL_STT_4BYTS_UNLOCKED(xreg, byte0, byte1, byte2, byte3) \
+{ .reg = xreg, \
+ .val = { byte0, byte1, byte2, byte3 }, \
+ .val_len = 4, \
+ .is_locked = false, }
+
+#define X2781_CL_STT_LEN_UNLOCKED(xreg) \
+{ .reg = xreg, \
+ .val_len = 4, \
+ .is_locked = false, }
+
+static const struct bulk_reg_val tas2781_cali_start_reg[] = {
+ X2781_CL_STT_VAL(TAS2781_PRM_INT_MASK_REG, 0xfe, false),
+ X2781_CL_STT_VAL(TAS2781_PRM_CLK_CFG_REG, 0xdd, false),
+ X2781_CL_STT_VAL(TAS2781_PRM_RSVD_REG, 0x20, false),
+ X2781_CL_STT_VAL(TAS2781_PRM_TEST_57_REG, 0x14, false),
+ X2781_CL_STT_VAL(TAS2781_PRM_TEST_62_REG, 0x45, true),
+ X2781_CL_STT_VAL(TAS2781_PRM_PVDD_UVLO_REG, 0x03, false),
+ X2781_CL_STT_VAL(TAS2781_PRM_CHNL_0_REG, 0xa8, false),
+ X2781_CL_STT_VAL(TAS2781_PRM_NG_CFG0_REG, 0xb9, false),
+ X2781_CL_STT_VAL(TAS2781_PRM_IDLE_CH_DET_REG, 0x92, false),
+ /*
+ * This register is pilot tone threshold, different with the
+ * calibration tool version, it will be updated in
+ * tas2781_calib_start_put(), set to 1mA.
+ */
+ X2781_CL_STT_4BYTS_UNLOCKED(0, 0x00, 0x00, 0x00, 0x56),
+ X2781_CL_STT_4BYTS_UNLOCKED(TAS2781_PRM_PLT_FLAG_REG,
+ 0x40, 0x00, 0x00, 0x00),
+ X2781_CL_STT_LEN_UNLOCKED(TAS2781_PRM_SINEGAIN_REG),
+ X2781_CL_STT_LEN_UNLOCKED(TAS2781_PRM_SINEGAIN2_REG),
+};
+
static const struct i2c_device_id tasdevice_id[] = {
{ "tas2563", TAS2563 },
{ "tas2781", TAS2781 },
@@ -141,6 +204,557 @@ static int tasdev_force_fwload_put(struct snd_kcontrol *kcontrol,
return change;
}
+static int tasdev_cali_data_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *priv = snd_soc_component_get_drvdata(comp);
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ struct calidata *cali_data = &priv->cali_data;
+ struct cali_reg *p = &cali_data->cali_reg_array;
+ unsigned char *dst = ucontrol->value.bytes.data;
+ unsigned char *data = cali_data->data;
+ unsigned int i = 0;
+ unsigned int j, k;
+ int rc;
+
+ guard(mutex)(&priv->codec_lock);
+ if (!priv->is_user_space_calidata)
+ return -1;
+
+ if (!p->r0_reg)
+ return -1;
+
+ dst[i++] = bytes_ext->max;
+ dst[i++] = 'r';
+
+ dst[i++] = TASDEVICE_BOOK_ID(p->r0_reg);
+ dst[i++] = TASDEVICE_PAGE_ID(p->r0_reg);
+ dst[i++] = TASDEVICE_PAGE_REG(p->r0_reg);
+
+ dst[i++] = TASDEVICE_BOOK_ID(p->r0_low_reg);
+ dst[i++] = TASDEVICE_PAGE_ID(p->r0_low_reg);
+ dst[i++] = TASDEVICE_PAGE_REG(p->r0_low_reg);
+
+ dst[i++] = TASDEVICE_BOOK_ID(p->invr0_reg);
+ dst[i++] = TASDEVICE_PAGE_ID(p->invr0_reg);
+ dst[i++] = TASDEVICE_PAGE_REG(p->invr0_reg);
+
+ dst[i++] = TASDEVICE_BOOK_ID(p->pow_reg);
+ dst[i++] = TASDEVICE_PAGE_ID(p->pow_reg);
+ dst[i++] = TASDEVICE_PAGE_REG(p->pow_reg);
+
+ dst[i++] = TASDEVICE_BOOK_ID(p->tlimit_reg);
+ dst[i++] = TASDEVICE_PAGE_ID(p->tlimit_reg);
+ dst[i++] = TASDEVICE_PAGE_REG(p->tlimit_reg);
+
+ for (j = 0, k = 0; j < priv->ndev; j++) {
+ if (j == data[k]) {
+ dst[i++] = j;
+ k++;
+ } else {
+ dev_err(priv->dev, "chn %d device %u not match\n",
+ j, data[k]);
+ k += 21;
+ continue;
+ }
+ rc = tasdevice_dev_bulk_read(priv, j, p->r0_reg, &dst[i], 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d r0_reg bulk_rd err = %d\n",
+ j, rc);
+ i += 20;
+ k += 20;
+ continue;
+ }
+ rc = memcmp(&dst[i], &data[k], 4);
+ if (rc != 0)
+ dev_dbg(priv->dev, "chn %d r0_data is not same\n", j);
+ k += 4;
+ i += 4;
+ rc = tasdevice_dev_bulk_read(priv, j, p->r0_low_reg,
+ &dst[i], 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d r0_low bulk_rd err = %d\n",
+ j, rc);
+ i += 16;
+ k += 16;
+ continue;
+ }
+ rc = memcmp(&dst[i], &data[k], 4);
+ if (rc != 0)
+ dev_dbg(priv->dev, "chn %d r0_low is not same\n", j);
+ i += 4;
+ k += 4;
+ rc = tasdevice_dev_bulk_read(priv, j, p->invr0_reg,
+ &dst[i], 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d invr0 bulk_rd err = %d\n",
+ j, rc);
+ i += 12;
+ k += 12;
+ continue;
+ }
+ rc = memcmp(&dst[i], &data[k], 4);
+ if (rc != 0)
+ dev_dbg(priv->dev, "chn %d invr0 is not same\n", j);
+ i += 4;
+ k += 4;
+ rc = tasdevice_dev_bulk_read(priv, j, p->pow_reg, &dst[i], 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d pow_reg bulk_rd err = %d\n",
+ j, rc);
+ i += 8;
+ k += 8;
+ continue;
+ }
+ rc = memcmp(&dst[i], &data[k], 4);
+ if (rc != 0)
+ dev_dbg(priv->dev, "chn %d pow_reg is not same\n", j);
+ i += 4;
+ k += 4;
+ rc = tasdevice_dev_bulk_read(priv, j, p->tlimit_reg,
+ &dst[i], 4);
+ if (rc < 0) {
+ dev_err(priv->dev, "chn %d tlimit bulk_rd err = %d\n",
+ j, rc);
+ }
+ rc = memcmp(&dst[i], &data[k], 4);
+ if (rc != 0)
+ dev_dbg(priv->dev, "chn %d tlimit is not same\n", j);
+ i += 4;
+ k += 4;
+ }
+ return 0;
+}
+
+static int calib_data_get(struct tasdevice_priv *tas_priv, int reg,
+ unsigned char *dst)
+{
+ struct i2c_client *clt = (struct i2c_client *)tas_priv->client;
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ int rc = -1;
+ int i;
+
+ for (i = 0; i < tas_priv->ndev; i++) {
+ if (clt->addr == tasdev[i].dev_addr) {
+ /* First byte is the device index. */
+ dst[0] = i;
+ rc = tasdevice_dev_bulk_read(tas_priv, i, reg, &dst[1],
+ 4);
+ break;
+ }
+ }
+
+ return rc;
+}
+
+static void sngl_calib_start(struct tasdevice_priv *tas_priv, int i,
+ int *reg, unsigned char *dat)
+{
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ struct bulk_reg_val *p = tasdev[i].cali_data_backup;
+ const int sum = ARRAY_SIZE(tas2781_cali_start_reg);
+ int j;
+
+ if (p == NULL)
+ return;
+
+ /* Store the current setting from the chip */
+ for (j = 0; j < sum; j++) {
+ if (p[j].val_len == 1) {
+ if (p[j].is_locked)
+ tasdevice_dev_write(tas_priv, i,
+ TAS2781_TEST_UNLOCK_REG,
+ TAS2781_TEST_PAGE_UNLOCK);
+ tasdevice_dev_read(tas_priv, i, p[j].reg,
+ (int *)&p[j].val[0]);
+ } else {
+ switch (p[j].reg) {
+ case 0: {
+ if (!reg[0])
+ continue;
+ p[j].reg = reg[0];
+ }
+ break;
+ case TAS2781_PRM_PLT_FLAG_REG:
+ p[j].reg = reg[1];
+ break;
+ case TAS2781_PRM_SINEGAIN_REG:
+ p[j].reg = reg[2];
+ break;
+ case TAS2781_PRM_SINEGAIN2_REG:
+ p[j].reg = reg[3];
+ break;
+ }
+ tasdevice_dev_bulk_read(tas_priv, i, p[j].reg,
+ p[j].val, 4);
+ }
+ }
+
+ /* Update the setting for calibration */
+ for (j = 0; j < sum - 2; j++) {
+ if (p[j].val_len == 1) {
+ if (p[j].is_locked)
+ tasdevice_dev_write(tas_priv, i,
+ TAS2781_TEST_UNLOCK_REG,
+ TAS2781_TEST_PAGE_UNLOCK);
+ tasdevice_dev_write(tas_priv, i, p[j].reg,
+ tas2781_cali_start_reg[j].val[0]);
+ } else {
+ if (!p[j].reg)
+ continue;
+ tasdevice_dev_bulk_write(tas_priv, i, p[j].reg,
+ (unsigned char *)
+ tas2781_cali_start_reg[j].val, 4);
+ }
+ }
+
+ tasdevice_dev_bulk_write(tas_priv, i, p[j].reg, &dat[1], 4);
+ tasdevice_dev_bulk_write(tas_priv, i, p[j + 1].reg, &dat[5], 4);
+}
+
+static int tas2781_calib_start_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *priv = snd_soc_component_get_drvdata(comp);
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ unsigned char *dat = ucontrol->value.bytes.data;
+ int i, reg[4];
+ int j = 0;
+
+ guard(mutex)(&priv->codec_lock);
+ if (priv->chip_id != TAS2781 || bytes_ext->max != dat[0] ||
+ dat[1] != 'r') {
+ dev_err(priv->dev, "%s: package fmt or chipid incorrect\n",
+ __func__);
+ return 0;
+ }
+ j += 2;
+ /* refresh pilot tone and SineGain register */
+ for (i = 0; i < ARRAY_SIZE(reg); i++) {
+ reg[i] = TASDEVICE_REG(dat[j], dat[j + 1], dat[j + 2]);
+ j += 3;
+ }
+
+ for (i = 0; i < priv->ndev; i++) {
+ int k = i * 9 + j;
+
+ if (dat[k] != i) {
+ dev_err(priv->dev, "%s:no cal-setting for dev %d\n",
+ __func__, i);
+ continue;
+ }
+ sngl_calib_start(priv, i, reg, dat + k);
+ }
+ return 1;
+}
+
+static void tas2781_calib_stop_put(struct tasdevice_priv *tas_priv)
+{
+ const int sum = ARRAY_SIZE(tas2781_cali_start_reg);
+ int i, j;
+
+ for (i = 0; i < tas_priv->ndev; i++) {
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ struct bulk_reg_val *p = tasdev[i].cali_data_backup;
+
+ if (p == NULL)
+ continue;
+
+ for (j = 0; j < sum; j++) {
+ if (p[j].val_len == 1) {
+ if (p[j].is_locked)
+ tasdevice_dev_write(tas_priv, i,
+ TAS2781_TEST_UNLOCK_REG,
+ TAS2781_TEST_PAGE_UNLOCK);
+ tasdevice_dev_write(tas_priv, i, p[j].reg,
+ p[j].val[0]);
+ } else {
+ if (!p[j].reg)
+ continue;
+ tasdevice_dev_bulk_write(tas_priv, i, p[j].reg,
+ p[j].val, 4);
+ }
+ }
+ }
+}
+
+static int tas2563_calib_start_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct bulk_reg_val *q = (struct bulk_reg_val *)tas2563_cali_start_reg;
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(comp);
+ const int sum = ARRAY_SIZE(tas2563_cali_start_reg);
+ int rc = 1;
+ int i, j;
+
+ guard(mutex)(&tas_priv->codec_lock);
+ if (tas_priv->chip_id != TAS2563) {
+ rc = -1;
+ goto out;
+ }
+
+ for (i = 0; i < tas_priv->ndev; i++) {
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ struct bulk_reg_val *p = tasdev[i].cali_data_backup;
+
+ if (p == NULL)
+ continue;
+ for (j = 0; j < sum; j++) {
+ if (p[j].val_len == 1)
+ tasdevice_dev_read(tas_priv,
+ i, p[j].reg,
+ (unsigned int *)&p[j].val[0]);
+ else
+ tasdevice_dev_bulk_read(tas_priv,
+ i, p[j].reg, p[j].val, 4);
+ }
+
+ for (j = 0; j < sum; j++) {
+ if (p[j].val_len == 1)
+ tasdevice_dev_write(tas_priv, i, p[j].reg,
+ q[j].val[0]);
+ else
+ tasdevice_dev_bulk_write(tas_priv, i, p[j].reg,
+ q[j].val, 4);
+ }
+ }
+out:
+ return rc;
+}
+
+static void tas2563_calib_stop_put(struct tasdevice_priv *tas_priv)
+{
+ const int sum = ARRAY_SIZE(tas2563_cali_start_reg);
+ int i, j;
+
+ for (i = 0; i < tas_priv->ndev; i++) {
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ struct bulk_reg_val *p = tasdev[i].cali_data_backup;
+
+ if (p == NULL)
+ continue;
+
+ for (j = 0; j < sum; j++) {
+ if (p[j].val_len == 1)
+ tasdevice_dev_write(tas_priv, i, p[j].reg,
+ p[j].val[0]);
+ else
+ tasdevice_dev_bulk_write(tas_priv, i, p[j].reg,
+ p[j].val, 4);
+ }
+ }
+}
+
+static int tasdev_calib_stop_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *priv = snd_soc_component_get_drvdata(comp);
+
+ guard(mutex)(&priv->codec_lock);
+ if (priv->chip_id == TAS2563)
+ tas2563_calib_stop_put(priv);
+ else
+ tas2781_calib_stop_put(priv);
+
+ return 1;
+}
+
+static int tasdev_cali_data_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *priv = snd_soc_component_get_drvdata(comp);
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ struct calidata *cali_data = &priv->cali_data;
+ struct cali_reg *p = &cali_data->cali_reg_array;
+ unsigned char *src = ucontrol->value.bytes.data;
+ unsigned char *dst = cali_data->data;
+ int rc = 1, i = 0;
+ int j;
+
+ guard(mutex)(&priv->codec_lock);
+ if (src[0] != bytes_ext->max || src[1] != 'r') {
+ dev_err(priv->dev, "%s: pkg fmt invalid\n", __func__);
+ return 0;
+ }
+ for (j = 0; j < priv->ndev; j++) {
+ if (src[17 + j * 21] != j) {
+ dev_err(priv->dev, "%s: pkg fmt invalid\n", __func__);
+ return 0;
+ }
+ }
+ i += 2;
+ priv->is_user_space_calidata = true;
+
+ p->r0_reg = TASDEVICE_REG(src[i], src[i + 1], src[i + 2]);
+ i += 3;
+ p->r0_low_reg = TASDEVICE_REG(src[i], src[i + 1], src[i + 2]);
+ i += 3;
+ p->invr0_reg = TASDEVICE_REG(src[i], src[i + 1], src[i + 2]);
+ i += 3;
+ p->pow_reg = TASDEVICE_REG(src[i], src[i + 1], src[i + 2]);
+ i += 3;
+ p->tlimit_reg = TASDEVICE_REG(src[i], src[i + 1], src[i + 2]);
+ i += 3;
+
+ memcpy(dst, &src[i], cali_data->total_sz);
+ return rc;
+}
+
+static int tas2781_latch_reg_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(comp);
+ struct i2c_client *clt = (struct i2c_client *)tas_priv->client;
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ unsigned char *dst = ucontrol->value.bytes.data;
+ int i, val, rc = -1;
+
+ dst[0] = bytes_ext->max;
+ guard(mutex)(&tas_priv->codec_lock);
+ for (i = 0; i < tas_priv->ndev; i++) {
+ if (clt->addr == tasdev[i].dev_addr) {
+ /* First byte is the device index. */
+ dst[1] = i;
+ rc = tasdevice_dev_read(tas_priv, i,
+ TAS2781_RUNTIME_LATCH_RE_REG, &val);
+ if (rc < 0)
+ dev_err(tas_priv->dev, "%s, get value error\n",
+ __func__);
+ else
+ dst[2] = val;
+
+ break;
+ }
+ }
+
+ return rc;
+}
+
+static int tasdev_tf_data_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(comp);
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ unsigned char *dst = ucontrol->value.bytes.data;
+ unsigned int reg;
+ int rc = -1;
+
+ if (tas_priv->chip_id == TAS2781)
+ reg = TAS2781_RUNTIME_RE_REG_TF;
+ else
+ reg = TAS2563_RUNTIME_RE_REG_TF;
+
+ guard(mutex)(&tas_priv->codec_lock);
+ dst[0] = bytes_ext->max;
+ rc = calib_data_get(tas_priv, reg, &dst[1]);
+
+ return rc;
+}
+
+static int tasdev_re_data_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(comp);
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ unsigned char *dst = ucontrol->value.bytes.data;
+ unsigned int reg;
+ int rc = -1;
+
+ if (tas_priv->chip_id == TAS2781)
+ reg = TAS2781_RUNTIME_RE_REG;
+ else
+ reg = TAS2563_RUNTIME_RE_REG;
+ guard(mutex)(&tas_priv->codec_lock);
+ dst[0] = bytes_ext->max;
+ rc = calib_data_get(tas_priv, reg, &dst[1]);
+
+ return rc;
+}
+
+static int tasdev_r0_data_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(comp);
+ struct calidata *cali_data = &tas_priv->cali_data;
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ unsigned char *dst = ucontrol->value.bytes.data;
+ unsigned int reg;
+ int rc = -1;
+
+ guard(mutex)(&tas_priv->codec_lock);
+
+ if (tas_priv->chip_id == TAS2563)
+ reg = TAS2563_PRM_R0_REG;
+ else if (cali_data->cali_reg_array.r0_reg)
+ reg = cali_data->cali_reg_array.r0_reg;
+ else
+ return -1;
+ dst[0] = bytes_ext->max;
+ rc = calib_data_get(tas_priv, reg, &dst[1]);
+
+ return rc;
+}
+
+static int tasdev_XMA1_data_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(comp);
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ unsigned char *dst = ucontrol->value.bytes.data;
+ unsigned int reg = TASDEVICE_XM_A1_REG;
+ int rc = -1;
+
+ guard(mutex)(&tas_priv->codec_lock);
+ dst[0] = bytes_ext->max;
+ rc = calib_data_get(tas_priv, reg, &dst[1]);
+
+ return rc;
+}
+
+static int tasdev_XMA2_data_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(comp);
+ struct soc_bytes_ext *bytes_ext =
+ (struct soc_bytes_ext *) kcontrol->private_value;
+ unsigned char *dst = ucontrol->value.bytes.data;
+ unsigned int reg = TASDEVICE_XM_A2_REG;
+ int rc = -1;
+
+ guard(mutex)(&tas_priv->codec_lock);
+ dst[0] = bytes_ext->max;
+ rc = calib_data_get(tas_priv, reg, &dst[1]);
+
+ return rc;
+}
+
+static int tasdev_nop_get(
+ struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ return 0;
+}
+
static int tas2563_digital_gain_get(
struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
@@ -241,6 +855,16 @@ static const struct snd_kcontrol_new tasdevice_snd_controls[] = {
tasdev_force_fwload_get, tasdev_force_fwload_put),
};
+static const struct snd_kcontrol_new tasdevice_cali_controls[] = {
+ SOC_SINGLE_EXT("Calibration Stop", SND_SOC_NOPM, 0, 1, 0,
+ tasdev_nop_get, tasdev_calib_stop_put),
+ SND_SOC_BYTES_EXT("Amp TF Data", 6, tasdev_tf_data_get, NULL),
+ SND_SOC_BYTES_EXT("Amp RE Data", 6, tasdev_re_data_get, NULL),
+ SND_SOC_BYTES_EXT("Amp R0 Data", 6, tasdev_r0_data_get, NULL),
+ SND_SOC_BYTES_EXT("Amp XMA1 Data", 6, tasdev_XMA1_data_get, NULL),
+ SND_SOC_BYTES_EXT("Amp XMA2 Data", 6, tasdev_XMA2_data_get, NULL),
+};
+
static const struct snd_kcontrol_new tas2781_snd_controls[] = {
SOC_SINGLE_RANGE_EXT_TLV("Speaker Analog Gain", TAS2781_AMP_LEVEL,
1, 0, 20, 0, tas2781_amp_getvol,
@@ -250,6 +874,10 @@ static const struct snd_kcontrol_new tas2781_snd_controls[] = {
tas2781_digital_putvol, dvc_tlv),
};
+static const struct snd_kcontrol_new tas2781_cali_controls[] = {
+ SND_SOC_BYTES_EXT("Amp Latch Data", 3, tas2781_latch_reg_get, NULL),
+};
+
static const struct snd_kcontrol_new tas2563_snd_controls[] = {
SOC_SINGLE_RANGE_EXT_TLV("Speaker Digital Volume", TAS2563_DVC_LVL, 0,
0, ARRAY_SIZE(tas2563_dvc_table) - 1, 0,
@@ -257,6 +885,11 @@ static const struct snd_kcontrol_new tas2563_snd_controls[] = {
tas2563_dvc_tlv),
};
+static const struct snd_kcontrol_new tas2563_cali_controls[] = {
+ SOC_SINGLE_EXT("Calibration Start", SND_SOC_NOPM, 0, 1, 0,
+ tasdev_nop_get, tas2563_calib_start_put),
+};
+
static int tasdevice_set_profile_id(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
@@ -274,6 +907,31 @@ static int tasdevice_set_profile_id(struct snd_kcontrol *kcontrol,
return ret;
}
+static int tasdevice_info_active_num(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_info *uinfo)
+{
+ struct snd_soc_component *codec = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(codec);
+
+ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
+ uinfo->count = 1;
+ uinfo->value.integer.min = 0;
+ uinfo->value.integer.max = tas_priv->ndev - 1;
+
+ return 0;
+}
+
+static int tasdevice_info_chip_id(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_info *uinfo)
+{
+ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
+ uinfo->count = 1;
+ uinfo->value.integer.min = TAS2563;
+ uinfo->value.integer.max = TAS2781;
+
+ return 0;
+}
+
static int tasdevice_info_programs(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{
@@ -330,6 +988,17 @@ static int tasdevice_get_profile_id(struct snd_kcontrol *kcontrol,
return 0;
}
+static int tasdevice_get_chip_id(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *codec = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(codec);
+
+ ucontrol->value.integer.value[0] = tas_priv->chip_id;
+
+ return 0;
+}
+
static int tasdevice_create_control(struct tasdevice_priv *tas_priv)
{
struct snd_kcontrol_new *prof_ctrls;
@@ -421,11 +1090,47 @@ static int tasdevice_configuration_put(
return ret;
}
+static int tasdevice_active_num_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *codec = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(codec);
+ struct i2c_client *clt = (struct i2c_client *)tas_priv->client;
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ int i;
+
+ for (i = 0; i < tas_priv->ndev; i++) {
+ if (clt->addr == tasdev[i].dev_addr) {
+ ucontrol->value.integer.value[0] = i;
+ return 0;
+ }
+ }
+
+ return -1;
+}
+
+static int tasdevice_active_num_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *codec = snd_soc_kcontrol_component(kcontrol);
+ struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(codec);
+ int dev_id = ucontrol->value.integer.value[0];
+ int max = tas_priv->ndev - 1, rc;
+
+ dev_id = clamp(dev_id, 0, max);
+
+ guard(mutex)(&tas_priv->codec_lock);
+ rc = tasdev_chn_switch(tas_priv, dev_id);
+
+ return rc;
+}
+
static int tasdevice_dsp_create_ctrls(struct tasdevice_priv *tas_priv)
{
struct snd_kcontrol_new *dsp_ctrls;
- char *prog_name, *conf_name;
- int nr_controls = 2;
+ char *active_dev_num, *chip_id;
+ char *conf_name, *prog_name;
+ int nr_controls = 4;
int mix_index = 0;
int ret;
@@ -466,6 +1171,30 @@ static int tasdevice_dsp_create_ctrls(struct tasdevice_priv *tas_priv)
dsp_ctrls[mix_index].put = tasdevice_configuration_put;
mix_index++;
+ active_dev_num = devm_kstrdup(tas_priv->dev, "Activate Tasdevice Num",
+ GFP_KERNEL);
+ if (!active_dev_num) {
+ ret = -ENOMEM;
+ goto out;
+ }
+ dsp_ctrls[mix_index].name = active_dev_num;
+ dsp_ctrls[mix_index].iface = SNDRV_CTL_ELEM_IFACE_MIXER;
+ dsp_ctrls[mix_index].info = tasdevice_info_active_num;
+ dsp_ctrls[mix_index].get = tasdevice_active_num_get;
+ dsp_ctrls[mix_index].put = tasdevice_active_num_put;
+ mix_index++;
+
+ chip_id = devm_kstrdup(tas_priv->dev, "Tasdevice Chip Id", GFP_KERNEL);
+ if (!chip_id) {
+ ret = -ENOMEM;
+ goto out;
+ }
+ dsp_ctrls[mix_index].name = chip_id;
+ dsp_ctrls[mix_index].iface = SNDRV_CTL_ELEM_IFACE_MIXER;
+ dsp_ctrls[mix_index].info = tasdevice_info_chip_id;
+ dsp_ctrls[mix_index].get = tasdevice_get_chip_id;
+ mix_index++;
+
ret = snd_soc_add_component_controls(tas_priv->codec, dsp_ctrls,
nr_controls < mix_index ? nr_controls : mix_index);
@@ -473,6 +1202,149 @@ static int tasdevice_dsp_create_ctrls(struct tasdevice_priv *tas_priv)
return ret;
}
+static int tasdevice_create_cali_ctrls(struct tasdevice_priv *priv)
+{
+ struct calidata *cali_data = &priv->cali_data;
+ struct tasdevice *tasdev = priv->tasdevice;
+ struct soc_bytes_ext *ext_cali_data;
+ struct snd_kcontrol_new *cali_ctrls;
+ unsigned int nctrls;
+ char *cali_name;
+ int rc, i;
+
+ rc = snd_soc_add_component_controls(priv->codec,
+ tasdevice_cali_controls, ARRAY_SIZE(tasdevice_cali_controls));
+ if (rc < 0) {
+ dev_err(priv->dev, "%s: Add cali controls err rc = %d",
+ __func__, rc);
+ return rc;
+ }
+
+ if (priv->chip_id == TAS2781) {
+ cali_ctrls = (struct snd_kcontrol_new *)tas2781_cali_controls;
+ nctrls = ARRAY_SIZE(tas2781_cali_controls);
+ for (i = 0; i < priv->ndev; i++) {
+ tasdev[i].cali_data_backup =
+ kmemdup(tas2781_cali_start_reg,
+ sizeof(tas2781_cali_start_reg), GFP_KERNEL);
+ if (!tasdev[i].cali_data_backup)
+ return -ENOMEM;
+ }
+ } else {
+ cali_ctrls = (struct snd_kcontrol_new *)tas2563_cali_controls;
+ nctrls = ARRAY_SIZE(tas2563_cali_controls);
+ for (i = 0; i < priv->ndev; i++) {
+ tasdev[i].cali_data_backup =
+ kmemdup(tas2563_cali_start_reg,
+ sizeof(tas2563_cali_start_reg), GFP_KERNEL);
+ if (!tasdev[i].cali_data_backup)
+ return -ENOMEM;
+ }
+ }
+
+ rc = snd_soc_add_component_controls(priv->codec, cali_ctrls, nctrls);
+ if (rc < 0) {
+ dev_err(priv->dev, "%s: Add chip cali ctrls err rc = %d",
+ __func__, rc);
+ return rc;
+ }
+
+ /* index for cali_ctrls */
+ i = 0;
+ if (priv->chip_id == TAS2781)
+ nctrls = 2;
+ else
+ nctrls = 1;
+
+ /*
+ * Alloc kcontrol via devm_kzalloc(), which don't manually
+ * free the kcontrol。
+ */
+ cali_ctrls = devm_kcalloc(priv->dev, nctrls,
+ sizeof(cali_ctrls[0]), GFP_KERNEL);
+ if (!cali_ctrls)
+ return -ENOMEM;
+
+ ext_cali_data = devm_kzalloc(priv->dev, sizeof(*ext_cali_data),
+ GFP_KERNEL);
+ if (!ext_cali_data)
+ return -ENOMEM;
+
+ cali_name = devm_kstrdup(priv->dev, "Speaker Calibrated Data",
+ GFP_KERNEL);
+ if (!cali_name)
+ return -ENOMEM;
+ /* the number of calibrated data per tas2563/tas2781 */
+ cali_data->cali_dat_sz_per_dev = 20;
+ /*
+ * Data structure for tas2563/tas2781 calibrated data:
+ * Pkg len (1 byte)
+ * Reg id (1 byte, constant 'r')
+ * book, page, register array for calibrated data (15 bytes)
+ * for (i = 0; i < Device-Sum; i++) {
+ * Device #i index_info (1 byte)
+ * Calibrated data for Device #i (20 bytes)
+ * }
+ */
+ ext_cali_data->max = priv->ndev *
+ (cali_data->cali_dat_sz_per_dev + 1) + 1 + 15 + 1;
+ priv->cali_data.total_sz = priv->ndev *
+ (cali_data->cali_dat_sz_per_dev + 1);
+ priv->cali_data.data = devm_kzalloc(priv->dev,
+ ext_cali_data->max, GFP_KERNEL);
+ cali_ctrls[i].name = cali_name;
+ cali_ctrls[i].iface = SNDRV_CTL_ELEM_IFACE_MIXER;
+ cali_ctrls[i].info = snd_soc_bytes_info_ext;
+ cali_ctrls[i].get = tasdev_cali_data_get;
+ cali_ctrls[i].put = tasdev_cali_data_put;
+ cali_ctrls[i].private_value = (unsigned long)ext_cali_data;
+ i++;
+
+ cali_data->data = devm_kzalloc(priv->dev, cali_data->total_sz,
+ GFP_KERNEL);
+ if (!cali_data->data)
+ return -ENOMEM;
+
+ if (priv->chip_id == TAS2781) {
+ struct soc_bytes_ext *ext_cali_start;
+ char *cali_start_name;
+
+ ext_cali_start = devm_kzalloc(priv->dev,
+ sizeof(*ext_cali_start), GFP_KERNEL);
+ if (!ext_cali_start)
+ return -ENOMEM;
+
+ cali_start_name = devm_kstrdup(priv->dev,
+ "Calibration Start", GFP_KERNEL);
+ if (!cali_start_name)
+ return -ENOMEM;
+ /*
+ * package structure for tas2781 ftc start:
+ * Pkg len (1 byte)
+ * Reg id (1 byte, constant 'r')
+ * book, page, register for pilot threshold, pilot tone
+ * and sine gain (12 bytes)
+ * for (i = 0; i < Device-Sum; i++) {
+ * Device #i index_info (1 byte)
+ * Sine gain for Device #i (8 bytes)
+ * }
+ */
+ ext_cali_start->max = 14 + priv->ndev * 9;
+ cali_ctrls[i].name = cali_start_name;
+ cali_ctrls[i].iface = SNDRV_CTL_ELEM_IFACE_MIXER;
+ cali_ctrls[i].info = snd_soc_bytes_info_ext;
+ cali_ctrls[i].put = tas2781_calib_start_put;
+ cali_ctrls[i].get = tasdev_nop_get;
+ cali_ctrls[i].private_value = (unsigned long)ext_cali_start;
+ i++;
+ }
+
+ rc = snd_soc_add_component_controls(priv->codec, cali_ctrls,
+ nctrls < i ? nctrls : i);
+
+ return rc;
+}
+
static void tasdevice_fw_ready(const struct firmware *fmw,
void *context)
{
@@ -519,6 +1391,12 @@ static void tasdevice_fw_ready(const struct firmware *fmw,
goto out;
}
+ ret = tasdevice_create_cali_ctrls(tas_priv);
+ if (ret) {
+ dev_err(tas_priv->dev, "cali controls error\n");
+ goto out;
+ }
+
tas_priv->fw_state = TASDEVICE_DSP_FW_ALL_OK;
/* If calibrated data occurs error, dsp will still works with default
@@ -720,6 +1598,11 @@ static int tasdevice_codec_probe(struct snd_soc_component *codec)
static void tasdevice_deinit(void *context)
{
struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
+ struct tasdevice *tasdev = tas_priv->tasdevice;
+ int i;
+
+ for (i = 0; i < tas_priv->ndev; i++)
+ kfree(tasdev[i].cali_data_backup);
tasdevice_config_info_remove(tas_priv);
tasdevice_dsp_remove(tas_priv);
--
2.34.1
2
1
This patch series moves common Soundwire endpoint parsing and dai
creation logic to common placeholder from Intel generic SoundWire
machine driver code to make it generic. AMD SoundWire machine driver
code is refactored to use these functions for SoundWire endpoint
parsing and dai creation logic.
Link: https://github.com/thesofproject/linux/pull/5171
Reviewed-by: Bard Liao <yung-chuan.liao(a)linux.intel.com>
Vijendar Mukunda (5):
ASoC: intel: sof_sdw: rename soundwire endpoint and dailink structures
ASoC: intel: sof_sdw: rename soundwire parsing helper functions
ASoC: sdw_util/intel: move soundwire endpoint and dai link structures
ASoC: sdw_utils/intel: move soundwire endpoint parsing helper
functions
ASoC: amd: acp: refactor SoundWire machine driver code
include/sound/soc_sdw_utils.h | 31 ++
sound/soc/amd/acp/acp-sdw-sof-mach.c | 540 ++++++++-------------------
sound/soc/intel/boards/sof_sdw.c | 195 +---------
sound/soc/sdw_utils/soc_sdw_utils.c | 161 ++++++++
4 files changed, 354 insertions(+), 573 deletions(-)
--
2.34.1
2
6

13 Sep '24
From: Codrin Ciubotariu <codrin.ciubotariu(a)microchip.com>
Avoid removing these controls, as doing so can cause issues if the stream
is initiated from another control. Ensure these controls remain intact when
the stream is started or finished. Instead of removing them, return an
-EBUSY error code to indicate that the controller is busy, especially when
the audio filter and the SINC filter are in use.
[andrei.simion(a)microchip.com: Reword the commit title and the commit
message. Replace spinlock and busy variable with atomic_t busy_stream.]
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu(a)microchip.com>
Signed-off-by: Andrei Simion <andrei.simion(a)microchip.com>
---
v1 -> v2:
- drop spinlock and u8 busy:1;
- use atomic_t variable busy_stream
- use atomic_read, atomic_set
---
sound/soc/atmel/mchp-pdmc.c | 57 ++++++++++---------------------------
1 file changed, 15 insertions(+), 42 deletions(-)
diff --git a/sound/soc/atmel/mchp-pdmc.c b/sound/soc/atmel/mchp-pdmc.c
index d97d153ee375..939cd44ebc8a 100644
--- a/sound/soc/atmel/mchp-pdmc.c
+++ b/sound/soc/atmel/mchp-pdmc.c
@@ -124,6 +124,7 @@ struct mchp_pdmc {
int mic_no;
int sinc_order;
bool audio_filter_en;
+ atomic_t busy_stream;
};
static const char *const mchp_pdmc_sinc_filter_order_text[] = {
@@ -167,6 +168,10 @@ static int mchp_pdmc_sinc_order_put(struct snd_kcontrol *kcontrol,
return -EINVAL;
val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l;
+
+ if (atomic_read(&dd->busy_stream))
+ return -EBUSY;
+
if (val == dd->sinc_order)
return 0;
@@ -193,6 +198,9 @@ static int mchp_pdmc_af_put(struct snd_kcontrol *kcontrol,
struct mchp_pdmc *dd = snd_soc_component_get_drvdata(component);
bool af = uvalue->value.integer.value[0] ? true : false;
+ if (atomic_read(&dd->busy_stream))
+ return -EBUSY;
+
if (dd->audio_filter_en == af)
return 0;
@@ -379,52 +387,10 @@ static const struct snd_kcontrol_new mchp_pdmc_snd_controls[] = {
},
};
-static int mchp_pdmc_close(struct snd_soc_component *component,
- struct snd_pcm_substream *substream)
-{
- return snd_soc_add_component_controls(component, mchp_pdmc_snd_controls,
- ARRAY_SIZE(mchp_pdmc_snd_controls));
-}
-
-static int mchp_pdmc_open(struct snd_soc_component *component,
- struct snd_pcm_substream *substream)
-{
- int i;
-
- /* remove controls that can't be changed at runtime */
- for (i = 0; i < ARRAY_SIZE(mchp_pdmc_snd_controls); i++) {
- const struct snd_kcontrol_new *control = &mchp_pdmc_snd_controls[i];
- struct snd_ctl_elem_id id;
- int err;
-
- if (component->name_prefix)
- snprintf(id.name, sizeof(id.name), "%s %s", component->name_prefix,
- control->name);
- else
- strscpy(id.name, control->name, sizeof(id.name));
-
- id.numid = 0;
- id.iface = control->iface;
- id.device = control->device;
- id.subdevice = control->subdevice;
- id.index = control->index;
- err = snd_ctl_remove_id(component->card->snd_card, &id);
- if (err < 0)
- dev_err(component->dev, "%d: Failed to remove %s\n", err,
- control->name);
- }
-
- return 0;
-}
-
static const struct snd_soc_component_driver mchp_pdmc_dai_component = {
.name = "mchp-pdmc",
.controls = mchp_pdmc_snd_controls,
.num_controls = ARRAY_SIZE(mchp_pdmc_snd_controls),
- .open = &mchp_pdmc_open,
- .close = &mchp_pdmc_close,
- .legacy_dai_naming = 1,
- .trigger_start = SND_SOC_TRIGGER_ORDER_LDC,
};
static const unsigned int mchp_pdmc_1mic[] = {1};
@@ -587,6 +553,11 @@ static int mchp_pdmc_hw_params(struct snd_pcm_substream *substream,
cfgr_val |= MCHP_PDMC_CFGR_BSSEL(i);
}
+ /*
+ * from these point forward, we consider the controller busy, so the
+ * audio filter and SINC order can't be changed
+ */
+ atomic_set(&dd->busy_stream, 1);
for (osr_start = dd->audio_filter_en ? 64 : 8;
osr_start <= 256 && best_diff_rate; osr_start *= 2) {
long round_rate;
@@ -1143,6 +1114,8 @@ static void mchp_pdmc_remove(struct platform_device *pdev)
{
struct mchp_pdmc *dd = platform_get_drvdata(pdev);
+ atomic_set(&dd->busy_stream, 0);
+
if (!pm_runtime_status_suspended(dd->dev))
mchp_pdmc_runtime_suspend(dd->dev);
base-commit: 5acd9952f95fb4b7da6d09a3be39195a80845eb6
--
2.34.1
1
0

12 Sep '24
alsa-project/alsa-utils pull request #275 was opened from sadguitarius:
fixes #274
Request URL : https://github.com/alsa-project/alsa-utils/pull/275
Patch URL : https://github.com/alsa-project/alsa-utils/pull/275.patch
Repository URL: https://github.com/alsa-project/alsa-utils
1
0

12 Sep '24
alsa-project/alsa-utils issue #274 was opened from sadguitarius:
Hi, just wanted to point out that aseqsend is failing because the value returned by getopt_long can never be -1 since it's a char.
Issue URL : https://github.com/alsa-project/alsa-utils/issues/274
Repository URL: https://github.com/alsa-project/alsa-utils
1
0
Specify shortnames for the following Logitech Devices: Rally bar, Rally
bar mini, Tap, MeetUp and Huddle.
Signed-off-by: Joshua Pius <joshuapius(a)chromium.org>
---
sound/usb/card.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 778de9244f1e..9c411b82a218 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -384,6 +384,12 @@ static const struct usb_audio_device_name usb_audio_names[] = {
/* Creative/Toshiba Multimedia Center SB-0500 */
DEVICE_NAME(0x041e, 0x3048, "Toshiba", "SB-0500"),
+ /* Logitech Audio Devices */
+ DEVICE_NAME(0x046d, 0x0867, "Logitech, Inc.", "Logi-MeetUp"),
+ DEVICE_NAME(0x046d, 0x0874, "Logitech, Inc.", "Logi-Tap-Audio"),
+ DEVICE_NAME(0x046d, 0x087c, "Logitech, Inc.", "Logi-Huddle"),
+ DEVICE_NAME(0x046d, 0x0898, "Logitech, Inc.", "Logi-RB-Audio"),
+ DEVICE_NAME(0x046d, 0x08d2, "Logitech, Inc.", "Logi-RBM-Audio"),
DEVICE_NAME(0x046d, 0x0990, "Logitech, Inc.", "QuickCam Pro 9000"),
DEVICE_NAME(0x05e1, 0x0408, "Syntek", "STK1160"),
--
2.46.0.598.g6f2099f65c-goog
1
0
This adds basic audio support for the Iron Device SMA1307 amplifier
Kiseok Jo (3):
ASoC: sma1307: Add driver for Iron Device SMA1307
ASoC: dt-bindings: irondevice,sma1307: Add initial DT binding
doc: ABI: testing: sma1307: Add support for SMA1307
.../ABI/testing/sysfs-bus-i2c-devices-sma1307 | 17 +
.../bindings/sound/irondevice,sma1307.yaml | 54 +
sound/soc/codecs/Kconfig | 8 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/sma1307.c | 2191 +++++++++++++++++
sound/soc/codecs/sma1307.h | 454 ++++
6 files changed, 2726 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-bus-i2c-devices-sma1307
create mode 100644 Documentation/devicetree/bindings/sound/irondevice,sma1307.yaml
create mode 100644 sound/soc/codecs/sma1307.c
create mode 100644 sound/soc/codecs/sma1307.h
--
2.39.2
6
22
This patch set is intended to enhance the functionality and maintainability
of the mchp-pdmc driver:
- Enhances performance by refining maxburst logic.
- Introduces a name for better identification and management.
- Ensures controls remain intact when streams start/finish,
returning -EBUSY if the controller is busy.
Codrin Ciubotariu (3):
ASoC: atmel: mchp-pdmc: Improve maxburst calculation for better
performance
ASoC: atmel: mchp-pdmc: Add snd_soc_dai_driver name
ASoC: atmel: mchp-pdmc: Retain Non-Runtime Controls
sound/soc/atmel/mchp-pdmc.c | 118 +++++++++++++++++++-----------------
1 file changed, 63 insertions(+), 55 deletions(-)
base-commit: 6708132e80a2ced620bde9b9c36e426183544a23
--
2.34.1
3
6

ucm2: soundwire: rt722: add ConflictingDevice in each device
by GitHub pull_request - opened 12 Sep '24
by GitHub pull_request - opened 12 Sep '24
12 Sep '24
alsa-project/alsa-ucm-conf pull request #441 was opened from shumingfan:
This patch allows only one input and one output to be opened simultaneously.
Request URL : https://github.com/alsa-project/alsa-ucm-conf/pull/441
Patch URL : https://github.com/alsa-project/alsa-ucm-conf/pull/441.patch
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
1
0
Specify shortnames for the following Logitech Devices: Rally bar, Rally
bar mini, Tap, MeetUp and Huddle.
Signed-off-by: Joshua Pius <joshuapius(a)google.com>
---
sound/usb/card.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 778de9244f1e..9c411b82a218 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -384,6 +384,12 @@ static const struct usb_audio_device_name usb_audio_names[] = {
/* Creative/Toshiba Multimedia Center SB-0500 */
DEVICE_NAME(0x041e, 0x3048, "Toshiba", "SB-0500"),
+ /* Logitech Audio Devices */
+ DEVICE_NAME(0x046d, 0x0867, "Logitech, Inc.", "Logi-MeetUp"),
+ DEVICE_NAME(0x046d, 0x0874, "Logitech, Inc.", "Logi-Tap-Audio"),
+ DEVICE_NAME(0x046d, 0x087c, "Logitech, Inc.", "Logi-Huddle"),
+ DEVICE_NAME(0x046d, 0x0898, "Logitech, Inc.", "Logi-RB-Audio"),
+ DEVICE_NAME(0x046d, 0x08d2, "Logitech, Inc.", "Logi-RBM-Audio"),
DEVICE_NAME(0x046d, 0x0990, "Logitech, Inc.", "QuickCam Pro 9000"),
DEVICE_NAME(0x05e1, 0x0408, "Syntek", "STK1160"),
--
2.46.0.598.g6f2099f65c-goog
3
4
alsa-project/alsa-utils issue #273 was opened from buboleck:
Hello,
Recently I got Creative Sound Blaster X3 (SB1810) as it seemed it works fine with linux. I'm using Gentoo with Plasma desktop (ALSA + Pipewire) and the onboard sound is OK but the SB X3 seems is misbehaving, I found that the volume controls for RearLeft is swapped with Center and RearRight is swapped with the LFE. (Also tried live Ubuntu 24.04 same issue)
On the other hand maybe related, I was not able to get stereo upmix working in any way, ALSA upmix does not want to work as also the Pipiwire upmix.
Gentoo kernel 6.10.9
alsa-lib-1.2.12
alsa-tools-1.2.11
alsa-utils-1.2.12
alsa-plugins-1.2.12
pyalsa-1.2.12
Issue URL : https://github.com/alsa-project/alsa-utils/issues/273
Repository URL: https://github.com/alsa-project/alsa-utils
1
0

12 Sep '24
alsa-project/alsa-ucm-conf issue #440 was opened from JL2210:
I have a laptop keyboard with a key to mute the microphone. Using this key mutes whichever mic is selected as default. However, the light on the key only changes with the internal microphone rather than the active mic.
Pressing the key when a headset is plugged in doesn't change the LED, but pressing it without a headset does.
[alsa-info.txt](https://github.com/user-attachments/files/16971038/alsa-info…
Issue URL : https://github.com/alsa-project/alsa-ucm-conf/issues/440
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
1
0
Buffer 'card->dai_link' is reallocated in 'meson_card_reallocate_links()',
so move 'pad' pointer initialization after this function when memory is
already reallocated.
Kasan bug report:
==================================================================
BUG: KASAN: slab-use-after-free in axg_card_add_link+0x76c/0x9bc
Read of size 8 at addr ffff000000e8b260 by task modprobe/356
CPU: 0 PID: 356 Comm: modprobe Tainted: G O 6.9.12-sdkernel #1
Call trace:
dump_backtrace+0x94/0xec
show_stack+0x18/0x24
dump_stack_lvl+0x78/0x90
print_report+0xfc/0x5c0
kasan_report+0xb8/0xfc
__asan_load8+0x9c/0xb8
axg_card_add_link+0x76c/0x9bc [snd_soc_meson_axg_sound_card]
meson_card_probe+0x344/0x3b8 [snd_soc_meson_card_utils]
platform_probe+0x8c/0xf4
really_probe+0x110/0x39c
__driver_probe_device+0xb8/0x18c
driver_probe_device+0x108/0x1d8
__driver_attach+0xd0/0x25c
bus_for_each_dev+0xe0/0x154
driver_attach+0x34/0x44
bus_add_driver+0x134/0x294
driver_register+0xa8/0x1e8
__platform_driver_register+0x44/0x54
axg_card_pdrv_init+0x20/0x1000 [snd_soc_meson_axg_sound_card]
do_one_initcall+0xdc/0x25c
do_init_module+0x10c/0x334
load_module+0x24c4/0x26cc
init_module_from_file+0xd4/0x128
__arm64_sys_finit_module+0x1f4/0x41c
invoke_syscall+0x60/0x188
el0_svc_common.constprop.0+0x78/0x13c
do_el0_svc+0x30/0x40
el0_svc+0x38/0x78
el0t_64_sync_handler+0x100/0x12c
el0t_64_sync+0x190/0x194
Fixes: 7864a79f37b5 ("ASoC: meson: add axg sound card support")
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Arseniy Krasnov <avkrasnov(a)salutedevices.com>
---
sound/soc/meson/axg-card.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
index 8c5605c1e34e8..eb0302f207407 100644
--- a/sound/soc/meson/axg-card.c
+++ b/sound/soc/meson/axg-card.c
@@ -104,7 +104,7 @@ static int axg_card_add_tdm_loopback(struct snd_soc_card *card,
int *index)
{
struct meson_card *priv = snd_soc_card_get_drvdata(card);
- struct snd_soc_dai_link *pad = &card->dai_link[*index];
+ struct snd_soc_dai_link *pad;
struct snd_soc_dai_link *lb;
struct snd_soc_dai_link_component *dlc;
int ret;
@@ -114,6 +114,7 @@ static int axg_card_add_tdm_loopback(struct snd_soc_card *card,
if (ret)
return ret;
+ pad = &card->dai_link[*index];
lb = &card->dai_link[*index + 1];
lb->name = devm_kasprintf(card->dev, GFP_KERNEL, "%s-lb", pad->name);
--
2.30.1
1
0

[PATCH v3] ASoC: dt-bindings: renesas,rsnd: add post-init-providers property
by Kuninori Morimoto 11 Sep '24
by Kuninori Morimoto 11 Sep '24
11 Sep '24
At least if rsnd is using DPCM connection on Audio-Graph-Card2,
fw_devlink might doesn't have enough information to break the cycle
(Same problem might occur with Multi-CPU/Codec or Codec2Codec).
In such case, rsnd driver will not be probed.
Add post-init-providers support to break the link cycle.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx(a)renesas.com>
---
v2 -> v3
- remove "|" from description
- removed common post-init-providers description
- 100 char to 80 char for 1 line
Documentation/devicetree/bindings/sound/renesas,rsnd.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
index 07ec6247d9def..3bc93c59535e9 100644
--- a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
+++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
@@ -112,6 +112,12 @@ properties:
description: List of necessary clock names.
# details are defined below
+ post-init-providers:
+ description: At least if rsnd is using DPCM connection on Audio-Graph-Card2,
+ fw_devlink might doesn't have enough information to break the cycle. rsnd
+ driver will not be probed in such case. Same problem might occur with
+ Multi-CPU/Codec or Codec2Codec.
+
# ports is below
port:
$ref: audio-graph-port.yaml#/definitions/port-base
--
2.43.0
3
2

[PATCH] ASoC: dt-bindings: microchip,sama7g5-spdifrx: Add common DAI reference
by Andrei Simion 11 Sep '24
by Andrei Simion 11 Sep '24
11 Sep '24
Update the spdifrx yaml file to reference the dai-common.yaml schema,
enabling the use of the 'sound-name-prefix' property
Signed-off-by: Andrei Simion <andrei.simion(a)microchip.com>
---
.../devicetree/bindings/sound/microchip,sama7g5-spdifrx.yaml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sound/microchip,sama7g5-spdifrx.yaml b/Documentation/devicetree/bindings/sound/microchip,sama7g5-spdifrx.yaml
index 2f43c684ab88..7fbab5871be4 100644
--- a/Documentation/devicetree/bindings/sound/microchip,sama7g5-spdifrx.yaml
+++ b/Documentation/devicetree/bindings/sound/microchip,sama7g5-spdifrx.yaml
@@ -13,6 +13,9 @@ description:
The Microchip Sony/Philips Digital Interface Receiver is a serial port
compliant with the IEC-60958 standard.
+allOf:
+ - $ref: dai-common.yaml#
+
properties:
"#sound-dai-cells":
const: 0
@@ -53,7 +56,7 @@ required:
- dmas
- dma-names
-additionalProperties: false
+unevaluatedProperties: false
examples:
- |
base-commit: 6708132e80a2ced620bde9b9c36e426183544a23
--
2.34.1
1
0

11 Sep '24
Clang static checker (scan-build) warning:
sound/soc/codecs/peb2466.c:232:8:
Assigned value is garbage or undefined [core.uninitialized.Assign]
232 | *val = tmp;
| ^ ~~~
When peb2466_read_byte() fails, 'tmp' will have a garbage value.
Add a judgemnet to avoid this problem.
Fixes: 227f609c7c0e ("ASoC: codecs: Add support for the Infineon PEB2466 codec")
Signed-off-by: Su Hui <suhui(a)nfschina.com>
---
sound/soc/codecs/peb2466.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/peb2466.c b/sound/soc/codecs/peb2466.c
index 76ee7e3f4d9b..67ea70cef0c7 100644
--- a/sound/soc/codecs/peb2466.c
+++ b/sound/soc/codecs/peb2466.c
@@ -229,7 +229,8 @@ static int peb2466_reg_read(void *context, unsigned int reg, unsigned int *val)
case PEB2466_CMD_XOP:
case PEB2466_CMD_SOP:
ret = peb2466_read_byte(peb2466, reg, &tmp);
- *val = tmp;
+ if (!ret)
+ *val = tmp;
break;
default:
dev_err(&peb2466->spi->dev, "Not a XOP or SOP command\n");
--
2.30.2
1
0
This patch adds support for the primary mi2s interface on devices using SM8250
audio drivers. Tested on SM7150 (xiaomi-davinci). SM7150 sound is close to
SM8250 and we intend to use it as a fallback in the future.
To: Srinivas Kandagatla <srinivas.kandagatla(a)linaro.org>
To: Liam Girdwood <lgirdwood(a)gmail.com>
To: Mark Brown <broonie(a)kernel.org>
To: Jaroslav Kysela <perex(a)perex.cz>
To: Takashi Iwai <tiwai(a)suse.com>
Cc: alsa-devel(a)alsa-project.org
Cc: linux-arm-msm(a)vger.kernel.org
Cc: linux-sound(a)vger.kernel.org
Cc: linux-kernel(a)vger.kernel.org
Cc: linux(a)mainlining.org
Jens Reidel (1):
ASoC: qcom: sm8250: enable primary mi2s
sound/soc/qcom/sm8250.c | 8 ++++++++
1 file changed, 8 insertions(+)
--
2.46.0
4
5
This patchset adds rate definitions for 12kHz, 24kHz and 128kHz.
It is follow-up on the series/discussion [0] about adding 128kHz for
spdif/eARC support. The outcome was to add 12kHz and 24kHz as well and
clean up the drivers that no longer require custom rules to allow these
rates.
Identifying these drivers is not straight forward, I tried my best but I
may have missed some. Those will continue to work anyway so it is not
critical. Some drivers using these rates have not been changed on
purpose. The reason for this may be:
* The driver used other uncommon rates that still don't have a definition
so a custom rule is still required.
* The constraint structure is used in some other way by the driver and
removing it would not help the readability or maintainability. This is
the case the freescale asrc drivers for example.
There is one change per driver so, if there is a problem later on, it will
easier to properly add Fixes tag.
The series has been tested with
* ARM64 defconfig - spdif 128kHz at runtime.
* x86_64 allmodconfig - compile test only
Last, the change adding IEC958 definitions has been dropped for this
patchset and will be resent separately
[0]: https://lore.kernel.org/all/20240628122429.2018059-1-jbrunet@baylibre.com/
---
Jerome Brunet (13):
ALSA: pcm: add more sample rate definitions
ALSA: cmipci: drop SNDRV_PCM_RATE_KNOT
ALSA: emu10k1: drop SNDRV_PCM_RATE_KNOT
ALSA: hdsp: drop SNDRV_PCM_RATE_KNOT
ALSA: hdspm: drop SNDRV_PCM_RATE_KNOT
ASoC: cs35l36: drop SNDRV_PCM_RATE_KNOT
ASoC: cs35l41: drop SNDRV_PCM_RATE_KNOT
ASoC: cs53l30: drop SNDRV_PCM_RATE_KNOT
ASoC: Intel: avs: drop SNDRV_PCM_RATE_KNOT
ASoC: qcom: q6asm-dai: drop SNDRV_PCM_RATE_KNOT
ASoC: sunxi: sun4i-codec: drop SNDRV_PCM_RATE_KNOT
ASoC: cs35l34: drop useless rate contraint
ASoC: spdif: extend supported rates to 768kHz
include/sound/pcm.h | 31 +++++++++++++++++--------------
sound/core/pcm_native.c | 6 +++---
sound/pci/cmipci.c | 32 +++++++++-----------------------
sound/pci/emu10k1/emupcm.c | 31 +++++--------------------------
sound/pci/rme9652/hdsp.c | 18 ++++++------------
sound/pci/rme9652/hdspm.c | 16 +---------------
sound/soc/codecs/cs35l34.c | 21 ---------------------
sound/soc/codecs/cs35l36.c | 34 ++++++++++++----------------------
sound/soc/codecs/cs35l41.c | 34 +++++++++++-----------------------
sound/soc/codecs/cs53l30.c | 24 +++---------------------
sound/soc/codecs/spdif_receiver.c | 3 ++-
sound/soc/codecs/spdif_transmitter.c | 3 ++-
sound/soc/intel/avs/pcm.c | 22 ++++++----------------
sound/soc/qcom/qdsp6/q6asm-dai.c | 31 ++++++++++---------------------
sound/soc/sunxi/sun4i-codec.c | 28 +++++++++-------------------
15 files changed, 96 insertions(+), 238 deletions(-)
---
base-commit: 785f4052380684dbcc156203c537c799e2f4be09
change-id: 20240905-alsa-12-24-128-8edab4c08dd4
Best regards,
--
Jerome
11
35

[PATCH 1/2] ASoC: amd: acp: remove MODULE_ALIAS for legacy machine driver
by Vijendar Mukunda 11 Sep '24
by Vijendar Mukunda 11 Sep '24
11 Sep '24
As module device table added for AMD legacy machine driver, MODULE_ALIAS
is not required. Remove MODULE_ALIAS for AMD legacy machine driver.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda(a)amd.com>
---
sound/soc/amd/acp/acp-legacy-mach.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/sound/soc/amd/acp/acp-legacy-mach.c b/sound/soc/amd/acp/acp-legacy-mach.c
index 0d529e32e552..d104f7e8fdcd 100644
--- a/sound/soc/amd/acp/acp-legacy-mach.c
+++ b/sound/soc/amd/acp/acp-legacy-mach.c
@@ -242,11 +242,4 @@ module_platform_driver(acp_asoc_audio);
MODULE_IMPORT_NS(SND_SOC_AMD_MACH);
MODULE_DESCRIPTION("ACP chrome audio support");
-MODULE_ALIAS("platform:acp3xalc56821019");
-MODULE_ALIAS("platform:acp3xalc5682sm98360");
-MODULE_ALIAS("platform:acp3xalc5682s1019");
-MODULE_ALIAS("platform:acp3x-es83xx");
-MODULE_ALIAS("platform:rmb-nau8825-max");
-MODULE_ALIAS("platform:rmb-rt5682s-rt1019");
-MODULE_ALIAS("platform:acp-pdm-mach");
MODULE_LICENSE("GPL v2");
--
2.34.1
2
2

[PATCH v1 0/4] Add static channel mapping between soundwire master and slave
by Mohammad Rafi Shaik 11 Sep '24
by Mohammad Rafi Shaik 11 Sep '24
11 Sep '24
Add static channel map support between soundwire master and slave.
This patch series will resolve channel mask mismatch between master and slave.
Scenario: wcd937x AMIC2 usecase
Master Slave (wcd937x)
+--------------+ +--------------+
| +--------+ | | +--------+ |
AMIC1 ----->| | PORT1 | | | | TX1 | |<-----------AMIC1
AMIC2 ----->| | | | | | | |
| +--------+ | | +--------+ |
| | | |
AMIC3 ----->| +--------+ | | +--------+ |
| | PORT2 | | | | TX2 | |<-----------AMIC2
| | | | | | | |<-----------AMIC3
| +--------+ | | +--------+ |
| | | |
| +--------+ | | +--------+ |
DMIC0...DMIC3------>| | PORT3 | | | | TX3 | |<-----------DMIC0...DMIC3
| | | | | | | |<-----------MBHC
| +--------+ | | +--------+ |
| | | |
| +--------+ | | +--------+ |
DMIC4...DMIC37----->| | PORT4 | | | | TX4 | |<-----------DMIC4...DMIC7
| | | | | | | |
| +--------+ | | +--------+ |
| | | |
+------------- + +--------------+
For AMIC2 usecase, The Slave need to configure TX2 Port with channel mask 1 and
for Master required PORT1 with channel mask 2,
In existing design master and slave configured with same channel mask, it will fail
AMIC2 usecase.
The New design will help to configure channel mapping between master and slave from
device tree.
Mohammad Rafi Shaik (4):
ASoC: dt-bindings: wcd938x-sdw: Add static channel mapping support
soundwire: stream: Add set_master_channel_map() to set static channel
mapping
soundwire: qcom: Add static channel mapping support in soundwire
master
ASoC: codecs: wcd937x: Add static channel mapping support in
wcd937x-sdw
.../bindings/sound/qcom,wcd937x-sdw.yaml | 28 ++++++++++
drivers/soundwire/qcom.c | 18 +++++++
drivers/soundwire/stream.c | 16 ++++++
include/linux/soundwire/sdw.h | 5 ++
sound/soc/codecs/wcd937x-sdw.c | 52 ++++++++++++++++---
sound/soc/codecs/wcd937x.c | 12 ++++-
sound/soc/codecs/wcd937x.h | 6 ++-
7 files changed, 126 insertions(+), 11 deletions(-)
base-commit: 9aaeb87ce1e966169a57f53a02ba05b30880ffb8
--
2.25.1
6
10