diff options
Diffstat (limited to 'drivers/video/geode/gxfb_core.c')
-rw-r--r-- | drivers/video/geode/gxfb_core.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/video/geode/gxfb_core.c b/drivers/video/geode/gxfb_core.c index 742fd04178c3..1e0d47ea0e43 100644 --- a/drivers/video/geode/gxfb_core.c +++ b/drivers/video/geode/gxfb_core.c | |||
@@ -308,6 +308,7 @@ static int __init gxfb_probe(struct pci_dev *pdev, const struct pci_device_id *i | |||
308 | struct geodefb_par *par; | 308 | struct geodefb_par *par; |
309 | struct fb_info *info; | 309 | struct fb_info *info; |
310 | int ret; | 310 | int ret; |
311 | unsigned long val; | ||
311 | 312 | ||
312 | info = gxfb_init_fbinfo(&pdev->dev); | 313 | info = gxfb_init_fbinfo(&pdev->dev); |
313 | if (!info) | 314 | if (!info) |
@@ -323,6 +324,15 @@ static int __init gxfb_probe(struct pci_dev *pdev, const struct pci_device_id *i | |||
323 | goto err; | 324 | goto err; |
324 | } | 325 | } |
325 | 326 | ||
327 | /* Figure out if this is a TFT or CRT part */ | ||
328 | |||
329 | rdmsrl(GLD_MSR_CONFIG, val); | ||
330 | |||
331 | if (val & GLD_MSR_CONFIG_FMT_FP) | ||
332 | par->enable_crt = 0; | ||
333 | else | ||
334 | par->enable_crt = 1; | ||
335 | |||
326 | ret = fb_find_mode(&info->var, info, mode_option, | 336 | ret = fb_find_mode(&info->var, info, mode_option, |
327 | gx_modedb, ARRAY_SIZE(gx_modedb), NULL, 16); | 337 | gx_modedb, ARRAY_SIZE(gx_modedb), NULL, 16); |
328 | if (ret == 0 || ret == 4) { | 338 | if (ret == 0 || ret == 4) { |