mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 13:11:31 +00:00
dm: Fix error handling for dev_read_addr_ptr
dev_read_addr_ptr had different semantics depending on whether OF_LIVE was enabled. This patch converts both implementations to return NULL on error, and converts all call sites which check for FDT_ADDR_T_NONE to check for NULL instead. This patch also removes the call to map_physmem, since we have dev_remap_addr* for those semantics. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
4a3390f1d3
commit
082faeb865
5 changed files with 7 additions and 5 deletions
|
@ -282,7 +282,7 @@ static int imx8mp_clk_probe(struct udevice *dev)
|
|||
clk_dm(IMX8MP_SYS_PLL2_1000M, imx_clk_fixed_factor("sys_pll2_1000m", "sys_pll2_out", 1, 1));
|
||||
|
||||
base = dev_read_addr_ptr(dev);
|
||||
if (base == (void *)FDT_ADDR_T_NONE)
|
||||
if (!base)
|
||||
return -EINVAL;
|
||||
|
||||
clk_dm(IMX8MP_CLK_A53_SRC, imx_clk_mux2("arm_a53_src", base + 0x8000, 24, 3, imx8mp_a53_sels, ARRAY_SIZE(imx8mp_a53_sels)));
|
||||
|
|
|
@ -167,7 +167,7 @@ void *dev_read_addr_ptr(const struct udevice *dev)
|
|||
{
|
||||
fdt_addr_t addr = dev_read_addr(dev);
|
||||
|
||||
return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
|
||||
return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)(uintptr_t)addr;
|
||||
}
|
||||
|
||||
void *dev_remap_addr(const struct udevice *dev)
|
||||
|
|
|
@ -117,7 +117,7 @@ int bcm283x_pinctl_probe(struct udevice *dev)
|
|||
}
|
||||
|
||||
priv->base_reg = dev_read_addr_ptr(dev);
|
||||
if (priv->base_reg == (void *)FDT_ADDR_T_NONE) {
|
||||
if (!priv->base_reg) {
|
||||
debug("%s: Failed to get base address\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
@ -631,7 +631,7 @@ int mtk_pinctrl_common_probe(struct udevice *dev,
|
|||
int ret;
|
||||
|
||||
priv->base = dev_read_addr_ptr(dev);
|
||||
if (priv->base == (void *)FDT_ADDR_T_NONE)
|
||||
if (!priv->base)
|
||||
return -EINVAL;
|
||||
|
||||
priv->soc = soc;
|
||||
|
|
|
@ -799,7 +799,9 @@ static inline fdt_addr_t dev_read_addr(const struct udevice *dev)
|
|||
|
||||
static inline void *dev_read_addr_ptr(const struct udevice *dev)
|
||||
{
|
||||
return devfdt_get_addr_ptr(dev);
|
||||
void *addr = devfdt_get_addr_ptr(dev);
|
||||
|
||||
return ((fdt_addr_t)(uintptr_t)addr == FDT_ADDR_T_NONE) ? NULL : addr;
|
||||
}
|
||||
|
||||
static inline fdt_addr_t dev_read_addr_pci(const struct udevice *dev)
|
||||
|
|
Loading…
Add table
Reference in a new issue