mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 19:49:33 -04:00
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>
This commit is contained in:
committed by
Mark Brown
parent
56d540befd
commit
393347cc10
@@ -119,10 +119,17 @@ config SND_SOC_AMD_SOF_MACH
|
||||
help
|
||||
This option enables SOF sound card support for ACP audio.
|
||||
|
||||
config SND_SOC_AMD_SDW_MACH_COMMON
|
||||
tristate
|
||||
help
|
||||
This option enables common SoundWire Machine driver module for
|
||||
AMD platforms.
|
||||
|
||||
config SND_SOC_AMD_SOF_SDW_MACH
|
||||
tristate "AMD SOF Soundwire Machine Driver Support"
|
||||
depends on X86 && PCI && ACPI
|
||||
depends on SOUNDWIRE
|
||||
select SND_SOC_AMD_SDW_MACH_COMMON
|
||||
select SND_SOC_SDW_UTILS
|
||||
select SND_SOC_DMIC
|
||||
select SND_SOC_RT711_SDW
|
||||
|
||||
@@ -23,6 +23,7 @@ snd-acp-mach-y := acp-mach-common.o
|
||||
snd-acp-legacy-mach-y := acp-legacy-mach.o acp3x-es83xx/acp3x-es83xx.o
|
||||
snd-acp-sof-mach-y := acp-sof-mach.o
|
||||
snd-soc-acpi-amd-match-y := amd-acp63-acpi-match.o
|
||||
snd-acp-sdw-mach-y := acp-sdw-mach-common.o
|
||||
snd-acp-sdw-sof-mach-y += acp-sdw-sof-mach.o
|
||||
|
||||
obj-$(CONFIG_SND_SOC_AMD_ACP_PCM) += snd-acp-pcm.o
|
||||
@@ -41,4 +42,5 @@ obj-$(CONFIG_SND_SOC_AMD_MACH_COMMON) += snd-acp-mach.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_LEGACY_MACH) += snd-acp-legacy-mach.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_SOF_MACH) += snd-acp-sof-mach.o
|
||||
obj-$(CONFIG_SND_SOC_ACPI_AMD_MATCH) += snd-soc-acpi-amd-match.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_SDW_MACH_COMMON) += snd-acp-sdw-mach.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_SOF_SDW_MACH) += snd-acp-sdw-sof-mach.o
|
||||
|
||||
64
sound/soc/amd/acp/acp-sdw-mach-common.c
Normal file
64
sound/soc/amd/acp/acp-sdw-mach-common.c
Normal file
@@ -0,0 +1,64 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// Copyright(c) 2024 Advanced Micro Devices, Inc.
|
||||
|
||||
/*
|
||||
* acp-sdw-mach-common - Common machine driver helper functions for
|
||||
* legacy(No DSP) stack and SOF stack.
|
||||
*/
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/module.h>
|
||||
#include "soc_amd_sdw_common.h"
|
||||
|
||||
int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev)
|
||||
{
|
||||
switch (sdw_link_id) {
|
||||
case AMD_SDW0:
|
||||
switch (be_id) {
|
||||
case SOC_SDW_JACK_OUT_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO0_TX;
|
||||
break;
|
||||
case SOC_SDW_JACK_IN_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO0_RX;
|
||||
break;
|
||||
case SOC_SDW_AMP_OUT_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO1_TX;
|
||||
break;
|
||||
case SOC_SDW_AMP_IN_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO1_RX;
|
||||
break;
|
||||
case SOC_SDW_DMIC_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO2_RX;
|
||||
break;
|
||||
default:
|
||||
dev_err(dev, "Invalid be id:%d\n", be_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
case AMD_SDW1:
|
||||
switch (be_id) {
|
||||
case SOC_SDW_JACK_OUT_DAI_ID:
|
||||
case SOC_SDW_AMP_OUT_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW1_AUDIO0_TX;
|
||||
break;
|
||||
case SOC_SDW_JACK_IN_DAI_ID:
|
||||
case SOC_SDW_AMP_IN_DAI_ID:
|
||||
case SOC_SDW_DMIC_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW1_AUDIO0_RX;
|
||||
break;
|
||||
default:
|
||||
dev_err(dev, "invalid be_id:%d\n", be_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
dev_err(dev, "Invalid link id:%d\n", sdw_link_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(get_acp63_cpu_pin_id, SND_SOC_AMD_SDW_MACH);
|
||||
|
||||
MODULE_DESCRIPTION("AMD SoundWire Common Machine driver");
|
||||
MODULE_AUTHOR("Vijendar Mukunda <Vijendar.Mukunda@amd.com>");
|
||||
MODULE_LICENSE("GPL");
|
||||
@@ -64,54 +64,6 @@ static const struct snd_soc_ops sdw_ops = {
|
||||
.shutdown = asoc_sdw_shutdown,
|
||||
};
|
||||
|
||||
static int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev)
|
||||
{
|
||||
switch (sdw_link_id) {
|
||||
case AMD_SDW0:
|
||||
switch (be_id) {
|
||||
case SOC_SDW_JACK_OUT_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO0_TX;
|
||||
break;
|
||||
case SOC_SDW_JACK_IN_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO0_RX;
|
||||
break;
|
||||
case SOC_SDW_AMP_OUT_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO1_TX;
|
||||
break;
|
||||
case SOC_SDW_AMP_IN_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO1_RX;
|
||||
break;
|
||||
case SOC_SDW_DMIC_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW0_AUDIO2_RX;
|
||||
break;
|
||||
default:
|
||||
dev_err(dev, "Invalid be id:%d\n", be_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
case AMD_SDW1:
|
||||
switch (be_id) {
|
||||
case SOC_SDW_JACK_OUT_DAI_ID:
|
||||
case SOC_SDW_AMP_OUT_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW1_AUDIO0_TX;
|
||||
break;
|
||||
case SOC_SDW_JACK_IN_DAI_ID:
|
||||
case SOC_SDW_AMP_IN_DAI_ID:
|
||||
case SOC_SDW_DMIC_DAI_ID:
|
||||
*cpu_pin_id = ACP63_SW1_AUDIO0_RX;
|
||||
break;
|
||||
default:
|
||||
dev_err(dev, "invalid be_id:%d\n", be_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
dev_err(dev, "Invalid link id:%d\n", sdw_link_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char * const type_strings[] = {"SimpleJack", "SmartAmp", "SmartMic"};
|
||||
|
||||
static int create_sdw_dailink(struct snd_soc_card *card,
|
||||
@@ -491,3 +443,4 @@ MODULE_DESCRIPTION("ASoC AMD SoundWire Generic Machine driver");
|
||||
MODULE_AUTHOR("Vijendar Mukunda <Vijendar.Mukunda@amd.com");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_IMPORT_NS(SND_SOC_SDW_UTILS);
|
||||
MODULE_IMPORT_NS(SND_SOC_AMD_SDW_MACH);
|
||||
|
||||
@@ -41,4 +41,6 @@ struct amd_mc_ctx {
|
||||
unsigned int max_sdw_links;
|
||||
};
|
||||
|
||||
int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user