finally fixed the colorpalette trouble on 'special versions of the G200'. That cost me 4 years... It turns out the driver ID'd G100 and G200 cards with a MAVEN as dualhead cards. This enabled secondary head programming stuff, resulting in broken colorpalette. Looks like CRTC2 DPMS turn-off was responsible for killing the palette. So, the only thing special about these G200's was the MAVEN connected to them. Apparantly. Bumped version to 0.29.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17258 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -54,7 +54,7 @@ status_t gx00_general_powerup()
|
|||||||
status_t status;
|
status_t status;
|
||||||
uint8 card_class;
|
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 */
|
/* log VBLANK INT usability status */
|
||||||
if (si->ps.int_assigned)
|
if (si->ps.int_assigned)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/* some bits are hacks, where PINS is not known */
|
/* some bits are hacks, where PINS is not known */
|
||||||
/* Authors:
|
/* Authors:
|
||||||
Mark Watson 2/2000,
|
Mark Watson 2/2000,
|
||||||
Rudolf Cornelissen 10/2002-1/2004
|
Rudolf Cornelissen 10/2002-4/2006
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00002000
|
#define MODULE_BIT 0x00002000
|
||||||
@@ -244,8 +244,10 @@ status_t pins3_read(uint8 *pins, uint8 length)
|
|||||||
si->ps.v3_option2_reg = pins[58];
|
si->ps.v3_option2_reg = pins[58];
|
||||||
|
|
||||||
/* for cards using this version of PINS both functions are in maven */
|
/* 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);
|
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 */
|
/* setup via gathered info from pins */
|
||||||
si->ps.option_reg = 0;
|
si->ps.option_reg = 0;
|
||||||
@@ -398,8 +400,10 @@ status_t pins4_read(uint8 *pins, uint8 length)
|
|||||||
si->ps.option_reg |= (rfhcnt << 15);
|
si->ps.option_reg |= (rfhcnt << 15);
|
||||||
|
|
||||||
/* for cards using this version of PINS both functions are in maven */
|
/* 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);
|
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 */
|
/* assuming the only possible panellink will be on the first head */
|
||||||
si->ps.primary_dvi = !(pins[91] & 0x40);
|
si->ps.primary_dvi = !(pins[91] & 0x40);
|
||||||
@@ -577,7 +581,8 @@ void fake_pins(void)
|
|||||||
if (i2c_maven_probe() == B_OK)
|
if (i2c_maven_probe() == B_OK)
|
||||||
{
|
{
|
||||||
si->ps.secondary_tvout = true;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user