[alsa-devel] max channels of 3 jacks 6 channels motherboard using model=auto realtek codec
Refer to commit ce764ab22e40a046065c9417ee5f04ad2a816ac1
ALSA: hda - Add channel-mode support to Realtek auto-parser
It seem that max channel is six instead of two when the channel mode is 2ch for those 3 jacks motherboard
using hda-emu and alsa-info from http://thread.gmane.org/gmane.linux.alsa.devel/86816
PCM 0 p 44100 2 16
Open PCM ALC887 Analog for play Available PCM parameters: channels: 2/6 formats: S16_LE S32_LE rates: 44100 48000 96000 192000 Prepare PCM, rate=44100, channels=2, format=16 bits
because
spec->multiout.max_channels = spec->multiout.num_dacs * 2;
is assigned after alc_auto_add_multi_channel_mode() increase spec->multiout.num_dacs from 1 to 3
spec->multiout.num_dacs = num_pins + 1;
At Wed, 6 Jul 2011 11:53:47 +0800, Raymond Yau wrote:
Refer to commit ce764ab22e40a046065c9417ee5f04ad2a816ac1
ALSA: hda - Add channel-mode support to Realtek auto-parser
It seem that max channel is six instead of two when the channel mode is 2ch for those 3 jacks motherboard
using hda-emu and alsa-info from http://thread.gmane.org/gmane.linux.alsa.devel/86816
PCM 0 p 44100 2 16
Open PCM ALC887 Analog for play Available PCM parameters: channels: 2/6 formats: S16_LE S32_LE rates: 44100 48000 96000 192000 Prepare PCM, rate=44100, channels=2, format=16 bits
because
spec->multiout.max_channels = spec->multiout.num_dacs * 2;
is assigned after alc_auto_add_multi_channel_mode() increase spec->multiout.num_dacs from 1 to 3
spec->multiout.num_dacs = num_pins + 1;
Right, and this is intentional. Since there should be enough amount of DACs, the driver keeps using the surround DACs statically. In that way, apps can keep opening the device in the surround mode while user can switch the outputs on the fly via channel-mode mixer enum.
Takashi
2011/7/6 Takashi Iwai tiwai@suse.de:
At Wed, 6 Jul 2011 11:53:47 +0800, Raymond Yau wrote:
Refer to commit ce764ab22e40a046065c9417ee5f04ad2a816ac1
ALSA: hda - Add channel-mode support to Realtek auto-parser
It seem that max channel is six instead of two when the channel mode is 2ch for those 3 jacks motherboard
using hda-emu and alsa-info from http://thread.gmane.org/gmane.linux.alsa.devel/86816
PCM 0 p 44100 2 16
Open PCM ALC887 Analog for play Available PCM parameters: channels: 2/6 formats: S16_LE S32_LE rates: 44100 48000 96000 192000 Prepare PCM, rate=44100, channels=2, format=16 bits
because
spec->multiout.max_channels = spec->multiout.num_dacs * 2;
is assigned after alc_auto_add_multi_channel_mode() increase spec->multiout.num_dacs from 1 to 3
spec->multiout.num_dacs = num_pins + 1;
Right, and this is intentional. Since there should be enough amount of DACs, the driver keeps using the surround DACs statically. In that way, apps can keep opening the device in the surround mode while user can switch the outputs on the fly via channel-mode mixer enum.
How can the driver support 6 channels when the input jacks have not been retasked as output ?
This behaviour seem different from model=3stack-6ch or model=3stack-6ch-dig or those via codec with smart51 "OFF"
Another example is 4jacks 8 channels CLEVO P150HM notebook in
http://thread.gmane.org/gmane.linux.alsa.devel/86475/focus=86601
I wonder how PA server can know the notebook support multi channels when it does not check the existence of "Channel Mode" or "Smart51" control since input jacks remain for input by default
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/10096
Even jack dectect api cannot provide any info whether the jack is retaskable or not or any event which indicate the jacks have been retasked from input to output or vice versa
participants (2)
-
Raymond Yau
-
Takashi Iwai