mirror of https://gitee.com/openkylin/linux.git
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++;
|
dev++;
|
||||||
complete_all(&chip->probe_wait);
|
if (chip->disabled)
|
||||||
|
complete_all(&chip->probe_wait);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_free:
|
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)
|
if ((chip->driver_caps & AZX_DCAPS_PM_RUNTIME) || chip->use_vga_switcheroo)
|
||||||
pm_runtime_put_noidle(&pci->dev);
|
pm_runtime_put_noidle(&pci->dev);
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
out_free:
|
out_free:
|
||||||
chip->init_failed = 1;
|
if (err < 0)
|
||||||
|
chip->init_failed = 1;
|
||||||
|
complete_all(&chip->probe_wait);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue