Skip to content

Commit 393347c

Browse files
vijendarmukundabroonie
authored andcommitted
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>
1 parent 56d540b commit 393347c

File tree

5 files changed

+76
-48
lines changed

5 files changed

+76
-48
lines changed

sound/soc/amd/acp/Kconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,17 @@ config SND_SOC_AMD_SOF_MACH
119119
help
120120
This option enables SOF sound card support for ACP audio.
121121

122+
config SND_SOC_AMD_SDW_MACH_COMMON
123+
tristate
124+
help
125+
This option enables common SoundWire Machine driver module for
126+
AMD platforms.
127+
122128
config SND_SOC_AMD_SOF_SDW_MACH
123129
tristate "AMD SOF Soundwire Machine Driver Support"
124130
depends on X86 && PCI && ACPI
125131
depends on SOUNDWIRE
132+
select SND_SOC_AMD_SDW_MACH_COMMON
126133
select SND_SOC_SDW_UTILS
127134
select SND_SOC_DMIC
128135
select SND_SOC_RT711_SDW

sound/soc/amd/acp/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ snd-acp-mach-y := acp-mach-common.o
2323
snd-acp-legacy-mach-y := acp-legacy-mach.o acp3x-es83xx/acp3x-es83xx.o
2424
snd-acp-sof-mach-y := acp-sof-mach.o
2525
snd-soc-acpi-amd-match-y := amd-acp63-acpi-match.o
26+
snd-acp-sdw-mach-y := acp-sdw-mach-common.o
2627
snd-acp-sdw-sof-mach-y += acp-sdw-sof-mach.o
2728

2829
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
4142
obj-$(CONFIG_SND_SOC_AMD_LEGACY_MACH) += snd-acp-legacy-mach.o
4243
obj-$(CONFIG_SND_SOC_AMD_SOF_MACH) += snd-acp-sof-mach.o
4344
obj-$(CONFIG_SND_SOC_ACPI_AMD_MATCH) += snd-soc-acpi-amd-match.o
45+
obj-$(CONFIG_SND_SOC_AMD_SDW_MACH_COMMON) += snd-acp-sdw-mach.o
4446
obj-$(CONFIG_SND_SOC_AMD_SOF_SDW_MACH) += snd-acp-sdw-sof-mach.o
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// SPDX-License-Identifier: GPL-2.0-only
2+
// Copyright(c) 2024 Advanced Micro Devices, Inc.
3+
4+
/*
5+
* acp-sdw-mach-common - Common machine driver helper functions for
6+
* legacy(No DSP) stack and SOF stack.
7+
*/
8+
9+
#include <linux/device.h>
10+
#include <linux/module.h>
11+
#include "soc_amd_sdw_common.h"
12+
13+
int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev)
14+
{
15+
switch (sdw_link_id) {
16+
case AMD_SDW0:
17+
switch (be_id) {
18+
case SOC_SDW_JACK_OUT_DAI_ID:
19+
*cpu_pin_id = ACP63_SW0_AUDIO0_TX;
20+
break;
21+
case SOC_SDW_JACK_IN_DAI_ID:
22+
*cpu_pin_id = ACP63_SW0_AUDIO0_RX;
23+
break;
24+
case SOC_SDW_AMP_OUT_DAI_ID:
25+
*cpu_pin_id = ACP63_SW0_AUDIO1_TX;
26+
break;
27+
case SOC_SDW_AMP_IN_DAI_ID:
28+
*cpu_pin_id = ACP63_SW0_AUDIO1_RX;
29+
break;
30+
case SOC_SDW_DMIC_DAI_ID:
31+
*cpu_pin_id = ACP63_SW0_AUDIO2_RX;
32+
break;
33+
default:
34+
dev_err(dev, "Invalid be id:%d\n", be_id);
35+
return -EINVAL;
36+
}
37+
break;
38+
case AMD_SDW1:
39+
switch (be_id) {
40+
case SOC_SDW_JACK_OUT_DAI_ID:
41+
case SOC_SDW_AMP_OUT_DAI_ID:
42+
*cpu_pin_id = ACP63_SW1_AUDIO0_TX;
43+
break;
44+
case SOC_SDW_JACK_IN_DAI_ID:
45+
case SOC_SDW_AMP_IN_DAI_ID:
46+
case SOC_SDW_DMIC_DAI_ID:
47+
*cpu_pin_id = ACP63_SW1_AUDIO0_RX;
48+
break;
49+
default:
50+
dev_err(dev, "invalid be_id:%d\n", be_id);
51+
return -EINVAL;
52+
}
53+
break;
54+
default:
55+
dev_err(dev, "Invalid link id:%d\n", sdw_link_id);
56+
return -EINVAL;
57+
}
58+
return 0;
59+
}
60+
EXPORT_SYMBOL_NS_GPL(get_acp63_cpu_pin_id, SND_SOC_AMD_SDW_MACH);
61+
62+
MODULE_DESCRIPTION("AMD SoundWire Common Machine driver");
63+
MODULE_AUTHOR("Vijendar Mukunda <Vijendar.Mukunda@amd.com>");
64+
MODULE_LICENSE("GPL");

