Re: 2.1.94 breaks ALS-100 SB16-compatible soundcard

Jonathan Woithe (jwoithe@physics.adelaide.edu.au)
Tue, 14 Apr 1998 09:23:00 +0930 (CST)


Mikael

> > in both 2.0.xx and 2.1.xx kernels, but linux-2.1.94 incorrectly
> > identifies the card as being ALS-007 based. Quake still runs,
> > but produces no sound. (No errors in any logs.)
> Well its close - its identifying it as an ALS card because it has the
> original registers

This is interesting from 2 points of view - one is that the ALS100 does
actually work now. The other is that it seems to utilize registers that
are used by the ALS-007. In response to the latter, what a pain.

> > I'd be happy to run some tests so that we can work out the
> > proper way of identifying the ALS-007 and ALS-100 chips.
> It may not be that easy to arrange. I will add an als007 parameter
> to the sb module for the moment.

It *may* be easy to implement - it depends on the behaviour of the ALS100.
The ALS007 initialises with 0x1f in each of the 0x3c and 0x4c mixer
registers. If the ALS100 has a different number here we could perhaps use
that to differentiate the cards. Is it possible for you to find out what
mixer registers 0x3c and 0x4c contain on the ALS100?

(btw, for those interested, the main reason for the !=0 test rather than
==0x1f is that in the case of the latter the driver *must* make sure that
these are properly reprogrammed to 0x1f when the driver exits - otherwise
the detection won't work at all on the next module reload.)

Another possibility is to utilize the fact that the ALS007's mixers are
only 16 levels whereas the ALS100 has 32 levels. That is, the ALS007 does
NOT have the SB16 mixer registers. Therefore the definitive ALS007 test
could become (mixer reg 0x3c != 0x0) && (mixer reg 0x4c != 0x0) &&
(some SB16 mixer reg not used, ==0 or something). Looking through the SB
documentation, there is a status (mixer) register at 0x82 which should be
!=0 on SB16 but which i (don't think) is used on the ALS007. So this may
be worth pursuing. I'll look into this tonight. While you're getting the
values of the 0x3c and 0x4c mixer registers, could you also see what 0x82
contains? Thanks.

> > Audio devices:
> > 0: Sound Blaster (ALS-007) (4.2) ; should be: Sound Blaster 16 (4.2)
> Well should be Sound Blaster (ALS-100) ;)

Depending on what happens above, this may be possible.

jonathan

-- 
* Jonathan Woithe    jwoithe@physics.adelaide.edu.au                        *
*                    http://www.physics.adelaide.edu.au/~jwoithe/home.html  *
***-----------------------------------------------------------------------***
** "Time is an illusion; lunchtime doubly so"                              **
*  "...you wouldn't recognize a subtle plan if it painted itself purple     *
*   and danced naked on a harpsicord singing 'subtle plans are here again'" *

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu