From ff2b84c3d5c18d27d09a7b2ad2eb8c749defae64 Mon Sep 17 00:00:00 2001
From: Rudolf Cornelissen
Date: Mon, 23 Feb 2004 15:13:18 +0000
Subject: [PATCH] fixed most modes on FX5700! (updated PLL discriminator range)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6702 a95241bf-73f2-0310-859d-f6bbb57e9c96
---
src/add-ons/accelerants/nvidia/engine/nv_dac.c | 12 ++++++++++--
src/add-ons/accelerants/nvidia/engine/nv_dac2.c | 12 ++++++++++--
src/add-ons/accelerants/nvidia/engine/nv_general.c | 2 +-
.../kernel/drivers/graphics/nvidia/UPDATE.html | 5 +++--
4 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/src/add-ons/accelerants/nvidia/engine/nv_dac.c b/src/add-ons/accelerants/nvidia/engine/nv_dac.c
index eb72d371a4..f4c4850b0e 100644
--- a/src/add-ons/accelerants/nvidia/engine/nv_dac.c
+++ b/src/add-ons/accelerants/nvidia/engine/nv_dac.c
@@ -1,6 +1,6 @@
/* program the DAC */
/* Author:
- Rudolf Cornelissen 12/2003-1/2004
+ Rudolf Cornelissen 12/2003-2/2004
*/
#define MODULE_BIT 0x00010000
@@ -285,7 +285,15 @@ static status_t nv4_nv10_nv20_dac_pix_pll_find(
for (m = 7; m <= 14; m++)
{
/* check if phase-discriminator will be within operational limits */
- if (((si->ps.f_ref / m) < 1.0) || ((si->ps.f_ref / m) > 2.0)) continue;
+ //fixme: PLL calcs will be resetup/splitup/updated...
+ if (si->ps.card_type == NV36)
+ {
+ if (((si->ps.f_ref / m) < 3.0) || ((si->ps.f_ref / m) > 9.0)) continue;
+ }
+ else
+ {
+ if (((si->ps.f_ref / m) < 1.0) || ((si->ps.f_ref / m) > 2.0)) continue;
+ }
/* calculate VCO postscaler setting for current setup.. */
n = (int)(((f_vco * m) / si->ps.f_ref) + 0.5);
diff --git a/src/add-ons/accelerants/nvidia/engine/nv_dac2.c b/src/add-ons/accelerants/nvidia/engine/nv_dac2.c
index 73060532f2..230b2fd0d9 100644
--- a/src/add-ons/accelerants/nvidia/engine/nv_dac2.c
+++ b/src/add-ons/accelerants/nvidia/engine/nv_dac2.c
@@ -1,6 +1,6 @@
/* program the secondary DAC */
/* Author:
- Rudolf Cornelissen 12/2003-1/2004
+ Rudolf Cornelissen 12/2003-2/2004
*/
#define MODULE_BIT 0x00001000
@@ -286,7 +286,15 @@ static status_t nv10_nv20_dac2_pix_pll_find(
for (m = 7; m <= 14; m++)
{
/* check if phase-discriminator will be within operational limits */
- if (((si->ps.f_ref / m) < 1.0) || ((si->ps.f_ref / m) > 2.0)) continue;
+ //fixme: PLL calcs will be resetup/splitup/updated...
+ if (si->ps.card_type == NV36)
+ {
+ if (((si->ps.f_ref / m) < 3.0) || ((si->ps.f_ref / m) > 9.0)) continue;
+ }
+ else
+ {
+ if (((si->ps.f_ref / m) < 1.0) || ((si->ps.f_ref / m) > 2.0)) continue;
+ }
/* calculate VCO postscaler setting for current setup.. */
n = (int)(((f_vco * m) / si->ps.f_ref) + 0.5);
diff --git a/src/add-ons/accelerants/nvidia/engine/nv_general.c b/src/add-ons/accelerants/nvidia/engine/nv_general.c
index 9523117224..a73c36acd6 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.09-2 running.\n"));
+ LOG(1,("POWERUP: nVidia (open)BeOS Accelerant 0.09-3 running.\n"));
/* preset no laptop */
si->ps.laptop = false;
diff --git a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html
index fe4d3a11c9..8d22257ded 100644
--- a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html
+++ b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html
@@ -4,10 +4,11 @@
Changes done for each driverversion:
-head: nv_driver 0.09-2, (Rudolf)
+head: nv_driver 0.09-3, (Rudolf)
- Fixed NV11 trouble with repeating screen(s) on the right side of the monitor;
-
- Updated CRTC memory granularity code to work-around a hardware bug in older cards.
+
- Updated CRTC memory granularity code to work-around a hardware bug in older cards;
+
- Fixed most modes on GeForceFX 5700 cards: PLL discriminator restrictions updated.
nv_driver 0.08, (Rudolf)