* Re: ESS 1688
[not found] ` <47C13E03.8000903@keyaccess.nl>
@ 2008-02-24 13:23 ` Rene Herman
0 siblings, 0 replies; only message in thread
From: Rene Herman @ 2008-02-24 13:23 UTC (permalink / raw)
To: Hans Ekbrand; +Cc: alsa-user, ALSA devel
[-- Attachment #1: Type: text/plain, Size: 736 bytes --]
On 24-02-08 10:50, Rene Herman wrote:
> Not yet, but I confirm the bug. I'll try and see of I can locate
> anything. No ETA available.
Can you try if applying the attached makes things work as you'd expect with
respect to the recording levels? Over here it seems to, although I get the
feeling we might as well rename the control "Distortion Levels" as keeping
it at 0 is the only sensible thing.
Even if this works, it's not a final fix, just to confirm. Given that you
posted to alsa-user... if you're not setup to apply this patch (to any semi
recent source) and recompile the driver I hope someone can help.
With respect to the duplex issue -- there seem to be no docs for 688 and
1688 which is a bit of a problem.
Rene.
[-- Attachment #2: es1688_lib-reclev_dev.diff --]
[-- Type: text/plain, Size: 1984 bytes --]
diff --git a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c
index 5c26d49..eb35267 100644
--- a/sound/isa/es1688/es1688_lib.c
+++ b/sound/isa/es1688/es1688_lib.c
@@ -368,9 +368,11 @@ static int snd_es1688_playback_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
unsigned int size = snd_pcm_lib_buffer_bytes(substream);
unsigned int count = snd_pcm_lib_period_bytes(substream);
+ int tmp;
chip->dma_size = size;
spin_lock_irqsave(&chip->reg_lock, flags);
+ tmp = snd_es1688_read(chip, 0xb4);
snd_es1688_reset(chip);
snd_es1688_set_rate(chip, substream);
snd_es1688_write(chip, 0xb8, 4); /* auto init DMA mode */
@@ -403,6 +405,7 @@ static int snd_es1688_playback_prepare(struct snd_pcm_substream *substream)
}
snd_es1688_write(chip, 0xb1, (snd_es1688_read(chip, 0xb1) & 0x0f) | 0x50);
snd_es1688_write(chip, 0xb2, (snd_es1688_read(chip, 0xb2) & 0x0f) | 0x50);
+ snd_es1688_write(chip, 0xb4, tmp);
snd_es1688_dsp_command(chip, ES1688_DSP_CMD_SPKON);
spin_unlock_irqrestore(&chip->reg_lock, flags);
/* --- */
@@ -429,9 +432,11 @@ static int snd_es1688_capture_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
unsigned int size = snd_pcm_lib_buffer_bytes(substream);
unsigned int count = snd_pcm_lib_period_bytes(substream);
+ int tmp;
chip->dma_size = size;
spin_lock_irqsave(&chip->reg_lock, flags);
+ tmp = snd_es1688_read(chip, 0xb4);
snd_es1688_reset(chip);
snd_es1688_set_rate(chip, substream);
snd_es1688_dsp_command(chip, ES1688_DSP_CMD_SPKOFF);
@@ -461,6 +466,7 @@ static int snd_es1688_capture_prepare(struct snd_pcm_substream *substream)
}
snd_es1688_write(chip, 0xb1, (snd_es1688_read(chip, 0xb1) & 0x0f) | 0x50);
snd_es1688_write(chip, 0xb2, (snd_es1688_read(chip, 0xb2) & 0x0f) | 0x50);
+ snd_es1688_write(chip, 0xb4, tmp);
spin_unlock_irqrestore(&chip->reg_lock, flags);
/* --- */
count = -count;
[-- Attachment #3: Type: text/plain, Size: 228 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
[-- Attachment #4: Type: text/plain, Size: 158 bytes --]
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user
^ permalink raw reply related [flat|nested] only message in thread