now checking for max. resolution on analog screens as well as on digital screens. Resolutions above 'native' resolutions are nolonger accepted. Bumped version to 0.94, updated docs.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31292 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen
2009-06-28 15:22:31 +00:00
parent c8453f43a4
commit 9e347ade99
3 changed files with 8 additions and 26 deletions
@@ -186,39 +186,21 @@ PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, const displa
} }
} }
/* check if screen(s) can display the requested resolution (if connected) */ /* check if screen(s) can display the requested resolution (if we have it's EDID info) */
if (si->ps.monitors & CRTC1_TMDS) { if (si->ps.crtc1_screen.have_edid) {
if (target->timing.h_display > si->ps.p1_timing.h_display
|| target->timing.v_display > si->ps.p1_timing.v_display) {
LOG(4, ("PROPOSEMODE: panel at crtc11 can't display requested resolution, aborted.\n"));
return B_ERROR;
}
}
if (si->ps.monitors & CRTC2_TMDS) {
if (target->timing.h_display > si->ps.p2_timing.h_display
|| target->timing.v_display > si->ps.p2_timing.v_display) {
LOG(4, ("PROPOSEMODE: panel at crtc2 can't display requested resolution, aborted.\n"));
return B_ERROR;
}
}
//still expand/update concerning edid, among others.. (setup accounting for cross-connected vga screens...):
/*
if (si->ps.monitors & CRTC1_VGA) {
if (target->timing.h_display > si->ps.crtc1_screen.timing.h_display if (target->timing.h_display > si->ps.crtc1_screen.timing.h_display
|| target->timing.v_display > si->ps.crtc1_screen.timing.v_display) { || target->timing.v_display > si->ps.crtc1_screen.timing.v_display) {
LOG(4, ("PROPOSEMODE: analog screen at crtc1 can't display requested resolution, aborted.\n")); LOG(4, ("PROPOSEMODE: screen at crtc1 can't display requested resolution, aborted.\n"));
return B_ERROR; return B_ERROR;
} }
} }
if (si->ps.monitors & CRTC2_VGA) { if (si->ps.crtc2_screen.have_edid) {
if (target->timing.h_display > si->ps.crtc2_screen.timing.h_display if (target->timing.h_display > si->ps.crtc2_screen.timing.h_display
|| target->timing.v_display > si->ps.crtc2_screen.timing.v_display) { || target->timing.v_display > si->ps.crtc2_screen.timing.v_display) {
LOG(4, ("PROPOSEMODE: analog screen at crtc2 can't display requested resolution, aborted.\n")); LOG(4, ("PROPOSEMODE: screen at crtc2 can't display requested resolution, aborted.\n"));
return B_ERROR; return B_ERROR;
} }
} }
*/
//end still update.
/* validate display vs. virtual */ /* validate display vs. virtual */
if (target->timing.h_display > target->virtual_width || want_same_width) if (target->timing.h_display > target->virtual_width || want_same_width)
@@ -92,7 +92,7 @@ status_t nv_general_powerup()
{ {
status_t status; status_t status;
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.93 running.\n")); LOG(1,("POWERUP: Haiku nVidia Accelerant 0.94 running.\n"));
/* log VBLANK INT usability status */ /* log VBLANK INT usability status */
if (si->ps.int_assigned) if (si->ps.int_assigned)
@@ -4,7 +4,7 @@
</head> </head>
<body> <body>
<p><h2>Changes done for each driverversion:</h2></p> <p><h2>Changes done for each driverversion:</h2></p>
<p><h1>head (SVN 0.93, Rudolf)</h1></p> <p><h1>head (SVN 0.94, Rudolf)</h1></p>
<ul> <ul>
<li>Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton. <li>Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton.
<li>Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition. <li>Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition.
@@ -18,7 +18,7 @@
<li>Added 'block_acc' option in nvidia.settings to completely disable the acceleration engine. Use this as a work-around if the acceleration engine misbehaves. <li>Added 'block_acc' option in nvidia.settings to completely disable the acceleration engine. Use this as a work-around if the acceleration engine misbehaves.
<li>Fixed card/system hanging after trying to log LVDS/TMDS distinction info. This (at least) fixes one NV34 trying to startup after a failed kernel VESA modeswitch without using the driver's coldstart option. Might very well help on other type cards too. <li>Fixed card/system hanging after trying to log LVDS/TMDS distinction info. This (at least) fixes one NV34 trying to startup after a failed kernel VESA modeswitch without using the driver's coldstart option. Might very well help on other type cards too.
<li>HDTV video upto/including 1920x1080p can now be played back using overlay on Geforce cards where overlay is supported. On TNT1/TNT2/TNT2-M64 this can't be done and bitmap output is used. <li>HDTV video upto/including 1920x1080p can now be played back using overlay on Geforce cards where overlay is supported. On TNT1/TNT2/TNT2-M64 this can't be done and bitmap output is used.
<li>Added partial DDC/EDID support: dumping monitor specs to logfile, detecting analog connected screens and doing analog widescreen autodetection. <li>Added partial DDC/EDID support: dumping monitor specs to logfile, detecting analog connected screens, doing analog widescreen autodetection and checking max. resolutions when setting a mode on analog screens (digitally connected screens had this check in place already).
<li>Added confirmed support for laptop card with ID 0x01d7: Quadro NVS 110M/GeForce 7300 Go. Also fixed support for laptop card with ID 0x01d8: GeForce 7400 Go: the 'laptop' definition was missing here. <li>Added confirmed support for laptop card with ID 0x01d7: Quadro NVS 110M/GeForce 7300 Go. Also fixed support for laptop card with ID 0x01d8: GeForce 7400 Go: the 'laptop' definition was missing here.
<li>Fixed acceleration engine crashes on at least G72 cards (Geforce 7300/7400/7500) by powering up new part(s) of the acceleration engines too.. <li>Fixed acceleration engine crashes on at least G72 cards (Geforce 7300/7400/7500) by powering up new part(s) of the acceleration engines too..
<li>Modified GPU PTimer programming which according to the Nouveau project fixes LVDS panel programming in some cases. <li>Modified GPU PTimer programming which according to the Nouveau project fixes LVDS panel programming in some cases.