.xlate = irq_domain_xlate_onetwocell,
 };
 
-static void ks_pcie_setup_rc_app_regs(struct keystone_pcie *ks_pcie)
+static int ks_pcie_setup_rc_app_regs(struct keystone_pcie *ks_pcie)
 {
        u32 val;
        u32 num_viewport = ks_pcie->num_viewport;
        struct dw_pcie *pci = ks_pcie->pci;
        struct dw_pcie_rp *pp = &pci->pp;
-       u64 start, end;
+       struct resource_entry *entry;
        struct resource *mem;
+       u64 start, end;
        int i;
 
-       mem = resource_list_first_type(&pp->bridge->windows, IORESOURCE_MEM)->res;
+       entry = resource_list_first_type(&pp->bridge->windows, IORESOURCE_MEM);
+       if (!entry)
+               return -ENODEV;
+
+       mem = entry->res;
        start = mem->start;
        end = mem->end;
 
        ks_pcie_clear_dbi_mode(ks_pcie);
 
        if (ks_pcie->is_am6)
-               return;
+               return 0;
 
        val = ilog2(OB_WIN_SIZE);
        ks_pcie_app_writel(ks_pcie, OB_SIZE, val);
        val = ks_pcie_app_readl(ks_pcie, CMD_STATUS);
        val |= OB_XLAT_EN_VAL;
        ks_pcie_app_writel(ks_pcie, CMD_STATUS, val);
+
+       return 0;
 }
 
 static void __iomem *ks_pcie_other_map_bus(struct pci_bus *bus,
                return ret;
 
        ks_pcie_stop_link(pci);
-       ks_pcie_setup_rc_app_regs(ks_pcie);
+       ret = ks_pcie_setup_rc_app_regs(ks_pcie);
+       if (ret)
+               return ret;
+
        writew(PCI_IO_RANGE_TYPE_32 | (PCI_IO_RANGE_TYPE_32 << 8),
                        pci->dbi_base + PCI_IO_BASE);