Thread (1 message) 1 message, 1 author, 1999-06-11

Re: patch for dmasound bug

From: Alvin Brattli <hidden>
Date: 1999-06-11 22:54:46


Ryan Nielsen:
quoted hunk
Alvin Brattli wrote:
quoted
Although this patch might do what it was intended for, it has some
unwanted consequences on the PowerBook G3 Series, namely that one gets a
constant, really annoying hiss from the loudspeakers, most notably
during the boot sequence.  Without this patch, the hiss stops after a
system beep (like when you do an "echo ^G" in a shell), but now even
this does not help.  So, if this patch is included in the standard
distribution, I suspect we will hear a lot of complaints from PowerBook
G3 users.
is this better?
--- dmasound.c	1999/02/05 05:45:42	1.41
+++ dmasound.c	1999/06/11 20:04:43
@@ -3255,6 +3255,11 @@
	save_flags(flags); cli();
	if (beep_playing) {
		st_le16(&beep_dbdma_cmd->command, DBDMA_STOP);
+		out_le32(&awacs_txdma->control, (RUN|PAUSE|FLUSH|WAKE) << 16);
+		out_le32(&awacs->control, MASK_IEPC
+			 | (awacs_rate_index << 8) | 0x11
+			 | (awacs_revision < AWACS_BURGUNDY? MASK_IEE: 0));
+		out_le32(&awacs->byteswap, sound.hard.format != AFMT_S16_BE);
		beep_playing = 0;
	}
	restore_flags(flags);
Nope.  The hiss is still there, and won't go away.  If it can be of any
help, the patch below removes the hiss during boot-time when your
patch is not applied.  The patch simply makes a very short beep with
zero volume.  However, after playing certain sounds, the hiss comes
back, and can then be stopped with a system beep (like with "echo ^G" in
a terminal window).

--- linux-2.2.8-orig/drivers/sound/dmasound.c	Fri May 14 22:24:46 1999
+++ linux-2.2.8/drivers/sound/dmasound.c	Sat Jun 12 00:49:44 1999
@@ -4840,6 +4840,7 @@
 	int has_sound = 0;
 #ifdef CONFIG_PPC
 	struct device_node *np;
+	int beep_volume_tmp;
 #endif
 
 #if defined(__mc68000__) || defined(CONFIG_APUS)
@@ -4974,6 +4975,14 @@
 #ifdef MODULE
 	irq_installed = 1;
 #endif
+
+#ifdef CONFIG_PPC
+	/* Remove hiss from PowerBook speakers (very ad hoc) */
+	beep_volume_tmp = beep_volume;
+	beep_volume = 0;
+	awacs_mksound(750, 1);
+	beep_volume = beep_volume_tmp;
+#endif /* CONFIG_PPC */
 
 	printk(KERN_INFO "DMA sound driver installed, using %d buffers of %dk.\n",
 	       numBufs, bufSize);



aLViN
-- 
:r .signature

[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help