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: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
676ad98a06
commit
23bbce34f4
|
@ -460,6 +460,7 @@ struct snd_soc_codec {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
struct list_head card_list;
|
struct list_head card_list;
|
||||||
int num_dai;
|
int num_dai;
|
||||||
|
enum snd_soc_compress_type compress_type;
|
||||||
|
|
||||||
/* runtime */
|
/* runtime */
|
||||||
struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */
|
struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */
|
||||||
|
|
|
@ -1550,11 +1550,11 @@ int snd_soc_cache_init(struct snd_soc_codec *codec)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(cache_types); ++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;
|
break;
|
||||||
if (i == ARRAY_SIZE(cache_types)) {
|
if (i == ARRAY_SIZE(cache_types)) {
|
||||||
dev_err(codec->dev, "Could not match compress type: %d\n",
|
dev_err(codec->dev, "Could not match compress type: %d\n",
|
||||||
codec->driver->compress_type);
|
codec->compress_type);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3450,6 +3450,11 @@ int snd_soc_register_codec(struct device *dev,
|
||||||
return -ENOMEM;
|
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.widgets);
|
||||||
INIT_LIST_HEAD(&codec->dapm.paths);
|
INIT_LIST_HEAD(&codec->dapm.paths);
|
||||||
codec->write = codec_drv->write;
|
codec->write = codec_drv->write;
|
||||||
|
|
Loading…
Reference in New Issue