patch-2.2.0-pre5 linux/drivers/sound/sb_audio.c

Next file: linux/drivers/sound/sb_common.c
Previous file: linux/drivers/sound/sb.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.2.0-pre4/linux/drivers/sound/sb_audio.c linux/drivers/sound/sb_audio.c
@@ -67,6 +67,7 @@
 	devc->fullduplex = devc->duplex &&
 		((mode & OPEN_READ) && (mode & OPEN_WRITE));
 	sb_dsp_reset(devc);
+	ess_mixer_reload (devc, SOUND_MIXER_RECLEV);
 
 	/* The ALS007 seems to require that the DSP be removed from the output */
 	/* in order for recording to be activated properly.  This is done by   */
@@ -91,8 +92,10 @@
 {
 	sb_devc *devc = audio_devs[dev]->devc;
 
-	/* if we did dma juggling put the right dmap in the right place */
-	if(devc->duplex && audio_devs[dev]->dmap_out->dma != devc->dma8)
+	/* fix things if mmap turned off fullduplex */
+	if(devc->duplex
+	   && !devc->fullduplex
+	   && (devc->opened & OPEN_READ) && (devc->opened & OPEN_WRITE))
 	{
 		struct dma_buffparms *dmap_temp;
 		dmap_temp = audio_devs[dev]->dmap_out;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov