From c2faeff7d581fdcb7c28eccd6e0d5afa2c4a5565 Mon Sep 17 00:00:00 2001 From: Zhenyu Wang Date: Tue, 9 Dec 2008 16:50:28 +0800 Subject: [PATCH] Use CRT present bit from VBT Obviously not all people like CRT. --- src/i830.h | 1 + src/i830_bios.c | 2 ++ src/i830_driver.c | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/i830.h b/src/i830.h index c2e043a..04d5048 100644 --- a/src/i830.h +++ b/src/i830.h @@ -619,6 +619,7 @@ typedef struct _I830Rec { Bool skip_panel_detect; Bool tv_present; /* TV connector present (from VBIOS) */ + Bool crt_present; /* integrated CRT connector present (from VBIOS) */ Bool StolenOnly; diff --git a/src/i830_bios.c b/src/i830_bios.c index 007530d..82bbbf5 100644 --- a/src/i830_bios.c +++ b/src/i830_bios.c @@ -144,12 +144,14 @@ parse_general_features(I830Ptr pI830, struct bdb_header *bdb) /* Set sensible defaults in case we can't find the general block */ pI830->tv_present = 1; + pI830->crt_present = 1; general = find_section(bdb, BDB_GENERAL_FEATURES); if (!general) return; pI830->tv_present = general->int_tv_support; + pI830->crt_present = general->int_crt_support; pI830->lvds_use_ssc = general->enable_ssc; if (pI830->lvds_use_ssc) { if (IS_I855(pI830)) diff --git a/src/i830_driver.c b/src/i830_driver.c index 3327fbf..b11a2ae 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -904,8 +904,8 @@ I830SetupOutputs(ScrnInfoPtr pScrn) int o, c; Bool lvds_detected = FALSE; - /* everyone has at least a single analog output */ - i830_crt_init(pScrn); + if (pI830->crt_present) + i830_crt_init(pScrn); /* Set up integrated LVDS */ if (IS_MOBILE(pI830) && !IS_I830(pI830)) -- 1.5.6.5