• Hui Wang's avatar
    card-restore: setting preferred ports in entry_from_card · 484b6986
    Hui Wang authored
    If the preferred ports are not set in this function, the
    entrys_equal() always returns false in the card_put_hook_callback().
    This will make the entry be written into the metadata and the
    preferred ports will be cleaned by a mistake.
    And we met a hdmi audio bug which has sth to do with this issue, on
    the machines with the legacy HDA audio driver, the hdmi port has lower
    priority than speaker, users need to manually select the hdmi to be
    active output port, then the preferred output port is hdmi for this
    sound card, after reboot, the card_put_hook_callback() in the
    module-card-restore.c will be called and the preferred ports are
    cleaned by a mistake, then the hdmi output port or hdmi sink couldn't
    switch to be active after reboot or resume automatically. That is
    because the preferred ports are cleaned and hdmi port has lower
    priority than speaker, the profile_good_for_output() in the
    module-switch-on-port-available.c always returns false.