On Tue, Jan 13, 2015 at 11:29:27AM -0800, Tony Lindgren wrote: > Some devices like dm816x have the MDIO registers within the first EMAC > instance address space. Let's fix the issue by allowing to pass an > optional second IO range for the EMAC control register area. > > Cc: Brian Hutchinson <[email protected]> > Cc: Felipe Balbi <[email protected]> > Signed-off-by: Tony Lindgren <[email protected]> > --- > drivers/net/ethernet/ti/davinci_emac.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/ti/davinci_emac.c > b/drivers/net/ethernet/ti/davinci_emac.c > index 4c8d82c..0342273 100644 > --- a/drivers/net/ethernet/ti/davinci_emac.c > +++ b/drivers/net/ethernet/ti/davinci_emac.c > @@ -1877,7 +1877,7 @@ davinci_emac_of_get_pdata(struct platform_device *pdev, > struct emac_priv *priv) > static int davinci_emac_probe(struct platform_device *pdev) > { > int rc = 0; > - struct resource *res; > + struct resource *res, *res_ctrl; > struct net_device *ndev; > struct emac_priv *priv; > unsigned long hw_ram_addr; > @@ -1936,11 +1936,20 @@ static int davinci_emac_probe(struct platform_device > *pdev) > rc = PTR_ERR(priv->remap_addr); > goto no_pdata; > } > + > + res_ctrl = platform_get_resource(pdev, IORESOURCE_MEM, 1); > + if (res_ctrl) {
devm_ioremap_resource() will check for res_ctrl being a valid pointer,
perhaps below would be slightly better ?
res_ctrl = platform_get_resource(pdev, IORESOURCE_MEM, 1);
priv->ctrl_base = devm_ioremap_resource(&pdev->dev, res_ctrl);
if (IS_ERR(priv->ctrl_base))
priv->ctrl_base = priv->remap_addr + pdata->ctrl_mod_reg_offset;
--
balbi
signature.asc
Description: Digital signature
