summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2005-03-15 13:10:23 +0000
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2005-03-15 13:10:23 +0000
commit50a105e88cfdfc22fef8cfd2397fc5e9fae17663 (patch)
tree8eb7dedb6e9bd814cd865058b2b33c715dd88400
parenteb8b5df739e7be4509423c2bf757a7df35ce02f6 (diff)
LFP's may exist on Pipe A in older i830's. Check that case so that Panel ID can
be obtained and Xvideo is correctly setup for panel fitting.
-rw-r--r--src/i830_driver.c5
-rw-r--r--src/i830_video.c9
2 files changed, 8 insertions, 6 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index acfd57d5..8d611a46 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2633,9 +2633,10 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
}
- /* Check we are on pipe B and have an LFP connected, before trying to
+ /* Check we have an LFP connected, before trying to
* read PanelID information. */
- if ((pI830->pipe == 1) && (pI830->operatingDevices & (PIPE_LFP << 8))) {
+ if ( (pI830->pipe == 1 && pI830->operatingDevices & (PIPE_LFP << 8)) ||
+ (pI830->pipe == 0 && pI830->operatingDevices & PIPE_LFP) ) {
vbeDoPanelID(pI830->pVbe);
}
diff --git a/src/i830_video.c b/src/i830_video.c
index fed8c564..c8b715b7 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2036,12 +2036,13 @@ I830VideoSwitchModeAfter(ScrnInfoPtr pScrn, DisplayModePtr mode)
}
}
- /* Check we are on pipe B and have an LFP connected */
- if ((pPriv->pipe == 1) && (pI830->operatingDevices & (PIPE_LFP << 8))) {
- size = INREG(PIPEBSRC);
+ /* Check we have an LFP connected */
+ if ((pPriv->pipe == 1 && pI830->operatingDevices & (PIPE_LFP << 8)) ||
+ (pPriv->pipe == 0 && pI830->operatingDevices & PIPE_LFP) ) {
+ size = pI830->pipe ? INREG(PIPEBSRC) : INREG(PIPEASRC);
hsize = (size >> 16) & 0x7FF;
vsize = size & 0x7FF;
- active = INREG(VTOTAL_B) & 0x7FF;
+ active = pI830->pipe ? (INREG(VTOTAL_B) & 0x7FF) : (INREG(VTOTAL_A) & 0x7FF);
if (vsize < active && hsize > 1024)
I830SetOneLineModeRatio(pScrn);