From: Takashi Iwai <tiwai@suse.de>
To: Andy Owen <andy@ultra-premium.com>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH 2/2] ALSA: ca0106: Fix mixer and dac channel assignments.
Date: Wed, 22 Sep 2010 16:17:18 +0200 [thread overview]
Message-ID: <s5hy6at7tht.wl%tiwai@suse.de> (raw)
In-Reply-To: <1285164542.1797.54.camel@marvin>
At Thu, 23 Sep 2010 00:09:02 +1000,
Andy Owen wrote:
>
> > Hrm, but you changed the DAC number of the front channel. Doesn't change
> > the front channel behavior...?
>
> The behaviour I get is as follows:
>
> 0) Without either of my patches:
> * Distorted output, however once the soundcard has been initialised by
> a working driver, this can only be reproduced by turning off the
> computer (I think - I can test this later if it is useful, I'm basing it
> off reports on forums about the card working for people after they
> booted into windows and then restarted).
> * Capture fails (more on this later)
>
> 1) With the first patch (adding card info to the table):
> * "speaker-test -Dsurround51 -c6": silence for rear channels, others ok
> * "speaker-test -Drear -c2" : silence
> * "speaker-test -Dfront -c2" : silence
> * "speaker-test -Dcenter_lfe -c2": ok (sound+mute+volume)
> * "speaker-test -Dsurround51 -c6": mute for rear controls front
> : volume for front is correct
> : volume/mute for C/LFE is correct
> * Capture fails (more on this later again)
>
> To me, this suggested that something was flipped with the front and
> rear, hence I ended up changing some registers. The case halfway between
> (1) and (2) would be before I modified the 'if' statement below so the
> front channel isn't a special case. The results are identical to (2),
> except the front channel is always silent.
Yes, it sounds so.
> 2) With the second patch:
> * "speaker-test -Dsurround51 -c6": ok (sound+mute+volume)
> * "speaker-test -Drear -c2" : ok (sound+mute+volume)
> * "speaker-test -Dfront -c2" : ok (sound+mute+volume)
> * "speaker-test -Dcenter_lfe -c2": ok (sound+mute+volume)
> * Capture still broken
>
> I'm using arecord to test capture, and I'm not sure if I'm driving it
> wrong, as I can't get it to work for either of my cards (the other card
> works slightly better, but I always get silence). The failure I'm
> describing here is what I get for every version described above (the
> only editing I've done here is remove mentions of the other sound
> cards):
>
> ~% arecord -l
> **** List of CAPTURE Hardware Devices ****
> card 0: CA0106 [CA0106], device 0: ca0106 [CA0106]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: CA0106 [CA0106], device 1: ca0106 [CA0106]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: CA0106 [CA0106], device 2: ca0106 [CA0106]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: CA0106 [CA0106], device 3: ca0106 [CA0106]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> ~% arecord -D hw:0,0 -f dat out.wav
> Recording WAVE 'out.wav' : Signed 16 bit Little Endian, Rate 48000 Hz,
> Stereo
> arecord: pcm_read:1629: read error: Input/output error
> (1)~% arecord -D hw:0,1 -f dat out.wav
> Recording WAVE 'out.wav' : Signed 16 bit Little Endian, Rate 48000 Hz,
> Stereo
> arecord: pcm_read:1629: read error: Input/output error
> (1)~% arecord -D hw:0,2 -f dat out.wav
> Recording WAVE 'out.wav' : Signed 16 bit Little Endian, Rate 48000 Hz,
> Stereo
> arecord: pcm_read:1629: read error: Input/output error
This usually implies that the DMA doesn't work. So, the DAC/ADC
mapping seems wrong.
> Note that it fails after 10 seconds of me running arecord, suggesting
> some sort of timeout somewhere. If I try to record at 44.1kHz, I get a
> warning:
>
> Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz)
> please, try the plug plugin
>
> followed by the same error.
This is no issue. Use plughw:0,x instead hw:0,x.
> > 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 by that commit, Trent actually had a datasheet to work with, so
> I'm inclined to trust it more. However, I just wonder if the other cards
> have had full testing of all their outputs - only the "X-Fi Extreme
> Audio" claims to have had all 6 channels tested.
Maybe not all boards have been tested. I don't disagree with your
change. My suggestion is to apply it only for devices that are known
to work with your change. Other can follow later if it suits better.
> > 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.
>
> So if it is a new flag. I'd be tempted to instead include the mappings
> in the chip_details struct, rather than a single purpose flag for one
> device (which will surely be difficult to name well).
Yeah, I thought of a similar thing later :)
We can have a single integer, such as 0x0123, indicating the DAC slot
of each channel.
> The other change
> I'd be tempted to make would be to avoid exposing channels that don't
> exist (like the side channels, or spdif for this device). Is that a
> sensible step? Do any other drivers have to solve a similar problem?
Sounds good.
> I've attached the first patch with the sign-off line if you want to put
> it in now. Otherwise, I'm happy to wait until everything is sorted out,
> and put it all in together.
Let's merge all together.
thanks,
Takashi
next prev parent reply other threads:[~2010-09-22 14:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-21 13:51 [PATCH 1/2] ALSA: ca0106 - add Sound Blaster 5.1vx info andy-alsa
2010-09-21 13:51 ` [PATCH 2/2] ALSA: ca0106: Fix mixer and dac channel assignments andy-alsa
2010-09-21 14:00 ` Takashi Iwai
2010-09-21 14:24 ` Andy Owen
2010-09-21 15:27 ` Takashi Iwai
2010-09-22 14:12 ` Andy Owen
[not found] ` <1285164542.1797.54.camel@marvin>
2010-09-22 14:17 ` Takashi Iwai [this message]
2010-09-21 13:57 ` [PATCH 1/2] ALSA: ca0106 - add Sound Blaster 5.1vx info Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5hy6at7tht.wl%tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=andy@ultra-premium.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.