ALSA: hda - Fix complete_all() timing in deferred probes
When the probe of snd-hda-intel driver is deferred due to f/w loading or the nested module loading, complete_all() should be also delayed until the initialization really finished. Otherwise, vga-switcheroo client would start switching before the actual init is done. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
1cd9b2f78b
commit
88d071fc9a
|
@ -3876,7 +3876,8 @@ static int azx_probe(struct pci_dev *pci,
|
|||
}
|
||||
|
||||
dev++;
|
||||
complete_all(&chip->probe_wait);
|
||||
if (chip->disabled)
|
||||
complete_all(&chip->probe_wait);
|
||||
return 0;
|
||||
|
||||
out_free:
|
||||
|
@ -3953,10 +3954,10 @@ static int azx_probe_continue(struct azx *chip)
|
|||
if ((chip->driver_caps & AZX_DCAPS_PM_RUNTIME) || chip->use_vga_switcheroo)
|
||||
pm_runtime_put_noidle(&pci->dev);
|
||||
|
||||
return 0;
|
||||
|
||||
out_free:
|
||||
chip->init_failed = 1;
|
||||
if (err < 0)
|
||||
chip->init_failed = 1;
|
||||
complete_all(&chip->probe_wait);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue