Add a fixup to LVDS panel mode detection for 1280x768 panel from text mode.

Apparently some BIOSes will program a small mode with large blanking instead of
using the pannel fitter.
This commit is contained in:
Eric Anholt 2007-05-29 09:49:08 -07:00
parent 4b27812918
commit 906b974bfe
1 changed files with 16 additions and 0 deletions

View File

@ -496,6 +496,22 @@ i830_lvds_init(ScrnInfoPtr pScrn)
dev_priv->panel_fixed_mode = i830_crtc_mode_get(pScrn, crtc);
if (dev_priv->panel_fixed_mode != NULL)
dev_priv->panel_fixed_mode->type |= M_T_PREFERRED;
/* Fixup for a 1280x768 panel with the horizontal trimmed
* down to 1024 for text mode.
*/
if (!xf86ModesEqual(dev_priv->panel_fixed_mode, bios_mode) &&
dev_priv->panel_fixed_mode->HDisplay == 1024 &&
dev_priv->panel_fixed_mode->HSyncStart == 1200 &&
dev_priv->panel_fixed_mode->HSyncEnd == 1312 &&
dev_priv->panel_fixed_mode->HTotal == 1688 &&
dev_priv->panel_fixed_mode->VDisplay == 768)
{
dev_priv->panel_fixed_mode->HDisplay = 1280;
dev_priv->panel_fixed_mode->HSyncStart = 1328;
dev_priv->panel_fixed_mode->HSyncEnd = 1440;
dev_priv->panel_fixed_mode->HTotal = 1688;
}
}
}