Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 Mar 1996 12:37:00 -0800
From:      "Amancio Hasty Jr." <hasty@rah.star-gate.com>
To:        Kim Culhan <kimc@w8hd.org>
Cc:        multimedia@freebsd.org
Subject:   GUS PnP Info
Message-ID:  <199603032037.MAA02571@rah.star-gate.com>
In-Reply-To: Your message of "Sat, 02 Mar 1996 19:53:44 EST." <Pine.BSF.3.91.960302195203.2922B-100000@moonpie.w8hd.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
>>> Kim Culhan said:
 > 
 > 
 > On Sat, 2 Mar 1996, Amancio Hasty Jr. wrote:
 > 
 > > >>> Kim Culhan said:
 > >  > 
 > >  > 
 > >  > On Sat, 2 Mar 1996, Amancio Hasty Jr. wrote:
 > >  > 
 > >  > > >>> Kim Culhan said:
 > 
 > >  > The interruptions I'm hearing sound like 'static' not the relatively lo
     nger
 > >  > time constant of the 'gating' action built into the half-duplex
 > >  > 'direction changer' which is level dependant. Is that what you were thi
     nking
 > >  > of?
 > > 
 > Well, I think is a lot easier to just built vat with the full duplex audio s
     tuff
 > > to find out if it eliminates the problem than to attempt to analyze the so
     urce
 > > of the problem.
 > 
 > For sure.
 > 
 > > Make sure that with the full duplex stuff :
 > > 
 > > 1. you don't use vmix
 > > 
 > > 2. For gus max only and *not* for the GUS PnP, ln -s /dev/audio1 /dev/audi
     o:
 > > lrwxr-xr-x  1 root  wheel  6 Mar  2 11:14 /dev/audio -> audio1
 > 
 > I have obtained a PnP, should I go for it from the start?

In gus_wave.c:

long
gus_wave_init (long mem_start, struct address_info *hw_config)
{
  unsigned long   flags;
  unsigned char   val;
  char           *model_num = "2.4";
  int             gus_type = 0x24;	/* 2.4 */

  int             irq = hw_config->irq, dma = hw_config->dma, dma2 = 
hw_config->dma2;


  if (irq < 0 || irq > 15)
    {
      printf ("ERROR! Invalid IRQ#%d. GUS Disabled", irq);
      return mem_start;
    }

  if (dma < 0 || dma > 7)
    {
      printf ("ERROR! Invalid DMA#%d. GUS Disabled", dma);
      return mem_start;
    }

  gus_irq = irq;
  gus_dma = dma;
  gus_dma2 = dma2;

  if (gus_dma2 == -1)
    gus_dma2 = dma;

  /*
     * Try to identify the GUS model.
     *
     *  Versions < 3.6 don't have the digital ASIC. Try to probe it first.
   */

  flags = splhigh ();
  outb (gus_base + 0x0f, 0x20);
  val = inb (gus_base + 0x0f);
  splx (flags);

  if (val != 0xff && (val & 0x06))	/* Should be 0x02?? */
    {
      /*
         * It has the digital ASIC so the card is at least v3.4.
         * Next try to detect the true model.
       */

      val = inb (u_MixSelect);

      /*
         * Value 255 means pre-3.7 which don't have mixer.
         * Values 5 thru 9 mean v3.7 which has a ICS2101 mixer.
         * 10 and above is GUS MAX which has the CS4231 codec/mixer.
         *
       */
      val = 166;
      ^^^^^^^^^
Add the above line , the GUS PnP returns back 255 as the version number and
the 166 will force the driver to think that is a GUS MAX. This will
not be so much of an issue when PnP support is added to FreeBSD at
that time we will have more than enough information to identify and
configure the GUS PnP automagically.

recompile and install the new kernel.

Initialize the GUS PnP  in DOS and do a soft boot to freebsd
<thats <ctrl-alt-del> >. AMD has not release yet the DOCS for
the Interwave chipset which is used in the GUS PnP when they
do native initialization for the GUS PnP will be added to 
the sound driver.

If when the system comes up the GUS PnP is dead quiet you have
not initialize the GUS PnP. The card when it comes up it has
an annoying hiss just slide "line 1" in vmix all the way down
to get rid of it.


-----
Make sure that you have :
lrwxr-xr-x  1 root  wheel  6 Mar  3 00:57 /dev/audio -> audio0

This will access the CS4231 side of the GUS PnP .
Please not that this is only for the GUS PnP because the GUS PnP has
a CS4231 emulation mode which works in full-duplex. 

***If you have a GUS MAX and try to use /dev/audio0 for full duplex  ****
***audio operations is not going to work use /dev/audio1 (that is the***
***GF1 side of things)                                               ***


Also, the GUS PnP does not support recording from /dev/audio1


	Enjoy,
	Amancio





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603032037.MAA02571>