From c0013f4f82f120eec2c5f10a5d656209dece0271 Mon Sep 17 00:00:00 2001
From: Rudolf Cornelissen
Date: Sat, 22 Oct 2005 09:57:43 +0000
Subject: [PATCH] added support for those two new nv.settings options. Updated
doc (partly)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14469 a95241bf-73f2-0310-859d-f6bbb57e9c96
---
.../drivers/graphics/nvidia/UPDATE.html | 3 ++-
.../kernel/drivers/graphics/nvidia/driver.c | 7 +++++++
.../drivers/graphics/nvidia/nv.settings | 19 +++++++++++--------
3 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html
index bca6a912c0..2a86a37105 100644
--- a/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html
+++ b/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html
@@ -4,11 +4,12 @@
Changes done for each driverversion:
-head (SVN 0.57, Rudolf)
+head (SVN 0.58, Rudolf)
- Added capability to driver to run without an INT assigned. Driver will now automatically disable the 'Sync_to_Retrace' function if no INT was assigned instead of not loading/running at all;
- Fixed PLL reference recognition (used for refreshrate calculations) and dualhead detection for a number of 'newer' cards: most notably for a lot of GeForce 6200 types! Code is rewritten so it's much less breakable when new cards are added to the supported list in the future;
- Added TVout support for Brooktree BT868/BT869 and Conexant CX25870/CX25871 TV encoders: NTSC and PAL 640x480 and 800x600 Desktop modes are supported, NTSC VCD 640x480 and DVD 720x480 Video modes are supported, PAL VCD 768x576 and DVD 720x576 Video modes are supported. Singlehead cards should work perfectly while dualhead cards only display a testimage on TV in all modes for now. Still in progress...
+
- Added 'force TV output signal type' (called tv_output) to nv.settings: Now you can select Y/C or CVBS output manually in case autodetection fails for your TVset. That might happen in case the TV manufacturor didn't adhere to the impedance specs that exist for these signals.
nv_driver 0.53 (Rudolf)
diff --git a/src/add-ons/kernel/drivers/graphics/nvidia/driver.c b/src/add-ons/kernel/drivers/graphics/nvidia/driver.c
index c67f8da03e..361ca8b04c 100644
--- a/src/add-ons/kernel/drivers/graphics/nvidia/driver.c
+++ b/src/add-ons/kernel/drivers/graphics/nvidia/driver.c
@@ -341,6 +341,7 @@ static nv_settings current_settings = { // see comments in nv.settings
// for accelerant
0x00000000, // logmask
0, // memory
+ 0, // tv_output
true, // usebios
true, // hardcursor
false, // switchhead
@@ -348,6 +349,7 @@ static nv_settings current_settings = { // see comments in nv.settings
false, // unhide_fw
true, // pgm_panel
true, // dma_acc
+ false, // vga_on_tv
};
static void dumprom (void *rom, uint32 size)
@@ -477,6 +479,10 @@ init_driver(void) {
value = strtoul (item, &end, 0);
if (*end == '\0') current_settings.memory = value;
+ item = get_driver_parameter (settings_handle, "tv_output", "0", "0");
+ value = strtoul (item, &end, 0);
+ if (*end == '\0') current_settings.tv_output = value;
+
current_settings.hardcursor = get_driver_boolean_parameter (settings_handle, "hardcursor", false, false);
current_settings.usebios = get_driver_boolean_parameter (settings_handle, "usebios", false, false);
current_settings.switchhead = get_driver_boolean_parameter (settings_handle, "switchhead", false, false);
@@ -484,6 +490,7 @@ init_driver(void) {
current_settings.unhide_fw = get_driver_boolean_parameter (settings_handle, "unhide_fw", false, false);
current_settings.pgm_panel = get_driver_boolean_parameter (settings_handle, "pgm_panel", false, false);
current_settings.dma_acc = get_driver_boolean_parameter (settings_handle, "dma_acc", false, false);
+ current_settings.dma_acc = get_driver_boolean_parameter (settings_handle, "vga_on_tv", false, false);
unload_driver_settings (settings_handle);
}
diff --git a/src/add-ons/kernel/drivers/graphics/nvidia/nv.settings b/src/add-ons/kernel/drivers/graphics/nvidia/nv.settings
index 15d67dfd95..133b59caaf 100644
--- a/src/add-ons/kernel/drivers/graphics/nvidia/nv.settings
+++ b/src/add-ons/kernel/drivers/graphics/nvidia/nv.settings
@@ -8,20 +8,23 @@
# accelerant "nv.accelerant"
# nv.accelerant parameters
-usebios true # if true rely on bios to coldstart the card
-#memory 2 # in MB, override builtin memory size detection
-hardcursor true # if true use on-chip cursor capabilities
-#logmask 0x00000000 # nothing logged, is default
-#logmask 0x08000604 # log overlay use in full
-#logmask 0xffffffff # log everything
-dumprom false # dump bios rom in ~/nv.rom
-switchhead false # switch head assignment (dualhead cards only)
+usebios true # if true rely on bios to coldstart the card
+#memory 2 # in MB, override builtin memory size detection
+hardcursor true # if true use on-chip cursor capabilities
+#logmask 0x00000000 # nothing logged, is default
+#logmask 0x08000604 # log overlay use in full
+#logmask 0xffffffff # log everything
+dumprom false # dump bios rom in ~/nv.rom
+switchhead false # switch head assignment (dualhead cards only)
force_pci false # block AGP mode use if true (AGP cards only)
dma_acc true # if true enable DMA cmd fetching for 2D acc (instead of using PIO)
+#tv_output 0 # disabled or 0 = autodetect, 1 = Y/C (and CVBS if possible), 2 = CVBS
# WARNING: tweak alert! modify stuff below on your own risk...
unhide_fw false # if true 'unhide' cards AGP fastwrite support on cards that hide it
pgm_panel true # if false don't program DVI and laptop panel pixelclocks (refreshrates)
+vga_on_tv false # if true enables VGA output on the head outputting to TV
+
#--------- that's all.