pci: layerscape: Modify the EP and RC mode judge method

Modify the RC and EP mode judge method, save the mode as a variable,
the variable will be used by other function.

Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
Xiaowei Bao 2018-10-26 09:56:24 +08:00 committed by York Sun
parent bae54ac99e
commit 5bd3c9d556
2 changed files with 9 additions and 10 deletions

View File

@ -438,9 +438,7 @@ static int ls_pcie_probe(struct udevice *dev)
struct ls_pcie *pcie = dev_get_priv(dev);
const void *fdt = gd->fdt_blob;
int node = dev_of_offset(dev);
u8 header_type;
u16 link_sta;
bool ep_mode;
uint svr;
int ret;
fdt_size_t cfg_size;
@ -524,15 +522,15 @@ static int ls_pcie_probe(struct udevice *dev)
(unsigned long)pcie->ctrl, (unsigned long)pcie->cfg0,
pcie->big_endian);
header_type = readb(pcie->dbi + PCI_HEADER_TYPE);
ep_mode = (header_type & 0x7f) == PCI_HEADER_TYPE_NORMAL;
printf("PCIe%u: %s %s", pcie->idx, dev->name,
ep_mode ? "Endpoint" : "Root Complex");
pcie->mode = readb(pcie->dbi + PCI_HEADER_TYPE) & 0x7f;
if (ep_mode)
ls_pcie_setup_ep(pcie);
else
ls_pcie_setup_ctrl(pcie);
if (pcie->mode == PCI_HEADER_TYPE_NORMAL) {
printf("PCIe%u: %s %s", pcie->idx, dev->name, "Endpoint");
ls_pcie_setup_ep(pcie);
} else {
printf("PCIe%u: %s %s", pcie->idx, dev->name, "Root Complex");
ls_pcie_setup_ctrl(pcie);
}
if (!ls_pcie_link_up(pcie)) {
/* Let the user know there's no PCIe link */

View File

@ -144,6 +144,7 @@ struct ls_pcie {
bool big_endian;
bool enabled;
int next_lut_index;
int mode;
};
extern struct list_head ls_pcie_list;