Skip to content
  • Takashi Iwai's avatar
    ALSA: hda - Fix abuse of snd_hda_lock_devices() for DSP loader · eb49faa6
    Takashi Iwai authored
    
    
    The current DSP loader code abuses snd_hda_lock_devices() for ensuring
    the DSP loader not conflicting with the other normal operations.  But
    this trick obviously doesn't work for the PM resume since the streams
    are kept opened there where snd_hda_lock_devices() returns -EBUSY.
    That means we need another lock mechanism instead of abuse.
    
    This patch provides the new lock state to azx_dev.  Theoretically it's
    possible that the DSP loader conflicts with the stream that has been
    already assigned for another PCM.  If it's running, the DSP loader
    should simply fail.  If not -- it's the case for PM resume --, we
    should assign this stream temporarily to the DSP loader, and take it
    back to the PCM after finishing DSP loading.  If the PCM is operated
    during the DSP loading, it should get an error, too.
    
    Reported-and-tested-by: default avatarDylan Reid <dgreid@chromium.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    eb49faa6