[alsa-devel] Trying to get unsupported CODEC to work
Takashi Iwai
tiwai at suse.de
Thu Nov 5 11:47:59 CET 2009
At Thu, 5 Nov 2009 04:27:49 -0600,
Alex Austin wrote:
>
> On Thu, Nov 5, 2009 at 4:21 AM, Takashi Iwai <tiwai at suse.de> wrote:
>
> > At Thu, 5 Nov 2009 03:15:52 -0600,
> > Alex Austin wrote:
> > >
> > > I know this thread is ancient, but the question has come to my forefront
> > > again, so I'll see if I can ask it better now.
> > >
> > > On Fri, Dec 12, 2008 at 3:23 AM, Takashi Iwai <tiwai at suse.de> wrote:
> > >
> > > > Alex Austin wrote:
> > > > >
> > > > > Shoot. The DAE-3 is a controller for a 5-CH Amplifier card driving
> > > > > speakers directly, but I still need the subwoofer output from the
> > ALC888.
> > > > I
> > > > > may be able to get by without the ALC using high-level inputs on the
> > sub
> > > > amp.
> > > > > Even without it, what do I need to do to enable the DAE-3? I'm
> > > > comfortable in
> > > > > C, but I don't know ALSA much, if at all, yet.
> > > >
> > > > The codec parser isn't present for DAE-3, and the generic parser
> > > > obviously doesn't work for it. So, you need to create a new codec
> > > > parser such as other patch_*.c.
> > > >
> > > > Takashi
> > > >
> > > >
> > > Since the output of codecgraph looks pretty simple, what codec
> > > parser would you recommend starting with as a base?
> >
> > Hard to say... Maybe the one in patch_cirrus.c or patch_ca0110.c,
> > which are relatively straightforward parsers. patch_sigmatel.c
> > includes many fix-ups. Ditto for realtek.
> >
> > Thanks. I'll start there. Since I'll be trying to work from codecgraph
> output,
> can someone supply me a codecgraph for either a cirrus or ca0110 codec
> to compare against the parser source?
You can find many alsa-info / codec proc files in hda-emu git tree.
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/hda-emu.git
> > > On Fri, Dec 12, 2008 at 1:02 AM, Takashi Iwai <tiwai at suse.de> wrote:
> > >
> > > > At Thu, 11 Dec 2008 16:28:28 -0600,
> > > > Alex Austin wrote:
> > > > >
> > > > > Hello,
> > > > > I have an MSI Media Live DIVA motherboard. It has an AMD SB600 HD
> > > > > Audio controller, and two CODECs on the HDA bus.
> > > > >
> > > > > First is an ALC888
> > > > > Second is an Intersil DAE-3.
> > > >
> > > > The analog outputs on both codecs are really used at the same time?
> > > > Then it doesn't work right now. Simply "not implemented". And no
> > > > concrete plan to fix it yet. This might require a fundamental
> > > > re-design.
> > > >
> > > >
> > > > Takashi
> > > >
> > >
> > > Is this still the case? Structurally, why can't this be supported now?
> >
> > The problem is that the driver device tree is based on the PCI
> > device. That is, each card-object is created for each PCI device,
> > not for each codec.
> >
> > The re-design I mentioned above is to create a HD-audio bus per PCI
> > device and a card instance for each codec chip on that bus. But, this
> > results in the incompatibility with the current setup, and so far, no
> > real hardware requires that.
> >
> > Alternatively, you can add quirks for both codecs to create controls
> > freely with different names or with unique indices so that they don't
> > conflict with each other.
> >
> >
> > Takashi
> >
> So, the only reason it won't work now is because of duplicate control names?
Basically yes. PCM devices are assigned more or less dynamically.
> On a related note, can audio be routed from an analog input on one codec
> to an analog output on another within the controller,
Not in the driver. Only if the hardware does.
> or would that need to
> be done via a userspace app?
A user-space daemon such as pulseaudio or jack can do.
Takashi
More information about the Alsa-devel
mailing list