updated proposemode again: now it reflects that Desktop TVout cannot be done with G450/G550 as it's officially the case. (windows mimics it by using the acceleration engine to scale down your desktop. I'm not going to set that up for us as it's never 'perfect': try heavy acc engine use in windows (afaik): updates on TV drop to below 4x per second.) Bumped version to 0.22.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14858 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen
2005-11-11 19:30:06 +00:00
parent d6f43ca72c
commit 68fd170643
2 changed files with 30 additions and 8 deletions
@@ -4,7 +4,7 @@
Other authors for MGA driver: Other authors for MGA driver:
Mark Watson, Mark Watson,
Rudolf Cornelissen 9/2002-11/2004 Rudolf Cornelissen 9/2002-11/2005
*/ */
#define MODULE_BIT 0x00400000 #define MODULE_BIT 0x00400000
@@ -379,7 +379,11 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con
} }
/* set TV_CAPABLE if suitable: pixelclock is not important (defined by TVstandard) */ /* set TV_CAPABLE if suitable: pixelclock is not important (defined by TVstandard) */
//fixme: modify for G100 and G200 TVout later on... switch (si->ps.card_type)
{
case G400:
case G400MAX:
//fixme: in theory singlehead cards can do TVout as well (if MAVEN mounted)
if (target->flags & DUALHEAD_CAPABLE) if (target->flags & DUALHEAD_CAPABLE)
{ {
if (si->ps.secondary_tvout && if (si->ps.secondary_tvout &&
@@ -389,6 +393,24 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con
target->flags |= TV_CAPABLE; target->flags |= TV_CAPABLE;
} }
} }
break;
case G450:
case G550:
/* G450/G550 can only do secondary TVout in Video modes (no Desktop modes!) */
if ((target->flags & DUALHEAD_CAPABLE) && (target->flags & TV_VIDEO))
{
if (si->ps.secondary_tvout &&
(target->timing.h_display <= 1024) && /* Hscaling option exists */
(target->timing.v_display <= 576)) /* Vscaling option lacks */
{
target->flags |= TV_CAPABLE;
}
}
break;
default:
//fixme: setup for G100 and G200 TVout later on...
break;
}
/* fixme: currently the matrox driver can only do secondary TVout */ /* fixme: currently the matrox driver can only do secondary TVout */
target->flags &= ~TV_PRIMARY; target->flags &= ~TV_PRIMARY;
@@ -54,7 +54,7 @@ status_t gx00_general_powerup()
status_t status; status_t status;
uint32 card_class; uint32 card_class;
LOG(1,("POWERUP: Haiku Matrox Accelerant 0.21 running.\n")); LOG(1,("POWERUP: Haiku Matrox Accelerant 0.22 running.\n"));
/* detect card type and power it up */ /* detect card type and power it up */
switch(CFGR(DEVID)) switch(CFGR(DEVID))