Benny, thanks a lot for your new DSP code. Hardware mixing works great!
I didn't test variable period sizes up to now because I'm using Mandrake
RPMs at the moment. So, patching isn't possible right now, but I'll
change back to tarballs or cvs soon :-). Btw, do you have any idea how
to get 4 indep. channels working with this one codec?

Finnally something that I believe I got a answer -;)
In theory the aproach should be:
1 - AC97 CODEC configuration:
Front channel left and right goes through slot 3 and 4
Ext. left and right goes through slot 5 and 11
2 - Dual AC97 CODEC configuration:
Example. with a dual cs4294, one of the codecs
is set into extended mode then:
Front channel left and right goes through slot 3 and 4
Rear channel left and right goes through slot 7 and 8
Center channel left and right goes through slot 6
LFE channel left and right goes through slot 9
(possible that slot 5 and 11 could be used to something ....)

Case 1, only one AC97 CODEC, 4 channel output is not supported yet by the current driver ...

Now, in dsp_spos.c example:
/* create the CODEC output task */
codec_out_scb = cs46xx_dsp_create_codec_out_scb(chip,"CodecOutSCB_I",0x0010,0x0000,
MASTERMIX_SCB_ADDR,
CODECOUT_SCB_ADDR,timing_master_scb,
SCB_ON_PARENT_SUBLIST_SCB);

creates a task in DSP that will output samples on slot 3 and 4 from the following mapping:
AC 97 primary and secondary links output slot 3 0x000 - 0x00F
AC 97 primary and secondary links output slot 4 0x010 - 0x01F
AC 97 primary and secondary links output slot 5 0x020 - 0x02F
AC 97 primary and secondary links output slot 6 0x030 - 0x03F
AC 97 primary and secondary links output slot 7 0x040 - 0x04F
AC 97 primary and secondary links output slot 8 0x050 - 0x05F
AC 97 primary and secondary links output slot 9 0x060 - 0x06F
AC 97 primary and secondary links output slot 10 0x070 - 0x07F
AC 97 primary and secondary links output slot 11 0x080 - 0x08F
AC 97 primary and secondary links output slot 12 0x090 - 0x09F

0x0000 is the address to the left-channel slot and 0x0010 is the offset to get to the right-channel slot,
finally, to have 4 channel on the Terratec the following change (in pure theory should work) in dsp_spos.c

sec_codec_out_scb = cs46xx_dsp_create_codec_out_scb(chip,"CodecOutSCB_II",0x0010,0x0040,
REAR_MIXER_SCB_ADDR,
SEC_CODECOUT_SCB_ADDR,codec_in_scb,
SCB_ON_PARENT_NEXT_SCB);

(which currenlty is configured to output sample on slot 7 and 8 on extended CODEC) change to:

sec_codec_out_scb = cs46xx_dsp_create_codec_out_scb(chip,"CodecOutSCB_II",0x0060,0x0020,
REAR_MIXER_SCB_ADDR,
SEC_CODECOUT_SCB_ADDR,codec_in_scb,
SCB_ON_PARENT_NEXT_SCB);

/Benny

PS. sorry, forgot that this was the alsa-user list -;)



-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to