mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
Merge remote-tracking branches 'asoc/fix/adsp', 'asoc/fix/atmel', 'asoc/fix/hdac-hdmi' and 'asoc/fix/mtk' into asoc-linus
This commit is contained in:
commit
367b1301cc
@ -349,7 +349,7 @@ static int atmel_classd_codec_dai_digital_mute(struct snd_soc_dai *codec_dai,
|
||||
}
|
||||
|
||||
#define CLASSD_ACLK_RATE_11M2896_MPY_8 (112896 * 100 * 8)
|
||||
#define CLASSD_ACLK_RATE_12M288_MPY_8 (12228 * 1000 * 8)
|
||||
#define CLASSD_ACLK_RATE_12M288_MPY_8 (12288 * 1000 * 8)
|
||||
|
||||
static struct {
|
||||
int rate;
|
||||
|
@ -1534,21 +1534,20 @@ static void hdac_hdmi_eld_notify_cb(void *aptr, int port, int pipe)
|
||||
pin->mst_capable = false;
|
||||
/* if not MST, default is port[0] */
|
||||
hport = &pin->ports[0];
|
||||
goto out;
|
||||
} else {
|
||||
for (i = 0; i < pin->num_ports; i++) {
|
||||
pin->mst_capable = true;
|
||||
if (pin->ports[i].id == pipe) {
|
||||
hport = &pin->ports[i];
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (hport)
|
||||
hdac_hdmi_present_sense(pin, hport);
|
||||
}
|
||||
|
||||
out:
|
||||
if (pin && hport)
|
||||
hdac_hdmi_present_sense(pin, hport);
|
||||
}
|
||||
|
||||
static struct i915_audio_component_audio_ops aops = {
|
||||
@ -1998,7 +1997,7 @@ static int hdac_hdmi_dev_remove(struct hdac_ext_device *edev)
|
||||
struct hdac_hdmi_pin *pin, *pin_next;
|
||||
struct hdac_hdmi_cvt *cvt, *cvt_next;
|
||||
struct hdac_hdmi_pcm *pcm, *pcm_next;
|
||||
struct hdac_hdmi_port *port;
|
||||
struct hdac_hdmi_port *port, *port_next;
|
||||
int i;
|
||||
|
||||
snd_soc_unregister_codec(&edev->hdac.dev);
|
||||
@ -2008,8 +2007,9 @@ static int hdac_hdmi_dev_remove(struct hdac_ext_device *edev)
|
||||
if (list_empty(&pcm->port_list))
|
||||
continue;
|
||||
|
||||
list_for_each_entry(port, &pcm->port_list, head)
|
||||
port = NULL;
|
||||
list_for_each_entry_safe(port, port_next,
|
||||
&pcm->port_list, head)
|
||||
list_del(&port->head);
|
||||
|
||||
list_del(&pcm->head);
|
||||
kfree(pcm);
|
||||
|
@ -899,7 +899,10 @@ static int wm_coeff_put(struct snd_kcontrol *kctl,
|
||||
|
||||
mutex_lock(&ctl->dsp->pwr_lock);
|
||||
|
||||
memcpy(ctl->cache, p, ctl->len);
|
||||
if (ctl->flags & WMFW_CTL_FLAG_VOLATILE)
|
||||
ret = -EPERM;
|
||||
else
|
||||
memcpy(ctl->cache, p, ctl->len);
|
||||
|
||||
ctl->set = 1;
|
||||
if (ctl->enabled && ctl->dsp->running)
|
||||
@ -926,6 +929,8 @@ static int wm_coeff_tlv_put(struct snd_kcontrol *kctl,
|
||||
ctl->set = 1;
|
||||
if (ctl->enabled && ctl->dsp->running)
|
||||
ret = wm_coeff_write_control(ctl, ctl->cache, size);
|
||||
else if (ctl->flags & WMFW_CTL_FLAG_VOLATILE)
|
||||
ret = -EPERM;
|
||||
}
|
||||
|
||||
mutex_unlock(&ctl->dsp->pwr_lock);
|
||||
@ -947,7 +952,7 @@ static int wm_coeff_put_acked(struct snd_kcontrol *kctl,
|
||||
|
||||
mutex_lock(&ctl->dsp->pwr_lock);
|
||||
|
||||
if (ctl->enabled)
|
||||
if (ctl->enabled && ctl->dsp->running)
|
||||
ret = wm_coeff_write_acked_control(ctl, val);
|
||||
else
|
||||
ret = -EPERM;
|
||||
|
@ -13,7 +13,7 @@ config SND_SOC_MT2701
|
||||
|
||||
config SND_SOC_MT2701_CS42448
|
||||
tristate "ASoc Audio driver for MT2701 with CS42448 codec"
|
||||
depends on SND_SOC_MT2701
|
||||
depends on SND_SOC_MT2701 && I2C
|
||||
select SND_SOC_CS42XX8_I2C
|
||||
select SND_SOC_BT_SCO
|
||||
help
|
||||
|
Loading…
Reference in New Issue
Block a user