Skip to content

Commit c303a99

Browse files
crojewsk-intelbroonie
authored andcommitted
ASoC: Intel: avs: Store pointer to adev in DAI dma_data
Reduce the number of to_avs_dev() casts by storing the driver context in DAI's dma_data. Signed-off-by: Cezary Rojewski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent b9d59f9 commit c303a99

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

sound/soc/intel/avs/pcm.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
struct avs_dma_data {
2323
struct avs_tplg_path_template *template;
2424
struct avs_path *path;
25+
struct avs_dev *adev;
2526
/*
2627
* link stream is stored within substream's runtime
2728
* private_data to fulfill the needs of codec BE path
@@ -60,7 +61,7 @@ static int avs_dai_startup(struct snd_pcm_substream *substream, struct snd_soc_d
6061
const struct snd_soc_dai_ops *ops)
6162
{
6263
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
63-
struct avs_dev *adev = to_avs_dev(dai->dev);
64+
struct avs_dev *adev = to_avs_dev(dai->component->dev);
6465
struct avs_tplg_path_template *template;
6566
struct avs_dma_data *data;
6667

@@ -77,6 +78,7 @@ static int avs_dai_startup(struct snd_pcm_substream *substream, struct snd_soc_d
7778

7879
data->substream = substream;
7980
data->template = template;
81+
data->adev = adev;
8082
snd_soc_dai_set_dma_data(dai, substream, data);
8183

8284
if (rtd->dai_link->ignore_suspend)
@@ -88,13 +90,12 @@ static int avs_dai_startup(struct snd_pcm_substream *substream, struct snd_soc_d
8890
static void avs_dai_shutdown(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
8991
{
9092
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
91-
struct avs_dev *adev = to_avs_dev(dai->dev);
9293
struct avs_dma_data *data;
9394

9495
data = snd_soc_dai_get_dma_data(dai, substream);
9596

9697
if (rtd->dai_link->ignore_suspend)
97-
adev->num_lp_paths--;
98+
data->adev->num_lp_paths--;
9899

99100
snd_soc_dai_set_dma_data(dai, substream, NULL);
100101
kfree(data);
@@ -107,7 +108,6 @@ static int avs_dai_hw_params(struct snd_pcm_substream *substream,
107108
{
108109
struct avs_dma_data *data;
109110
struct avs_path *path;
110-
struct avs_dev *adev = to_avs_dev(dai->dev);
111111
int ret;
112112

113113
data = snd_soc_dai_get_dma_data(dai, substream);
@@ -124,7 +124,7 @@ static int avs_dai_hw_params(struct snd_pcm_substream *substream,
124124
params_rate(be_hw_params), params_channels(be_hw_params),
125125
params_width(be_hw_params), params_physical_width(be_hw_params));
126126

127-
path = avs_path_create(adev, dma_id, data->template, fe_hw_params, be_hw_params);
127+
path = avs_path_create(data->adev, dma_id, data->template, fe_hw_params, be_hw_params);
128128
if (IS_ERR(path)) {
129129
ret = PTR_ERR(path);
130130
dev_err(dai->dev, "create path failed: %d\n", ret);
@@ -505,8 +505,7 @@ static int avs_dai_fe_startup(struct snd_pcm_substream *substream, struct snd_so
505505
{
506506
struct snd_pcm_runtime *runtime = substream->runtime;
507507
struct avs_dma_data *data;
508-
struct avs_dev *adev = to_avs_dev(dai->dev);
509-
struct hdac_bus *bus = &adev->base.core;
508+
struct hdac_bus *bus;
510509
struct hdac_ext_stream *host_stream;
511510
int ret;
512511

@@ -515,6 +514,7 @@ static int avs_dai_fe_startup(struct snd_pcm_substream *substream, struct snd_so
515514
return ret;
516515

517516
data = snd_soc_dai_get_dma_data(dai, substream);
517+
bus = &data->adev->base.core;
518518

519519
host_stream = snd_hdac_ext_stream_assign(bus, substream, HDAC_EXT_STREAM_TYPE_HOST);
520520
if (!host_stream) {
@@ -655,7 +655,6 @@ static int avs_dai_fe_prepare(struct snd_pcm_substream *substream, struct snd_so
655655
struct snd_pcm_runtime *runtime = substream->runtime;
656656
struct snd_soc_pcm_stream *stream_info;
657657
struct avs_dma_data *data;
658-
struct avs_dev *adev = to_avs_dev(dai->dev);
659658
struct hdac_ext_stream *host_stream;
660659
unsigned int format_val;
661660
struct hdac_bus *bus;
@@ -685,7 +684,7 @@ static int avs_dai_fe_prepare(struct snd_pcm_substream *substream, struct snd_so
685684
if (ret < 0)
686685
return ret;
687686

688-
ret = avs_dai_prepare(adev, substream, dai);
687+
ret = avs_dai_prepare(data->adev, substream, dai);
689688
if (ret)
690689
return ret;
691690

0 commit comments

Comments
 (0)