From 95ee717a8937d1a15ad825e5a6fe8cf0befde290 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 9 Nov 2016 17:12:34 +0100 Subject: ALSA: doc: ReSTize CMIPCI document A simple conversion from a plain text file. Put to cards subdirectory. Signed-off-by: Takashi Iwai --- Documentation/sound/alsa/CMIPCI.txt | 254 ------------------------------------ 1 file changed, 254 deletions(-) delete mode 100644 Documentation/sound/alsa/CMIPCI.txt (limited to 'Documentation/sound/alsa') diff --git a/Documentation/sound/alsa/CMIPCI.txt b/Documentation/sound/alsa/CMIPCI.txt deleted file mode 100644 index 4e36e6e809ca..000000000000 --- a/Documentation/sound/alsa/CMIPCI.txt +++ /dev/null @@ -1,254 +0,0 @@ - Brief Notes on C-Media 8338/8738/8768/8770 Driver - ================================================= - - Takashi Iwai - - -Front/Rear Multi-channel Playback ---------------------------------- - -CM8x38 chip can use ADC as the second DAC so that two different stereo -channels can be used for front/rear playbacks. Since there are two -DACs, both streams are handled independently unlike the 4/6ch multi- -channel playbacks in the section below. - -As default, ALSA driver assigns the first PCM device (i.e. hw:0,0 for -card#0) for front and 4/6ch playbacks, while the second PCM device -(hw:0,1) is assigned to the second DAC for rear playback. - -There are slight differences between the two DACs: - -- The first DAC supports U8 and S16LE formats, while the second DAC - supports only S16LE. -- The second DAC supports only two channel stereo. - -Please note that the CM8x38 DAC doesn't support continuous playback -rate but only fixed rates: 5512, 8000, 11025, 16000, 22050, 32000, -44100 and 48000 Hz. - -The rear output can be heard only when "Four Channel Mode" switch is -disabled. Otherwise no signal will be routed to the rear speakers. -As default it's turned on. - -*** WARNING *** -When "Four Channel Mode" switch is off, the output from rear speakers -will be FULL VOLUME regardless of Master and PCM volumes. -This might damage your audio equipment. Please disconnect speakers -before your turn off this switch. -*** WARNING *** - -[ Well.. I once got the output with correct volume (i.e. same with the - front one) and was so excited. It was even with "Four Channel" bit - on and "double DAC" mode. Actually I could hear separate 4 channels - from front and rear speakers! But.. after reboot, all was gone. - It's a very pity that I didn't save the register dump at that - time.. Maybe there is an unknown register to achieve this... ] - -If your card has an extra output jack for the rear output, the rear -playback should be routed there as default. If not, there is a -control switch in the driver "Line-In As Rear", which you can change -via alsamixer or somewhat else. When this switch is on, line-in jack -is used as rear output. - -There are two more controls regarding to the rear output. -The "Exchange DAC" switch is used to exchange front and rear playback -routes, i.e. the 2nd DAC is output from front output. - - -4/6 Multi-Channel Playback --------------------------- - -The recent CM8738 chips support for the 4/6 multi-channel playback -function. This is useful especially for AC3 decoding. - -When the multi-channel is supported, the driver name has a suffix -"-MC" such like "CMI8738-MC6". You can check this name from -/proc/asound/cards. - -When the 4/6-ch output is enabled, the second DAC accepts up to 6 (or -4) channels. While the dual DAC supports two different rates or -formats, the 4/6-ch playback supports only the same condition for all -channels. Since the multi-channel playback mode uses both DACs, you -cannot operate with full-duplex. - -The 4.0 and 5.1 modes are defined as the pcm "surround40" and "surround51" -in alsa-lib. For example, you can play a WAV file with 6 channels like - - % aplay -Dsurround51 sixchannels.wav - -For programming the 4/6 channel playback, you need to specify the PCM -channels as you like and set the format S16LE. For example, for playback -with 4 channels, - - snd_pcm_hw_params_set_access(pcm, hw, SND_PCM_ACCESS_RW_INTERLEAVED); - // or mmap if you like - snd_pcm_hw_params_set_format(pcm, hw, SND_PCM_FORMAT_S16_LE); - snd_pcm_hw_params_set_channels(pcm, hw, 4); - -and use the interleaved 4 channel data. - -There are some control switches affecting to the speaker connections: - -"Line-In Mode" - an enum control to change the behavior of line-in - jack. Either "Line-In", "Rear Output" or "Bass Output" can - be selected. The last item is available only with model 039 - or newer. - When "Rear Output" is chosen, the surround channels 3 and 4 - are output to line-in jack. -"Mic-In Mode" - an enum control to change the behavior of mic-in - jack. Either "Mic-In" or "Center/LFE Output" can be - selected. - When "Center/LFE Output" is chosen, the center and bass - channels (channels 5 and 6) are output to mic-in jack. - -Digital I/O ------------ - -The CM8x38 provides the excellent SPDIF capability with very cheap -price (yes, that's the reason I bought the card :) - -The SPDIF playback and capture are done via the third PCM device -(hw:0,2). Usually this is assigned to the PCM device "spdif". -The available rates are 44100 and 48000 Hz. -For playback with aplay, you can run like below: - - % aplay -Dhw:0,2 foo.wav - -or - - % aplay -Dspdif foo.wav - -24bit format is also supported experimentally. - -The playback and capture over SPDIF use normal DAC and ADC, -respectively, so you cannot playback both analog and digital streams -simultaneously. - -To enable SPDIF output, you need to turn on "IEC958 Output Switch" -control via mixer or alsactl ("IEC958" is the official name of -so-called S/PDIF). Then you'll see the red light on from the card so -you know that's working obviously :) -The SPDIF input is always enabled, so you can hear SPDIF input data -from line-out with "IEC958 In Monitor" switch at any time (see -below). - -You can play via SPDIF even with the first device (hw:0,0), -but SPDIF is enabled only when the proper format (S16LE), sample rate -(441100 or 48000) and channels (2) are used. Otherwise it's turned -off. (Also don't forget to turn on "IEC958 Output Switch", too.) - - -Additionally there are relevant control switches: - -"IEC958 Mix Analog" - Mix analog PCM playback and FM-OPL/3 streams and - output through SPDIF. This switch appears only on old chip - models (CM8738 033 and 037). - Note: without this control you can output PCM to SPDIF. - This is "mixing" of streams, so e.g. it's not for AC3 output - (see the next section). - -"IEC958 In Select" - Select SPDIF input, the internal CD-in (false) - and the external input (true). - -"IEC958 Loop" - SPDIF input data is loop back into SPDIF - output (aka bypass) - -"IEC958 Copyright" - Set the copyright bit. - -"IEC958 5V" - Select 0.5V (coax) or 5V (optical) interface. - On some cards this doesn't work and you need to change the - configuration with hardware dip-switch. - -"IEC958 In Monitor" - SPDIF input is routed to DAC. - -"IEC958 In Phase Inverse" - Set SPDIF input format as inverse. - [FIXME: this doesn't work on all chips..] - -"IEC958 In Valid" - Set input validity flag detection. - -Note: When "PCM Playback Switch" is on, you'll hear the digital output -stream through analog line-out. - - -The AC3 (RAW DIGITAL) OUTPUT ----------------------------- - -The driver supports raw digital (typically AC3) i/o over SPDIF. This -can be toggled via IEC958 playback control, but usually you need to -access it via alsa-lib. See alsa-lib documents for more details. - -On the raw digital mode, the "PCM Playback Switch" is automatically -turned off so that non-audio data is heard from the analog line-out. -Similarly the following switches are off: "IEC958 Mix Analog" and -"IEC958 Loop". The switches are resumed after closing the SPDIF PCM -device automatically to the previous state. - -On the model 033, AC3 is implemented by the software conversion in -the alsa-lib. If you need to bypass the software conversion of IEC958 -subframes, pass the "soft_ac3=0" module option. This doesn't matter -on the newer models. - - -ANALOG MIXER INTERFACE ----------------------- - -The mixer interface on CM8x38 is similar to SB16. -There are Master, PCM, Synth, CD, Line, Mic and PC Speaker playback -volumes. Synth, CD, Line and Mic have playback and capture switches, -too, as well as SB16. - -In addition to the standard SB mixer, CM8x38 provides more functions. -- PCM playback switch -- PCM capture switch (to capture the data sent to DAC) -- Mic Boost switch -- Mic capture volume -- Aux playback volume/switch and capture switch -- 3D control switch - - -MIDI CONTROLLER ---------------- - -With CMI8338 chips, the MPU401-UART interface is disabled as default. -You need to set the module option "mpu_port" to a valid I/O port address -to enable MIDI support. Valid I/O ports are 0x300, 0x310, 0x320 and -0x330. Choose a value that doesn't conflict with other cards. - -With CMI8738 and newer chips, the MIDI interface is enabled by default -and the driver automatically chooses a port address. - -There is _no_ hardware wavetable function on this chip (except for -OPL3 synth below). -What's said as MIDI synth on Windows is a software synthesizer -emulation. On Linux use TiMidity or other softsynth program for -playing MIDI music. - - -FM OPL/3 Synth --------------- - -The FM OPL/3 is also enabled as default only for the first card. -Set "fm_port" module option for more cards. - -The output quality of FM OPL/3 is, however, very weird. -I don't know why.. - -CMI8768 and newer chips do not have the FM synth. - - -Joystick and Modem ------------------- - -The legacy joystick is supported. To enable the joystick support, pass -joystick_port=1 module option. The value 1 means the auto-detection. -If the auto-detection fails, try to pass the exact I/O address. - -The modem is enabled dynamically via a card control switch "Modem". - - -Debugging Information ---------------------- - -The registers are shown in /proc/asound/cardX/cmipci. If you have any -problem (especially unexpected behavior of mixer), please attach the -output of this proc file together with the bug report. -- cgit v1.2.3