At Mon, 21 Jul 2008 22:18:01 +0800, Nicolas Boichat wrote:
Hi all,
Currently, even if you pass model=intel-mac-v3 as a module parameter to snd_hda_intel, the function patch_stac922x (patch_sigmatel.c) will still try to auto-detect the model type. This is a problem on my MacBook Pro 1st generation, which needs intel-mac-v3, but sometimes incorrectly reports 0x00000100 as subsystem id, which causes the switch in patch_stac922x to select intel-mac-v4.
To fix this, I added a new model called intel-mac-auto, so in case no module parameter is passed, and an Intel Mac board is detected, the model will be automatically detected, while no detection will be done if the model is forced to intel-mac-v3.
This problem has been around for quite a while, and I used to fix it by moving the case statement for 0x00000100 in patch_stac922x so that intel-mac-v3 is chosen.
Another way to fix the problem would be to check if a module parameter was set directly in patch_stac922x, using something like this: if (spec->board_config == STAC_INTEL_MAC_V3 && !codec->bus->modelname) {
But I think it is less elegant (if you prefer that way, I can prepare a patch).
This applies against 2.6.26, and should apply without any problem on the latest git.
Thanks,
Best regards,
Nicolas
Signed-off-by: Nicolas Boichat nicolas@boichat.ch
Thanks, applied now. Will be in 2.6.27.
Takashi