Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

soundwire dai init logic refactor #5218

Merged
merged 2 commits into from
Oct 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions include/sound/soc_sdw_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,14 +152,15 @@ void asoc_sdw_init_dai_link(struct device *dev, struct snd_soc_dai_link *dai_lin
struct snd_soc_dai_link_component *cpus, int cpus_num,
struct snd_soc_dai_link_component *platform_component,
int num_platforms, struct snd_soc_dai_link_component *codecs,
int codecs_num, int (*init)(struct snd_soc_pcm_runtime *rtd),
int codecs_num, int no_pcm,
int (*init)(struct snd_soc_pcm_runtime *rtd),
const struct snd_soc_ops *ops);

int asoc_sdw_init_simple_dai_link(struct device *dev, struct snd_soc_dai_link *dai_links,
int *be_id, char *name, int playback, int capture,
const char *cpu_dai_name, const char *platform_comp_name,
int num_platforms, const char *codec_name,
const char *codec_dai_name,
const char *codec_dai_name, int no_pcm,
int (*init)(struct snd_soc_pcm_runtime *rtd),
const struct snd_soc_ops *ops);

Expand Down
8 changes: 4 additions & 4 deletions sound/soc/amd/acp/acp-sdw-sof-mach.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ static int create_sdw_dailink(struct snd_soc_card *card,
asoc_sdw_init_dai_link(dev, *dai_links, be_id, name, playback, capture,
cpus, num_cpus, platform_component,
ARRAY_SIZE(platform_component), codecs, num_codecs,
asoc_sdw_rtd_init, &sdw_ops);
1, asoc_sdw_rtd_init, &sdw_ops);

/*
* SoundWire DAILINKs use 'stream' functions and Bank Switch operations
Expand Down Expand Up @@ -285,7 +285,7 @@ static int create_sdw_dailinks(struct snd_soc_card *card,
}

static int create_dmic_dailinks(struct snd_soc_card *card,
struct snd_soc_dai_link **dai_links, int *be_id)
struct snd_soc_dai_link **dai_links, int *be_id, int no_pcm)
{
struct device *dev = card->dev;
int ret;
Expand All @@ -294,7 +294,7 @@ static int create_dmic_dailinks(struct snd_soc_card *card,
0, 1, // DMIC only supports capture
"acp-sof-dmic", platform_component->name,
ARRAY_SIZE(platform_component),
"dmic-codec", "dmic-hifi",
"dmic-codec", "dmic-hifi", no_pcm,
asoc_sdw_dmic_init, NULL);
if (ret)
return ret;
Expand Down Expand Up @@ -377,7 +377,7 @@ static int sof_card_dai_links_create(struct snd_soc_card *card)
if (ctx->ignore_internal_dmic) {
dev_warn(dev, "Ignoring ACP DMIC\n");
} else {
ret = create_dmic_dailinks(card, &dai_links, &be_id);
ret = create_dmic_dailinks(card, &dai_links, &be_id, 1);
if (ret)
return ret;
}
Expand Down
12 changes: 6 additions & 6 deletions sound/soc/intel/boards/sof_sdw.c
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ static int create_sdw_dailink(struct snd_soc_card *card,
asoc_sdw_init_dai_link(dev, *dai_links, be_id, name, playback, capture,
cpus, num_cpus, platform_component,
ARRAY_SIZE(platform_component), codecs, num_codecs,
asoc_sdw_rtd_init, &sdw_ops);
1, asoc_sdw_rtd_init, &sdw_ops);

/*
* SoundWire DAILINKs use 'stream' functions and Bank Switch operations
Expand Down Expand Up @@ -886,7 +886,7 @@ static int create_ssp_dailinks(struct snd_soc_card *card,
playback, capture, cpu_dai_name,
platform_component->name,
ARRAY_SIZE(platform_component), codec_name,
ssp_info->dais[0].dai_name, NULL,
ssp_info->dais[0].dai_name, 1, NULL,
ssp_info->ops);
if (ret)
return ret;
Expand All @@ -911,7 +911,7 @@ static int create_dmic_dailinks(struct snd_soc_card *card,
0, 1, // DMIC only supports capture
"DMIC01 Pin", platform_component->name,
ARRAY_SIZE(platform_component),
"dmic-codec", "dmic-hifi",
"dmic-codec", "dmic-hifi", 1,
asoc_sdw_dmic_init, NULL);
if (ret)
return ret;
Expand All @@ -922,7 +922,7 @@ static int create_dmic_dailinks(struct snd_soc_card *card,
0, 1, // DMIC only supports capture
"DMIC16k Pin", platform_component->name,
ARRAY_SIZE(platform_component),
"dmic-codec", "dmic-hifi",
"dmic-codec", "dmic-hifi", 1,
/* don't call asoc_sdw_dmic_init() twice */
NULL, NULL);
if (ret)
Expand Down Expand Up @@ -966,7 +966,7 @@ static int create_hdmi_dailinks(struct snd_soc_card *card,
1, 0, // HDMI only supports playback
cpu_dai_name, platform_component->name,
ARRAY_SIZE(platform_component),
codec_name, codec_dai_name,
codec_name, codec_dai_name, 1,
i == 0 ? sof_sdw_hdmi_init : NULL, NULL);
if (ret)
return ret;
Expand Down Expand Up @@ -994,7 +994,7 @@ static int create_bt_dailinks(struct snd_soc_card *card,
1, 1, cpu_dai_name, platform_component->name,
ARRAY_SIZE(platform_component),
snd_soc_dummy_dlc.name, snd_soc_dummy_dlc.dai_name,
NULL, NULL);
1, NULL, NULL);
if (ret)
return ret;

