summaryrefslogtreecommitdiff
path: root/src/i830_debug.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-03-20 14:33:53 -0700
committerEric Anholt <eric@anholt.net>2007-03-20 14:33:53 -0700
commit223944878cf38f86580df5a7d3102d86cfc061b9 (patch)
tree63d16aabbc2c0bb667beb43bc6dd738139fdf4e6 /src/i830_debug.c
parent4c4faf260eb4dad1b1919c6168fa9ef477b98a39 (diff)
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.
Diffstat (limited to 'src/i830_debug.c')
-rw-r--r--src/i830_debug.c15
1 files changed, 14 insertions, 1 deletions
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)