]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ssb/driver_pcicore.c
kgdb: always use icache flush for sw breakpoints
[linux-2.6-omap-h63xx.git] / drivers / ssb / driver_pcicore.c
index 6d99a98800559f9daf1df56e96c01217b2b92b5c..5d777f211699460085572b991d3e5283314ef2f3 100644 (file)
@@ -111,7 +111,10 @@ static void __init ssb_fixup_pcibridge(struct pci_dev *dev)
 
        /* Enable PCI bridge bus mastering and memory space */
        pci_set_master(dev);
-       pcibios_enable_device(dev, ~0);
+       if (pcibios_enable_device(dev, ~0) < 0) {
+               ssb_printk(KERN_ERR "PCI: SSB bridge enable failed\n");
+               return;
+       }
 
        /* Enable PCI bridge BAR1 prefetch and burst */
        pci_write_config_dword(dev, SSB_BAR1_CONTROL, 3);
@@ -393,7 +396,7 @@ static int pcicore_is_in_hostmode(struct ssb_pcicore *pc)
            chipid_top != 0x5300)
                return 0;
 
-       if (bus->sprom.r1.boardflags_lo & SSB_PCICORE_BFL_NOPCI)
+       if (bus->sprom.boardflags_lo & SSB_PCICORE_BFL_NOPCI)
                return 0;
 
        /* The 200-pin BCM4712 package does not bond out PCI. Even when
@@ -548,7 +551,7 @@ int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
                } else {
                        tmp = ssb_read32(dev, SSB_TPSFLAG);
                        tmp &= SSB_TPSFLAG_BPFLAG;
-                       intvec |= tmp;
+                       intvec |= (1 << tmp);
                }
                ssb_write32(pdev, SSB_INTVEC, intvec);
        }