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

Modified Files:
        cs4281.c es1968.c 
Log Message:
clean up PM codes

Index: cs4281.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/cs4281.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- cs4281.c    8 May 2003 08:32:35 -0000       1.40
+++ cs4281.c    18 Jun 2003 11:07:21 -0000      1.41
@@ -530,36 +530,27 @@
  *  common I/O routines
  */
 
-static void snd_cs4281_delay(unsigned int delay, int can_schedule)
+static void snd_cs4281_delay(unsigned int delay)
 {
        if (delay > 999) {
-               if (can_schedule) {
-                       unsigned long end_time;
-                       delay = (delay * HZ) / 1000000;
-                       if (delay < 1)
-                               delay = 1;
-                       end_time = jiffies + delay;
-                       do {
-                               set_current_state(TASK_UNINTERRUPTIBLE);
-                               schedule_timeout(1);
-                       } while (time_after_eq(end_time, jiffies));
-               } else {
-                       delay += 999;
-                       delay /= 1000;
-                       mdelay(delay > 0 ? delay : 1);
-               }
+               unsigned long end_time;
+               delay = (delay * HZ) / 1000000;
+               if (delay < 1)
+                       delay = 1;
+               end_time = jiffies + delay;
+               do {
+                       set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(1);
+               } while (time_after_eq(end_time, jiffies));
        } else {
                udelay(delay);
        }
 }
 
-inline static void snd_cs4281_delay_long(int can_schedule)
+inline static void snd_cs4281_delay_long(void)
 {
-       if (can_schedule) {
-               set_current_state(TASK_UNINTERRUPTIBLE);
-               schedule_timeout(1);
-       } else
-               mdelay(10);
+       set_current_state(TASK_UNINTERRUPTIBLE);
+       schedule_timeout(1);
 }
 
 static inline void snd_cs4281_pokeBA0(cs4281_t *chip, unsigned long offset, unsigned 
int val)
@@ -1411,7 +1402,7 @@
        return snd_cs4281_free(chip);
 }
 
-static int snd_cs4281_chip_init(cs4281_t *chip, int can_schedule); /* defined below */
+static int snd_cs4281_chip_init(cs4281_t *chip); /* defined below */
 #ifdef CONFIG_PM
 static int snd_cs4281_set_power_state(snd_card_t *card, unsigned int power_state);
 #endif
@@ -1471,7 +1462,7 @@
                return -ENOMEM;
        }
        
-       tmp = snd_cs4281_chip_init(chip, 1);
+       tmp = snd_cs4281_chip_init(chip);
        if (tmp) {
                snd_cs4281_free(chip);
                return tmp;
@@ -1493,7 +1484,7 @@
        return 0;
 }
 
-static int snd_cs4281_chip_init(cs4281_t *chip, int can_schedule)
+static int snd_cs4281_chip_init(cs4281_t *chip)
 {
        unsigned int tmp;
        int timeout;
@@ -1547,7 +1538,7 @@
        snd_cs4281_pokeBA0(chip, BA0_SPMC, 0);
        udelay(50);
        snd_cs4281_pokeBA0(chip, BA0_SPMC, BA0_SPMC_RSTN);
-       snd_cs4281_delay(50000, can_schedule);
+       snd_cs4281_delay(50000);
 
        if (chip->dual_codec)
                snd_cs4281_pokeBA0(chip, BA0_SPMC, BA0_SPMC_RSTN | BA0_SPMC_ASDI2E);
@@ -1563,7 +1554,7 @@
         *  Start the DLL Clock logic.
         */
        snd_cs4281_pokeBA0(chip, BA0_CLKCR1, BA0_CLKCR1_DLLP);
-       snd_cs4281_delay(50000, can_schedule);
+       snd_cs4281_delay(50000);
        snd_cs4281_pokeBA0(chip, BA0_CLKCR1, BA0_CLKCR1_SWCE | BA0_CLKCR1_DLLP);
 
        /*
@@ -1577,7 +1568,7 @@
                 */
                if (snd_cs4281_peekBA0(chip, BA0_CLKCR1) & BA0_CLKCR1_DLLRDY)
                        goto __ok0;
-               snd_cs4281_delay_long(can_schedule);
+               snd_cs4281_delay_long();
        } while (timeout-- > 0);
 
        snd_printk(KERN_ERR "DLLRDY not seen\n");
@@ -1603,7 +1594,7 @@
                 */
                if (snd_cs4281_peekBA0(chip, BA0_ACSTS) & BA0_ACSTS_CRDY)
                        goto __ok1;
-               snd_cs4281_delay_long(can_schedule);
+               snd_cs4281_delay_long();
        } while (timeout-- > 0);
 
        snd_printk(KERN_ERR "never read codec ready from AC'97 (0x%x)\n", 
snd_cs4281_peekBA0(chip, BA0_ACSTS));
@@ -1615,7 +1606,7 @@
                do {
                        if (snd_cs4281_peekBA0(chip, BA0_ACSTS2) & BA0_ACSTS_CRDY)
                                goto __codec2_ok;
-                       snd_cs4281_delay_long(can_schedule);
+                       snd_cs4281_delay_long();
                } while (timeout-- > 0);
                snd_printk(KERN_INFO "secondary codec doesn't respond. disable 
it...\n");
                chip->dual_codec = 0;
@@ -1642,7 +1633,7 @@
                 */
                 if ((snd_cs4281_peekBA0(chip, BA0_ACISV) & (BA0_ACISV_SLV(3) | 
BA0_ACISV_SLV(4))) == (BA0_ACISV_SLV(3) | BA0_ACISV_SLV(4)))
                         goto __ok2;
-               snd_cs4281_delay_long(can_schedule);
+               snd_cs4281_delay_long();
        } while (timeout-- > 0);
 
        snd_printk(KERN_ERR "never read ISV3 and ISV4 from AC'97\n");
