/* PCIE protocol TLP diagnostic registers */
 #define PCIE_TLP_WORKAROUNDSREG                0x004   /* TLP Workarounds */
 
+/* Sonics to PCI translation types */
+#define        SBTOPCI_PREF    0x4             /* prefetch enable */
+#define        SBTOPCI_BURST   0x8             /* burst enable */
+#define        SBTOPCI_RC_READMULTI    0x20    /* memory read multiple */
+
+#define PCI_CLKRUN_DSBL        0x8000  /* Bit 15 forceClkrun */
+
+/* PCI core index in SROM shadow area */
+#define SRSH_PI_OFFSET 0       /* first word */
+#define SRSH_PI_MASK   0xf000  /* bit 15:12 */
+#define SRSH_PI_SHIFT  12      /* bit 15:12 */
+
 /* Sonics side: PCI core and host control registers */
 struct sbpciregs {
        u32 control;            /* PCI control */
        bool pmecap;            /* Capable of generating PME */
 };
 
-/* debug/trace */
-#define        PCI_ERROR(args)
-#define PCIE_PUB(sih) ((sih)->buscoretype == PCIE_CORE_ID)
-
 #define PCIE_ASPM(sih)                                                 \
-       ((PCIE_PUB(sih)) &&                                             \
+       (((sih)->buscoretype == PCIE_CORE_ID) &&                        \
         (((sih)->buscorerev >= 3) &&                                   \
          ((sih)->buscorerev <= 5)))
 
 
 /* delay needed between the mdio control/ mdiodata register data access */
-#define PR28829_DELAY() udelay(10)
+static void pr28829_delay(void)
+{
+       udelay(10);
+}
 
 /* Initialize the PCI core.
  * It's caller's responsibility to make sure that this is done only once
        /* alloc struct pcicore_info */
        pi = kzalloc(sizeof(struct pcicore_info), GFP_ATOMIC);
        if (pi == NULL) {
-               PCI_ERROR(("pci_attach: malloc failed!\n"));
                return NULL;
        }
 
                    (blk << 4));
        W_REG(&pcieregs->mdiodata, mdiodata);
 
-       PR28829_DELAY();
+       pr28829_delay();
        /* retry till the transaction is complete */
        while (i < pcie_serdes_spinwait) {
                if (R_REG(&pcieregs->mdiocontrol) & MDIOCTL_ACCESS_DONE)
        }
 
        if (i >= pcie_serdes_spinwait) {
-               PCI_ERROR(("pcie_mdiosetblock: timed out\n"));
                return false;
        }
 
 
        W_REG(&pcieregs->mdiodata, mdiodata);
 
-       PR28829_DELAY();
+       pr28829_delay();
 
        /* retry till the transaction is complete */
        while (i < pcie_serdes_spinwait) {
                if (R_REG(&pcieregs->mdiocontrol) & MDIOCTL_ACCESS_DONE) {
                        if (!write) {
-                               PR28829_DELAY();
+                               pr28829_delay();
                                *val = (R_REG(&pcieregs->mdiodata) &
                                        MDIODATA_MASK);
                        }
                i++;
        }
 
-       PCI_ERROR(("pcie_mdioop: timed out op: %d\n", write));
-       /* Disable mdio access to SERDES */
+       /* Timed out. Disable mdio access to SERDES. */
        W_REG(&pcieregs->mdiocontrol, 0);
        return 1;
 }
        struct si_pub *sih = pi->sih;
        struct sbpcieregs *pcieregs = pi->regs.pcieregs;
 
-       if (!PCIE_PUB(sih) || sih->buscorerev < 7)
+       if (sih->buscoretype != PCIE_CORE_ID || sih->buscorerev < 7)
                return;
 
        w = pcie_readreg(pcieregs, PCIE_PCIEREGS, PCIE_DLLP_PMTHRESHREG);
 
 void pcicore_hwup(struct pcicore_info *pi)
 {
-       if (!pi || !PCIE_PUB(pi->sih))
+       if (!pi || pi->sih->buscoretype != PCIE_CORE_ID)
                return;
 
        pcie_war_pci_setup(pi);
 
 void pcicore_up(struct pcicore_info *pi, int state)
 {
-       if (!pi || !PCIE_PUB(pi->sih))
+       if (!pi || pi->sih->buscoretype != PCIE_CORE_ID)
                return;
 
        /* Restore L1 timer for better performance */
 
 void pcicore_down(struct pcicore_info *pi, int state)
 {
-       if (!pi || !PCIE_PUB(pi->sih))
+       if (!pi || pi->sih->buscoretype != PCIE_CORE_ID)
                return;
 
        pcie_clkreq_upd(pi, state);