[alsa-devel] Functioning support for Prodigy 192

Takashi Iwai tiwai at suse.de
Thu Apr 5 13:33:02 CEST 2007

At Thu, 05 Apr 2007 12:03:08 +0200 (CEST),
dustin at seznam.cz wrote:
> Hi Takashi,
> I am finishing changes to prodigy192.c to make the card
> functional. I modified eeprom values (e.g. 49MHz crystal), fixed
> digital output of the card (requires GPIO), added support for
> MI/ODI/O and added input switch mic/line. So far I have not done any
> MIDI tests. Before posting corresponding patches I would like to
> resolve a few remaining issues. 
> The ak4114 based miodio card is a separately sold add-on and
> provides SPDIF out (directly connected to SPDIFOUT pin of ice1724),
> SPDIF IN (TOSLINK to input 0, coax to input 1 of ak4114)  + MIDI
> IN/OUT. SPDIF OUT required no code, SPDIF IN is fully working with
> my last patches,  switching between toslink/coax works in my
> prodigy192.c. Windows drivers detect miodio automatically, offering
> corresponding controls when connected. What would be a proper way in
> the driver to activate the miodio support?  

We can also add/remove mixer elements dynamically, but this may break
some (many?) mixer apps unfortunately.  So, the safest would be to
check it at driver loading time.

> There is one Xilinx FPGA chip onboard, perhaps it is used for MIDI
> (although ice1724 has a built-in support, right?),

Yes, it has two MIDIs.

> perhaps it
> informs original windows drivers about version and capabilities of
> the addon card.

Hm, did already figure out whether this works?

> Another option would be to test communication with ak4114, whether
> we can read contents of a particular register. Perhaps a proper
> place to do so would be in snd_ak4114_create of ak4114.c which could
> return error when no communication could be established with ak4114
> (I do not think this is the case now). What solution would you
> suggest?

This should be fine.  But, I also remember that probing the codec via
accessing a non-existing breakout caused lockup on an ice1712-based
board.  So, prepare yourself ;)

> Another question concerns capture input switches, both analog and
> digital.  For now I have used a single switch
> SNDRV_CTL_ELEM_TYPE_BOOLEAN for each. On the capture tab of
> alsamixer that is not intuitive (capture off = mice, capture on =
> line etc.). I would prefer standard "capture input radio buttons"
> like e.g. in ac97 codec (ich5 + AD1985). I would need two
> independent groups of two "radio buttons". Please could you point me
> to some self-explaining code implementing similar feature in another
> driver which a newbie could understand?

Do you mean two enum controls for { "Mic", "Line" } and { "Digital",
"Analog" } ?  Or what kind of controls do you suggest?


More information about the Alsa-devel mailing list