• Nicolas Boichat's avatar
    ALSA: Allow to force model to intel-mac-v3 in snd_hda_intel (sigmatel). · 536319af
    Nicolas Boichat authored
    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).
    Signed-off-by: default avatarNicolas Boichat <nicolas@boichat.ch>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    536319af
patch_sigmatel.c 126 KB