Commit 367b1301 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'asoc/fix/adsp', 'asoc/fix/atmel',...

Merge remote-tracking branches 'asoc/fix/adsp', 'asoc/fix/atmel', 'asoc/fix/hdac-hdmi' and 'asoc/fix/mtk' into asoc-linus
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -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_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 {
static struct {
	int rate;
	int rate;
+8 −8
Original line number Original line Diff line number Diff line
@@ -1534,23 +1534,22 @@ static void hdac_hdmi_eld_notify_cb(void *aptr, int port, int pipe)
			pin->mst_capable = false;
			pin->mst_capable = false;
			/* if not MST, default is port[0] */
			/* if not MST, default is port[0] */
			hport = &pin->ports[0];
			hport = &pin->ports[0];
			goto out;
		} else {
		} else {
			for (i = 0; i < pin->num_ports; i++) {
			for (i = 0; i < pin->num_ports; i++) {
				pin->mst_capable = true;
				pin->mst_capable = true;
				if (pin->ports[i].id == pipe) {
				if (pin->ports[i].id == pipe) {
					hport = &pin->ports[i];
					hport = &pin->ports[i];
					goto out;
					break;
				}
				}
				}
			}
			}
		}
		}


out:
		if (hport)
	if (pin && hport)
			hdac_hdmi_present_sense(pin, hport);
			hdac_hdmi_present_sense(pin, hport);
	}
	}


}

static struct i915_audio_component_audio_ops aops = {
static struct i915_audio_component_audio_ops aops = {
	.pin_eld_notify	= hdac_hdmi_eld_notify_cb,
	.pin_eld_notify	= hdac_hdmi_eld_notify_cb,
};
};
@@ -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_pin *pin, *pin_next;
	struct hdac_hdmi_cvt *cvt, *cvt_next;
	struct hdac_hdmi_cvt *cvt, *cvt_next;
	struct hdac_hdmi_pcm *pcm, *pcm_next;
	struct hdac_hdmi_pcm *pcm, *pcm_next;
	struct hdac_hdmi_port *port;
	struct hdac_hdmi_port *port, *port_next;
	int i;
	int i;


	snd_soc_unregister_codec(&edev->hdac.dev);
	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))
		if (list_empty(&pcm->port_list))
			continue;
			continue;


		list_for_each_entry(port, &pcm->port_list, head)
		list_for_each_entry_safe(port, port_next,
			port = NULL;
					&pcm->port_list, head)
			list_del(&port->head);


		list_del(&pcm->head);
		list_del(&pcm->head);
		kfree(pcm);
		kfree(pcm);
+7 −2
Original line number Original line Diff line number Diff line
@@ -899,6 +899,9 @@ static int wm_coeff_put(struct snd_kcontrol *kctl,


	mutex_lock(&ctl->dsp->pwr_lock);
	mutex_lock(&ctl->dsp->pwr_lock);


	if (ctl->flags & WMFW_CTL_FLAG_VOLATILE)
		ret = -EPERM;
	else
		memcpy(ctl->cache, p, ctl->len);
		memcpy(ctl->cache, p, ctl->len);


	ctl->set = 1;
	ctl->set = 1;
@@ -926,6 +929,8 @@ static int wm_coeff_tlv_put(struct snd_kcontrol *kctl,
		ctl->set = 1;
		ctl->set = 1;
		if (ctl->enabled && ctl->dsp->running)
		if (ctl->enabled && ctl->dsp->running)
			ret = wm_coeff_write_control(ctl, ctl->cache, size);
			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);
	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);
	mutex_lock(&ctl->dsp->pwr_lock);


	if (ctl->enabled)
	if (ctl->enabled && ctl->dsp->running)
		ret = wm_coeff_write_acked_control(ctl, val);
		ret = wm_coeff_write_acked_control(ctl, val);
	else
	else
		ret = -EPERM;
		ret = -EPERM;
+1 −1
Original line number Original line Diff line number Diff line
@@ -13,7 +13,7 @@ config SND_SOC_MT2701


config SND_SOC_MT2701_CS42448
config SND_SOC_MT2701_CS42448
	tristate "ASoc Audio driver for MT2701 with CS42448 codec"
	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_CS42XX8_I2C
	select SND_SOC_BT_SCO
	select SND_SOC_BT_SCO
	help
	help