Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8839eeda authored by Stefan Richter's avatar Stefan Richter Committed by Takashi Iwai
Browse files

ALSA: isight: add AudioEnable register write



which is needed to get the iSight to talk.

Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent f2934cd4
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)

static int isight_start_streaming(struct isight *isight)
{
	__be32 sample_rate;
	__be32 value;
	unsigned int i;
	int err;

@@ -356,10 +356,10 @@ static int isight_start_streaming(struct isight *isight)
			return 0;
	}

	sample_rate = cpu_to_be32(RATE_48000);
	value = cpu_to_be32(RATE_48000);
	err = snd_fw_transaction(isight->unit, TCODE_WRITE_QUADLET_REQUEST,
				 isight->audio_base + REG_SAMPLE_RATE,
				 &sample_rate, 4);
				 &value, 4);
	if (err < 0)
		return err;

@@ -367,6 +367,13 @@ static int isight_start_streaming(struct isight *isight)
	if (err < 0)
		goto error;

	value = cpu_to_be32(AUDIO_ENABLE);
	err = snd_fw_transaction(isight->unit, TCODE_WRITE_QUADLET_REQUEST,
				 isight->audio_base + REG_AUDIO_ENABLE,
				 &value, 4);
	if (err < 0)
		goto err_resources;

	isight->context = fw_iso_context_create(isight->device->card,
						FW_ISO_CONTEXT_RECEIVE,
						isight->resources.channel,
@@ -400,6 +407,10 @@ err_context:
	fw_iso_context_destroy(isight->context);
	isight->context = NULL;
err_resources:
	value = 0;
	snd_fw_transaction(isight->unit, TCODE_WRITE_QUADLET_REQUEST,
			   isight->audio_base + REG_AUDIO_ENABLE,
			   &value, 4);
	fw_iso_resources_free(&isight->resources);
error:
	return err;