sound/soc/amd/acp/acp-sdw-sof-mach.c

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -64,54 +64,6 @@ static const struct snd_soc_ops sdw_ops = {
6464
.shutdown = asoc_sdw_shutdown,
6565
};
6666

67-
static int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev)
68-
{
69-
switch (sdw_link_id) {
70-
case AMD_SDW0:
71-
switch (be_id) {
72-
case SOC_SDW_JACK_OUT_DAI_ID:
73-
*cpu_pin_id = ACP63_SW0_AUDIO0_TX;
74-
break;
75-
case SOC_SDW_JACK_IN_DAI_ID:
76-
*cpu_pin_id = ACP63_SW0_AUDIO0_RX;
77-
break;
78-
case SOC_SDW_AMP_OUT_DAI_ID:
79-
*cpu_pin_id = ACP63_SW0_AUDIO1_TX;
80-
break;
81-
case SOC_SDW_AMP_IN_DAI_ID:
82-
*cpu_pin_id = ACP63_SW0_AUDIO1_RX;
83-
break;
84-
case SOC_SDW_DMIC_DAI_ID:
85-
*cpu_pin_id = ACP63_SW0_AUDIO2_RX;
86-
break;
87-
default:
88-
dev_err(dev, "Invalid be id:%d\n", be_id);
89-
return -EINVAL;
90-
}
91-
break;
92-
case AMD_SDW1:
93-
switch (be_id) {
94-
case SOC_SDW_JACK_OUT_DAI_ID:
95-
case SOC_SDW_AMP_OUT_DAI_ID:
96-
*cpu_pin_id = ACP63_SW1_AUDIO0_TX;
97-
break;
98-
case SOC_SDW_JACK_IN_DAI_ID:
99-
case SOC_SDW_AMP_IN_DAI_ID:
100-
case SOC_SDW_DMIC_DAI_ID:
101-
*cpu_pin_id = ACP63_SW1_AUDIO0_RX;
102-
break;
103-
default:
104-
dev_err(dev, "invalid be_id:%d\n", be_id);
105-
return -EINVAL;
106-
}
107-
break;
108-
default:
109-
dev_err(dev, "Invalid link id:%d\n", sdw_link_id);
110-
return -EINVAL;
111-
}
112-
return 0;
113-
}
114-
11567
static const char * const type_strings[] = {"SimpleJack", "SmartAmp", "SmartMic"};
11668

11769
static int create_sdw_dailink(struct snd_soc_card *card,
@@ -491,3 +443,4 @@ MODULE_DESCRIPTION("ASoC AMD SoundWire Generic Machine driver");
491443
MODULE_AUTHOR("Vijendar Mukunda <Vijendar.Mukunda@amd.com");
492444
MODULE_LICENSE("GPL");
493445
MODULE_IMPORT_NS(SND_SOC_SDW_UTILS);
446+
MODULE_IMPORT_NS(SND_SOC_AMD_SDW_MACH);

sound/soc/amd/acp/soc_amd_sdw_common.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,6 @@ struct amd_mc_ctx {
4141
unsigned int max_sdw_links;
4242
};
4343

44+
int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev);
45+
4446
#endif

0 commit comments

Comments
 (0)