Message ID | 20240827095712.2672820-3-frank.li@vivo.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | net: convert to devm_clk_get_enabled() and devm_clk_get_optional_enabled() | expand |
On Tue, Aug 27, 2024 at 03:57:05AM -0600, Yangtao Li wrote: > Use devm_clk_get_enabled() and devm_clk_get_optional_enabled() > to simplify code. > > Signed-off-by: Yangtao Li <frank.li@vivo.com> > Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com> > Suggested-by: Serge Semin <fancer.lancer@gmail.com> > --- > v2: > -remove unused 'ret' > -fix incompatible-pointer-types > > .../ethernet/stmicro/stmmac/stmmac_platform.c | 35 +++++-------------- > 1 file changed, 8 insertions(+), 27 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > index ad868e8d195d..4365afabf3c4 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > @@ -415,8 +415,6 @@ static int stmmac_of_get_mac_mode(struct device_node *np) > static void stmmac_remove_config_dt(struct platform_device *pdev, > struct plat_stmmacenet_data *plat) > { > - clk_disable_unprepare(plat->stmmac_clk); > - clk_disable_unprepare(plat->pclk); > of_node_put(plat->phy_node); > of_node_put(plat->mdio_node); > } > @@ -436,7 +434,6 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) > struct plat_stmmacenet_data *plat; > struct stmmac_dma_cfg *dma_cfg; > int phy_mode; > - void *ret; > int rc; > > plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL); > @@ -615,21 +612,16 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) > > /* clock setup */ > if (!of_device_is_compatible(np, "snps,dwc-qos-ethernet-4.10")) { > - plat->stmmac_clk = devm_clk_get(&pdev->dev, > - STMMAC_RESOURCE_NAME); > + plat->stmmac_clk = devm_clk_get_enabled(&pdev->dev, STMMAC_RESOURCE_NAME); As it looks like there will be a v3 anyway, a minor nit from my side: Please preserve the line wrapping so that the lines remain <= 80 columns wide, which is still preferred by Networking code. plat->stmmac_clk = devm_clk_get_enabled(&pdev->dev, STMMAC_RESOURCE_NAME); > if (IS_ERR(plat->stmmac_clk)) { > dev_warn(&pdev->dev, "Cannot get CSR clock\n"); > plat->stmmac_clk = NULL; > } > - clk_prepare_enable(plat->stmmac_clk); > } > ...
On Tue, Aug 27, 2024 at 03:57:05AM -0600, Yangtao Li wrote: > Use devm_clk_get_enabled() and devm_clk_get_optional_enabled() > to simplify code. > > Signed-off-by: Yangtao Li <frank.li@vivo.com> > Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com> > Suggested-by: Serge Semin <fancer.lancer@gmail.com> Can't remember that I suggested the entire change, but merely the ERR_CAST() macro utilization. Anyway the patch now looks good: Reviewed-by: Serge Semin <fancer.lancer@gmail.com> Thanks. -Serge(y) > --- > v2: > -remove unused 'ret' > -fix incompatible-pointer-types > > .../ethernet/stmicro/stmmac/stmmac_platform.c | 35 +++++-------------- > 1 file changed, 8 insertions(+), 27 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > index ad868e8d195d..4365afabf3c4 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > @@ -415,8 +415,6 @@ static int stmmac_of_get_mac_mode(struct device_node *np) > static void stmmac_remove_config_dt(struct platform_device *pdev, > struct plat_stmmacenet_data *plat) > { > - clk_disable_unprepare(plat->stmmac_clk); > - clk_disable_unprepare(plat->pclk); > of_node_put(plat->phy_node); > of_node_put(plat->mdio_node); > } > @@ -436,7 +434,6 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) > struct plat_stmmacenet_data *plat; > struct stmmac_dma_cfg *dma_cfg; > int phy_mode; > - void *ret; > int rc; > > plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL); > @@ -615,21 +612,16 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) > > /* clock setup */ > if (!of_device_is_compatible(np, "snps,dwc-qos-ethernet-4.10")) { > - plat->stmmac_clk = devm_clk_get(&pdev->dev, > - STMMAC_RESOURCE_NAME); > + plat->stmmac_clk = devm_clk_get_enabled(&pdev->dev, STMMAC_RESOURCE_NAME); > if (IS_ERR(plat->stmmac_clk)) { > dev_warn(&pdev->dev, "Cannot get CSR clock\n"); > plat->stmmac_clk = NULL; > } > - clk_prepare_enable(plat->stmmac_clk); > } > > - plat->pclk = devm_clk_get_optional(&pdev->dev, "pclk"); > - if (IS_ERR(plat->pclk)) { > - ret = plat->pclk; > - goto error_pclk_get; > - } > - clk_prepare_enable(plat->pclk); > + plat->pclk = devm_clk_get_optional_enabled(&pdev->dev, "pclk"); > + if (IS_ERR(plat->pclk)) > + return ERR_CAST(plat->pclk); > > /* Fall-back to main clock in case of no PTP ref is passed */ > plat->clk_ptp_ref = devm_clk_get(&pdev->dev, "ptp_ref"); > @@ -644,26 +636,15 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) > > plat->stmmac_rst = devm_reset_control_get_optional(&pdev->dev, > STMMAC_RESOURCE_NAME); > - if (IS_ERR(plat->stmmac_rst)) { > - ret = plat->stmmac_rst; > - goto error_hw_init; > - } > + if (IS_ERR(plat->stmmac_rst)) > + return ERR_CAST(plat->stmmac_rst); > > plat->stmmac_ahb_rst = devm_reset_control_get_optional_shared( > &pdev->dev, "ahb"); > - if (IS_ERR(plat->stmmac_ahb_rst)) { > - ret = plat->stmmac_ahb_rst; > - goto error_hw_init; > - } > + if (IS_ERR(plat->stmmac_ahb_rst)) > + return ERR_CAST(plat->stmmac_ahb_rst); > > return plat; > - > -error_hw_init: > - clk_disable_unprepare(plat->pclk); > -error_pclk_get: > - clk_disable_unprepare(plat->stmmac_clk); > - > - return ret; > } > > static void devm_stmmac_remove_config_dt(void *data) > -- > 2.39.0 >
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c index ad868e8d195d..4365afabf3c4 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -415,8 +415,6 @@ static int stmmac_of_get_mac_mode(struct device_node *np) static void stmmac_remove_config_dt(struct platform_device *pdev, struct plat_stmmacenet_data *plat) { - clk_disable_unprepare(plat->stmmac_clk); - clk_disable_unprepare(plat->pclk); of_node_put(plat->phy_node); of_node_put(plat->mdio_node); } @@ -436,7 +434,6 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) struct plat_stmmacenet_data *plat; struct stmmac_dma_cfg *dma_cfg; int phy_mode; - void *ret; int rc; plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL); @@ -615,21 +612,16 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) /* clock setup */ if (!of_device_is_compatible(np, "snps,dwc-qos-ethernet-4.10")) { - plat->stmmac_clk = devm_clk_get(&pdev->dev, - STMMAC_RESOURCE_NAME); + plat->stmmac_clk = devm_clk_get_enabled(&pdev->dev, STMMAC_RESOURCE_NAME); if (IS_ERR(plat->stmmac_clk)) { dev_warn(&pdev->dev, "Cannot get CSR clock\n"); plat->stmmac_clk = NULL; } - clk_prepare_enable(plat->stmmac_clk); } - plat->pclk = devm_clk_get_optional(&pdev->dev, "pclk"); - if (IS_ERR(plat->pclk)) { - ret = plat->pclk; - goto error_pclk_get; - } - clk_prepare_enable(plat->pclk); + plat->pclk = devm_clk_get_optional_enabled(&pdev->dev, "pclk"); + if (IS_ERR(plat->pclk)) + return ERR_CAST(plat->pclk); /* Fall-back to main clock in case of no PTP ref is passed */ plat->clk_ptp_ref = devm_clk_get(&pdev->dev, "ptp_ref"); @@ -644,26 +636,15 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) plat->stmmac_rst = devm_reset_control_get_optional(&pdev->dev, STMMAC_RESOURCE_NAME); - if (IS_ERR(plat->stmmac_rst)) { - ret = plat->stmmac_rst; - goto error_hw_init; - } + if (IS_ERR(plat->stmmac_rst)) + return ERR_CAST(plat->stmmac_rst); plat->stmmac_ahb_rst = devm_reset_control_get_optional_shared( &pdev->dev, "ahb"); - if (IS_ERR(plat->stmmac_ahb_rst)) { - ret = plat->stmmac_ahb_rst; - goto error_hw_init; - } + if (IS_ERR(plat->stmmac_ahb_rst)) + return ERR_CAST(plat->stmmac_ahb_rst); return plat; - -error_hw_init: - clk_disable_unprepare(plat->pclk); -error_pclk_get: - clk_disable_unprepare(plat->stmmac_clk); - - return ret; } static void devm_stmmac_remove_config_dt(void *data)