Expand Down
10 changes: 6 additions & 4 deletions sound/soc/sdw_utils/soc_sdw_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -1015,15 +1015,17 @@ void asoc_sdw_init_dai_link(struct device *dev, struct snd_soc_dai_link *dai_lin
struct snd_soc_dai_link_component *cpus, int cpus_num,
struct snd_soc_dai_link_component *platform_component,
int num_platforms, struct snd_soc_dai_link_component *codecs,
int codecs_num, int (*init)(struct snd_soc_pcm_runtime *rtd),
int codecs_num, int no_pcm,
int (*init)(struct snd_soc_pcm_runtime *rtd),
const struct snd_soc_ops *ops)
{
dev_dbg(dev, "create dai link %s, id %d\n", name, *be_id);
dai_links->id = (*be_id)++;
dai_links->name = name;
dai_links->stream_name = name;
dai_links->platforms = platform_component;
dai_links->num_platforms = num_platforms;
dai_links->no_pcm = 1;
dai_links->no_pcm = no_pcm;
dai_links->cpus = cpus;
dai_links->num_cpus = cpus_num;
dai_links->codecs = codecs;
Expand All @@ -1039,7 +1041,7 @@ int asoc_sdw_init_simple_dai_link(struct device *dev, struct snd_soc_dai_link *d
int *be_id, char *name, int playback, int capture,
const char *cpu_dai_name, const char *platform_comp_name,
int num_platforms, const char *codec_name,
const char *codec_dai_name,
const char *codec_dai_name, int no_pcm,
int (*init)(struct snd_soc_pcm_runtime *rtd),
const struct snd_soc_ops *ops)
{
Expand All @@ -1058,7 +1060,7 @@ int asoc_sdw_init_simple_dai_link(struct device *dev, struct snd_soc_dai_link *d

asoc_sdw_init_dai_link(dev, dai_links, be_id, name, playback, capture,
&dlc[0], 1, &dlc[1], num_platforms,
&dlc[2], 1, init, ops);
&dlc[2], 1, no_pcm, init, ops);

return 0;
}
Expand Down
Loading