• Hui Wang's avatar
    ASoC: SOF: Intel: Retry codec probing if it fails · 046aede2
    Hui Wang authored
    On the latest Lenovo Thinkstation laptops, we often experience the
    speaker failure after rebooting, check the dmesg, we could see:
     sof-audio-pci-intel-tgl 0000:00:1f.3: codec #0 probe error, ret: -5
    
    The analogue codec on the machine is ALC287, then we designed a
    testcase to reboot and check the codec probing result repeatedly, we
    found the analogue codec probing always failed at least once within
    several minutes to several hours (roughly 1 reboot per min). This
    issue happens on all laptops of this Thinkstation model, but with
    legacy HDA driver, we couldn't reproduce this issue on those laptops.
    And so far, this issue is not reproduced on machines which don't
    belong to this model.
    
    We tried to make the hda_dsp_ctrl_init_chip() same as
    hda_intel_init_chip() which is the controller init routine in the
    legacy HDA driver, but it didn't help.
    
    We found when issue happens, the resp is -1, and if we let driver
    re-run send_cmd() and get_response(), it will get the correct response
    10ec0287, then driver continues the rest work, finally boot to the
    desktop and all audio function work well.
    
    Here adding codec probing retries to 3 times, it could fix the issue
    on this Thinkstation model, and it doesn't bring impact to other
    machines.
    Reviewed-by: default avatarBard Liao <bard.liao@intel.com>
    Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: default avatarHui Wang <hui.wang@canonical.com>
    Signed-off-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20211130090606.529348-1-kai.vehmanen@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    046aede2
hda-codec.c 6.77 KB