From bf1ee0604cdee9e2cca45b27afce61f27ab31058 Mon Sep 17 00:00:00 2001 From: Rudolf Cornelissen Date: Sat, 13 May 2006 12:06:03 +0000 Subject: [PATCH] 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 --- src/add-ons/accelerants/matrox/SetDisplayMode.c | 5 ++--- .../accelerants/matrox/engine/mga_maven.c | 17 ++++++++++++++++- .../accelerants/matrox/engine/mga_proto.h | 1 + 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/add-ons/accelerants/matrox/SetDisplayMode.c b/src/add-ons/accelerants/matrox/SetDisplayMode.c index b8150ad7a2..2b79155c24 100644 --- a/src/add-ons/accelerants/matrox/SetDisplayMode.c +++ b/src/add-ons/accelerants/matrox/SetDisplayMode.c @@ -396,12 +396,11 @@ status_t SET_DISPLAY_MODE(display_mode *mode_to_set) } else { + gx00_maven_shutoff_vid_pll(); gx00_crtc_set_timing(target); } - - //fixme: shut-off the videoPLL when applicable, if it exists... } - + /* update driver's mode store */ si->dm = target; diff --git a/src/add-ons/accelerants/matrox/engine/mga_maven.c b/src/add-ons/accelerants/matrox/engine/mga_maven.c index 21afadf3c4..f14178c7c3 100644 --- a/src/add-ons/accelerants/matrox/engine/mga_maven.c +++ b/src/add-ons/accelerants/matrox/engine/mga_maven.c @@ -2,7 +2,7 @@ /* Authors: Mark Watson 6/2000, - Rudolf Cornelissen 1/2003-12/2003 + Rudolf Cornelissen 1/2003-5/2006 Thanx to Petr Vandrovec for writing matroxfb. */ @@ -226,6 +226,21 @@ status_t gx00_maven_mode(int mode,float brightness) 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) { switch (si->ps.card_type) diff --git a/src/add-ons/accelerants/matrox/engine/mga_proto.h b/src/add-ons/accelerants/matrox/engine/mga_proto.h index b8921592b3..a7482073d3 100644 --- a/src/add-ons/accelerants/matrox/engine/mga_proto.h +++ b/src/add-ons/accelerants/matrox/engine/mga_proto.h @@ -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); 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); +void gx00_maven_shutoff_vid_pll(void); status_t gx00_maven_set_vid_pll(display_mode target); /*MAVENTV functions*/