patch-2.2.18 linux/drivers/sound/i810_audio.c

Next file: linux/drivers/sound/maestro.c
Previous file: linux/drivers/sound/esssolo1.c
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/drivers/sound/i810_audio.c linux/drivers/sound/i810_audio.c
@@ -1591,6 +1591,7 @@
 	struct i810_card *card = dev->private_data;
 	int count = 1000;
 
+#if 0
 	if (card->pci_id != INTEL440MX) {
 		while(--count && (inl(card->iobase + GLOB_STA) & 0x0100))
 			udelay(10);
@@ -1598,6 +1599,7 @@
 			printk("i810_audio: AC97 access failed.\n");
 		count=1000;
 	}
+#endif
 	while(--count && (inb(card->iobase + CAS) & 1)) 
 		udelay(10);
 	if(!count)
@@ -1610,6 +1612,7 @@
 	struct i810_card *card = dev->private_data;
 	int count = 1000;
 
+#if 0
 	if (card->pci_id != INTEL440MX) {
 		while(--count && (inl(card->iobase + GLOB_STA) & 0x0100))
 			udelay(10);
@@ -1618,6 +1621,7 @@
 
 		count=1000;
 	}
+#endif	
 	while(--count && (inb(card->iobase + CAS) & 1)) 
 		udelay(10);
 	if(!count)
@@ -1679,9 +1683,18 @@
 	struct ac97_codec *codec;
 	u16 eid;
 	int i=0;
+	u32 reg;
 
-
-	outl(6 , card->iobase + GLOB_CNT);
+	reg = inl(card->iobase + GLOB_CNT);
+	
+	if((reg&2)==0)	/* Cold required */
+		reg|=2;
+	else
+		reg|=4;	/* Warm */
+		
+	reg&=~8;	/* ACLink on */
+	outl(reg , card->iobase + GLOB_CNT);
+	
 	while(i<10)
 	{
 		if((inl(card->iobase+GLOB_CNT)&4)==0)

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)