ASoC: topology: ABI - Add PCM Support and bump ABI version to 4
The struct snd_soc_tplg_pcm_dai is renamed to snd_soc_tplg_pcm. This struct will now be used to handle data related to PCMs (FE DAI & DAI links). It's not for BE, because BE DAI mappings will be provided by ACPI/FDT data. Remove the unused struct snd_soc_tplg_pcm_cfg_caps. We are using snd_soc_tplg_stream and snd_soc_stream_caps instead. Bump ABI version to 4. Signed-off-by: Vedang Patel <vedang.patel@intel.com> Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
6ff33f3902
Коммит
5b2688a59a
|
@ -83,7 +83,7 @@
|
||||||
#define SND_SOC_TPLG_NUM_TEXTS 16
|
#define SND_SOC_TPLG_NUM_TEXTS 16
|
||||||
|
|
||||||
/* ABI version */
|
/* ABI version */
|
||||||
#define SND_SOC_TPLG_ABI_VERSION 0x3
|
#define SND_SOC_TPLG_ABI_VERSION 0x4
|
||||||
|
|
||||||
/* Max size of TLV data */
|
/* Max size of TLV data */
|
||||||
#define SND_SOC_TPLG_TLV_SIZE 32
|
#define SND_SOC_TPLG_TLV_SIZE 32
|
||||||
|
@ -378,30 +378,29 @@ struct snd_soc_tplg_dapm_widget {
|
||||||
*/
|
*/
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
struct snd_soc_tplg_pcm_cfg_caps {
|
|
||||||
struct snd_soc_tplg_stream_caps caps;
|
|
||||||
struct snd_soc_tplg_stream_config configs[SND_SOC_TPLG_STREAM_CONFIG_MAX];
|
|
||||||
__le32 num_configs; /* number of configs */
|
|
||||||
} __attribute__((packed));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Describes SW/FW specific features of PCM or DAI link.
|
* Describes SW/FW specific features of PCM (FE DAI & DAI link).
|
||||||
*
|
*
|
||||||
* File block representation for PCM/DAI-Link :-
|
* File block representation for PCM :-
|
||||||
* +-----------------------------------+-----+
|
* +-----------------------------------+-----+
|
||||||
* | struct snd_soc_tplg_hdr | 1 |
|
* | struct snd_soc_tplg_hdr | 1 |
|
||||||
* +-----------------------------------+-----+
|
* +-----------------------------------+-----+
|
||||||
* | struct snd_soc_tplg_dapm_pcm_dai | N |
|
* | struct snd_soc_tplg_pcm | N |
|
||||||
* +-----------------------------------+-----+
|
* +-----------------------------------+-----+
|
||||||
*/
|
*/
|
||||||
struct snd_soc_tplg_pcm_dai {
|
struct snd_soc_tplg_pcm {
|
||||||
__le32 size; /* in bytes of this structure */
|
__le32 size; /* in bytes of this structure */
|
||||||
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||||
__le32 id; /* unique ID - used to match */
|
char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||||
__le32 playback; /* supports playback mode */
|
__le32 pcm_id; /* unique ID - used to match */
|
||||||
__le32 capture; /* supports capture mode */
|
__le32 dai_id; /* unique ID - used to match */
|
||||||
__le32 compress; /* 1 = compressed; 0 = PCM */
|
__le32 playback; /* supports playback mode */
|
||||||
struct snd_soc_tplg_pcm_cfg_caps capconf[2]; /* capabilities and configs */
|
__le32 capture; /* supports capture mode */
|
||||||
|
__le32 compress; /* 1 = compressed; 0 = PCM */
|
||||||
|
struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
|
||||||
|
__le32 num_streams; /* number of streams */
|
||||||
|
struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1558,7 +1558,7 @@ static int soc_tplg_pcm_dai_elems_load(struct soc_tplg *tplg,
|
||||||
pcm_dai = (struct snd_soc_tplg_pcm_dai *)tplg->pos;
|
pcm_dai = (struct snd_soc_tplg_pcm_dai *)tplg->pos;
|
||||||
|
|
||||||
if (soc_tplg_check_elem_count(tplg,
|
if (soc_tplg_check_elem_count(tplg,
|
||||||
sizeof(struct snd_soc_tplg_pcm_dai), count,
|
sizeof(struct snd_soc_tplg_pcm), count,
|
||||||
hdr->payload_size, "PCM DAI")) {
|
hdr->payload_size, "PCM DAI")) {
|
||||||
dev_err(tplg->dev, "ASoC: invalid count %d for PCM DAI elems\n",
|
dev_err(tplg->dev, "ASoC: invalid count %d for PCM DAI elems\n",
|
||||||
count);
|
count);
|
||||||
|
@ -1566,7 +1566,7 @@ static int soc_tplg_pcm_dai_elems_load(struct soc_tplg *tplg,
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_dbg(tplg->dev, "ASoC: adding %d PCM DAIs\n", count);
|
dev_dbg(tplg->dev, "ASoC: adding %d PCM DAIs\n", count);
|
||||||
tplg->pos += sizeof(struct snd_soc_tplg_pcm_dai) * count;
|
tplg->pos += sizeof(struct snd_soc_tplg_pcm) * count;
|
||||||
|
|
||||||
dobj = kzalloc(sizeof(struct snd_soc_dobj), GFP_KERNEL);
|
dobj = kzalloc(sizeof(struct snd_soc_dobj), GFP_KERNEL);
|
||||||
if (dobj == NULL)
|
if (dobj == NULL)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче