added new nv.setting called force_ws. This setting enables you to force the driver to enable use of widescreen modes independant of connected monitors. Only use if you have a widescreen monitor that the driver currently refuses to use that way. non-ws screens might not like a ws mode...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17027 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen 2006-04-06 09:05:37 +00:00
parent 44e1f1f918
commit 8ab0ed494c
4 changed files with 11 additions and 6 deletions

View File

@ -4,7 +4,7 @@
Other authors:
Mark Watson,
Rudolf Cornelissen 10/2002-3/2006.
Rudolf Cornelissen 10/2002-4/2006.
*/
#define MODULE_BIT 0x00800000
@ -42,8 +42,8 @@ static status_t init_common(int the_fd) {
si->settings.logmask, si->settings.memory, si->settings.hardcursor, si->settings.usebios, si->settings.switchhead, si->settings.force_pci));
LOG(4,("init_common: dumprom %d, unhide_fw %d, pgm_panel %d, dma_acc %d, tv_output %d, vga_on_tv %d\n",
si->settings.dumprom, si->settings.unhide_fw, si->settings.pgm_panel, si->settings.dma_acc, si->settings.tv_output, si->settings.vga_on_tv));
LOG(4,("init_common: force_sync %d, gpu_clk %dMhz, ram_clk %dMhz\n",
si->settings.force_sync, si->settings.gpu_clk, si->settings.ram_clk));
LOG(4,("init_common: force_sync %d, gpu_clk %dMhz, ram_clk %dMhz, force_ws %d\n",
si->settings.force_sync, si->settings.gpu_clk, si->settings.ram_clk, si->settings.force_ws));
/*Check for R4.5.0 and if it is running, use work around*/
{

View File

@ -4,7 +4,7 @@
Other authors for NV driver:
Mark Watson,
Rudolf Cornelissen 9/2002-2/2006
Rudolf Cornelissen 9/2002-4/2006
*/
#define MODULE_BIT 0x00400000
@ -230,7 +230,8 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con
}
break;
default: /* at least one analog monitor is connected, or nothing detected at all */
if (target_aspect > 1.34)
/* (if forcing widescreen type was requested don't block mode) */
if ((target_aspect > 1.34) && !(si->settings.force_ws))
{
LOG(4, ("PROPOSEMODE: not all output devices can display widescreen modes, aborted.\n"));
return B_ERROR;

View File

@ -91,7 +91,7 @@ status_t nv_general_powerup()
{
status_t status;
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.77 running.\n"));
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.78 running.\n"));
/* log VBLANK INT usability status */
if (si->ps.int_assigned)

View File

@ -2407,6 +2407,8 @@ static void detect_panels()
/* determine panel aspect ratio */
si->ps.panel1_aspect =
(si->ps.p1_timing.h_display / ((float)si->ps.p1_timing.v_display));
/* force widescreen type if requested */
if (si->settings.force_ws) si->ps.panel1_aspect = 1.60;
/* horizontal timing */
si->ps.p1_timing.h_sync_start = (DACR(FP_HSYNC_S) & 0x0000ffff) + 1;
si->ps.p1_timing.h_sync_end = (DACR(FP_HSYNC_E) & 0x0000ffff) + 1;
@ -2431,6 +2433,8 @@ static void detect_panels()
/* determine panel aspect ratio */
si->ps.panel2_aspect =
(si->ps.p2_timing.h_display / ((float)si->ps.p2_timing.v_display));
/* force widescreen type if requested */
if (si->settings.force_ws) si->ps.panel2_aspect = 1.60;
/* horizontal timing */
si->ps.p2_timing.h_sync_start = (DAC2R(FP_HSYNC_S) & 0x0000ffff) + 1;
si->ps.p2_timing.h_sync_end = (DAC2R(FP_HSYNC_E) & 0x0000ffff) + 1;