NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-macppc/39414: No audio from awacs on PowerBook G3 (Firewire/Pismo)



The following reply was made to PR port-macppc/39414; it has been noted by 
GNATS.

From: "Jared D. McNeill" <jmcneill%invisible.ca@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: port-macppc-maintainer%netbsd.org@localhost, 
gnats-admin%netbsd.org@localhost, 
    netbsd-bugs%netbsd.org@localhost
Subject: Re: port-macppc/39414: No audio from awacs on PowerBook G3
 (Firewire/Pismo)
Date: Wed, 27 Aug 2008 08:29:11 -0400 (EDT)

 On Wed, 27 Aug 2008, Jared D. McNeill wrote:
 > The audio-out jack on the back seems to work, but not the built-in speaker.
 
 The following patch makes the built-in speaker work properly.
 
 Index: awacs.c
 ===================================================================
 RCS file: /cvsroot/src/sys/arch/macppc/dev/awacs.c,v
 retrieving revision 1.34
 diff -u -r1.34 awacs.c
 --- awacs.c    16 May 2008 02:41:50 -0000      1.34
 +++ awacs.c    27 Aug 2008 12:27:23 -0000
 @@ -85,6 +85,7 @@
        lwp_t *sc_thread;
        int sc_event;
        int sc_output_wanted;
 +      int sc_need_parallel_output;
   #if NSGSMIX > 0
        device_t sc_sgsmix;
   #endif
 @@ -283,6 +284,12 @@
   static const char *use_gpio4[] = {   "PowerMac3,3",
                                        NULL};
 
 +/*
 + * list of machines that do not require AWACS_PARALLEL_OUTPUT
 + */
 +static const char *no_parallel_output[] = {   "PowerBook3,1",
 +                                              NULL};
 +
   static int
   awacs_match(device_t parent, struct cfdata *match, void *aux)
   {
 @@ -414,7 +421,7 @@
        awacs_write_codec(sc, sc->sc_codecctl0);
 
        /* Set loopthrough for external mixer on beige G3 */
 -      sc->sc_codecctl1 |= (AWACS_LOOP_THROUGH | AWACS_PARALLEL_OUTPUT);
 +      sc->sc_codecctl1 |= AWACS_LOOP_THROUGH;
 
           printf("%s: ", device_xname(sc->sc_dev));
 
 @@ -451,6 +458,14 @@
                sc->sc_headphones_mask = 0x8;
                sc->sc_headphones_in = 0x8;
        }
 +
 +      if (of_compatible(root_node, no_parallel_output) != -1)
 +              sc->sc_need_parallel_output = 0;
 +      else {
 +              sc->sc_need_parallel_output = 1;
 +              sc->sc_codecctl1 |= AWACS_PARALLEL_OUTPUT;
 +      }
 +
        if (awacs_check_headphones(sc)) {
 
                   /* default output to headphones */
 @@ -483,7 +498,9 @@
        /* Enable interrupts and looping mode. */
        /* XXX ... */
 
 -      sc->sc_codecctl1 |= (AWACS_LOOP_THROUGH | AWACS_PARALLEL_OUTPUT);
 +      sc->sc_codecctl1 |= AWACS_LOOP_THROUGH;
 +      if (sc->sc_need_parallel_output)
 +              sc->sc_codecctl1 |= AWACS_PARALLEL_OUTPUT;
        awacs_write_codec(sc, sc->sc_codecctl1);
 
   #if NSGSMIX > 0
 


Home | Main Index | Thread Index | Old Index