Skip to content

Commit 980b0bc

Browse files
larsclausenbroonie
authored andcommitted
ASoC: blackfin: Use dai_fmt
Use the dai_link's dai_fmt attribute to setup the DAI format instead of doing this manually. Signed-off-by: Lars-Peter Clausen <[email protected]> Signed-off-by: Mark Brown <[email protected]>
1 parent 471280b commit 980b0bc

File tree

7 files changed

+27
-98
lines changed

7 files changed

+27
-98
lines changed

sound/soc/blackfin/bf5xx-ad1836.c

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,8 @@ static int bf5xx_ad1836_hw_params(struct snd_pcm_substream *substream,
4040
{
4141
struct snd_soc_pcm_runtime *rtd = substream->private_data;
4242
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
43-
struct snd_soc_dai *codec_dai = rtd->codec_dai;
4443
unsigned int channel_map[] = {0, 4, 1, 5, 2, 6, 3, 7};
4544
int ret = 0;
46-
/* set cpu DAI configuration */
47-
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A |
48-
SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
49-
if (ret < 0)
50-
return ret;
51-
52-
/* set codec DAI configuration */
53-
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_DSP_A |
54-
SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
55-
if (ret < 0)
56-
return ret;
5745

5846
/* set cpu DAI channel mapping */
5947
ret = snd_soc_dai_set_channel_map(cpu_dai, ARRAY_SIZE(channel_map),
@@ -68,6 +56,9 @@ static struct snd_soc_ops bf5xx_ad1836_ops = {
6856
.hw_params = bf5xx_ad1836_hw_params,
6957
};
7058

59+
#define BF5XX_AD1836_DAIFMT (SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_IF | \
60+
SND_SOC_DAIFMT_CBM_CFM)
61+
7162
static struct snd_soc_dai_link bf5xx_ad1836_dai[] = {
7263
{
7364
.name = "ad1836",
@@ -77,6 +68,7 @@ static struct snd_soc_dai_link bf5xx_ad1836_dai[] = {
7768
.platform_name = "bfin-tdm-pcm-audio",
7869
.codec_name = "spi0.4",
7970
.ops = &bf5xx_ad1836_ops,
71+
.dai_fmt = BF5XX_AD1836_DAIFMT,
8072
},
8173
{
8274
.name = "ad1836",
@@ -86,6 +78,7 @@ static struct snd_soc_dai_link bf5xx_ad1836_dai[] = {
8678
.platform_name = "bfin-tdm-pcm-audio",
8779
.codec_name = "spi0.4",
8880
.ops = &bf5xx_ad1836_ops,
81+
.dai_fmt = BF5XX_AD1836_DAIFMT,
8982
},
9083
};
9184

sound/soc/blackfin/bf5xx-ad193x.c

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,6 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream,
6060
break;
6161
}
6262

63-
/* set cpu DAI configuration */
64-
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A |
65-
SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
66-
if (ret < 0)
67-
return ret;
68-
69-
/* set codec DAI configuration */
70-
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_DSP_A |
71-
SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
72-
if (ret < 0)
73-
return ret;
74-
7563
/* set the codec system clock for DAC and ADC */
7664
ret = snd_soc_dai_set_sysclk(codec_dai, 0, clk,
7765
SND_SOC_CLOCK_IN);
@@ -92,6 +80,9 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream,
9280
return 0;
9381
}
9482

83+
#define BF5XX_AD193X_DAIFMT (SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_IF | \
84+
SND_SOC_DAIFMT_CBM_CFM)
85+
9586
static struct snd_soc_ops bf5xx_ad193x_ops = {
9687
.hw_params = bf5xx_ad193x_hw_params,
9788
};
@@ -105,6 +96,7 @@ static struct snd_soc_dai_link bf5xx_ad193x_dai[] = {
10596
.platform_name = "bfin-tdm-pcm-audio",
10697
.codec_name = "spi0.5",
10798
.ops = &bf5xx_ad193x_ops,
99+
.dai_fmt = BF5XX_AD193X_DAIFMT,
108100
},
109101
{
110102
.name = "ad193x",
@@ -114,6 +106,7 @@ static struct snd_soc_dai_link bf5xx_ad193x_dai[] = {
114106
.platform_name = "bfin-tdm-pcm-audio",
115107
.codec_name = "spi0.5",
116108
.ops = &bf5xx_ad193x_ops,
109+
.dai_fmt = BF5XX_AD193X_DAIFMT,
117110
},
118111
};
119112

sound/soc/blackfin/bf5xx-ad73311.c

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -145,29 +145,8 @@ static int bf5xx_probe(struct snd_soc_card *card)
145145
return 0;
146146
}
147147

