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

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

diff -u --recursive --new-file v2.4.4/linux/drivers/sound/i810_audio.c linux/drivers/sound/i810_audio.c
@@ -96,6 +96,9 @@
 #ifndef PCI_DEVICE_ID_INTEL_ICH2
 #define PCI_DEVICE_ID_INTEL_ICH2	0x2445
 #endif
+#ifndef PCI_DEVICE_ID_INTEL_ICH3
+#define PCI_DEVICE_ID_INTEL_ICH3	0x2485
+#endif
 #ifndef PCI_DEVICE_ID_INTEL_440MX
 #define PCI_DEVICE_ID_INTEL_440MX	0x7195
 #endif
@@ -210,13 +213,15 @@
 	ICH82901AB,
 	INTEL440MX,
 	INTELICH2,
+	INTELICH3
 };
 
 static char * card_names[] = {
 	"Intel ICH 82801AA",
 	"Intel ICH 82901AB",
 	"Intel 440MX",
-	"Intel ICH2"
+	"Intel ICH2",
+	"Intel ICH3"
 };
 
 static struct pci_device_id i810_pci_tbl [] __initdata = {
@@ -228,6 +233,8 @@
 	 PCI_ANY_ID, PCI_ANY_ID, 0, 0, INTEL440MX},
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH2,
 	 PCI_ANY_ID, PCI_ANY_ID, 0, 0, INTELICH2},
+	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH3,
+	 PCI_ANY_ID, PCI_ANY_ID, 0, 0, INTELICH3},
 	{0,}
 };
 
@@ -1520,7 +1527,9 @@
 			val = 16384;
 		if (val > 65536)
 			val = 65536;
-		dmabuf->ossfragsize = val/dmabuf->ossmaxfrags;
+		dmabuf->ossmaxfrags = val/dmabuf->ossfragsize;
+		if(dmabuf->ossmaxfrags<4)
+			dmabuf->ossfragsize = val/4;
 		dmabuf->ready = 0;
 #ifdef DEBUG
 		printk("SNDCTL_DSP_SETFRAGMENT 0x%x, %d, %d\n", val,

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