[alsa-devel] [PATCH 2/2] ALSA: ca0106: Fix mixer and dac channel assignments.
Takashi Iwai
tiwai at suse.de
Tue Sep 21 17:27:56 CEST 2010
At Wed, 22 Sep 2010 00:24:56 +1000,
Andy Owen wrote:
>
> On Tue, 2010-09-21 at 16:00 +0200, Takashi Iwai wrote:
> > I wonder whether this can regress on other boards.
> > The front channel is the obvious channel so this must have been
> > tested. Maybe we should change the mapping only for your specific
> > model by adding some flag.
>
> The behaviour I was seeing was that if I just added the device id, then
> the front channel would work fine, but I would get no sound from the
> rears, and the mixer controls didn't quite match the labels.
Hrm, but you changed the DAC number of the front channel. Doesn't change
the front channel behavior...?
> I was a bit suspect of this change:
>
> > - if (chip->details->spi_dac && channel_id != PCM_FRONT_CHANNEL) {
> > + if (chip->details->spi_dac) {
>
> But I convinced myself that it was a hack to work around the registers
> being wrong in other places, and the card in its default state had the
> front dac already powered up. Looking at the code, I can see similar
> logic in the snd_ca0106_pcm_close_playback() function, which has a
> special case for the front channel, and I think should also be modified.
No, take a look at git commit 485100706b4b397f8072c756839878f634e21f85:
[ALSA] ca0106: power down SPI DAC channels when not in use
For cards with an SPI DAC (SB Live 24-bit / Audigy SE), power down channels
0-2 when not in use. They are powered up on PCM open and down again on PCM
close. Channel 4 (== Front) is not powered down, as it is used for capture
feedback. Powering it down would effectively kill line in pass-through.
So, it's the designed behavior.
Judging from the fact that this mapping hasn't been changed since that
time, I feel that it's not safe to change the mapping unconditionally
for your device. That's why I suggest for some new flag.
Takashi
More information about the Alsa-devel
mailing list