1 ============================================== 2 Brief Notes on C-Media 8338/8738/8768/8770 Dri 3 ============================================== 4 5 Takashi Iwai <tiwai@suse.de> 6 7 8 Front/Rear Multi-channel Playback 9 --------------------------------- 10 11 CM8x38 chip can use ADC as the second DAC so t 12 channels can be used for front/rear playbacks. 13 DACs, both streams are handled independently u 14 channel playbacks in the section below. 15 16 As default, ALSA driver assigns the first PCM 17 card#0) for front and 4/6ch playbacks, while t 18 (hw:0,1) is assigned to the second DAC for rea 19 20 There are slight differences between the two D 21 22 - The first DAC supports U8 and S16LE formats, 23 supports only S16LE. 24 - The second DAC supports only two channel ste 25 26 Please note that the CM8x38 DAC doesn't suppor 27 rate but only fixed rates: 5512, 8000, 11025, 28 44100 and 48000 Hz. 29 30 The rear output can be heard only when "Four C 31 disabled. Otherwise no signal will be routed 32 As default it's turned on. 33 34 .. WARNING:: 35 When "Four Channel Mode" switch is off, the 36 will be FULL VOLUME regardless of Master and 37 This might damage your audio equipment. Ple 38 before your turn off this switch. 39 40 41 .. [#] 42 Well.. I once got the output with correct vo 43 front one) and was so excited. It was even 44 on and "double DAC" mode. Actually I could 45 from front and rear speakers! But.. after r 46 It's a very pity that I didn't save the regi 47 time.. Maybe there is an unknown register t 48 49 If your card has an extra output jack for the 50 playback should be routed there as default. I 51 control switch in the driver "Line-In As Rear" 52 via alsamixer or somewhat else. When this swi 53 is used as rear output. 54 55 There are two more controls regarding to the r 56 The "Exchange DAC" switch is used to exchange 57 routes, i.e. the 2nd DAC is output from front 58 59 60 4/6 Multi-Channel Playback 61 -------------------------- 62 63 The recent CM8738 chips support for the 4/6 mu 64 function. This is useful especially for AC3 d 65 66 When the multi-channel is supported, the drive 67 "-MC" such like "CMI8738-MC6". You can check 68 /proc/asound/cards. 69 70 When the 4/6-ch output is enabled, the second 71 4) channels. While the dual DAC supports two 72 formats, the 4/6-ch playback supports only the 73 channels. Since the multi-channel playback mo 74 cannot operate with full-duplex. 75 76 The 4.0 and 5.1 modes are defined as the pcm " 77 in alsa-lib. For example, you can play a WAV 78 :: 79 80 % aplay -Dsurround51 sixchannels.wav 81 82 For programming the 4/6 channel playback, you 83 channels as you like and set the format S16LE. 84 with 4 channels, 85 :: 86 87 snd_pcm_hw_params_set_access(pcm, hw, 88 // or mmap if you like 89 snd_pcm_hw_params_set_format(pcm, hw, 90 snd_pcm_hw_params_set_channels(pcm, hw 91 92 and use the interleaved 4 channel data. 93 94 There are some control switches affecting to t 95 96 Line-In Mode 97 an enum control to change the behavior 98 jack. Either "Line-In", "Rear Output" 99 be selected. The last item is availab 100 or newer. 101 When "Rear Output" is chosen, the surr 102 are output to line-in jack. 103 Mic-In Mode 104 an enum control to change the behavior 105 jack. Either "Mic-In" or "Center/LFE 106 selected. 107 When "Center/LFE Output" is chosen, th 108 channels (channels 5 and 6) are output 109 110 Digital I/O 111 ----------- 112 113 The CM8x38 provides the excellent SPDIF capabi 114 price (yes, that's the reason I bought the car 115 116 The SPDIF playback and capture are done via th 117 (hw:0,2). Usually this is assigned to the PCM 118 The available rates are 44100 and 48000 Hz. 119 For playback with aplay, you can run like belo 120 :: 121 122 % aplay -Dhw:0,2 foo.wav 123 124 or 125 126 :: 127 128 % aplay -Dspdif foo.wav 129 130 24bit format is also supported experimentally. 131 132 The playback and capture over SPDIF use normal 133 respectively, so you cannot playback both anal 134 simultaneously. 135 136 To enable SPDIF output, you need to turn on "I 137 control via mixer or alsactl ("IEC958" is the 138 so-called S/PDIF). Then you'll see the red li 139 you know that's working obviously :) 140 The SPDIF input is always enabled, so you can 141 from line-out with "IEC958 In Monitor" switch 142 below). 143 144 You can play via SPDIF even with the first dev 145 but SPDIF is enabled only when the proper form 146 (441100 or 48000) and channels (2) are used. 147 off. (Also don't forget to turn on "IEC958 Ou 148 149 150 Additionally there are relevant control switch 151 152 IEC958 Mix Analog 153 Mix analog PCM playback and FM-OPL/3 s 154 output through SPDIF. This switch app 155 models (CM8738 033 and 037). 156 157 Note: without this control you can out 158 This is "mixing" of streams, so e.g. i 159 (see the next section). 160 161 IEC958 In Select 162 Select SPDIF input, the internal CD-in 163 and the external input (true). 164 165 IEC958 Loop 166 SPDIF input data is loop back into SPD 167 output (aka bypass) 168 169 IEC958 Copyright 170 Set the copyright bit. 171 172 IEC958 5V 173 Select 0.5V (coax) or 5V (optical) int 174 On some cards this doesn't work and yo 175 configuration with hardware dip-switch 176 177 IEC958 In Monitor 178 SPDIF input is routed to DAC. 179 180 IEC958 In Phase Inverse 181 Set SPDIF input format as inverse. 182 [FIXME: this doesn't work on all chips 183 184 IEC958 In Valid 185 Set input validity flag detection. 186 187 Note: When "PCM Playback Switch" is on, you'll 188 stream through analog line-out. 189 190 191 The AC3 (RAW DIGITAL) OUTPUT 192 ---------------------------- 193 194 The driver supports raw digital (typically AC3 195 can be toggled via IEC958 playback control, bu 196 access it via alsa-lib. See alsa-lib document 197 198 On the raw digital mode, the "PCM Playback Swi 199 turned off so that non-audio data is heard fro 200 Similarly the following switches are off: "IEC 201 "IEC958 Loop". The switches are resumed after 202 device automatically to the previous state. 203 204 On the model 033, AC3 is implemented by the so 205 the alsa-lib. If you need to bypass the softw 206 subframes, pass the "soft_ac3=0" module option 207 on the newer models. 208 209 210 ANALOG MIXER INTERFACE 211 ---------------------- 212 213 The mixer interface on CM8x38 is similar to SB 214 There are Master, PCM, Synth, CD, Line, Mic an 215 volumes. Synth, CD, Line and Mic have playbac 216 too, as well as SB16. 217 218 In addition to the standard SB mixer, CM8x38 p 219 - PCM playback switch 220 - PCM capture switch (to capture the data sent 221 - Mic Boost switch 222 - Mic capture volume 223 - Aux playback volume/switch and capture switc 224 - 3D control switch 225 226 227 MIDI CONTROLLER 228 --------------- 229 230 With CMI8338 chips, the MPU401-UART interface 231 You need to set the module option "mpu_port" t 232 to enable MIDI support. Valid I/O ports are 0 233 0x330. Choose a value that doesn't conflict w 234 235 With CMI8738 and newer chips, the MIDI interfa 236 and the driver automatically chooses a port ad 237 238 There is *no* hardware wavetable function on t 239 OPL3 synth below). 240 What's said as MIDI synth on Windows is a soft 241 emulation. On Linux use TiMidity or other sof 242 playing MIDI music. 243 244 245 FM OPL/3 Synth 246 -------------- 247 248 The FM OPL/3 is also enabled as default only f 249 Set "fm_port" module option for more cards. 250 251 The output quality of FM OPL/3 is, however, ve 252 I don't know why.. 253 254 CMI8768 and newer chips do not have the FM syn 255 256 257 Joystick and Modem 258 ------------------ 259 260 The legacy joystick is supported. To enable t 261 joystick_port=1 module option. The value 1 me 262 If the auto-detection fails, try to pass the e 263 264 The modem is enabled dynamically via a card co 265 266 267 Debugging Information 268 --------------------- 269 270 The registers are shown in /proc/asound/cardX/ 271 problem (especially unexpected behavior of mix 272 output of this proc file together with the bug
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.