Daniel Baluta
3ff53862c3
ASoC: amd: acp: Fix possible deadlock
...
On error path, function acp_i2s_set_tdm_slot returns without releasing
the lock and this could result in potential deadlocks in the future.
Error reported by sparse:
sound/soc/amd/acp/acp-i2s.c:95:12: error: context imbalance in
'acp_i2s_set_tdm_slot' - different lock contexts for basic block
Fixes: cd60dec899 ("ASoC: amd: acp: Refactor TDM slots selction based on acp revision id")
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev >
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20250127083422.20406-1-daniel.baluta@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-01-27 13:35:35 +00:00
Mario Limonciello
b9a8ea185f
ASoC: acp: Support microphone from Lenovo Go S
...
On Lenovo Go S there is a DMIC connected to the ACP but the firmware
has no `AcpDmicConnected` ACPI _DSD.
Add a DMI entry for all possible Lenovo Go S SKUs to enable DMIC.
Cc: nijs1@lenovo.com
Cc: pgriffais@valvesoftware.com
Cc: mpearson-lenovo@squebb.ca
Cc: stable@vger.kernel.org
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://patch.msgid.link/20250123024915.2457115-1-superm1@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-01-23 11:29:37 +00:00
Yu-Chun Lin
7e24ec93ae
ASoC: amd: Add ACPI dependency to fix build error
...
As reported by the kernel test robot, the following error occurs:
sound/soc/amd/yc/acp6x-mach.c: In function 'acp6x_probe':
>> sound/soc/amd/yc/acp6x-mach.c:573:15: error: implicit declaration of function 'acpi_evaluate_integer'; did you mean 'acpi_evaluate_object'? [-Werror=implicit-function-declaration]
573 | ret = acpi_evaluate_integer(handle, "_WOV", NULL, &dmic_status);
| ^~~~~~~~~~~~~~~~~~~~~
| acpi_evaluate_object
cc1: some warnings being treated as errors
The function 'acpi_evaluate_integer' and its prototype in 'acpi_bus.h'
are only available when 'CONFIG_ACPI' is enabled. Add a 'depends on ACPI'
directive in Kconfig to ensure proper compilation.
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202501090345.pBIDRTym-lkp@intel.com/
Signed-off-by: Yu-Chun Lin <eleanor15x@gmail.com >
Link: https://patch.msgid.link/20250109171547.362412-1-eleanor15x@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-01-09 17:22:23 +00:00
Mark Brown
309caeef43
ASoC: Merge up v6.13-rc6
...
This helps several of my boards in CI.
2025-01-08 11:58:49 +00:00
Venkata Prasad Potturu
88438444fd
ASoC: amd: ps: Fix for enabling DMIC on acp63 platform via _DSD entry
...
Add condition check to register ACP PDM sound card by reading
_WOV acpi entry.
Fixes: 0386d765f2 ("ASoC: amd: ps: refactor acp device configuration read logic")
Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com >
Link: https://patch.msgid.link/20241213061147.1060451-1-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-16 12:31:03 +00:00
Venkata Prasad Potturu
984795e76d
ASoC: amd: yc: Fix the wrong return value
...
With the current implementation, when ACP driver fails to read
ACPI _WOV entry then the DMI overrides code won't invoke,
may cause regressions for some BIOS versions.
Add a condition check to jump to check the DMI entries incase of
ACP driver fail to read ACPI _WOV method.
Fixes: 4095cf8720 (ASoC: amd: yc: Fix for enabling DMIC on acp6x via _DSD entry)
Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com >
Link: https://patch.msgid.link/20241210091026.996860-1-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-10 12:44:15 +00:00
Mark Brown
c41da3a620
ASoC: Merge up origin to resolve interaction with manline symbol changes
...
Commit cdd30ebb1b ("module: Convert symbol namespace to string
literal") changes the arguments for various module symbol macros
including some that we've aded new uses for. Merge the commit up to
avoid problems in -next.
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-03 22:04:07 +00:00
Vijendar Mukunda
25cd677636
ASoC: amd: ps: add ZSC control register programming sequence
...
Add ZSC Control register programming sequence for ACP D0 and D3 state
transitions for ACP6.3 platform. This will allow ACP to enter low power
state when ACP enters D3 state. When ACP enters D0 State, ZSC control
should be disabled.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241203081940.3390281-2-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-03 14:40:59 +00:00
Vijendar Mukunda
bcbf421d21
ASoC: amd: ps: update mach params subsystem_rev variable
...
Update mach_params subsystem_rev with acp_rev variable for ACP6.3
platform.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241203081940.3390281-1-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-03 14:40:58 +00:00
Peter Zijlstra
cdd30ebb1b
module: Convert symbol namespace to string literal
...
Clean up the existing export namespace code along the same lines of
commit 33def8498f ("treewide: Convert macro and uses of __section(foo)
to __section("foo")") and for the same reason, it is not desired for the
namespace argument to be a macro expansion itself.
Scripted using
git grep -l -e MODULE_IMPORT_NS -e EXPORT_SYMBOL_NS | while read file;
do
awk -i inplace '
/^#define EXPORT_SYMBOL_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/^#define MODULE_IMPORT_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/MODULE_IMPORT_NS/ {
$0 = gensub(/MODULE_IMPORT_NS\(([^)]*)\)/, "MODULE_IMPORT_NS(\"\\1\")", "g");
}
/EXPORT_SYMBOL_NS/ {
if ($0 ~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+),/) {
if ($0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/ &&
$0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(\)/ &&
$0 !~ /^my/) {
getline line;
gsub(/[[:space:]]*\\$/, "");
gsub(/[[:space:]]/, "", line);
$0 = $0 " " line;
}
$0 = gensub(/(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/,
"\\1(\\2, \"\\3\")", "g");
}
}
{ print }' $file;
done
Requested-by: Masahiro Yamada <masahiroy@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://mail.google.com/mail/u/2/#inbox/FMfcgzQXKWgMmjdFwwdsfgxzKpVHWPlc
Acked-by: Greg KH <gregkh@linuxfoundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2024-12-02 11:34:44 -08:00
Linus Torvalds
517363b494
Merge tag 'sound-fix-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
...
Pull sound fixes from Takashi Iwai:
"A collection of small fixes. Majority of changes are device-specific
fixes and quirks, while there are a few core fixes to address
regressions and corner cases spotted by fuzzers.
- Fix of spinlock range that wrongly covered kvfree() call in rawmidi
- Fix potential NULL dereference at PCM mmap
- Fix incorrectly advertised MIDI 2.0 UMP Function Block info
- Various ASoC AMD quirks and fixes
- ASoC SOF Intel, Mediatek, HDMI-codec fixes
- A few more quirks and TAS2781 codec fix for HD-audio
- A couple of fixes for USB-audio for malicious USB descriptors"
* tag 'sound-fix-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (30 commits)
ALSA: hda: improve bass speaker support for ASUS Zenbook UM5606WA
ALSA: hda/realtek: Apply quirk for Medion E15433
ASoC: amd: yc: Add a quirk for microfone on Lenovo ThinkPad P14s Gen 5 21MES00B00
ASoC: SOF: ipc3-topology: Convert the topology pin index to ALH dai index
ASoC: mediatek: Check num_codecs is not zero to avoid panic during probe
ASoC: amd: yc: Fix for enabling DMIC on acp6x via _DSD entry
ALSA: ump: Fix evaluation of MIDI 1.0 FB info
ALSA: core: Fix possible NULL dereference caused by kunit_kzalloc()
ALSA: hda: Show the codec quirk info at probing
ALSA: asihpi: Remove unused variable
ALSA: hda/realtek: Set PCBeep to default value for ALC274
ALSA: hda/tas2781: Add speaker id check for ASUS projects
ALSA: hda/realtek: Update ALC225 depop procedure
ALSA: hda/realtek: Enable speaker pins for Medion E15443 platform
ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook X G1i
ALSA: usb-audio: Fix out of bounds reads when finding clock sources
ALSA: rawmidi: Fix kvfree() call in spinlock
ALSA: hda/realtek: Fix Internal Speaker and Mic boost of Infinix Y4 Max
ASoC: amd: yc: Add quirk for microphone on Lenovo Thinkpad T14s Gen 6 21M1CTO1WW
ASoC: doc: dapm: Add location information for dapm-graph tool
...
2024-11-29 13:01:05 -08:00
Linus Torvalds
9ad55a67a7
Merge tag 'soundwire-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire
...
Pull soundwire updates from Vinod Koul:
- structure optimization of few bus structures and header updates
- support for 2.0 disco spec
- amd driver updates for acp revision, refactoring code and support for
acp6.3
- soft reset support for cadence driver
* tag 'soundwire-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: (24 commits)
soundwire: Minor formatting fixups in sdw.h header
soundwire: Update the includes on the sdw.h header
soundwire: cadence: clear MCP BLOCK_WAKEUP in init
soundwire: cadence: add soft-reset on startup
soundwire: intel_auxdevice: add kernel parameter for mclk divider
soundwire: mipi-disco: add support for DP0/DPn 'lane-list' property
soundwire: mipi-disco: add new properties from 2.0 spec
soundwire: mipi-disco: add comment on DP0-supported property
soundwire: mipi-disco: add support for peripheral channelprepare timeout
soundwire: mipi_disco: add support for clock-scales property
soundwire: mipi-disco: add error handling for property array read
soundwire: mipi-disco: remove DPn audio-modes
soundwire: optimize sdw_dpn_prop
soundwire: optimize sdw_dp0_prop
soundwire: optimize sdw_slave_prop
soundwire: optimize sdw_bus structure
soundwire: optimize sdw_master_prop
soundwire: optimize sdw_stream_runtime memory layout
soundwire: mipi_disco: add MIPI-specific property_read_bool() helpers
soundwire: Correct some typos in comments
...
2024-11-27 13:38:09 -08:00
Ilya Zverev
b682aa788e
ASoC: amd: yc: Add a quirk for microfone on Lenovo ThinkPad P14s Gen 5 21MES00B00
...
New ThinkPads need new quirk entries. Ilya has tested this one.
Laptop product id is 21MES00B00, though the shorthand 21ME works.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219533
Cc: stable@vger.kernel.org
Signed-off-by: Ilya Zverev <ilya@zverev.info >
Link: https://patch.msgid.link/20241127134420.14471-1-ilya@zverev.info
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-27 13:45:45 +00:00
Venkata Prasad Potturu
4095cf8720
ASoC: amd: yc: Fix for enabling DMIC on acp6x via _DSD entry
...
Add condition check to register ACP PDM sound card by reading
_WOV acpi entry.
Fixes: 5426f506b5 ("ASoC: amd: Add support for enabling DMIC on acp6x via _DSD")
Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com >
Link: https://patch.msgid.link/20241127112227.227106-1-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-27 11:28:24 +00:00
Uwe Kleine-König
cbc86dd0a4
ASoC: amd: yc: Add quirk for microphone on Lenovo Thinkpad T14s Gen 6 21M1CTO1WW
...
Add a quirk for Tova's Lenovo Thinkpad T14s with product name 21M1.
Suggested-by: Tova <blueaddagio@laposte.net >
Link: https://bugs.debian.org/1087673
Signed-off-by: Uwe Kleine-König <ukleinek@debian.org >
Link: https://patch.msgid.link/20241122075606.213132-2-ukleinek@debian.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-25 12:42:53 +00:00
Mario Limonciello
0109ee0078
ASoC: amd: Fix build dependencies for SND_SOC_AMD_PS
...
The pci-ps module now must have `SND_SOC_ACPI_AMD_MATCH` selected
to reference the `snd_soc_acpi_amd_acp63_sdw_machines` symbol.
Fixes: 56d540befd ("ASoC: amd: ps: add soundwire machines for acp6.3 platform")
Cc: Vijendar.Mukunda@amd.com
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202411180658.mIeWje2V-lkp@intel.com/
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://patch.msgid.link/20241118025527.3318493-1-superm1@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-19 17:48:08 +00:00
Alex Far
67a0463d33
ASoC: amd: yc: fix internal mic on Redmi G 2022
...
This laptop model requires an additional detection quirk to enable the
internal microphone
Signed-off-by: Alex Far <anf1980@gmail.com >
Link: https://patch.msgid.link/ZzjrZY3sImcqTtGx@RedmiG
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-18 15:10:56 +00:00
Mark Brown
f3f9f0de30
Add generic AMD Soundwire machine driver for Legacy(No
...
Merge series from Vijendar Mukunda <Vijendar.Mukunda@amd.com >:
This patch series add SoundWire machines for RT711, RT714, RT1316 and
RT722 codecs for ACP 6.3 platform. Also, it adds a generic SoundWire
machine driver code for legacy(No DSP) stack.
2024-11-14 15:36:39 +00:00
Mark Brown
07db6d5e12
ASoC: Merge up fixes
...
Needed for new Intel board file changes.
2024-11-14 11:39:47 +00:00
Vijendar Mukunda
76b5a3b2af
ASoC: amd: ps: fix the pcm device numbering for acp 6.3 platform
...
Fixed PCM device numbering is required for defining common alsa ucm
changes for generic soundwire machine driver for legacy(No DSP) stack.
Ex: For Headphone playback use case, use PCM device number as 0.
For Headset mic Capture use case, PCM device number as 1.
Set the 'use_dai_pcm_id' flag true in soundwire dma driver for acp 6.3
platform. This will fix the pcm device numbering based on dai_link->id.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241113115223.3274868-7-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-13 13:52:30 +00:00
Vijendar Mukunda
2981d9b078
ASoC: amd: acp: add soundwire machine driver for legacy stack
...
Add SoundWire machine driver for legacy(No DSP) stack for ACP6.3 platform.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241113115223.3274868-6-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-13 13:52:29 +00:00
Vijendar Mukunda
393347cc10
ASoC: amd: acp: move get_acp63_cpu_pin_id() to common file
...
get_acp63_cpu_pin_id() is the common SoundWire machine driver
helper function will be used for AMD Legacy(No DSP) generic
SoundWire machine driver as well.
Move get_acp63_cpu_pin_id() function to common place holder.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241113115223.3274868-5-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-13 13:52:28 +00:00
Vijendar Mukunda
56d540befd
ASoC: amd: ps: add soundwire machines for acp6.3 platform
...
Add SoundWire machines for acp 6.3 platform for legacy(No DSP)
stack.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241113115223.3274868-4-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-13 13:52:27 +00:00
Vijendar Mukunda
7d3fe292ef
ASoC: amd: acp: add RT711, RT714 & RT1316 support for acp 6.3 platform
...
This patch add supports for corresponding codecs on acp6.3 platform
hardware configuration.
SDW0: RT711 Jack
SDW0: RT1316 Left Speaker
SDW0: RT1316 Right Speaker
SDW1: RT714 DMIC
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241113115223.3274868-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-13 13:52:26 +00:00
Vijendar Mukunda
804aaa9df6
ASoC: amd: acp: add rt722 based soundwire machines
...
Add RT722 based soundwire machines for legacy(NO DSP) stack
for acp 6.3 platform.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241113115223.3274868-2-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-13 13:52:26 +00:00
Markus Petri
8c21e40e1e
ASoC: amd: yc: Support dmic on another model of Lenovo Thinkpad E14 Gen 6
...
Another model of Thinkpad E14 Gen 6 (21M4)
needs a quirk entry for the dmic to be detected.
Signed-off-by: Markus Petri <mp@mpetri.org >
Link: https://patch.msgid.link/20241107094020.1050935-1-mp@localhost
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-07 13:07:15 +00:00
Mingcong Bai
de156f3cf7
ASoC: amd: yc: fix internal mic on Xiaomi Book Pro 14 2022
...
Xiaomi Book Pro 14 2022 (MIA2210-AD) requires a quirk entry for its
internal microphone to be enabled.
This is likely due to similar reasons as seen previously on Redmi Book
14/15 Pro 2022 models (since they likely came with similar firmware):
- commit dcff8b7ca9 ("ASoC: amd: yc: Add Xiaomi Redmi Book Pro 15 2022
into DMI table")
- commit c1dd6bf619 ("ASoC: amd: yc: Add Xiaomi Redmi Book Pro 14 2022
into DMI table")
A quirk would likely be needed for Xiaomi Book Pro 15 2022 models, too.
However, I do not have such device on hand so I will leave it for now.
Signed-off-by: Mingcong Bai <jeffbai@aosc.io >
Link: https://patch.msgid.link/20241106024052.15748-1-jeffbai@aosc.io
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-06 14:23:24 +00:00
Mark Brown
a441eff915
Soundwire dai link init logic refactor
...
Merge series from Vijendar Mukunda <Vijendar.Mukunda@amd.com >:
This patch series refactors the SoundWire dai link init logic for Intel
and AMD generic SoundWire machine driver and also updates the stream_name
in dai_links structure.
Link: https://github.com/thesofproject/linux/pull/5218
2024-11-05 18:15:46 +00:00
Venkata Prasad Potturu
224b898f7c
ASoC: amd: acp: Fix for ACP SOF dmic tplg component load failure
...
Stream name mismatch with topology file causes tplg load failure.
As SOF framework assigns dailink->stream name, overriding stream name
other than link name causes SOF dmic component load failure.
[ 35.474995] snd_sof_amd_acp70 0000:c4:00.5: error: can't connect DAI ACPDMIC0.IN stream acp-dmic-codec
[ 35.475001] snd_sof_amd_acp70 0000:c4:00.5: failed to add widget type 28 name : ACPDMIC0.IN stream acp-dmic-codec
[ 35.475013] sof_mach acp70-dsp: ASoC: failed to load widget ACPDMIC0.IN
[ 35.475018] sof_mach acp70-dsp: ASoC: topology: could not load header: -22
[ 35.475072] snd_sof_amd_acp70 0000:c4:00.5: error: tplg component load failed -22
[ 35.475083] snd_sof_amd_acp70 0000:c4:00.5: error: failed to load DSP topology -22
[ 35.475090] snd_sof_amd_acp70 0000:c4:00.5: ASoC: error at snd_soc_component_probe on 0000:c4:00.5: -22
[ 35.475117] sof_mach acp70-dsp: ASoC: failed to instantiate card -22
[ 35.475254] sof_mach acp70-dsp: error -EINVAL: Failed to register card(sof-acp70-dsp)
[ 35.475261] sof_mach acp70-dsp: probe with driver sof_mach failed with error -22
Fixes: b2385de2ae ("ASoC: amd: acp: Add stream name to ACP PDM DMIC devices")
Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com >
Link: https://patch.msgid.link/20241104091312.1108299-1-venkataprasad.potturu@amd.com
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com >
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-05 12:53:24 +00:00
Vijendar Mukunda
485df22866
ASoC: sdw_utils/intel/amd: refactor dai link init logic
...
Add 'no_pcm' as parameter for asoc_sdw_init_dai_link() so that
same function can be used for SOF and legacy(No DSP) stack.
Pass 'no_pcm' as 1 for Intel and AMD SOF based machine drivers.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Link: https://patch.msgid.link/20241101020802.1103181-2-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-01 13:22:47 +00:00
Kuninori Morimoto
12c61265e5
ASoC: amd: remove dpcm_xxx flags
...
dpcm_xxx flags are no longer needed. It converts dpcm_xxx flag to
xxx_only if needed.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com >
Link: https://patch.msgid.link/87jze29vip.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-23 13:01:54 +01:00
Mark Brown
478fc2f421
ASoC/soundwire: add initial support for SDCA
...
Merge series from Bard Liao <yung-chuan.liao@linux.intel.com >:
We need to get rt712 version by reading SDCA version and functions.
This patch series adds initial support for SDCA and add a helper to tell
if the codec is RT712_VB.
This series may go via the ASoC tree with Vinod's Acked-by tag.
Bard Liao (1):
soundwire: sdw_intel: include linux/acpi.h
Pierre-Louis Bossart (10):
ASoC/soundwire: remove sdw_slave_extended_id
ASoC: SDCA: add initial module
soundwire: slave: lookup SDCA version and functions
ASoC: SDCA: add quirk function for RT712_VB match
ASoC: rt712-sdca: detect the SMART_MIC function during the probe stage
ASoC: soc-acpi: introduce new 'machine check' callback
ASoC: sdw_utils: add SmartMic DAI for RT712 VB
ASoC: sdw_utils: add SmartMic DAI for RT713 VB
ASoC: Intel: soc-acpi: add is_device_rt712_vb() helper
ASoC: SOF: Intel: hda: use machine_check() for SoundWire
drivers/soundwire/Kconfig | 1 +
drivers/soundwire/amd_init.c | 12 +-
drivers/soundwire/intel_init.c | 13 +-
drivers/soundwire/slave.c | 14 ++
include/linux/soundwire/sdw.h | 9 +-
include/linux/soundwire/sdw_amd.h | 7 +-
include/linux/soundwire/sdw_intel.h | 8 +-
include/sound/sdca.h | 62 +++++++
include/sound/sdca_function.h | 55 ++++++
include/sound/soc-acpi.h | 8 +-
sound/soc/Kconfig | 1 +
sound/soc/Makefile | 1 +
sound/soc/amd/ps/pci-ps.c | 3 +-
sound/soc/codecs/rt712-sdca-sdw.c | 1 +
sound/soc/codecs/rt712-sdca.c | 38 +++-
sound/soc/codecs/rt712-sdca.h | 1 +
sound/soc/intel/Kconfig | 5 +
sound/soc/intel/common/Makefile | 3 +
.../intel/common/soc-acpi-intel-mtl-match.c | 51 ++++++
.../intel/common/soc-acpi-intel-sdca-quirks.c | 42 +++++
.../intel/common/soc-acpi-intel-sdca-quirks.h | 14 ++
sound/soc/sdca/Kconfig | 11 ++
sound/soc/sdca/Makefile | 5 +
sound/soc/sdca/sdca_device.c | 67 +++++++
sound/soc/sdca/sdca_functions.c | 173 ++++++++++++++++++
sound/soc/sdw_utils/soc_sdw_utils.c | 18 +-
sound/soc/soc-acpi.c | 30 +--
sound/soc/sof/amd/acp-common.c | 3 +-
sound/soc/sof/intel/hda.c | 19 +-
29 files changed, 610 insertions(+), 65 deletions(-)
create mode 100644 include/sound/sdca.h
create mode 100644 include/sound/sdca_function.h
create mode 100644 sound/soc/intel/common/soc-acpi-intel-sdca-quirks.c
create mode 100644 sound/soc/intel/common/soc-acpi-intel-sdca-quirks.h
create mode 100644 sound/soc/sdca/Kconfig
create mode 100644 sound/soc/sdca/Makefile
create mode 100644 sound/soc/sdca/sdca_device.c
create mode 100644 sound/soc/sdca/sdca_functions.c
--
2.43.0
2024-10-18 21:01:45 +01:00
Mario Limonciello
b2385de2ae
ASoC: amd: acp: Add stream name to ACP PDM DMIC devices
...
Add for sof and legacy dai links to dummy DMIC codec.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://patch.msgid.link/20241017210952.3586713-1-superm1@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-18 18:44:27 +01:00
Pierre-Louis Bossart
4b224ff80d
ASoC/soundwire: remove sdw_slave_extended_id
...
This structure is used to copy information from the 'sdw_slave'
structures, it's better to create a flexible array of 'sdw_slave'
pointers and directly access the information. This will also help
access additional information stored in the 'sdw_slave' structure,
such as an SDCA context.
This patch does not add new functionality, it only modified how the
information is retrieved.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241016102333.294448-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-17 18:42:10 +01:00
Mark Brown
cab6557724
ASoC: Merge up fixes
...
Some refactoring opportunities for the rcard driver were noticed while
fixing a bug.
2024-10-17 12:12:25 +01:00
Ilya Dudikov
b0867999e3
ASoC: amd: yc: Fix non-functional mic on ASUS E1404FA
...
ASUS Vivobook E1404FA needs a quirks-table entry for the internal microphone to function properly.
Signed-off-by: Ilya Dudikov <ilyadud@mail.ru >
Link: https://patch.msgid.link/20241016034038.13481-1-ilyadud25@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-17 12:11:31 +01:00
Christian Heusel
182fff3a2a
ASoC: amd: yc: Add quirk for ASUS Vivobook S15 M3502RA
...
As reported the builtin microphone doesn't work on the ASUS Vivobook
model S15 OLED M3502RA. Therefore add a quirk for it to make it work.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=219345
Signed-off-by: Christian Heusel <christian@heusel.eu >
Link: https://patch.msgid.link/20241010-bugzilla-219345-asus-vivobook-v1-1-3bb24834e2c3@heusel.eu
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-10 17:03:03 +01:00
Vijendar Mukunda
0372abfcd8
ASoC: amd: acp: refactor sof_card_dai_links_create() function
...
Refactor sof_card_dai_links_create() function by replacing
'sof_ends' and 'sof_dais' structure declarations as
struct asoc_sdw_endpoint *sof_ends __free(kfree) = NULL;
struct asoc_sdw_dailink *sof_dais __free(kfree) = NULL;
Use above declarations to eliminate goto statements usage.
Suggested-by: Dan Carpenter <dan.carpenter@linaro.org >
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241007085321.3991149-4-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-07 15:35:46 +01:00
Vijendar Mukunda
7ce8e4d380
ASoC: amd: acp: fix for cpu dai index logic
...
Multi link aggregation is not supported for acp6.3 platform.
Below combinations are supported.
- one sdw BE DAI <---> one-cpu DAI <---> one-codec DAI
- one sdw BE DAI <---> one-cpu DAI <---> multi-codec DAIs
As Single cpu dai is going to be created, In create_sdw_dailink() function
cpu dai index won't be incremented.
Refactor cpu dai index logic to fix below smatch static checker warning.
sound/soc/amd/acp/acp-sdw-sof-mach.c:157 create_sdw_dailink()
warn: iterator 'i' not incremented.
Reported-by: Dan Carpenter <dan.carpenter@linaro.org >
Closes: https://lore.kernel.org/all/a201e871-375e-43eb-960d-5c048956c2ff@amd.com/T/
Fixes: 6d8348ddc5 ("ASoC: amd: acp: refactor SoundWire machine driver code")
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241007085321.3991149-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-07 15:35:45 +01:00
Vijendar Mukunda
914219d749
ASoC: amd: acp: fix for inconsistent indenting
...
Fix below Smatch static checker warning:
sound/soc/amd/acp/acp-sdw-sof-mach.c:365 sof_card_dai_links_create()
warn: inconsistent indenting
Reported-by: Dan Carpenter <dan.carpenter@linaro.org >
Closes: https://lore.kernel.org/all/a201e871-375e-43eb-960d-5c048956c2ff@amd.com/T/
Fixes: 6d8348ddc5 ("ASoC: amd: acp: refactor SoundWire machine driver code")
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20241007085321.3991149-2-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-07 15:35:44 +01:00
Vijendar Mukunda
425f598ea6
ASoC: amd: ps: pass acp pci revision id as soundwire resource data
...
Add acp_rev as structure member in acp pci driver private data structure
to store acp pci revision id and assign this variable to SoundWire resource
data acp_rev variable.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Acked-by: Mark Brown <broonie@kernel.org >
Link: https://lore.kernel.org/r/20240924081846.1834612-5-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2024-10-03 12:44:41 +05:30
Murad Masimov
8cd4e1f087
ASoC: amd: acp: drop bogus NULL check from i2s_irq_handler
...
When i2s_irq_handler is called, it's guaranteed that adata is not NULL,
since IRQ handlers are guaranteed to be provided with a valid data pointer.
Moreover, adata pointer is being dereferenced right before the NULL check,
which makes the check pointless, even if adata could be NULL.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: Murad Masimov <m.masimov@maxima.ru >
Link: https://patch.msgid.link/20241001190848.711-1-m.masimov@maxima.ru
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-02 14:02:32 +01:00
Vijendar Mukunda
9864c8af89
ASoC: amd: acp: remove unused variable from acp platform driver
...
Remove 'platform' variable from acp platform driver private data
structure. For platform differentiation, ACP pci revision id being
used through out the code. As platform variable is no longer used in
code, drop the code corresponding to 'platform' variable.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-10-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:42 +02:00
Vijendar Mukunda
b33d93990e
ASoC: amd: acp: replace adata->platform conditional check
...
Replace adata->platform condition check with acp pci revision id
variable in config_acp_dma() & acp70_i2s_master_clock_generate()
functions.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-9-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:41 +02:00
Vijendar Mukunda
2e609185e1
ASoC: amd: acp: remove unused variable from acp_card_drvdata structure
...
Remove unused 'platform' variable from acp_card_drvdata structure.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-8-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:40 +02:00
Vijendar Mukunda
0a374a2dd0
ASoC: amd: acp: update mach_params subsystem_rev field
...
Update mach_params subsystem_rev field in acp_machine_select()
function with acp pci revision id value.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-7-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:39 +02:00
Vijendar Mukunda
0eae2c96b4
ASoC: amd: acp: pass acp pci revision id as platform data
...
Pass acp pci revision id as platform data to machine driver instead of
'platform' variable when ACP PDM configuration is selected. 'acp_rev'
should be retrieved from mach params revision id for other configuration.
Modify the conditional check for the same.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-6-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:38 +02:00
Vijendar Mukunda
40412a298c
ASoC: amd: acp: store acp pci rev id in platform driver private structure
...
Store acp pci revision id in platform driver private structure for all
acp varaints.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-5-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:37 +02:00
Vijendar Mukunda
5dbf8a19fe
ASoC: amd: acp: use acp pci revision id for platform differntiation
...
Store acp pci revision id value in 'acp_rev' variable.
Use common ACP PCI revision id macros throughout the code for acp_rev
check and remove unused macros for platform differentiation from
common header file for acp platform driver.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-4-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:37 +02:00
Vijendar Mukunda
fca471b5d0
ASoC: amd: acp: use acp_rev for platform specific conditional checks
...
Add 'acp_rev' as a member in machine driver private data structure to
store acp pci revision id. Replace platform specific conditional checks
by using 'acp_rev' variable.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://patch.msgid.link/20240924061821.1127054-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-30 01:10:36 +02:00