Patchwork Add support for PowerMac3,5 in snd-aoa ALSA sound module

login
register
mail settings
Submitter Linux User #330250
Date Feb. 20, 2011, 9:38 p.m.
Message ID <201102202238.28517.linuxuser330250@gmx.net>
Download mbox | patch
Permalink /patch/83755/
State Not Applicable
Headers show

Comments

Linux User #330250 - Feb. 20, 2011, 9:38 p.m.
Hello again!

Sorry for sending the patch three times. (This is the fourth...)

About the sign-off: I use the name I've been using since I started
participating. The document $LINUX/Documentation/SubmittingPatches clearly
states that one has to use real names. I'm breaking this rule, but I'm not
ready to reveal my real name here or at any other place at this time. Sorry.
If this patch is not accepted due to this, well… that's life. BTW my real
given name is Andreas.


So, here's the patch, this time with a (pseudonym) sign-off:

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.

Signed-off-by: Andreas  aka  Linux User #330250 <linuxuser330250@gmx.net>

---
Takashi Iwai - Feb. 21, 2011, 8:37 a.m.
At Sun, 20 Feb 2011 22:38:28 +0100,
Linux User #330250 wrote:
> 
> Hello again!
> 
> Sorry for sending the patch three times. (This is the fourth...)
> 
> About the sign-off: I use the name I've been using since I started
> participating. The document $LINUX/Documentation/SubmittingPatches clearly
> states that one has to use real names. I'm breaking this rule, but I'm not
> ready to reveal my real name here or at any other place at this time. Sorry.
> If this patch is not accepted due to this, well… that's life. BTW my real
> given name is Andreas.

Well, we need really the full name for sign-off.
In general, it's not acceptable with the proper sign-off...


Takashi


> 
> 
> So, here's the patch, this time with a (pseudonym) sign-off:
> 
> 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.
> 
> Signed-off-by: Andreas  aka  Linux User #330250 <linuxuser330250@gmx.net>
> 
> ---
> 
> 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;
>
Benjamin Herrenschmidt - Feb. 21, 2011, 10:20 p.m.
On Mon, 2011-02-21 at 09:37 +0100, Takashi Iwai wrote:
> At Sun, 20 Feb 2011 22:38:28 +0100,
> Linux User #330250 wrote:
> > 
> > Hello again!
> > 
> > Sorry for sending the patch three times. (This is the fourth...)
> > 
> > About the sign-off: I use the name I've been using since I started
> > participating. The document $LINUX/Documentation/SubmittingPatches clearly
> > states that one has to use real names. I'm breaking this rule, but I'm not
> > ready to reveal my real name here or at any other place at this time. Sorry.
> > If this patch is not accepted due to this, well… that's life. BTW my real
> > given name is Andreas.
> 
> Well, we need really the full name for sign-off.
> In general, it's not acceptable with the proper sign-off...

So somebody else can just pick the "documentation" that layout ID 21
works just like 22 for us, and write an "acceptable" patch... 

Cheers,
Ben.

> 
> Takashi
> 
> 
> > 
> > 
> > So, here's the patch, this time with a (pseudonym) sign-off:
> > 
> > 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.
> > 
> > Signed-off-by: Andreas  aka  Linux User #330250 <linuxuser330250@gmx.net>
> > 
> > ---
> > 
> > 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;
> > 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
Linux User #330250 - Feb. 23, 2011, 5:56 p.m.
----------  Original message  ----------
Subject: Re: [PATCH] Add support for PowerMac3,5 in snd-aoa ALSA sound module
Date:    Montag, 21. Februar 2011N
From:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
To:      Takashi Iwai <tiwai@suse.de>

> So somebody else can just pick the "documentation" that layout ID 21
> works just like 22 for us, and write an "acceptable" patch... 

Actually, the G4 "Quicksilver" PowerMac3,5 is propably more alike to the G4 
"Digital Audio" PowerMac3,4 in this regard. The device ID on the Digital Audio 
is decimal 14. The Quicksilver is decimal 21.

PowerMac3,4 Digital Audio: Device ID 14, ??? chip
PowerMac3,5 Quicksilver: Device ID 21, TAS 3001C CODEC chip
PowerMac3,6 Mirrored Drive Doors: Device ID 22, TAS3004 CODEC chip

$LINUX/sound/aoa/codecs/tas.c driver was originally made for the TAS3004, 
which I figure because only "tas 3004" is mentioned in the source, no other.

Since the Quicksilver, which is newer than the Digital Audio, doesn't have the 
TAS3004 chip (Mac OS X System Profiler states "Texas Intruments TAS3001C"), but 
the Digital Audio seemed to work fine with the aoa-tas codec too (it's already 
in the kernel) I tried it with the Quicksilver as well.

The modules loads without errors, the sound card is listed 
(/proc/asound/cards) and the volume controls are usable.

I played some sound and everything seemed to work fine. So I submitted the 
patch.


So now I have to appologize. And I'm glad the patch hasn't been accepted. Why?
Because I had booted with the wrong kernel when I tested if the sound played 
okay. I must have still used the powermac sound module, not aoa.


BIG APPOLOGIES.


I tested again yesterday and today and can't get it to play a sound. I also 
checked the logs and all the ALSA stuff (in /proc/asound). Everything seems 
okay. I then tried a different mixer: pavucontrol -- because I have trouble to 
unmute without this on my PC too.

Now the surprise: it won't let me unmute.
Maybe it's just my system. I use Gentoo Linux and just recently updated the 
whole system to use Pulse Audio.


If anyone else could try the patch or write a new one on their G4 Quicksilvers 
I'd be happy.

And: I do understand the sign-off limiting to real names. It's a good thing.


Cheers,
Andreas  aka  Mac User #330250

Patch

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;