openvortex-dev
[Top][All Lists]
Advanced

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

Re: [Openvortex-dev] Alsa-XMMS buffer time weirdness / Quad codec


From: Ryan Underwood
Subject: Re: [Openvortex-dev] Alsa-XMMS buffer time weirdness / Quad codec
Date: Tue, 8 Jul 2003 09:14:06 -0500
User-agent: Mutt/1.5.4i

Hi Manuel,

On Mon, Jul 07, 2003 at 09:22:22PM -0400, Manuel Jander wrote:
> 
> This is the code i'm using:
> 
> if (nr_ch < 4) {
>   /* Copy stereo to rear channel (surround) */
>   snd_ac97_write_cache(vortex->codec, AC97_SIGMATEL_DAC2INVERT,
> snd_ac97_read(vortex->codec, AC97_SIGMATEL_DAC2INVERT) | 4);
> } else {
>   /* Allow separate front a rear channels. */
>   snd_ac97_write_cache(vortex->codec, AC97_SIGMATEL_DAC2INVERT,
> snd_ac97_read(vortex->codec, AC97_SIGMATEL_DAC2INVERT) & ~((u32)4));
> }
> 
> any suggestions ? How a re you setting that bit ? Would be nice to know
> how, since it works :)
> 
> If i read the register 0x6e status back, the changes are visibile. SO it
> actually made it into the hardware. Very strange. I only hope my card
> isnt bad.

Well, here is what I did in the AC97 code:

static const snd_kcontrol_new_t snd_ac97_sigmatel_4speaker =
AC97_SINGLE("Sigmatel 4-Speaker Stereo Playback Switch", 
AC97_SIGMATEL_DAC2INVERT, 2, 1, 0);

static const snd_kcontrol_new_t snd_ac97_sigmatel_phaseinvert =
AC97_SINGLE("Sigmatel Surround Phase Inversion Playback Switch", 
AC97_SIGMATEL_DAC2INVERT, 3, 1, 0);

and then in the initialization:

if (snd_ac97_try_bit(ac97, AC97_SIGMATEL_DAC2INVERT, 2))
        if ((err = snd_ctl_add(card, snd_ac97_cnew(&snd_ac97_sigmatel_4speaker, 
ac97))) < 0)
                return err;
if (snd_ac97_try_bit(ac97, AC97_SIGMATEL_DAC2INVERT, 3))
        if ((err = snd_ctl_add(card, 
snd_ac97_cnew(&snd_ac97_sigmatel_phaseinvert, ac97))) < 0)
                return err;

All that does is tries to change D2, if it changes, then the setting is assumed
to be available and is added to alsamixer; same for D3.

Why not check out the ALSA CVS of the ac97_codec.c and give it a try?  There 
will
simply be a 4-speaker Stereo control that you can toggle on and off to turn
the rear channel on and off, assuming that it is working.

(I have no idea why your code is not working)

-- 
Ryan Underwood, <nemesis at icequake.net>, icq=10317253




reply via email to

[Prev in Thread] Current Thread [Next in Thread]