From 7a0db1a3bc258439aff557868b5fa7ec5abc3ce7 Mon Sep 17 00:00:00 2001 From: Rudolf Cornelissen Date: Thu, 5 Feb 2004 16:26:47 +0000 Subject: [PATCH] fixed NV11 repeating screens trouble git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6506 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../accelerants/nvidia/engine/nv_general.c | 24 +++++++++++++++---- .../drivers/graphics/nvidia/UPDATE.html | 4 ++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/add-ons/accelerants/nvidia/engine/nv_general.c b/src/add-ons/accelerants/nvidia/engine/nv_general.c index b08e7ade26..8552997ed5 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_general.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_general.c @@ -80,7 +80,7 @@ status_t nv_general_powerup() { status_t status; - LOG(1,("POWERUP: nVidia (open)BeOS Accelerant 0.08-final running.\n")); + LOG(1,("POWERUP: nVidia (open)BeOS Accelerant 0.09-1 running.\n")); /* preset no laptop */ si->ps.laptop = false; @@ -891,8 +891,15 @@ status_t nv_general_bios_to_powergraphics() /* enable 'enhanced' mode on primary head: */ /* enable access to primary head */ if (si->ps.secondary_head) CRTCW(OWNER, 0x00); - /* don't doublebuffer CRTC access: set programmed values immediately; - * keep fine pitched CRTC granularity on > NV4 cards (b2 = 0) */ + /* note: 'BUFFER' is a non-standard register in behaviour(!) on most + * NV11's like the GeForce2 MX200, while the MX400 and non-NV11 cards + * behave normally. + * Also readback is not nessesarily what was written before! + * + * Double-write action needed on those strange NV11 cards: */ + /* RESET: don't doublebuffer CRTC access: set programmed values immediately... */ + CRTCW(BUFFER, 0xff); + /* ... and keep fine pitched CRTC granularity on > NV4 cards (b2 = 0) */ CRTCW(BUFFER, 0xfb); /* select VGA mode (old VGA register) */ CRTCW(MODECTL, 0xc3); @@ -917,8 +924,15 @@ status_t nv_general_bios_to_powergraphics() CRTC2W(OWNER, 0x03); /* select colormode CRTC2 registers base adresses */ NV_REG8(NV8_MISCW) = 0xcb; - /* don't doublebuffer CRTC2 access: set programmed values immediately; - * keep fine pitched CRTC2 granularity (b2 = 0) */ + /* note: 'BUFFER' is a non-standard register in behaviour(!) on most + * NV11's like the GeForce2 MX200, while the MX400 and non-NV11 cards + * behave normally. + * Also readback is not nessesarily what was written before! + * + * Double-write action needed on those strange NV11 cards: */ + /* RESET: don't doublebuffer CRTC2 access: set programmed values immediately... */ + CRTC2W(BUFFER, 0xff); + /* ... and keep fine pitched CRTC2 granularity (b2 = 0) */ CRTC2W(BUFFER, 0xfb); /* select VGA mode (old VGA register) */ CRTC2W(MODECTL, 0xc3); diff --git a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html index 4696bf16c2..de7d4e4f49 100644 --- a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html +++ b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html @@ -4,6 +4,10 @@

Changes done for each driverversion:

+

head: nv_driver 0.09-1, (Rudolf)

+

nv_driver 0.08, (Rudolf)