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