Merge remote-tracking branch 'asoc/topic/core' into asoc-next
This commit is contained in:
commit
83097a9c67
|
@ -566,7 +566,6 @@ struct snd_soc_dapm_update {
|
||||||
|
|
||||||
/* DAPM context */
|
/* DAPM context */
|
||||||
struct snd_soc_dapm_context {
|
struct snd_soc_dapm_context {
|
||||||
int n_widgets; /* number of widgets in this context */
|
|
||||||
enum snd_soc_bias_level bias_level;
|
enum snd_soc_bias_level bias_level;
|
||||||
enum snd_soc_bias_level suspend_bias_level;
|
enum snd_soc_bias_level suspend_bias_level;
|
||||||
struct delayed_work delayed_work;
|
struct delayed_work delayed_work;
|
||||||
|
|
|
@ -371,7 +371,7 @@ int snd_soc_suspend(struct device *dev);
|
||||||
int snd_soc_resume(struct device *dev);
|
int snd_soc_resume(struct device *dev);
|
||||||
int snd_soc_poweroff(struct device *dev);
|
int snd_soc_poweroff(struct device *dev);
|
||||||
int snd_soc_register_platform(struct device *dev,
|
int snd_soc_register_platform(struct device *dev,
|
||||||
struct snd_soc_platform_driver *platform_drv);
|
const struct snd_soc_platform_driver *platform_drv);
|
||||||
void snd_soc_unregister_platform(struct device *dev);
|
void snd_soc_unregister_platform(struct device *dev);
|
||||||
int snd_soc_register_codec(struct device *dev,
|
int snd_soc_register_codec(struct device *dev,
|
||||||
const struct snd_soc_codec_driver *codec_drv,
|
const struct snd_soc_codec_driver *codec_drv,
|
||||||
|
@ -801,10 +801,10 @@ struct snd_soc_platform_driver {
|
||||||
struct snd_soc_dai *);
|
struct snd_soc_dai *);
|
||||||
|
|
||||||
/* platform stream pcm ops */
|
/* platform stream pcm ops */
|
||||||
struct snd_pcm_ops *ops;
|
const struct snd_pcm_ops *ops;
|
||||||
|
|
||||||
/* platform stream compress ops */
|
/* platform stream compress ops */
|
||||||
struct snd_compr_ops *compr_ops;
|
const struct snd_compr_ops *compr_ops;
|
||||||
|
|
||||||
/* platform stream completion event */
|
/* platform stream completion event */
|
||||||
int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
|
int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
|
||||||
|
@ -823,7 +823,7 @@ struct snd_soc_platform {
|
||||||
const char *name;
|
const char *name;
|
||||||
int id;
|
int id;
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct snd_soc_platform_driver *driver;
|
const struct snd_soc_platform_driver *driver;
|
||||||
struct mutex mutex;
|
struct mutex mutex;
|
||||||
|
|
||||||
unsigned int suspended:1; /* platform is suspended */
|
unsigned int suspended:1; /* platform is suspended */
|
||||||
|
@ -1086,7 +1086,6 @@ struct soc_enum {
|
||||||
unsigned int mask;
|
unsigned int mask;
|
||||||
const char * const *texts;
|
const char * const *texts;
|
||||||
const unsigned int *values;
|
const unsigned int *values;
|
||||||
void *dapm;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* codec IO */
|
/* codec IO */
|
||||||
|
|
|
@ -324,7 +324,7 @@ config SND_SOC_TLV320AIC23
|
||||||
tristate
|
tristate
|
||||||
|
|
||||||
config SND_SOC_TLV320AIC26
|
config SND_SOC_TLV320AIC26
|
||||||
tristate "TI TLV320AIC26 Codec support" if SND_SOC_OF_SIMPLE
|
tristate
|
||||||
depends on SPI
|
depends on SPI
|
||||||
|
|
||||||
config SND_SOC_TLV320AIC32X4
|
config SND_SOC_TLV320AIC32X4
|
||||||
|
|
|
@ -3908,7 +3908,7 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_dais);
|
||||||
* @platform: platform to register
|
* @platform: platform to register
|
||||||
*/
|
*/
|
||||||
int snd_soc_register_platform(struct device *dev,
|
int snd_soc_register_platform(struct device *dev,
|
||||||
struct snd_soc_platform_driver *platform_drv)
|
const struct snd_soc_platform_driver *platform_drv)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform;
|
struct snd_soc_platform *platform;
|
||||||
|
|
||||||
|
@ -4024,8 +4024,8 @@ int snd_soc_register_codec(struct device *dev,
|
||||||
/* create CODEC component name */
|
/* create CODEC component name */
|
||||||
codec->name = fmt_single_name(dev, &codec->id);
|
codec->name = fmt_single_name(dev, &codec->id);
|
||||||
if (codec->name == NULL) {
|
if (codec->name == NULL) {
|
||||||
kfree(codec);
|
ret = -ENOMEM;
|
||||||
return -ENOMEM;
|
goto fail_codec;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (codec_drv->compress_type)
|
if (codec_drv->compress_type)
|
||||||
|
@ -4064,7 +4064,7 @@ int snd_soc_register_codec(struct device *dev,
|
||||||
reg_size, GFP_KERNEL);
|
reg_size, GFP_KERNEL);
|
||||||
if (!codec->reg_def_copy) {
|
if (!codec->reg_def_copy) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto fail;
|
goto fail_codec_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4088,18 +4088,22 @@ int snd_soc_register_codec(struct device *dev,
|
||||||
mutex_unlock(&client_mutex);
|
mutex_unlock(&client_mutex);
|
||||||
|
|
||||||
/* register any DAIs */
|
/* register any DAIs */
|
||||||
if (num_dai) {
|
ret = snd_soc_register_dais(dev, dai_drv, num_dai);
|
||||||
ret = snd_soc_register_dais(dev, dai_drv, num_dai);
|
if (ret < 0) {
|
||||||
if (ret < 0)
|
dev_err(codec->dev, "ASoC: Failed to regster DAIs: %d\n", ret);
|
||||||
dev_err(codec->dev, "ASoC: Failed to regster"
|
goto fail_codec_name;
|
||||||
" DAIs: %d\n", ret);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_dbg(codec->dev, "ASoC: Registered codec '%s'\n", codec->name);
|
dev_dbg(codec->dev, "ASoC: Registered codec '%s'\n", codec->name);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail_codec_name:
|
||||||
|
mutex_lock(&client_mutex);
|
||||||
|
list_del(&codec->list);
|
||||||
|
mutex_unlock(&client_mutex);
|
||||||
|
|
||||||
kfree(codec->name);
|
kfree(codec->name);
|
||||||
|
fail_codec:
|
||||||
kfree(codec);
|
kfree(codec);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -4113,7 +4117,6 @@ EXPORT_SYMBOL_GPL(snd_soc_register_codec);
|
||||||
void snd_soc_unregister_codec(struct device *dev)
|
void snd_soc_unregister_codec(struct device *dev)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec;
|
struct snd_soc_codec *codec;
|
||||||
int i;
|
|
||||||
|
|
||||||
list_for_each_entry(codec, &codec_list, list) {
|
list_for_each_entry(codec, &codec_list, list) {
|
||||||
if (dev == codec->dev)
|
if (dev == codec->dev)
|
||||||
|
@ -4122,9 +4125,7 @@ void snd_soc_unregister_codec(struct device *dev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
found:
|
found:
|
||||||
if (codec->num_dai)
|
snd_soc_unregister_dais(dev, codec->num_dai);
|
||||||
for (i = 0; i < codec->num_dai; i++)
|
|
||||||
snd_soc_unregister_dai(dev);
|
|
||||||
|
|
||||||
mutex_lock(&client_mutex);
|
mutex_lock(&client_mutex);
|
||||||
list_del(&codec->list);
|
list_del(&codec->list);
|
||||||
|
|
|
@ -3137,7 +3137,6 @@ snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
dapm->n_widgets++;
|
|
||||||
w->dapm = dapm;
|
w->dapm = dapm;
|
||||||
w->codec = dapm->codec;
|
w->codec = dapm->codec;
|
||||||
w->platform = dapm->platform;
|
w->platform = dapm->platform;
|
||||||
|
|
|
@ -158,10 +158,7 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_ERR(codec->control_data))
|
return PTR_RET(codec->control_data);
|
||||||
return PTR_ERR(codec->control_data);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(snd_soc_codec_set_cache_io);
|
EXPORT_SYMBOL_GPL(snd_soc_codec_set_cache_io);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -90,8 +90,33 @@ static struct snd_soc_platform_driver dummy_platform = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_soc_codec_driver dummy_codec;
|
static struct snd_soc_codec_driver dummy_codec;
|
||||||
|
|
||||||
|
#define STUB_RATES SNDRV_PCM_RATE_8000_192000
|
||||||
|
#define STUB_FORMATS (SNDRV_PCM_FMTBIT_S8 | \
|
||||||
|
SNDRV_PCM_FMTBIT_U8 | \
|
||||||
|
SNDRV_PCM_FMTBIT_S16_LE | \
|
||||||
|
SNDRV_PCM_FMTBIT_U16_LE | \
|
||||||
|
SNDRV_PCM_FMTBIT_S24_LE | \
|
||||||
|
SNDRV_PCM_FMTBIT_U24_LE | \
|
||||||
|
SNDRV_PCM_FMTBIT_S32_LE | \
|
||||||
|
SNDRV_PCM_FMTBIT_U32_LE | \
|
||||||
|
SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE)
|
||||||
static struct snd_soc_dai_driver dummy_dai = {
|
static struct snd_soc_dai_driver dummy_dai = {
|
||||||
.name = "snd-soc-dummy-dai",
|
.name = "snd-soc-dummy-dai",
|
||||||
|
.playback = {
|
||||||
|
.stream_name = "Playback",
|
||||||
|
.channels_min = 1,
|
||||||
|
.channels_max = 384,
|
||||||
|
.rates = STUB_RATES,
|
||||||
|
.formats = STUB_FORMATS,
|
||||||
|
},
|
||||||
|
.capture = {
|
||||||
|
.stream_name = "Capture",
|
||||||
|
.channels_min = 1,
|
||||||
|
.channels_max = 384,
|
||||||
|
.rates = STUB_RATES,
|
||||||
|
.formats = STUB_FORMATS,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int snd_soc_dummy_probe(struct platform_device *pdev)
|
static int snd_soc_dummy_probe(struct platform_device *pdev)
|
||||||
|
|
Loading…
Reference in New Issue