x86: ivybridge: Only run the Video BIOS when video is enabled
authorSimon Glass <sjg@chromium.org>
Thu, 1 Jan 2015 23:18:02 +0000 (16:18 -0700)
committerSimon Glass <sjg@chromium.org>
Tue, 13 Jan 2015 15:24:59 +0000 (07:24 -0800)
This takes about about 700ms on link when running natively and 900ms when
running using the emulator. It is a waste of time if video is not enabled,
so don't bother running the video BIOS in that case.

We could add a command to run the video BIOS later when needed, but this is
not considered at present.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/cpu/ivybridge/gma.c

index 3d7f740273fb29ff96b9751478e466e4e4dd5fff..cf4f87c4e3eb47f1120d589b541b282760075815 100644 (file)
@@ -15,6 +15,7 @@
 #include <asm/pci.h>
 #include <asm/arch/pch.h>
 #include <asm/arch/sandybridge.h>
+#include <linux/kconfig.h>
 
 struct gt_powermeter {
        u16 reg;
@@ -730,6 +731,9 @@ static int int15_handler(void)
 int gma_func0_init(pci_dev_t dev, struct pci_controller *hose,
                   const void *blob, int node)
 {
+#ifdef CONFIG_VIDEO
+       ulong start;
+#endif
        void *gtt_bar;
        u32 reg32;
        int ret;
@@ -745,8 +749,11 @@ int gma_func0_init(pci_dev_t dev, struct pci_controller *hose,
        if (ret)
                return ret;
 
+#ifdef CONFIG_VIDEO
+       start = get_timer(0);
        ret = pci_run_vga_bios(dev, int15_handler, false);
-
+       debug("BIOS ran in %lums\n", get_timer(start));
+#endif
        /* Post VBIOS init */
        ret = gma_pm_init_post_vbios(gtt_bar, blob, node);
        if (ret)