148-
static int bf5xx_ad73311_hw_params(struct snd_pcm_substream *substream,
149-
struct snd_pcm_hw_params *params)
150-
{
151-
struct snd_soc_pcm_runtime *rtd = substream->private_data;
152-
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
153-
int ret = 0;
154-
155-
pr_debug("%s rate %d format %x\n", __func__, params_rate(params),
156-
params_format(params));
157-
158-
/* set cpu DAI configuration */
159-
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A |
160-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
161-
if (ret < 0)
162-
return ret;
163-
164-
return 0;
165-
}
166-
167-
168-
static struct snd_soc_ops bf5xx_ad73311_ops = {
169-
.hw_params = bf5xx_ad73311_hw_params,
170-
};
148+
#define BF5XX_AD7311_DAI_FMT (SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_NB_NF | \
149+
SND_SOC_DAIFMT_CBM_CFM)
171150

172151
static struct snd_soc_dai_link bf5xx_ad73311_dai[] = {
173152
{
@@ -177,7 +156,7 @@ static struct snd_soc_dai_link bf5xx_ad73311_dai[] = {
177156
.codec_dai_name = "ad73311-hifi",
178157
.platform_name = "bfin-i2s-pcm-audio",
179158
.codec_name = "ad73311",
180-
.ops = &bf5xx_ad73311_ops,
159+
.dai_fmt = BF5XX_AD7311_DAI_FMT,
181160
},
182161
{
183162
.name = "ad73311",
@@ -186,7 +165,7 @@ static struct snd_soc_dai_link bf5xx_ad73311_dai[] = {
186165
.codec_dai_name = "ad73311-hifi",
187166
.platform_name = "bfin-i2s-pcm-audio",
188167
.codec_name = "ad73311",
189-
.ops = &bf5xx_ad73311_ops,
168+
.dai_fmt = BF5XX_AD7311_DAI_FMT,
190169
},
191170
};
192171

sound/soc/blackfin/bf5xx-ssm2602.c

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ static int bf5xx_ssm2602_hw_params(struct snd_pcm_substream *substream,
4949
{
5050
struct snd_soc_pcm_runtime *rtd = substream->private_data;
5151
struct snd_soc_dai *codec_dai = rtd->codec_dai;
52-
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
5352
unsigned int clk = 0;
5453
int ret = 0;
5554

@@ -75,21 +74,6 @@ static int bf5xx_ssm2602_hw_params(struct snd_pcm_substream *substream,
7574
break;
7675
}
7776

78-
/*
79-
* CODEC is master for BCLK and LRC in this configuration.
80-
*/
81-
82-
/* set codec DAI configuration */
83-
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
84-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
85-
if (ret < 0)
86-
return ret;
87-
/* set cpu DAI configuration */
88-
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
89-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
90-
if (ret < 0)
91-
return ret;
92-
9377
ret = snd_soc_dai_set_sysclk(codec_dai, SSM2602_SYSCLK, clk,
9478
SND_SOC_CLOCK_IN);
9579
if (ret < 0)
@@ -102,6 +86,10 @@ static struct snd_soc_ops bf5xx_ssm2602_ops = {
10286
.hw_params = bf5xx_ssm2602_hw_params,
10387
};
10488

89+
/* CODEC is master for BCLK and LRC in this configuration. */
90+
#define BF5XX_SSM2602_DAIFMT (SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | \
91+
SND_SOC_DAIFMT_CBM_CFM)
92+
10593
static struct snd_soc_dai_link bf5xx_ssm2602_dai[] = {
10694
{
10795
.name = "ssm2602",

sound/soc/blackfin/bfin-eval-adau1373.c

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,10 @@ static int bfin_eval_adau1373_hw_params(struct snd_pcm_substream *substream,
6767
struct snd_pcm_hw_params *params)
6868
{
6969
struct snd_soc_pcm_runtime *rtd = substream->private_data;
70-
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
7170
struct snd_soc_dai *codec_dai = rtd->codec_dai;
7271
int ret;
7372
int pll_rate;
7473

75-
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
76-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
77-
if (ret)
78-
return ret;
79-
80-
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
81-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
82-
if (ret)
83-
return ret;
84-
8574
switch (params_rate(params)) {
8675
case 48000:
8776
case 8000:
@@ -143,6 +132,8 @@ static struct snd_soc_dai_link bfin_eval_adau1373_dai = {
143132
.codec_name = "adau1373.0-001a",
144133
.ops = &bfin_eval_adau1373_ops,
145134
.init = bfin_eval_adau1373_codec_init,
135+
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
136+
SND_SOC_DAIFMT_CBM_CFM,
146137
};
147138

148139
static struct snd_soc_card bfin_eval_adau1373 = {

sound/soc/blackfin/bfin-eval-adau1701.c

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,9 @@ static int bfin_eval_adau1701_hw_params(struct snd_pcm_substream *substream,
3737
struct snd_pcm_hw_params *params)
3838
{
3939
struct snd_soc_pcm_runtime *rtd = substream->private_data;
40-
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
4140
struct snd_soc_dai *codec_dai = rtd->codec_dai;
4241
int ret;
4342

44-
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
45-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
46-
if (ret)
47-
return ret;
48-
49-
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
50-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
51-
if (ret)
52-
return ret;
53-
5443
ret = snd_soc_dai_set_sysclk(codec_dai, ADAU1701_CLK_SRC_OSC, 12288000,
5544
SND_SOC_CLOCK_IN);
5645

@@ -61,6 +50,9 @@ static struct snd_soc_ops bfin_eval_adau1701_ops = {
6150
.hw_params = bfin_eval_adau1701_hw_params,
6251
};
6352

53+
#define BFIN_EVAL_ADAU1701_DAI_FMT (SND_SOC_DAIFMT_I2S | \
54+
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM)
55+
6456
static struct snd_soc_dai_link bfin_eval_adau1701_dai[] = {
6557
{
6658
.name = "adau1701",
@@ -70,6 +62,7 @@ static struct snd_soc_dai_link bfin_eval_adau1701_dai[] = {
7062
.platform_name = "bfin-i2s-pcm-audio",
7163
.codec_name = "adau1701.0-0034",
7264
.ops = &bfin_eval_adau1701_ops,
65+
.dai_fmt = BFIN_EVAL_ADAU1701_DAI_FMT,
7366
},
7467
{
7568
.name = "adau1701",
@@ -79,6 +72,7 @@ static struct snd_soc_dai_link bfin_eval_adau1701_dai[] = {
7972
.platform_name = "bfin-i2s-pcm-audio",
8073
.codec_name = "adau1701.0-0034",
8174
.ops = &bfin_eval_adau1701_ops,
75+
.dai_fmt = BFIN_EVAL_ADAU1701_DAI_FMT,
8276
},
8377
};
8478

sound/soc/blackfin/bfin-eval-adav80x.c

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,9 @@ static int bfin_eval_adav80x_hw_params(struct snd_pcm_substream *substream,
3434
struct snd_pcm_hw_params *params)
3535
{
3636
struct snd_soc_pcm_runtime *rtd = substream->private_data;
37-
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
3837
struct snd_soc_dai *codec_dai = rtd->codec_dai;
3938
int ret;
4039

41-
ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
42-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
43-
if (ret)
44-
return ret;
45-
46-
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
47-
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
48-
if (ret)
49-
return ret;
50-
5140
ret = snd_soc_dai_set_pll(codec_dai, ADAV80X_PLL1, ADAV80X_PLL_SRC_XTAL,
5241
27000000, params_rate(params) * 256);
5342
if (ret)
@@ -88,6 +77,8 @@ static struct snd_soc_dai_link bfin_eval_adav80x_dais[] = {
8877
.platform_name = "bfin-i2s-pcm-audio",
8978
.init = bfin_eval_adav80x_codec_init,
9079
.ops = &bfin_eval_adav80x_ops,
80+
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
81+
SND_SOC_DAIFMT_CBM_CFM,
9182
},
9283
};
9384

0 commit comments

Comments
 (0)