From 223944878cf38f86580df5a7d3102d86cfc061b9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 20 Mar 2007 14:33:53 -0700 Subject: Attempt to fix single/dual-channel issues on i9xx LVDS panels. - Use the existing single/dual-channel state when available, as changing it doesn't appear to work out. - Set the power state of the CLKB and B0-B3 pairs according to whether choose to go dual-channel or not. - Restore the LVDS register at the appropriate point (before DPLLs are re-programmed. --- src/i830_debug.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/i830_debug.c') diff --git a/src/i830_debug.c b/src/i830_debug.c index c746d35d..c0261a6c 100644 --- a/src/i830_debug.c +++ b/src/i830_debug.c @@ -269,8 +269,21 @@ DEBUGSTRING(i830_debug_lvds) { char pipe = val & LVDS_PIPEB_SELECT ? 'B' : 'A'; char *enable = val & LVDS_PORT_EN ? "enabled" : "disabled"; + int depth; + char *channels; - return XNFprintf("%s, pipe %c", enable, pipe); + if ((val & LVDS_A3_POWER_MASK) == LVDS_A3_POWER_UP) + depth = 24; + else + depth = 18; + if ((val & LVDS_B0B3_POWER_MASK) == LVDS_B0B3_POWER_UP) + channels = "2 channels"; + else + channels = "1 channel"; + + + return XNFprintf("%s, pipe %c, %d bit, %s", + enable, pipe, depth, channels); } DEBUGSTRING(i830_debug_sdvo) -- cgit v1.2.3