mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] HDA: Fix sound resume hang
@ 2012-12-18 15:59 Daniel J Blueman
  2012-12-18 16:15 ` Takashi Iwai
  0 siblings, 1 reply; 2+ messages in thread
From: Daniel J Blueman @ 2012-12-18 15:59 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel

Resuming a switcheroo'd HDA controller hangs since the completion
is one-shot (thus works the first time). Fix by using completions
that explictly need rearming, so remain fired before.

Signed-off-by: Daniel J Blueman <daniel@quora.org>
---
 sound/pci/hda/hda_intel.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 22ecadc..e12b939 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2856,7 +2856,7 @@ static int azx_free(struct azx *chip)
 	azx_notifier_unregister(chip);
 
 	chip->init_failed = 1; /* to be sure */
-	complete(&chip->probe_wait);
+	complete_all(&chip->probe_wait);
 
 	if (use_vga_switcheroo(chip)) {
 		if (chip->disabled && chip->bus)
@@ -3482,7 +3482,7 @@ static int __devinit azx_probe(struct pci_dev *pci,
 		pm_runtime_put_noidle(&pci->dev);
 
 	dev++;
-	complete(&chip->probe_wait);
+	complete_all(&chip->probe_wait);
 	return 0;
 
 out_free:
-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] HDA: Fix sound resume hang
  2012-12-18 15:59 [PATCH] HDA: Fix sound resume hang Daniel J Blueman
@ 2012-12-18 16:15 ` Takashi Iwai
  0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2012-12-18 16:15 UTC (permalink / raw)
  To: Daniel J Blueman; +Cc: Linux Kernel

At Tue, 18 Dec 2012 23:59:33 +0800,
Daniel J Blueman wrote:
> 
> Resuming a switcheroo'd HDA controller hangs since the completion
> is one-shot (thus works the first time). Fix by using completions
> that explictly need rearming, so remain fired before.
> 
> Signed-off-by: Daniel J Blueman <daniel@quora.org>

Oops, sorry, this was a forgotten scenario.
This isn't a perfect fix but easy enough and would work practically,
so I applied it now.  Thanks.


Takashi


> ---
>  sound/pci/hda/hda_intel.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index 22ecadc..e12b939 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -2856,7 +2856,7 @@ static int azx_free(struct azx *chip)
>  	azx_notifier_unregister(chip);
>  
>  	chip->init_failed = 1; /* to be sure */
> -	complete(&chip->probe_wait);
> +	complete_all(&chip->probe_wait);
>  
>  	if (use_vga_switcheroo(chip)) {
>  		if (chip->disabled && chip->bus)
> @@ -3482,7 +3482,7 @@ static int __devinit azx_probe(struct pci_dev *pci,
>  		pm_runtime_put_noidle(&pci->dev);
>  
>  	dev++;
> -	complete(&chip->probe_wait);
> +	complete_all(&chip->probe_wait);
>  	return 0;
>  
>  out_free:
> -- 
> 1.7.10.4
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-12-18 16:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-18 15:59 [PATCH] HDA: Fix sound resume hang Daniel J Blueman
2012-12-18 16:15 ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®