[alsa-devel] Problem and workaround for Intel HDA
The problem : missing controls of the sound cards for an Intel HDA, Toshiba Satellite Pro U200
Full description : I was using the kernel 2.6.19 for a while, and I got some interesting functions like controlling the sound level on headphones or speakers separately. Then I upgraded to the kernel 2.6.21.1 and suddently the level controls changed, to useless level controls, like Master and PCM only (and some other useless). I wanted to get back to the previous control set, and I've found a solution by checking what was done in debugging mode. The previous kernel was not detecting the model config, but the new one did. So I simply strapped the detection routine by a return -1 and it did the trick. I know its not the best thing to do, but it was the simplest thing I thought about.
Outputs : 2.6.19's Alsa output :
ALSA sound/pci/hda/hda_intel.c:695: codec_mask = 0x3
2.6.21.1 :
ALSA sound/pci/hda/hda_intel.c:695: codec_mask = 0x3 ALSA sound/pci/hda/hda_codec.c:1757: hda_codec: model 'toshiba' is selected for config 1179:1 (Toshiba U205)
How to see the problem : Just see the list of controls in any mixer software.
Environment : Toshiba Satellite Pro U200
Software : KateOS 3.2 with Linux 2.6.19 (working) and 2.6.21.1 (not working)
Workaround :
int __devinit snd_hda_check_board_config(struct hda_codec *codec, int num_configs, const char **models, const struct snd_pci_quirk *tbl) { return -1; // WORKAROUND if (codec->bus->modelname && models) { int i; for (i = 0; i < num_configs; i++) { if (models[i] &&
At Thu, 19 Jul 2007 18:58:42 +0200, Yann Le Brech wrote:
The problem : missing controls of the sound cards for an Intel HDA, Toshiba Satellite Pro U200
Full description : I was using the kernel 2.6.19 for a while, and I got some interesting functions like controlling the sound level on headphones or speakers separately. Then I upgraded to the kernel 2.6.21.1 and suddently the level controls changed, to useless level controls, like Master and PCM only (and some other useless). I wanted to get back to the previous control set, and I've found a solution by checking what was done in debugging mode. The previous kernel was not detecting the model config, but the new one did. So I simply strapped the detection routine by a return -1 and it did the trick. I know its not the best thing to do, but it was the simplest thing I thought about.
2.6.21 is way too old version for hda-intel, thus not worth to debug. Please try the latest ALSA HG tree at first (instead of 1.0.14 release). Tons of fixes have been done there.
Takashi
participants (2)
-
Takashi Iwai
-
Yann Le Brech