Sound on PowerBook and iBook (snd_powermac/snd_aoa)‏

Adam Smith adogcalledsummer at hotmail.co.uk
Mon Mar 3 00:44:34 EST 2014


Hi list,

I was hoping to pick your brains regarding the sound on Apple PowerPC machines. For a long time now, sound has been broken on a number of these machines. This, I think, is due to i2c changes that started in April 2012. A number of bug reports have been raised by users at a distribution level (e.g. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714345 ) but as of yet no progress has been made on these.

Ubuntu has been hit by a "Fixing recursive fault, but reboot is needed!" bug that is caused by snd_powermac ( https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1066435 ). I tried the latest daily build of Lubuntu yesterday and the problem appears to be gone, but since the bug is a bit temperamental, I'm wondering if it was a fluke? Has any work been done on this, and can we genuinely mark it as solved? However, I could not get sound working on my G4 iBook.

Ubuntu (and I think Debian) add snd_powermac to /etc/modules. Is this still necessary or does the module now auto-load? The installer has a complicated routine (/bin/discover-mac-io) to load certain sound modules and blacklist others. Can we remove this now?

I seem to remember reading somewhere that certain machines will be migrating from snd_powermac to snd_aoa, although I can't seem to find the reference to that now. If this is the case, I think a certain number of machines have slipped through the net. As users, what information do we need to provide to get this fixed? Attached is a patch that was sent by Stefan Gartner to the Debian mailing list ( https://lists.debian.org/debian-powerpc/2013/09/msg00031.html ). Is this patch okay? I'm afraid I don't know how to check the device id/codec used by my own machine, as at a kernel level I'm a bit clueless. Would it be possible to provide instructions on how to do this? I could then circulate the instructions to other users who also have no sound. That way we could hopefully fix all broken machines.

If you need any more info then I will be happy to provide it, although you may have to give me a few days to do it (no internet connection!...)

Many thanks

Adam



--- a/sound/aoa/fabrics/layout.c	2013-09-18 21:09:41.910672970 +0200
+++ b/sound/aoa/fabrics/layout.c	2013-09-18 23:23:58.230511273 +0200
@@ -113,6 +113,8 @@
 MODULE_ALIAS("aoa-device-id-14");
 MODULE_ALIAS("aoa-device-id-22");
 MODULE_ALIAS("aoa-device-id-35");
+MODULE_ALIAS("aoa-device-id-38");
+MODULE_ALIAS("aoa-device-id-40");
 MODULE_ALIAS("aoa-device-id-44");
 
 /* onyx with all but microphone connected */
@@ -362,7 +364,20 @@
 		.connections = tas_connections_nolineout,
 	  },
 	},
+	/* PowerBook6,4 */
+	{ .device_id = 40,
+	  .codecs[0] = {
+		.name = "tas",
+		.connections = tas_connections_all,
+	  },
+	},
 	/* PowerBook6,5 */
+	{ .device_id = 38,
+	  .codecs[0] = {
+		.name = "tas",
+		.connections = tas_connections_all,
+	  },
+	},
 	{ .device_id = 44,
 	  .codecs[0] = {
 		.name = "tas",
--- a/sound/aoa/soundbus/i2sbus/core.c	2013-09-18 20:24:03.962348741 +0200
+++ b/sound/aoa/soundbus/i2sbus/core.c	2013-09-18 23:34:41.934550116 +0200
@@ -201,7 +201,7 @@
 			 * so restrict to those we do handle for now.
 			 */
 			if (id && (*id == 22 || *id == 14 || *id == 35 ||
-				   *id == 44)) {
+				   *id == 44 || *id == 40 || *id == 38)) {
 				snprintf(dev->sound.modalias, 32,
 					 "aoa-device-id-%d", *id);
 				ok = 1;
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20140302/0b5ab259/attachment-0001.html>


More information about the Linuxppc-dev mailing list