diff --git a/src/add-ons/accelerants/nvidia/engine/nv_general.c b/src/add-ons/accelerants/nvidia/engine/nv_general.c index c967440680..814e00c404 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_general.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_general.c @@ -92,7 +92,7 @@ status_t nv_general_powerup() { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 0.97 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 0.98 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) diff --git a/src/add-ons/accelerants/nvidia/engine/nv_info.c b/src/add-ons/accelerants/nvidia/engine/nv_info.c index ce76e45c1a..1431a46bd4 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_info.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_info.c @@ -3233,6 +3233,7 @@ static void getRAMsize_arch_nv10_20_30_40(void) { uint32 dev_manID = CFGR(DEVID); uint32 strapinfo = NV_REG32(NV32_NV10STRAPINFO); + uint32 mem_size; switch (dev_manID) { @@ -3243,44 +3244,19 @@ static void getRAMsize_arch_nv10_20_30_40(void) LOG(8,("INFO: nVidia GPU with UMA detected\n")); break; default: + LOG(8,("INFO: kerneldriver mapped %3.3fMb framebuffer memory\n", + (si->ps.memory_size / (1024.0 * 1024.0)))); LOG(8,("INFO: (Memory detection) Strapinfo value is: $%08x\n", strapinfo)); - switch ((strapinfo & 0x3ff00000) >> 20) - { - case 2: - si->ps.memory_size = 2 * 1024 * 1024; - break; - case 4: - si->ps.memory_size = 4 * 1024 * 1024; - break; - case 8: - si->ps.memory_size = 8 * 1024 * 1024; - break; - case 16: - si->ps.memory_size = 16 * 1024 * 1024; - break; - case 32: - si->ps.memory_size = 32 * 1024 * 1024; - break; - case 64: - si->ps.memory_size = 64 * 1024 * 1024; - break; - case 128: - si->ps.memory_size = 128 * 1024 * 1024; - break; - case 256: - si->ps.memory_size = 256 * 1024 * 1024; - break; - case 512: - si->ps.memory_size = 512 * 1024 * 1024; - break; - default: - si->ps.memory_size = 16 * 1024 * 1024; + mem_size = (strapinfo & 0x3ff00000); + if (!mem_size) { + mem_size = 16 * 1024 * 1024; LOG(8,("INFO: NV10/20/30 architecture chip with unknown RAM amount detected;\n")); LOG(8,("INFO: Setting 16Mb\n")); - break; } + /* don't attempt to adress memory not mapped by the kerneldriver */ + if (si->ps.memory_size > mem_size) si->ps.memory_size = mem_size; } } diff --git a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html index a37f0b9c5a..19d65c65bf 100644 --- a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html +++ b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html @@ -4,7 +4,7 @@

Changes done for each driverversion:

-

head (SVN 0.97, Rudolf)

+

head (SVN 0.98, Rudolf)

nv_driver 0.80 (Rudolf)