From: Raymond <rayau@netvigator.com>
To: openvortex-dev@nongnu.org
Cc: alsa-devel@lists.sourceforge.net
Subject: au8830 - AC3 pass through SPDIF
Date: Sat, 05 Mar 2005 23:13:44 +0800 [thread overview]
Message-ID: <4229CCA8.10508@netvigator.com> (raw)
>> > 1) What is the difference between Consumer mode and Professional mode ?
>>
>> What do you mean ?
>>
>> > 2) What change will be needed in order to support the SPDIF IN/OUT of
>> > Turtle Beach Montego II Quadzilla ?
>>
>> Reverse engineering :P SPDIF out should work. The required audio routes
>> are known. But we need to know which GPIO pins evetually must be set to
>> enable/operate external optical transceivers.
>>
SPDIF IN/OUT and rear is only available on Montego II Home Studio and
Montego II Quadzilla has SPDIF OUT and rear only
http://www.watch.impress.co.jp/akiba/hotline/990821/newitem.html#12
>>
>> > 5) How can STAC9721 stereo codec provide quad audio ? ( Is it through
>> > SPDIF-I2S link ? )
>>
>> That depends on the hardware. AFAIK, the STAC9721 supports only 2
>> channels. If we want 4, then obviously, the other two must go through
>> any other codec. It could be a secondary STAC9721, a I2S codec connected
>> to the I2S interface, some other kind of codec/DSP connected to any of
>> the 8 coprocessor I/O interfaces, SPDIF, or whatever interfaces there
>> might be we don't even know about.
>>
http://www.io.com/~kazushi/audiocard/montegoII/
Refer to the photo, there is only one ST9721T on Montego II,
1) Is LNLVL_OUT (pin 39,41) just a copy of LINE_OUT (pin 35,36) ?
>
> > 3) Is it correct to return the following value in
> > snd_vortex_spdif_mask_get() ?
> > ucontrol->value.iec958.status[3] = IEC958_AES3_CON_FS;
>
> Yes.
http://sourceforge.net/mailarchive/message.php?msg_id=7644755
Although CS8412 and CS8402a support consumer mode and professional,
there is no professional mode connector. May need to mask off the
IEC958_AES0_PROFESSIONAL.
2) Which of the following code is correct ?
static int snd_vortex_spdif_mask_get(snd_kcontrol_t * kcontrol,
snd_ctl_elem_value_t * ucontrol)
{
ucontrol->value.iec958.status[0] = ~(IEC958_AES0_PROFESSIONAL);
ucontrol->value.iec958.status[1] = 0xff;
ucontrol->value.iec958.status[2] = 0xff;
ucontrol->value.iec958.status[3] = IEC958_AES3_CON_FS;
return 0;
}
or
static int snd_vortex_spdif_default_put(snd_kcontrol_t * kcontrol,
snd_ctl_elem_value_t * ucontrol)
{
vortex_t *vortex = snd_kcontrol_chip(kcontrol);
vortex->spdif_out.status[0]=ucontrol->value.iec958.status[0] &
~(IEC958_AES0_PROFESSIONAL);
vortex->spdif_out.status[1]=ucontrol->value.iec958.status[1];
vortex->spdif_out.status[2]=ucontrol->value.iec958.status[2];
vortex->spdif_out.status[3]=ucontrol->value.iec958.status[3];
switch(vortex->spdif_out.status[3] & IEC958_AES3_CON_FS){
case IEC958_AES3_CON_FS_32000: vortex->spdif_sr = 32000; break;
case IEC958_AES3_CON_FS_44100: vortex->spdif_sr = 44100; break;
case IEC958_AES3_CON_FS_48000: vortex->spdif_sr = 48000; break;
};
vortex_program_spdif(vortex);
return 0;
}
>>
>> > 5) Can any au8810/au8830 owner verify that EN_CODEC1 should/should not
>> > be used for those au8810/au8830 not using a quad codec ? (e.g Montego II
>> > using STAC9721 stereo codec, SQ1500, Vortex Advantage, ASUS L8400B
>> > notebook au8810 with modem)
>> >
>> > #define VORTEX_CODEC_CTRL 0x29184
>> > #define VORTEX_CODEC_EN 0x29190
>> > #define EN_CODEC0 0x00000300
>> > #define EN_AC98 0x00000c00 /* Modem AC98 slots. */
>> > #define EN_CODEC1 0x00003000
>> > #define EN_CODEC (EN_CODEC0 | EN_CODEC1)
>>
>> The EN_CODEC1 flag, is there to enable the AC97 channels 4 and 5. AFAIK,
>> the bits in that register (VORTEX_CODEC_EN) map as follows:
>>
>> 8,9: AC97 channels 0 and 1
>> 10,11: AC97 channels 2 and 3 (used as AC98 modem channels)
>> 12,13: AC97 channels 4 and 5 (rear/headphones channels)
>>
>> For more details:
>> http://galadriel.mat.utfsm.cl/~mjander/aureal/techdoc/techpaper.html
This mean that EN_CODEC1 should only be enabled if au88x0 have a quad codec
>>
>> > http://lists.gnu.org/archive/html/openvortex-dev/2003-11/msg00008.html
>> >
>> > 3) Do we need to change the ADB routing when using AC3 passthrough ?
>>
>> Hmm, good question. Maybe yes, because the current SPDIF PCM device
>> route does stereo deinterlacing (separating two stereo channels). The
>> SPDIF interface has 2 input sinks. For AC3 data, 2 interlaced channels
>> does not make ant sense, because it could be 4, 6 or more, encoded in
>> who knows what. Its just some raw data that must be passed through
>> intact. It may be that in AC3 passthrough mode the SPDIF transmitter
>> just re-joins the 2 data streams resulting in the original raw bit
>> stream, hopefuly not messing it up. Maybe someone with more SPDIF
>> knowledge can comment on this ?
>>
http://galadriel.mat.utfsm.cl/~mjander/aureal/techdoc/routes.png
3) Do we need to remove the MIXOUT to SPDIFOUT routes or just mute
the corresponding MIXIN to MIXOUT (0x14) when using AC3 pass through SPDIF ?
>>
>> > There is already a parser to parse the sound font au30gm.arl in the
>> > vortex control panel.
>> > http://savannah.nongnu.org/support/?func=detailitem&item_id=103017
>>
>> > 6) What else will be needed for the au88x0 driver to support
>> >wavetable synthesis ?
>>
>> The main problem is, that the audio routes from the WT engine are broken
>> and thus the DMA engine does not seem transfer any data.
# more /proc/asound/card0/pcm3p/info
card: 0
device: 3
subdevice: 0
stream: PLAYBACK
id: AU88x0 WT
name: wt
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 64
subdevices_avail: 64
# aplay -D hw:0,3 test.wav
Playing WAVE 'test.wav' : Unsigned 8 bit, Rate 11025 Hz, Mono
aplay: set_params:857: Sample format non available
4) How can we use "aplay" to play test.wav on the card 0 device 3 ?
>> > >
>> > > > 5) What additional kcontrol and routine are needed for SPDIF IN ?
>> > >
>>
>> AFAIK, there is no direct SPDIF input interface on the au8830 chip. It
>> looks like that the SPDIF input is implemented using a I2S port or one
>> of the coporecessor interfaces. Since they are all sincronous serial
>> interfaces, they probably are almost the same and almost compatible
>> between each other, requiring little tweaking/additional circuitry on
>> the interface daughter-board.
http://sourceforge.net/projects/aureal
Most likely SPORT interface.
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
reply other threads:[~2005-03-05 15:13 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=4229CCA8.10508@netvigator.com \
--to=rayau@netvigator.com \
--cc=alsa-devel@lists.sourceforge.net \
--cc=openvortex-dev@nongnu.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.