![]() | |||||||||||||
Messages in this thread Patch in this message |
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 | |||||||||||||