lkml.org 
[lkml]   [1998]   [Mar]   [29]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateSun, 29 Mar 1998 00:19:45 -0500 (EST)
From"Andrew J. Anderson" <>
Subjectcorrected GUS memory patch
Oops, just looked at what I sent and noticed that it wasn't quite right.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Andrew Anderson                       http://amelia.db.erau.edu/~andrew/
               if(!(family_tree=fork())){redneck=TRUE;}--- linux/drivers/sound/gus_wave.c	Thu Feb 19 17:46:14 1998
+++ linux-2.1.91/drivers/sound/gus_wave.c	Sat Mar 28 15:07:23 1998
@@ -864,17 +864,17 @@
  * SIMM banks and configures the DRAM address decode logic accordingly.
  */
 
-/*
- *    Place the chip into enhanced mode
- */
+	/* Place the chip into enhanced mode */
 	gus_write8(0x19, gus_read8(0x19) | 0x01);
-	gus_write8(0x53, gus_look8(0x53) & ~0x02);	/* Select DRAM I/O access */
+
+	/* DRAM I/O cycles selected */
+	gus_write8(0x53, gus_look8(0x53) & ~0x02);
 
 /*
  * Set memory configuration to 4 DRAM banks of 4M in each (16M total).
  */
 
-	gus_write16(0x52, (gus_look16(0x52) & 0xfff0) | 0x000c);
+	gus_write16(0x52, (gus_look16(0x52) & 0xff10) | 0x004c);
 
 /*
  * Perform the DRAM size detection for each bank individually.
@@ -932,11 +932,11 @@
 
 	/*
 	 * Now we know how much DRAM there is in each bank. The next step is
-	 * to find a DRAM size encoding (0 to 12) which is best for the combination
-	 * we have.
+	 * to find a DRAM size encoding (0 to 12) which is best for the 
+	 * combination we have.
 	 *
-	 * First try if any of the possible alternatives matches exactly the amount
-	 * of memory we have.
+	 * First try if any of the possible alternatives matches exactly the 
+	 * amount of memory we have.
 	 */
 
 	for (i = 0; bits == -1 && i < 13; i++)
@@ -969,8 +969,8 @@
 	}
 	/*
 	 * The last resort is to search for a combination where the last bank is
-	 * smaller than the actual SIMM. This leaves some memory in the last bank
-	 * unused but doesn't leave holes in the DRAM address space.
+	 * smaller than the actual SIMM. This leaves some memory in the last 
+	 * bank unused but doesn't leave holes in the DRAM address space.
 	 */
 	if (bits == -1)		/* No luck yet */
 	{
@@ -991,7 +991,14 @@
 	if (bits == -1)
 	{
 		printk(KERN_INFO "Interwave: Can't find working DRAM encoding.\n");
-		printk(KERN_INFO "Interwave: Defaulting to 256k. Try reordering SIMMS.\n");
- 		bits = 0;
+		printk(KERN_INFO "Interwave: Defaulting to 16M. Try reordering SIMMS.\n");
+		/*
+		 * According to the Interwave SDK, if a memory configuration
+		 * other than what is listed in the manual is implemented,
+		 * then set the memory to the full addressing span where
+		 * LMCFI[3:0] = 0x0c.
+		 */
+		bits = 12;
 	}
 	DDB(printk("Interwave: Selecting DRAM addressing mode %d\n", bits));
\
 
 \ /
  Last update: 2005-03-22 12:41    [W:1.404 / U:0.130 seconds]
©2003-2008 Jasper Spaans