added mga_tvo/maven vid pll shutoff if TVout/dualhead not in use. this fixes primary output distortions after the _driver_ used a TVout mode(on bootup it's not OK yet if TVout was enabled by the cardBIOS).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17437 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen 2006-05-13 12:06:03 +00:00
parent 839e7aa6de
commit bf1ee0604c
3 changed files with 19 additions and 4 deletions

View File

@ -396,12 +396,11 @@ status_t SET_DISPLAY_MODE(display_mode *mode_to_set)
} }
else else
{ {
gx00_maven_shutoff_vid_pll();
gx00_crtc_set_timing(target); gx00_crtc_set_timing(target);
} }
//fixme: shut-off the videoPLL when applicable, if it exists...
} }
/* update driver's mode store */ /* update driver's mode store */
si->dm = target; si->dm = target;

View File

@ -2,7 +2,7 @@
/* Authors: /* Authors:
Mark Watson 6/2000, Mark Watson 6/2000,
Rudolf Cornelissen 1/2003-12/2003 Rudolf Cornelissen 1/2003-5/2006
Thanx to Petr Vandrovec for writing matroxfb. Thanx to Petr Vandrovec for writing matroxfb.
*/ */
@ -226,6 +226,21 @@ status_t gx00_maven_mode(int mode,float brightness)
return B_OK; return B_OK;
} }
void gx00_maven_shutoff_vid_pll()
{
switch (si->ps.card_type)
{
case G100:
case G200:
case G400:
case G400MAX:
MAVW(PIXPLLP, ((MAVR(PIXPLLP)) & ~0x80));
break;
default:
break;
}
}
status_t gx00_maven_set_vid_pll(display_mode target) status_t gx00_maven_set_vid_pll(display_mode target)
{ {
switch (si->ps.card_type) switch (si->ps.card_type)

View File

@ -70,6 +70,7 @@ status_t g100_g400max_maven_vid_pll_find(display_mode target,float * calc_pclk,
uint8 * m_result,uint8 * n_result,uint8 * p_result); uint8 * m_result,uint8 * n_result,uint8 * p_result);
status_t g450_g550_maven_vid_pll_find(display_mode target,float * calc_pclk, status_t g450_g550_maven_vid_pll_find(display_mode target,float * calc_pclk,
uint8 * m_result,uint8 * n_result,uint8 * p_result, uint8 test); uint8 * m_result,uint8 * n_result,uint8 * p_result, uint8 test);
void gx00_maven_shutoff_vid_pll(void);
status_t gx00_maven_set_vid_pll(display_mode target); status_t gx00_maven_set_vid_pll(display_mode target);
/*MAVENTV functions*/ /*MAVENTV functions*/