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:
Vedang Patel 2015-09-30 17:28:47 +08:00 коммит произвёл Mark Brown
Родитель 6ff33f3902
Коммит 5b2688a59a
2 изменённых файлов: 17 добавлений и 18 удалений

Просмотреть файл

@ -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)