patch-2.4.19 linux-2.4.19/drivers/sound/trident.c
Next file: linux-2.4.19/drivers/sound/trident.h
Previous file: linux-2.4.19/drivers/sound/swarm_cs4297a.c
Back to the patch index
Back to the overall index
- Lines: 42
- Date:
Fri Aug 2 17:39:44 2002
- Orig file:
linux-2.4.18/drivers/sound/trident.c
- Orig date:
Mon Feb 25 11:38:07 2002
diff -urN linux-2.4.18/drivers/sound/trident.c linux-2.4.19/drivers/sound/trident.c
@@ -2447,7 +2447,7 @@
if (dmabuf->mapped)
dmabuf->count &= dmabuf->fragsize-1;
spin_unlock_irqrestore(&state->card->lock, flags);
- ret = copy_to_user((void *)arg, &cinfo, sizeof(cinfo));
+ ret = copy_to_user((void *)arg, &cinfo, sizeof(cinfo))?-EFAULT:0;
break;
case SNDCTL_DSP_GETOPTR:
@@ -3297,11 +3297,18 @@
ali_ac97_write(card->ac97_codec[0], 0x02, 8080);
ali_ac97_write(card->ac97_codec[0], 0x36, 0);
ali_ac97_write(card->ac97_codec[0], 0x38, 0);
- ali_ac97_write(card->ac97_codec[1], 0x36, 0);
- ali_ac97_write(card->ac97_codec[1], 0x38, 0);
- ali_ac97_write(card->ac97_codec[1], 0x02, 0x0606);
- ali_ac97_write(card->ac97_codec[1], 0x18, 0x0303);
- ali_ac97_write(card->ac97_codec[1], 0x74, 0x3);
+ /*
+ * On a board with a single codec you won't get the
+ * surround. On other boards configure it.
+ */
+ if(card->ac97_codec[1]!=NULL)
+ {
+ ali_ac97_write(card->ac97_codec[1], 0x36, 0);
+ ali_ac97_write(card->ac97_codec[1], 0x38, 0);
+ ali_ac97_write(card->ac97_codec[1], 0x02, 0x0606);
+ ali_ac97_write(card->ac97_codec[1], 0x18, 0x0303);
+ ali_ac97_write(card->ac97_codec[1], 0x74, 0x3);
+ }
return 1;
}
}
@@ -3813,7 +3820,7 @@
pci_write_config_dword(pci_dev, 0x44, dwVal & 0xfffbffff);
udelay(5000);
- wCount = 200;
+ wCount = 2000;
while(wCount--) {
wReg = ali_ac97_get(card, 0, AC97_POWER_CONTROL);
if((wReg & 0x000f) == 0x000f)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)