Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23bbce34 authored by Dimitris Papastamos's avatar Dimitris Papastamos Committed by Mark Brown
Browse files

ASoC: Add compress_type as a member to snd_soc_codec



We need to keep a copy of the compress_type supplied by the codec driver
so that we can override it if necessary with whatever the machine driver
has provided us with.  The reason for not modifying the codec->driver
struct directly is that ideally we'd like to keep it const.

Adjust the code in soc-cache and soc-core to make use of the compress_type
member in the snd_soc_codec struct.

Signed-off-by: default avatarDimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 676ad98a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -460,6 +460,7 @@ struct snd_soc_codec {
	struct list_head list;
	struct list_head card_list;
	int num_dai;
	enum snd_soc_compress_type compress_type;

	/* runtime */
	struct snd_ac97 *ac97;  /* for ad-hoc ac97 devices */
+2 −2
Original line number Diff line number Diff line
@@ -1550,11 +1550,11 @@ int snd_soc_cache_init(struct snd_soc_codec *codec)
	int i;

	for (i = 0; i < ARRAY_SIZE(cache_types); ++i)
		if (cache_types[i].id == codec->driver->compress_type)
		if (cache_types[i].id == codec->compress_type)
			break;
	if (i == ARRAY_SIZE(cache_types)) {
		dev_err(codec->dev, "Could not match compress type: %d\n",
			codec->driver->compress_type);
			codec->compress_type);
		return -EINVAL;
	}

+5 −0
Original line number Diff line number Diff line
@@ -3450,6 +3450,11 @@ int snd_soc_register_codec(struct device *dev,
		return -ENOMEM;
	}

	if (codec_drv->compress_type)
		codec->compress_type = codec_drv->compress_type;
	else
		codec->compress_type = SND_SOC_FLAT_COMPRESSION;

	INIT_LIST_HEAD(&codec->dapm.widgets);
	INIT_LIST_HEAD(&codec->dapm.paths);
	codec->write = codec_drv->write;