ati_radeon: return with error when emulator fails
authorEd Swarthout <Ed.Swarthout@freescale.com>
Wed, 31 Mar 2010 14:54:28 +0000 (09:54 -0500)
committerAnatolij Gustschin <agust@denx.de>
Thu, 8 Apr 2010 13:26:29 +0000 (15:26 +0200)
Console was being switched to video even if emulator fails and
causing this hang:

               Scanning PCI bus 04
        04  00  1095  3132  0104  00
    PCIE3 on bus 03 - 04
Video: ATI Radeon video card (1002, 5b60) found @(2:0:0)
videoboot: Booting PCI video card bus 2, function 0, device 0
videoboot: Video ROM failed to map!
640x480x8 31kHz 59Hz
radeonfb: FIFO Timeout !

Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
Tested-by: Anatolij Gustschin <agust@denx.de>
drivers/bios_emulator/atibios.c
drivers/video/ati_radeon_fb.c

index 5f9bd101d6c685cad2c5b8219cdd46361bb5a7a2..2881449d980c8862372445e995395f5b0bc73478 100644 (file)
@@ -315,7 +315,8 @@ int BootVideoCardBIOS(pci_dev_t pcidev, BE_VGAInfo ** pVGAInfo, int cleanUp)
        BE_init(0, 65536, VGAInfo, 0);
 
        /*Post all the display controller BIOS'es*/
-       PCI_postController(pcidev, VGAInfo);
+       if (!PCI_postController(pcidev, VGAInfo))
+               return false;
 
        /*Cleanup and exit the emulator if requested. If the BIOS emulator
        is needed after booting the card, we will not call BE_exit and
index 9ebb0b0c965ac388a4adc0d61c06804cd5089404..529ddae835e26e85e9bfe78c85d2e77a8e50c43c 100644 (file)
@@ -597,7 +597,8 @@ int radeon_probe(struct radeonfb_info *rinfo)
                rinfo->fb_local_base = INREG(MC_FB_LOCATION) << 16;
                DPRINT("rinfo->fb_local_base = 0x%x\n",rinfo->fb_local_base);
                /* PostBIOS with x86 emulater */
-               BootVideoCardBIOS(pdev, NULL, 0);
+               if (!BootVideoCardBIOS(pdev, NULL, 0))
+                       return -1;
 
                /*
                 * Check for errata