diff options
| -rw-r--r-- | drivers/net/ethernet/renesas/rcar_gen4_ptp.c | 5 | ||||
| -rw-r--r-- | drivers/net/ethernet/renesas/rcar_gen4_ptp.h | 3 | ||||
| -rw-r--r-- | drivers/net/ethernet/renesas/rswitch_main.c | 9 | ||||
| -rw-r--r-- | drivers/net/ethernet/renesas/rtsn.c | 19 |
4 files changed, 20 insertions, 16 deletions
diff --git a/drivers/net/ethernet/renesas/rcar_gen4_ptp.c b/drivers/net/ethernet/renesas/rcar_gen4_ptp.c index d0979abd36de..3fd835128cc8 100644 --- a/drivers/net/ethernet/renesas/rcar_gen4_ptp.c +++ b/drivers/net/ethernet/renesas/rcar_gen4_ptp.c @@ -168,7 +168,8 @@ int rcar_gen4_ptp_unregister(struct rcar_gen4_ptp_private *ptp_priv) } EXPORT_SYMBOL_GPL(rcar_gen4_ptp_unregister); -struct rcar_gen4_ptp_private *rcar_gen4_ptp_alloc(struct platform_device *pdev) +struct rcar_gen4_ptp_private *rcar_gen4_ptp_alloc(struct platform_device *pdev, + void __iomem *addr) { struct rcar_gen4_ptp_private *ptp; @@ -178,6 +179,8 @@ struct rcar_gen4_ptp_private *rcar_gen4_ptp_alloc(struct platform_device *pdev) ptp->info = rcar_gen4_ptp_info; + ptp->addr = addr; + return ptp; } EXPORT_SYMBOL_GPL(rcar_gen4_ptp_alloc); diff --git a/drivers/net/ethernet/renesas/rcar_gen4_ptp.h b/drivers/net/ethernet/renesas/rcar_gen4_ptp.h index 9a9c232c854e..b71aba873795 100644 --- a/drivers/net/ethernet/renesas/rcar_gen4_ptp.h +++ b/drivers/net/ethernet/renesas/rcar_gen4_ptp.h @@ -20,6 +20,7 @@ struct rcar_gen4_ptp_private { int rcar_gen4_ptp_register(struct rcar_gen4_ptp_private *ptp_priv, u32 rate); int rcar_gen4_ptp_unregister(struct rcar_gen4_ptp_private *ptp_priv); -struct rcar_gen4_ptp_private *rcar_gen4_ptp_alloc(struct platform_device *pdev); +struct rcar_gen4_ptp_private *rcar_gen4_ptp_alloc(struct platform_device *pdev, + void __iomem *addr); #endif /* #ifndef __RCAR_GEN4_PTP_H__ */ diff --git a/drivers/net/ethernet/renesas/rswitch_main.c b/drivers/net/ethernet/renesas/rswitch_main.c index e14b21148f27..ab0b40d4f4fb 100644 --- a/drivers/net/ethernet/renesas/rswitch_main.c +++ b/drivers/net/ethernet/renesas/rswitch_main.c @@ -2150,17 +2150,16 @@ static int renesas_eth_sw_probe(struct platform_device *pdev) if (attr) priv->etha_no_runtime_change = true; - priv->ptp_priv = rcar_gen4_ptp_alloc(pdev); - if (!priv->ptp_priv) - return -ENOMEM; - platform_set_drvdata(pdev, priv); priv->pdev = pdev; priv->addr = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(priv->addr)) return PTR_ERR(priv->addr); - priv->ptp_priv->addr = priv->addr + RSWITCH_GPTP_OFFSET_S4; + priv->ptp_priv = + rcar_gen4_ptp_alloc(pdev, priv->addr + RSWITCH_GPTP_OFFSET_S4); + if (!priv->ptp_priv) + return -ENOMEM; ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(40)); if (ret < 0) { diff --git a/drivers/net/ethernet/renesas/rtsn.c b/drivers/net/ethernet/renesas/rtsn.c index fdb1e7b7fb06..d4b955c87f1b 100644 --- a/drivers/net/ethernet/renesas/rtsn.c +++ b/drivers/net/ethernet/renesas/rtsn.c @@ -1227,6 +1227,7 @@ static int rtsn_probe(struct platform_device *pdev) { struct rtsn_private *priv; struct net_device *ndev; + void __iomem *ptpaddr; struct resource *res; int ret; @@ -1239,12 +1240,6 @@ static int rtsn_probe(struct platform_device *pdev) priv->pdev = pdev; priv->ndev = ndev; - priv->ptp_priv = rcar_gen4_ptp_alloc(pdev); - if (!priv->ptp_priv) { - ret = -ENOMEM; - goto error_free; - } - spin_lock_init(&priv->lock); platform_set_drvdata(pdev, priv); @@ -1288,9 +1283,15 @@ static int rtsn_probe(struct platform_device *pdev) goto error_free; } - priv->ptp_priv->addr = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(priv->ptp_priv->addr)) { - ret = PTR_ERR(priv->ptp_priv->addr); + ptpaddr = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(ptpaddr)) { + ret = PTR_ERR(ptpaddr); + goto error_free; + } + + priv->ptp_priv = rcar_gen4_ptp_alloc(pdev, ptpaddr); + if (!priv->ptp_priv) { + ret = -ENOMEM; goto error_free; } |
