From 68fd17064312ae3ffc00ad14fa2e19f279cba7fe Mon Sep 17 00:00:00 2001 From: Rudolf Cornelissen Date: Fri, 11 Nov 2005 19:30:06 +0000 Subject: [PATCH] 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 --- .../accelerants/matrox/ProposeDisplayMode.c | 36 +++++++++++++++---- .../accelerants/matrox/engine/mga_general.c | 2 +- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/add-ons/accelerants/matrox/ProposeDisplayMode.c b/src/add-ons/accelerants/matrox/ProposeDisplayMode.c index 3d80872061..9d0baaee1e 100644 --- a/src/add-ons/accelerants/matrox/ProposeDisplayMode.c +++ b/src/add-ons/accelerants/matrox/ProposeDisplayMode.c @@ -4,7 +4,7 @@ Other authors for MGA driver: Mark Watson, - Rudolf Cornelissen 9/2002-11/2004 + Rudolf Cornelissen 9/2002-11/2005 */ #define MODULE_BIT 0x00400000 @@ -379,15 +379,37 @@ 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) */ - //fixme: modify for G100 and G200 TVout later on... - if (target->flags & DUALHEAD_CAPABLE) + switch (si->ps.card_type) { - if (si->ps.secondary_tvout && - (target->timing.h_display <= 1024) && - (target->timing.v_display <= 768)) + case G400: + case G400MAX: + //fixme: in theory singlehead cards can do TVout as well (if MAVEN mounted) + if (target->flags & DUALHEAD_CAPABLE) { - target->flags |= TV_CAPABLE; + if (si->ps.secondary_tvout && + (target->timing.h_display <= 1024) && + (target->timing.v_display <= 768)) + { + 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 */ diff --git a/src/add-ons/accelerants/matrox/engine/mga_general.c b/src/add-ons/accelerants/matrox/engine/mga_general.c index 8f2bca6f4d..8ec859cb46 100644 --- a/src/add-ons/accelerants/matrox/engine/mga_general.c +++ b/src/add-ons/accelerants/matrox/engine/mga_general.c @@ -54,7 +54,7 @@ status_t gx00_general_powerup() status_t status; 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 */ switch(CFGR(DEVID))