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:
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Other authors:
|
Other authors:
|
||||||
Mark Watson,
|
Mark Watson,
|
||||||
Rudolf Cornelissen 10/2002-3/2006.
|
Rudolf Cornelissen 10/2002-4/2006.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00800000
|
#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));
|
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",
|
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));
|
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",
|
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_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*/
|
/*Check for R4.5.0 and if it is running, use work around*/
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Other authors for NV driver:
|
Other authors for NV driver:
|
||||||
Mark Watson,
|
Mark Watson,
|
||||||
Rudolf Cornelissen 9/2002-2/2006
|
Rudolf Cornelissen 9/2002-4/2006
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00400000
|
#define MODULE_BIT 0x00400000
|
||||||
@@ -230,7 +230,8 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: /* at least one analog monitor is connected, or nothing detected at all */
|
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"));
|
LOG(4, ("PROPOSEMODE: not all output devices can display widescreen modes, aborted.\n"));
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ status_t nv_general_powerup()
|
|||||||
{
|
{
|
||||||
status_t status;
|
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 */
|
/* log VBLANK INT usability status */
|
||||||
if (si->ps.int_assigned)
|
if (si->ps.int_assigned)
|
||||||
|
|||||||
@@ -2407,6 +2407,8 @@ static void detect_panels()
|
|||||||
/* determine panel aspect ratio */
|
/* determine panel aspect ratio */
|
||||||
si->ps.panel1_aspect =
|
si->ps.panel1_aspect =
|
||||||
(si->ps.p1_timing.h_display / ((float)si->ps.p1_timing.v_display));
|
(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 */
|
/* horizontal timing */
|
||||||
si->ps.p1_timing.h_sync_start = (DACR(FP_HSYNC_S) & 0x0000ffff) + 1;
|
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;
|
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 */
|
/* determine panel aspect ratio */
|
||||||
si->ps.panel2_aspect =
|
si->ps.panel2_aspect =
|
||||||
(si->ps.p2_timing.h_display / ((float)si->ps.p2_timing.v_display));
|
(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 */
|
/* horizontal timing */
|
||||||
si->ps.p2_timing.h_sync_start = (DAC2R(FP_HSYNC_S) & 0x0000ffff) + 1;
|
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;
|
si->ps.p2_timing.h_sync_end = (DAC2R(FP_HSYNC_E) & 0x0000ffff) + 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user