Merge branch 'fix/asoc' into for-linus
This commit is contained in:
@@ -153,7 +153,7 @@ static int cq93vc_resume(struct snd_soc_codec *codec)
|
|||||||
|
|
||||||
static int cq93vc_probe(struct snd_soc_codec *codec)
|
static int cq93vc_probe(struct snd_soc_codec *codec)
|
||||||
{
|
{
|
||||||
struct davinci_vc *davinci_vc = codec->dev->platform_data;
|
struct davinci_vc *davinci_vc = snd_soc_codec_get_drvdata(codec);
|
||||||
|
|
||||||
davinci_vc->cq93vc.codec = codec;
|
davinci_vc->cq93vc.codec = codec;
|
||||||
codec->control_data = davinci_vc;
|
codec->control_data = davinci_vc;
|
||||||
|
@@ -367,9 +367,12 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const u8 cx20442_reg = CX20442_TELOUT | CX20442_MIC;
|
||||||
|
|
||||||
static struct snd_soc_codec_driver cx20442_codec_dev = {
|
static struct snd_soc_codec_driver cx20442_codec_dev = {
|
||||||
.probe = cx20442_codec_probe,
|
.probe = cx20442_codec_probe,
|
||||||
.remove = cx20442_codec_remove,
|
.remove = cx20442_codec_remove,
|
||||||
|
.reg_cache_default = &cx20442_reg,
|
||||||
.reg_cache_size = 1,
|
.reg_cache_size = 1,
|
||||||
.reg_word_size = sizeof(u8),
|
.reg_word_size = sizeof(u8),
|
||||||
.read = cx20442_read_reg_cache,
|
.read = cx20442_read_reg_cache,
|
||||||
|
@@ -507,8 +507,6 @@ static int ams_delta_cx20442_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
/* Set up digital mute if not provided by the codec */
|
/* Set up digital mute if not provided by the codec */
|
||||||
if (!codec_dai->driver->ops) {
|
if (!codec_dai->driver->ops) {
|
||||||
codec_dai->driver->ops = &ams_delta_dai_ops;
|
codec_dai->driver->ops = &ams_delta_dai_ops;
|
||||||
} else if (!codec_dai->driver->ops->digital_mute) {
|
|
||||||
codec_dai->driver->ops->digital_mute = ams_delta_digital_mute;
|
|
||||||
} else {
|
} else {
|
||||||
ams_delta_ops.startup = ams_delta_startup;
|
ams_delta_ops.startup = ams_delta_startup;
|
||||||
ams_delta_ops.shutdown = ams_delta_shutdown;
|
ams_delta_ops.shutdown = ams_delta_shutdown;
|
||||||
|
@@ -1664,9 +1664,6 @@ static int soc_probe_aux_dev(struct snd_soc_card *card, int num)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
found:
|
found:
|
||||||
if (!try_module_get(codec->dev->driver->owner))
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
ret = soc_probe_codec(card, codec);
|
ret = soc_probe_codec(card, codec);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -1742,7 +1742,7 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
|
|||||||
int max = mc->max;
|
int max = mc->max;
|
||||||
unsigned int mask = (1 << fls(max)) - 1;
|
unsigned int mask = (1 << fls(max)) - 1;
|
||||||
unsigned int invert = mc->invert;
|
unsigned int invert = mc->invert;
|
||||||
unsigned int val, val_mask;
|
unsigned int val;
|
||||||
int connect, change;
|
int connect, change;
|
||||||
struct snd_soc_dapm_update update;
|
struct snd_soc_dapm_update update;
|
||||||
|
|
||||||
@@ -1750,13 +1750,13 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
|
|||||||
|
|
||||||
if (invert)
|
if (invert)
|
||||||
val = max - val;
|
val = max - val;
|
||||||
val_mask = mask << shift;
|
mask = mask << shift;
|
||||||
val = val << shift;
|
val = val << shift;
|
||||||
|
|
||||||
mutex_lock(&widget->codec->mutex);
|
mutex_lock(&widget->codec->mutex);
|
||||||
widget->value = val;
|
widget->value = val;
|
||||||
|
|
||||||
change = snd_soc_test_bits(widget->codec, reg, val_mask, val);
|
change = snd_soc_test_bits(widget->codec, reg, mask, val);
|
||||||
if (change) {
|
if (change) {
|
||||||
if (val)
|
if (val)
|
||||||
/* new connection */
|
/* new connection */
|
||||||
|
Reference in New Issue
Block a user