mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 13:41:31 +00:00
dm: core: Fix devfdt_get_addr_ptr return value
According to the description of devfdt_get_addr_ptr, this function should return NULL on failure, but currently it returns (void *)FDT_ADDR_T_NONE. Fix this by making devfdt_get_addr_ptr return NULL on failure, as described in the function comments. Also, update the drivers currently checking (void *)FDT_ADDR_T_NONE to check for NULL. Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
02291d83fd
commit
3fe69d3764
7 changed files with 13 additions and 13 deletions
|
@ -498,8 +498,8 @@ static int ast2500_clk_ofdata_to_platdata(struct udevice *dev)
|
||||||
struct ast2500_clk_priv *priv = dev_get_priv(dev);
|
struct ast2500_clk_priv *priv = dev_get_priv(dev);
|
||||||
|
|
||||||
priv->scu = devfdt_get_addr_ptr(dev);
|
priv->scu = devfdt_get_addr_ptr(dev);
|
||||||
if (IS_ERR(priv->scu))
|
if (!priv->scu)
|
||||||
return PTR_ERR(priv->scu);
|
return -EINVAL;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,7 +154,9 @@ fdt_addr_t devfdt_get_addr(const struct udevice *dev)
|
||||||
|
|
||||||
void *devfdt_get_addr_ptr(const struct udevice *dev)
|
void *devfdt_get_addr_ptr(const struct udevice *dev)
|
||||||
{
|
{
|
||||||
return (void *)(uintptr_t)devfdt_get_addr_index(dev, 0);
|
fdt_addr_t addr = devfdt_get_addr_index(dev, 0);
|
||||||
|
|
||||||
|
return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)(uintptr_t)addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *devfdt_remap_addr_index(const struct udevice *dev, int index)
|
void *devfdt_remap_addr_index(const struct udevice *dev, int index)
|
||||||
|
|
|
@ -93,8 +93,8 @@ static int ast_i2c_ofdata_to_platdata(struct udevice *dev)
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
priv->regs = devfdt_get_addr_ptr(dev);
|
priv->regs = devfdt_get_addr_ptr(dev);
|
||||||
if (IS_ERR(priv->regs))
|
if (!priv->regs)
|
||||||
return PTR_ERR(priv->regs);
|
return -EINVAL;
|
||||||
|
|
||||||
ret = clk_get_by_index(dev, 0, &priv->clk);
|
ret = clk_get_by_index(dev, 0, &priv->clk);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
|
|
@ -194,7 +194,7 @@ int mvebu_pinctl_probe(struct udevice *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->base_reg = devfdt_get_addr_ptr(dev);
|
priv->base_reg = devfdt_get_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__);
|
debug("%s: Failed to get base address\n", __func__);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,8 +65,8 @@ static int ast_timer_ofdata_to_platdata(struct udevice *dev)
|
||||||
struct ast_timer_priv *priv = dev_get_priv(dev);
|
struct ast_timer_priv *priv = dev_get_priv(dev);
|
||||||
|
|
||||||
priv->regs = devfdt_get_addr_ptr(dev);
|
priv->regs = devfdt_get_addr_ptr(dev);
|
||||||
if (IS_ERR(priv->regs))
|
if (!priv->regs)
|
||||||
return PTR_ERR(priv->regs);
|
return -EINVAL;
|
||||||
|
|
||||||
priv->tmc = ast_get_timer_counter(priv->regs, AST_TICK_TIMER);
|
priv->tmc = ast_get_timer_counter(priv->regs, AST_TICK_TIMER);
|
||||||
|
|
||||||
|
|
|
@ -91,8 +91,8 @@ static int ast_wdt_ofdata_to_platdata(struct udevice *dev)
|
||||||
struct ast_wdt_priv *priv = dev_get_priv(dev);
|
struct ast_wdt_priv *priv = dev_get_priv(dev);
|
||||||
|
|
||||||
priv->regs = devfdt_get_addr_ptr(dev);
|
priv->regs = devfdt_get_addr_ptr(dev);
|
||||||
if (IS_ERR(priv->regs))
|
if (!priv->regs)
|
||||||
return PTR_ERR(priv->regs);
|
return -EINVAL;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -802,9 +802,7 @@ static inline fdt_addr_t dev_read_addr(const struct udevice *dev)
|
||||||
|
|
||||||
static inline void *dev_read_addr_ptr(const struct udevice *dev)
|
static inline void *dev_read_addr_ptr(const struct udevice *dev)
|
||||||
{
|
{
|
||||||
void *addr = devfdt_get_addr_ptr(dev);
|
return 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)
|
static inline fdt_addr_t dev_read_addr_pci(const struct udevice *dev)
|
||||||
|
|
Loading…
Add table
Reference in a new issue