All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxim Levitsky <maximlevitsky@gmail.com>
To: alsa-devel@alsa-project.org
Subject: I want to improve Sigma-Tel STAC9227 driver / How to implement support for multiple ADC
Date: Mon, 20 Aug 2007 04:48:52 +0300	[thread overview]
Message-ID: <200708200448.52138.maximlevitsky@gmail.com> (raw)

Hello,

I am a user of Sigma-Tel STAC9227 intel hda based chip.
I have studied its documentation, and found that alsa driver doesn't support 
number of its features.


1) it has "analog loop-back" which means it can mix sound just before it 
enters ADC0 to output of DAC0 (headphones/front).
For me it is the most important feature, since I have a tv card with analog 
output.

2) it has the ability to "swap" left/right channels, and this can be very 
useful for LFE/center channel

3) It has a VolumeKnob "widget" , that allows to decrease volume of all DACs 
_after_ their own volumes were applied, and I think I turn it to "master 
volume"


Those things below aren't supported by windows driver ether, but that doesn't 
mean we can't support that :-)

4) this chip has 3 ADC, each capable recording from different source, but alsa 
uses only first.

5) I have 5.1 configuration, so DAC1 is unused.
It is possible to connect it to "front" mic, and get 7.1 sound card
I think about a option "Use front mic as output", for 3Stack configuration


1,2,3 are easy to implement, since those are just mixer switches.

But I have a question about 4:

Now the driver has buggy support for second ADC, it record from it, but fails 
to connect it to any input source, and unmute it.

I can fix that and trivially add support for third ADC, but current driver 
makes all ADCs a sub-streams of a single  PCM device.

I think that sub-streams are meant to be used only by playback PCMs that have 
hardware support of mixing, so I feel that is is better  to make  each ADC to 
be a separate PCM device, with separate  mixer controls (enabled/input 
source/gain), and I want to ask you whenever you agree with me.

Also I noticed that dsnoop chokes on record streams with more that one 
substream, it fails with error, when I try to open second arecord.


Best regards,
	Maxim Levitsky

             reply	other threads:[~2007-08-20  1:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-20  1:48 Maxim Levitsky [this message]
2007-08-22 14:51 ` I want to improve Sigma-Tel STAC9227 driver / How to implement support for multiple ADC Takashi Iwai
2007-08-23 14:09   ` Maxim Levitsky
2007-08-23 14:28     ` Takashi Iwai
2007-08-23 14:36       ` Maxim Levitsky

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=200708200448.52138.maximlevitsky@gmail.com \
    --to=maximlevitsky@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    /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.