Update of /cvsroot/alsa/alsa-kernel/pci
In directory sc8-pr-cvs1:/tmp/cvs-serv2662/pci

Modified Files:
        cs4281.c es1968.c intel8x0.c maestro3.c 
Log Message:
[PATCH: power-lock-fix.dif]

removed snd_power_lock/unlock from suspend/resume callbacks since
this will invoke sleep eventually.
snd_power_lock/unlock are called inside the control pm ioctl
globally, instead.



Index: cs4281.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/cs4281.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- cs4281.c    19 Dec 2002 16:26:30 -0000      1.33
+++ cs4281.c    7 Jan 2003 10:25:27 -0000       1.34
@@ -2097,9 +2097,8 @@
        u32 ulCLK;
        int i;
 
-       snd_power_lock(card);
        if (card->power_state == SNDRV_CTL_POWER_D3hot)
-               goto __skip;
+               return;
 
        snd_pcm_suspend_all(chip->pcm);
 
@@ -2132,8 +2131,6 @@
        snd_cs4281_pokeBA0(chip, BA0_CLKCR1, ulCLK);
 
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
- __skip:
-       snd_power_unlock(card);
 }
 
 static void cs4281_resume(cs4281_t *chip)
@@ -2142,9 +2139,8 @@
        int i;
        u32 ulCLK;
 
-       snd_power_lock(card);
        if (card->power_state == SNDRV_CTL_POWER_D0)
-               goto __skip;
+               return;
 
        pci_enable_device(chip->pci);
 
@@ -2169,8 +2165,6 @@
        snd_cs4281_pokeBA0(chip, BA0_CLKCR1, ulCLK);
 
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-      __skip:
-       snd_power_unlock(card);
 }
 
 #ifndef PCI_OLD_SUSPEND

Index: es1968.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/es1968.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- es1968.c    11 Dec 2002 15:37:10 -0000      1.29
+++ es1968.c    7 Jan 2003 10:25:27 -0000       1.30
@@ -2420,15 +2420,12 @@
        if (! chip->do_pm)
                return;
 
-       snd_power_lock(card);
        if (card->power_state == SNDRV_CTL_POWER_D3hot)
-               goto __skip;
+               return;
 
        snd_pcm_suspend_all(chip->pcm);
        snd_es1968_bob_stop(chip);
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
-      __skip:
-       snd_power_unlock(card);
 }
 
 static void es1968_resume(es1968_t *chip)
@@ -2438,9 +2435,8 @@
        if (! chip->do_pm)
                return;
 
-       snd_power_lock(card);
        if (card->power_state == SNDRV_CTL_POWER_D0)
-               goto __skip;
+               return;
 
        /* restore all our config */
        pci_enable_device(chip->pci);
@@ -2459,8 +2455,6 @@
        if (atomic_read(&chip->bobclient))
                snd_es1968_bob_start(chip);
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-      __skip:
-       snd_power_unlock(card);
 }
 
 #ifndef PCI_OLD_SUSPEND

Index: intel8x0.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/intel8x0.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- intel8x0.c  18 Dec 2002 10:49:36 -0000      1.53
+++ intel8x0.c  7 Jan 2003 10:25:27 -0000       1.54
@@ -1900,17 +1900,15 @@
 {
        snd_card_t *card = chip->card;
 
-       chip->in_suspend = 1;
-       snd_power_lock(card);
-       if (card->power_state == SNDRV_CTL_POWER_D3hot)
-               goto __skip;
+       if (chip->in_suspend ||
+           card->power_state == SNDRV_CTL_POWER_D3hot)
+               return;
 
+       chip->in_suspend = 1;
        snd_pcm_suspend_all(chip->pcm);
        if (chip->pcm_mic)
                snd_pcm_suspend_all(chip->pcm_mic);
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
-      __skip:
-       snd_power_unlock(card);
 }
 
 static void intel8x0_resume(intel8x0_t *chip)
@@ -1918,9 +1916,9 @@
        snd_card_t *card = chip->card;
        int i;
 
-       snd_power_lock(card);
-       if (card->power_state == SNDRV_CTL_POWER_D0)
-               goto __skip;
+       if (! chip->in_suspend ||
+           card->power_state == SNDRV_CTL_POWER_D0)
+               return;
 
        pci_enable_device(chip->pci);
        snd_intel8x0_chip_init(chip);
@@ -1930,8 +1928,6 @@
 
        chip->in_suspend = 0;
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-      __skip:
-       snd_power_unlock(card);
 }
 
 #ifndef PCI_OLD_SUSPEND

Index: maestro3.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/maestro3.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- maestro3.c  21 Oct 2002 18:28:24 -0000      1.28
+++ maestro3.c  7 Jan 2003 10:25:27 -0000       1.29
@@ -2377,9 +2377,8 @@
        snd_card_t *card = chip->card;
        int i, index;
 
-       snd_power_lock(card);
        if (card->power_state == SNDRV_CTL_POWER_D3hot)
-               goto __skip;
+               return;
 
        snd_pcm_suspend_all(chip->pcm);
 
@@ -2400,8 +2399,6 @@
        snd_m3_outw(chip, 0xffff, 0x54);
        snd_m3_outw(chip, 0xffff, 0x56);
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
-      __skip:
-       snd_power_unlock(card);
 }
 
 static void m3_resume(m3_t *chip)
@@ -2409,9 +2406,8 @@
        snd_card_t *card = chip->card;
        int i, index;
 
-       snd_power_lock(card);
        if (card->power_state == SNDRV_CTL_POWER_D0)
-               goto __skip;
+               return;
 
        /* first lets just bring everything back. .*/
        snd_m3_outw(chip, 0, 0x54);
@@ -2442,8 +2438,6 @@
        snd_m3_amp_enable(chip, 1);
 
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-      __skip:
-       snd_power_unlock(card);
 }
 
 #ifndef PCI_OLD_SUSPEND



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to