Message ID | 20231120084606.4083194-8-claudiu.beznea.uj@bp.renesas.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: ravb: Add suspend to RAM and runtime PM support for RZ/G3S | expand |
On 11/20/23 11:46 AM, Claudiu wrote: > From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > ravb_rzv2m_hw_info::gptp_ref_clk is enabled only for RZ/V2M. RZ/V2M > is an ARM64 based device which selects power domains by default and > CONFIG_PM. The RZ/V2M Ethernet DT node has proper power-domain binding > available in device tree from the commit that added the Ethernet node. > (4872ca1f92b0 ("arm64: dts: renesas: r9a09g011: Add ethernet nodes")). > > Power domain support was available in rzg2l-cpg.c driver when the > Ethernet DT node has been enabled in RZ/V2M device tree. > (ef3c613ccd68 ("clk: renesas: Add CPG core wrapper for RZ/G2L SoC")). > > Thus remove the explicit clock enable for gptp_clk (and treat it as the > other clocks are treated) as it is not needed and removing it doesn't > break the ABI according to the above explanations. > > By removing the enable/disable operation from the driver we can add > runtime PM support (which operates on clocks) w/o the need to handle > the gptp_clk in Ethernet driver functions like ravb_runtime_nop(). > PM domain does all that is needed. > > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru> [...] MBR, Sergey
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 0fc9810c5e78..836fdb4b3bfd 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -2762,7 +2762,6 @@ static int ravb_probe(struct platform_device *pdev) error = PTR_ERR(priv->gptp_clk); goto out_disable_refclk; } - clk_prepare_enable(priv->gptp_clk); } ndev->max_mtu = info->rx_max_buf_size - (ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN); @@ -2786,7 +2785,7 @@ static int ravb_probe(struct platform_device *pdev) /* Set GTI value */ error = ravb_set_gti(ndev); if (error) - goto out_disable_gptp_clk; + goto out_disable_refclk; /* Request GTI loading */ ravb_modify(ndev, GCCR, GCCR_LTI, GCCR_LTI); @@ -2806,7 +2805,7 @@ static int ravb_probe(struct platform_device *pdev) "Cannot allocate desc base address table (size %d bytes)\n", priv->desc_bat_size); error = -ENOMEM; - goto out_disable_gptp_clk; + goto out_disable_refclk; } for (q = RAVB_BE; q < DBAT_ENTRY_NUM; q++) priv->desc_bat[q].die_dt = DT_EOS; @@ -2869,8 +2868,6 @@ static int ravb_probe(struct platform_device *pdev) /* Stop PTP Clock driver */ if (info->ccc_gac) ravb_ptp_stop(ndev); -out_disable_gptp_clk: - clk_disable_unprepare(priv->gptp_clk); out_disable_refclk: clk_disable_unprepare(priv->refclk); out_release: @@ -2893,7 +2890,6 @@ static void ravb_remove(struct platform_device *pdev) if (info->ccc_gac) ravb_ptp_stop(ndev); - clk_disable_unprepare(priv->gptp_clk); clk_disable_unprepare(priv->refclk); /* Set reset mode */