Subject: [PATCH] Add support for PowerMac3,5 in snd-aoa ALSA sound module

From: "Linux User #330250" <[email-masked]>
Date: Sat, 19 Feb 2011 15:53:46 +0100

Hello!

About two years ago Johannes Berg wrote support for the PowerMac3,6 aka G4 MDD 
which I was using as a desktop computer then. Johannes wrote all the code, and 
I tested it.

I now have a PowerMac3,5 – yes, an earlier model.

This patch makes the snd-aoa ALSA sound module support the TAS3001C codec of 
my Apple Power Mac G4 "Quicksilver" (2001 model). I suppose it will also work 
for the "Quicksilver 2002", since both identify as PowerMac3,5.

The patch also changes a few comments to name the exact Power Mac model more 
accurately in sound/aoa/fabrics/layout.c.

This is my first contribution to the linux kernel ever, so I hope you will be 
kind to me. I am not a programmer, but adding already supported devices was a 
task even I could accomplish.

Thanks,
Andreas  aka  Linux User #330250

---

diff -Naur linux-2.6.38-rc5-git2/sound/aoa/fabrics/layout.c linux-2.6.38-rc5-git2-aoa-PowerMac3,5/sound/aoa/fabrics/layout.c
--- linux-2.6.38-rc5-git2/sound/aoa/fabrics/layout.c    2011-01-05 01:50:19.000000000 +0100
+++ linux-2.6.38-rc5-git2-aoa-PowerMac3,5/sound/aoa/fabrics/layout.c    2011-02-17 18:43:26.000000000 +0100
@@ -111,6 +111,7 @@
 MODULE_ALIAS("sound-layout-100");
 
 MODULE_ALIAS("aoa-device-id-14");
+MODULE_ALIAS("aoa-device-id-21");
 MODULE_ALIAS("aoa-device-id-22");
 MODULE_ALIAS("aoa-device-id-35");
 
@@ -333,14 +334,14 @@
                .connections = topaz_input,
          },
        },
-       /* Quad PowerMac (analog in, analog/digital out) */
+       /* PowerMac11,2 (G5 Dual-Core and Quad) (analog in, analog/digital out) */
        { .layout_id = 68,
          .codecs[0] = {
                .name = "onyx",
                .connections = onyx_connections_nomic,
          },
        },
-       /* Quad PowerMac (digital in) */
+       /* PowerMac11,2 (G5 Dual-Core and Quad) (digital in) */
        { .layout_id = 69,
          .codecs[0] = {
                .name = "topaz",
@@ -521,14 +522,21 @@
                .connections = onyx_connections_noheadphones,
          },
        },---
-       /* PowerMac3,4 */
+       /* PowerMac3,4 (Digital Audio) */
        { .device_id = 14,
          .codecs[0] = {
                .name = "tas",
                .connections = tas_connections_noline,
          },
        },
-       /* PowerMac3,6 */
+       /* PowerMac3,5 (Quicksilver) */
+       { .device_id = 21,
+         .codecs[0] = {
+               .name = "tas",
+               .connections = tas_connections_noline,
+         },
+       },
+       /* PowerMac3,6 (Mirrored Drive Doors) */
        { .device_id = 22,
          .codecs[0] = {
                .name = "tas",
diff -Naur linux-2.6.38-rc5-git2/sound/aoa/soundbus/i2sbus/core.c linux-2.6.38-rc5-git2-aoa-PowerMac3,5/sound/aoa/soundbus/i2sbus/core.c
--- linux-2.6.38-rc5-git2/sound/aoa/soundbus/i2sbus/core.c      2011-01-05 01:50:19.000000000 +0100
+++ linux-2.6.38-rc5-git2-aoa-PowerMac3,5/sound/aoa/soundbus/i2sbus/core.c      2011-02-17 18:44:36.000000000 +0100
@@ -200,7 +200,7 @@
                         * We probably cannot handle all device-id machines,
                         * so restrict to those we do handle for now.
                         */
-                       if (id && (*id == 22 || *id == 14 || *id == 35)) {
+                       if (id && (*id == 22 || *id == 21 || *id == 14 || *id == 35)) {
                                snprintf(dev->sound.modalias, 32,
                                         "aoa-device-id-%d", *id);
                                ok = 1;