Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: da7213: add .auto_selectable_formats support

Merge series from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:

da7213 is still using M/S instead of P/C for SND_SOC_DAIFMT_CBx_CFx.
[PATCH 1/2] will update it.
[PATCH 2/2] will enable DAI format automatic select.

+24 -6
+24 -6
sound/soc/codecs/da7213.c
··· 1261 1261 1262 1262 /* Set master/slave mode */ 1263 1263 switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { 1264 - case SND_SOC_DAIFMT_CBM_CFM: 1264 + case SND_SOC_DAIFMT_CBP_CFP: 1265 1265 da7213->master = true; 1266 1266 break; 1267 - case SND_SOC_DAIFMT_CBS_CFS: 1267 + case SND_SOC_DAIFMT_CBC_CFC: 1268 1268 da7213->master = false; 1269 1269 break; 1270 1270 default: ··· 1293 1293 return -EINVAL; 1294 1294 } 1295 1295 break; 1296 - case SND_SOC_DAI_FORMAT_DSP_A: 1297 - case SND_SOC_DAI_FORMAT_DSP_B: 1296 + case SND_SOC_DAIFMT_DSP_A: 1297 + case SND_SOC_DAIFMT_DSP_B: 1298 1298 /* The bclk is inverted wrt ASoC conventions */ 1299 1299 switch (fmt & SND_SOC_DAIFMT_INV_MASK) { 1300 1300 case SND_SOC_DAIFMT_NB_NF: ··· 1331 1331 dai_ctrl |= DA7213_DAI_FORMAT_RIGHT_J; 1332 1332 da7213->fmt = DA7213_DAI_FORMAT_RIGHT_J; 1333 1333 break; 1334 - case SND_SOC_DAI_FORMAT_DSP_A: /* L data MSB after FRM LRC */ 1334 + case SND_SOC_DAIFMT_DSP_A: /* L data MSB after FRM LRC */ 1335 1335 dai_ctrl |= DA7213_DAI_FORMAT_DSP; 1336 1336 dai_offset = 1; 1337 1337 da7213->fmt = DA7213_DAI_FORMAT_DSP; 1338 1338 break; 1339 - case SND_SOC_DAI_FORMAT_DSP_B: /* L data MSB during FRM LRC */ 1339 + case SND_SOC_DAIFMT_DSP_B: /* L data MSB during FRM LRC */ 1340 1340 dai_ctrl |= DA7213_DAI_FORMAT_DSP; 1341 1341 da7213->fmt = DA7213_DAI_FORMAT_DSP; 1342 1342 break; ··· 1550 1550 return _da7213_set_component_pll(component, pll_id, source, fref, fout); 1551 1551 } 1552 1552 1553 + /* 1554 + * Select below from Sound Card, not Auto 1555 + * SND_SOC_DAIFMT_CBC_CFC 1556 + * SND_SOC_DAIFMT_CBP_CFP 1557 + */ 1558 + static u64 da7213_dai_formats = 1559 + SND_SOC_POSSIBLE_DAIFMT_I2S | 1560 + SND_SOC_POSSIBLE_DAIFMT_LEFT_J | 1561 + SND_SOC_POSSIBLE_DAIFMT_RIGHT_J | 1562 + SND_SOC_POSSIBLE_DAIFMT_DSP_A | 1563 + SND_SOC_POSSIBLE_DAIFMT_DSP_B | 1564 + SND_SOC_POSSIBLE_DAIFMT_NB_NF | 1565 + SND_SOC_POSSIBLE_DAIFMT_NB_IF | 1566 + SND_SOC_POSSIBLE_DAIFMT_IB_NF | 1567 + SND_SOC_POSSIBLE_DAIFMT_IB_IF; 1568 + 1553 1569 /* DAI operations */ 1554 1570 static const struct snd_soc_dai_ops da7213_dai_ops = { 1555 1571 .hw_params = da7213_hw_params, 1556 1572 .set_fmt = da7213_set_dai_fmt, 1557 1573 .mute_stream = da7213_mute, 1558 1574 .no_capture_mute = 1, 1575 + .auto_selectable_formats = &da7213_dai_formats, 1576 + .num_auto_selectable_formats = 1, 1559 1577 }; 1560 1578 1561 1579 static struct snd_soc_dai_driver da7213_dai = {