mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-29 23:53:33 +08:00
mpc83xx: PCIe: Fix CONFIG_PCI_SCAN_SHOW reporting bogus values
This patch fixes an issue in config space read accessors: we should fill-in the value even if we fail (e.g. skipping devices), otherwise CONFIG_PCI_SCAN_SHOW reports bogus values during boot up. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
This commit is contained in:
parent
e2d72ba543
commit
b24a99f666
@ -60,6 +60,9 @@ static int mpc83xx_pcie_remap_cfg(struct pci_controller *hose, pci_dev_t dev)
|
|||||||
#define cfg_write(val, addr, type, op) \
|
#define cfg_write(val, addr, type, op) \
|
||||||
do { op((type *)(addr), (val)); } while (0)
|
do { op((type *)(addr), (val)); } while (0)
|
||||||
|
|
||||||
|
#define cfg_read_err(val) do { *val = -1; } while (0)
|
||||||
|
#define cfg_write_err(val) do { } while (0)
|
||||||
|
|
||||||
#define PCIE_OP(rw, size, type, op) \
|
#define PCIE_OP(rw, size, type, op) \
|
||||||
static int pcie_##rw##_config_##size(struct pci_controller *hose, \
|
static int pcie_##rw##_config_##size(struct pci_controller *hose, \
|
||||||
pci_dev_t dev, int offset, \
|
pci_dev_t dev, int offset, \
|
||||||
@ -68,8 +71,10 @@ static int pcie_##rw##_config_##size(struct pci_controller *hose, \
|
|||||||
int ret; \
|
int ret; \
|
||||||
\
|
\
|
||||||
ret = mpc83xx_pcie_remap_cfg(hose, dev); \
|
ret = mpc83xx_pcie_remap_cfg(hose, dev); \
|
||||||
if (ret) \
|
if (ret) { \
|
||||||
return ret; \
|
cfg_##rw##_err(val); \
|
||||||
|
return ret; \
|
||||||
|
} \
|
||||||
cfg_##rw(val, (void *)hose->cfg_addr + offset, type, op); \
|
cfg_##rw(val, (void *)hose->cfg_addr + offset, type, op); \
|
||||||
return 0; \
|
return 0; \
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user