diff options
author | Eric Anholt <eric@anholt.net> | 2007-03-20 14:33:53 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2007-03-20 14:33:53 -0700 |
commit | 223944878cf38f86580df5a7d3102d86cfc061b9 (patch) | |
tree | 63d16aabbc2c0bb667beb43bc6dd738139fdf4e6 /src/i830_debug.c | |
parent | 4c4faf260eb4dad1b1919c6168fa9ef477b98a39 (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.c | 15 |
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) |