@@ -2109,7 +2100,7 @@
        ulCLK |= CLKCR1_CKRA;
        snd_cs4281_pokeBA0(chip, BA0_CLKCR1, ulCLK);
 
-       snd_cs4281_chip_init(chip, 0);
+       snd_cs4281_chip_init(chip);
 
        /* restore the status registers */
        for (i = 0; i < number_of(saved_regs); i++)
@@ -2128,7 +2119,6 @@
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
 }
 
-#ifndef PCI_OLD_SUSPEND
 static int snd_cs4281_suspend(struct pci_dev *dev, u32 state)
 {
        cs4281_t *chip = snd_magic_cast(cs4281_t, pci_get_drvdata(dev), return -ENXIO);
@@ -2141,18 +2131,6 @@
        cs4281_resume(chip);
        return 0;
 }
-#else
-static void snd_cs4281_suspend(struct pci_dev *dev)
-{
-       cs4281_t *chip = snd_magic_cast(cs4281_t, pci_get_drvdata(dev), return);
-       cs4281_suspend(chip);
-}
-static void snd_cs4281_resume(struct pci_dev *dev)
-{
-       cs4281_t *chip = snd_magic_cast(cs4281_t, pci_get_drvdata(dev), return);
-       cs4281_resume(chip);
-}
-#endif
 
 /* callback */
 static int snd_cs4281_set_power_state(snd_card_t *card, unsigned int power_state)

Index: es1968.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/es1968.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- es1968.c    8 May 2003 08:32:35 -0000       1.40
+++ es1968.c    18 Jun 2003 11:07:21 -0000      1.41
@@ -654,6 +654,11 @@
        return result;
 }
 
+#define big_mdelay(msec) do {\
+       set_current_state(TASK_UNINTERRUPTIBLE);\
+       schedule_timeout(((msec) * HZ + 999) / 1000);\
+} while (0)
+       
 /* Wait for the codec bus to be free */
 static int snd_es1968_ac97_wait(es1968_t *chip)
 {
@@ -2109,7 +2114,7 @@
        outw(0x0000, ioaddr + 0x60);    /* write 0 to gpio 0 */
        udelay(20);
        outw(0x0001, ioaddr + 0x60);    /* write 1 to gpio 1 */
-       mdelay(20);
+       big_mdelay(20);
 
        outw(save_68 | 0x1, ioaddr + 0x68);     /* now restore .. */
        outw((inw(ioaddr + 0x38) & 0xfffc) | 0x1, ioaddr + 0x38);
@@ -2125,7 +2130,7 @@
        outw(0x0001, ioaddr + 0x60);    /* write 1 to gpio */
        udelay(20);
        outw(0x0009, ioaddr + 0x60);    /* write 9 to gpio */
-       mdelay(500);            /* .. ouch.. */
+       big_mdelay(500);
        //outw(inw(ioaddr + 0x38) & 0xfffc, ioaddr + 0x38);
        outw(inw(ioaddr + 0x3a) & 0xfffc, ioaddr + 0x3a);
        outw(inw(ioaddr + 0x3c) & 0xfffc, ioaddr + 0x3c);
@@ -2151,7 +2156,7 @@
 
                if (w > 10000) {
                        outb(inb(ioaddr + 0x37) | 0x08, ioaddr + 0x37); /* do a 
software reset */
-                       mdelay(500);    /* oh my.. */
+                       big_mdelay(500);        /* oh my.. */
                        outb(inb(ioaddr + 0x37) & ~0x08,
                                ioaddr + 0x37);
                        udelay(1);
@@ -2459,10 +2464,10 @@
        /* start timer again */
        if (atomic_read(&chip->bobclient))
                snd_es1968_bob_start(chip);
+
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
 }
 
-#ifndef PCI_OLD_SUSPEND
 static int snd_es1968_suspend(struct pci_dev *dev, u32 state)
 {
        es1968_t *chip = snd_magic_cast(es1968_t, pci_get_drvdata(dev), return -ENXIO);
@@ -2475,18 +2480,6 @@
        es1968_resume(chip);
        return 0;
 }
-#else
-static void snd_es1968_suspend(struct pci_dev *dev)
-{
-       es1968_t *chip = snd_magic_cast(es1968_t, pci_get_drvdata(dev), return);
-       es1968_suspend(chip);
-}
-static void snd_es1968_resume(struct pci_dev *dev)
-{
-       es1968_t *chip = snd_magic_cast(es1968_t, pci_get_drvdata(dev), return);
-       es1968_resume(chip);
-}
-#endif
 
 /* callback */
 static int snd_es1968_set_power_state(snd_card_t *card, unsigned int power_state)



-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to