diff --git a/src/add-ons/accelerants/matrox/engine/mga_general.c b/src/add-ons/accelerants/matrox/engine/mga_general.c index a65c6c4824..0cc1155688 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; uint8 card_class; - LOG(1,("POWERUP: Haiku Matrox Accelerant 0.28 running.\n")); + LOG(1,("POWERUP: Haiku Matrox Accelerant 0.29 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) diff --git a/src/add-ons/accelerants/matrox/engine/mga_info.c b/src/add-ons/accelerants/matrox/engine/mga_info.c index 9d3eed24cb..642d222069 100644 --- a/src/add-ons/accelerants/matrox/engine/mga_info.c +++ b/src/add-ons/accelerants/matrox/engine/mga_info.c @@ -2,7 +2,7 @@ /* some bits are hacks, where PINS is not known */ /* Authors: Mark Watson 2/2000, - Rudolf Cornelissen 10/2002-1/2004 + Rudolf Cornelissen 10/2002-4/2006 */ #define MODULE_BIT 0x00002000 @@ -244,8 +244,10 @@ status_t pins3_read(uint8 *pins, uint8 length) si->ps.v3_option2_reg = pins[58]; /* for cards using this version of PINS both functions are in maven */ - si->ps.secondary_head = !(pins[59] & 0x01); si->ps.secondary_tvout = !(pins[59] & 0x01); + /* G200 and earlier cards are always singlehead cards */ + si->ps.secondary_head = false; + if (si->ps.card_type >= G400) si->ps.secondary_head = !(pins[59] & 0x01); /* setup via gathered info from pins */ si->ps.option_reg = 0; @@ -398,8 +400,10 @@ status_t pins4_read(uint8 *pins, uint8 length) si->ps.option_reg |= (rfhcnt << 15); /* for cards using this version of PINS both functions are in maven */ - si->ps.secondary_head = !(pins[91] & 0x01); si->ps.secondary_tvout = !(pins[91] & 0x01); + /* G200 and earlier cards are always singlehead cards */ + si->ps.secondary_head = false; + if (si->ps.card_type >= G400) si->ps.secondary_head = !(pins[91] & 0x01); /* assuming the only possible panellink will be on the first head */ si->ps.primary_dvi = !(pins[91] & 0x40); @@ -577,7 +581,8 @@ void fake_pins(void) if (i2c_maven_probe() == B_OK) { si->ps.secondary_tvout = true; - si->ps.secondary_head = true; + /* G200 and earlier cards are always singlehead cards */ + if (si->ps.card_type >= G400) si->ps.secondary_head = true; } }