From: Claudiu Beznea <[email protected]>
Keep clock request operations grouped togeter to have all clock-related
code in a single place. This makes the code simpler to follow.
Signed-off-by: Claudiu Beznea <[email protected]>
---
Changes in v2:
- none; this patch is new
drivers/net/ethernet/renesas/ravb_main.c | 28 ++++++++++++------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index 38999ef1ea85..a2a64c22ec41 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -2768,6 +2768,20 @@ static int ravb_probe(struct platform_device *pdev)
if (error)
goto out_reset_assert;
+ priv->clk = devm_clk_get(&pdev->dev, NULL);
+ if (IS_ERR(priv->clk)) {
+ error = PTR_ERR(priv->clk);
+ goto out_reset_assert;
+ }
+
+ if (info->gptp_ref_clk) {
+ priv->gptp_clk = devm_clk_get(&pdev->dev, "gptp");
+ if (IS_ERR(priv->gptp_clk)) {
+ error = PTR_ERR(priv->gptp_clk);
+ goto out_reset_assert;
+ }
+ }
+
priv->refclk = devm_clk_get_optional(&pdev->dev, "refclk");
if (IS_ERR(priv->refclk)) {
error = PTR_ERR(priv->refclk);
@@ -2801,20 +2815,6 @@ static int ravb_probe(struct platform_device *pdev)
priv->avb_link_active_low =
of_property_read_bool(np, "renesas,ether-link-active-low");
- priv->clk = devm_clk_get(&pdev->dev, NULL);
- if (IS_ERR(priv->clk)) {
- error = PTR_ERR(priv->clk);
- goto out_rpm_put;
- }
-
- if (info->gptp_ref_clk) {
- priv->gptp_clk = devm_clk_get(&pdev->dev, "gptp");
- if (IS_ERR(priv->gptp_clk)) {
- error = PTR_ERR(priv->gptp_clk);
- goto out_rpm_put;
- }
- }
-
ndev->max_mtu = info->rx_max_buf_size - (ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN);
ndev->min_mtu = ETH_MIN_MTU;
--
2.39.2
On 12/14/23 2:45 PM, Claudiu wrote:
> From: Claudiu Beznea <[email protected]>
>
> Keep clock request operations grouped togeter to have all clock-related
> code in a single place. This makes the code simpler to follow.
>
> Signed-off-by: Claudiu Beznea <[email protected]>
> ---
>
> Changes in v2:
> - none; this patch is new
>
> drivers/net/ethernet/renesas/ravb_main.c | 28 ++++++++++++------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
> index 38999ef1ea85..a2a64c22ec41 100644
> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -2768,6 +2768,20 @@ static int ravb_probe(struct platform_device *pdev)
> if (error)
> goto out_reset_assert;
>
> + priv->clk = devm_clk_get(&pdev->dev, NULL);
> + if (IS_ERR(priv->clk)) {
> + error = PTR_ERR(priv->clk);
> + goto out_reset_assert;
> + }
> +
> + if (info->gptp_ref_clk) {
> + priv->gptp_clk = devm_clk_get(&pdev->dev, "gptp");
> + if (IS_ERR(priv->gptp_clk)) {
> + error = PTR_ERR(priv->gptp_clk);
> + goto out_reset_assert;
> + }
> + }
> +
> priv->refclk = devm_clk_get_optional(&pdev->dev, "refclk");
> if (IS_ERR(priv->refclk)) {
> error = PTR_ERR(priv->refclk);
Hmm... I think we currently have all these calls in one place.
Perhaps you just shouldn't have moved this code around?
MBR, Sergey
On 16.12.2023 21:43, Sergey Shtylyov wrote:
> On 12/14/23 2:45 PM, Claudiu wrote:
>
>> From: Claudiu Beznea <[email protected]>
>>
>> Keep clock request operations grouped togeter to have all clock-related
>> code in a single place. This makes the code simpler to follow.
>>
>> Signed-off-by: Claudiu Beznea <[email protected]>
>> ---
>>
>> Changes in v2:
>> - none; this patch is new
>>
>> drivers/net/ethernet/renesas/ravb_main.c | 28 ++++++++++++------------
>> 1 file changed, 14 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
>> index 38999ef1ea85..a2a64c22ec41 100644
>> --- a/drivers/net/ethernet/renesas/ravb_main.c
>> +++ b/drivers/net/ethernet/renesas/ravb_main.c
>> @@ -2768,6 +2768,20 @@ static int ravb_probe(struct platform_device *pdev)
>> if (error)
>> goto out_reset_assert;
>>
>> + priv->clk = devm_clk_get(&pdev->dev, NULL);
>> + if (IS_ERR(priv->clk)) {
>> + error = PTR_ERR(priv->clk);
>> + goto out_reset_assert;
>> + }
>> +
>> + if (info->gptp_ref_clk) {
>> + priv->gptp_clk = devm_clk_get(&pdev->dev, "gptp");
>> + if (IS_ERR(priv->gptp_clk)) {
>> + error = PTR_ERR(priv->gptp_clk);
>> + goto out_reset_assert;
>> + }
>> + }
>> +
>> priv->refclk = devm_clk_get_optional(&pdev->dev, "refclk");
>> if (IS_ERR(priv->refclk)) {
>> error = PTR_ERR(priv->refclk);
>
> Hmm... I think we currently have all these calls in one place.
> Perhaps you just shouldn't have moved this code around?
refclk have been moved at this point due to runtime PM. As refclk was
changed to be part of driver's runtime PM APIs we need to have it requested
(and prepared) before pm_runtime_resume_and_get(). Calling
pm_runtime_resume_and_get() will call driver's runtime PM resume.
The idea with this patch was to have all clock requests (clk, gptp, refclk)
in a single place (it's easier to follow the code this way, in my opinion).
If you prefer I can squash this patch with patch 07/21 "net: ravb: Move
reference clock enable/disable on runtime PM APIs". Please, let me know
what do you think.
>
> MBR, Sergey
On 12/17/23 4:22 PM, claudiu beznea wrote:
[...]
>>> From: Claudiu Beznea <[email protected]>
>>>
>>> Keep clock request operations grouped togeter to have all clock-related
>>> code in a single place. This makes the code simpler to follow.
>>>
>>> Signed-off-by: Claudiu Beznea <[email protected]>
>>> ---
>>>
>>> Changes in v2:
>>> - none; this patch is new
>>>
>>> drivers/net/ethernet/renesas/ravb_main.c | 28 ++++++++++++------------
>>> 1 file changed, 14 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
>>> index 38999ef1ea85..a2a64c22ec41 100644
>>> --- a/drivers/net/ethernet/renesas/ravb_main.c
>>> +++ b/drivers/net/ethernet/renesas/ravb_main.c
>>> @@ -2768,6 +2768,20 @@ static int ravb_probe(struct platform_device *pdev)
>>> if (error)
>>> goto out_reset_assert;
>>>
>>> + priv->clk = devm_clk_get(&pdev->dev, NULL);
>>> + if (IS_ERR(priv->clk)) {
>>> + error = PTR_ERR(priv->clk);
>>> + goto out_reset_assert;
>>> + }
>>> +
>>> + if (info->gptp_ref_clk) {
>>> + priv->gptp_clk = devm_clk_get(&pdev->dev, "gptp");
>>> + if (IS_ERR(priv->gptp_clk)) {
>>> + error = PTR_ERR(priv->gptp_clk);
>>> + goto out_reset_assert;
>>> + }
>>> + }
>>> +
>>> priv->refclk = devm_clk_get_optional(&pdev->dev, "refclk");
>>> if (IS_ERR(priv->refclk)) {
>>> error = PTR_ERR(priv->refclk);
>>
>> Hmm... I think we currently have all these calls in one place.
>> Perhaps you just shouldn't have moved this code around?
>
> refclk have been moved at this point due to runtime PM. As refclk was
> changed to be part of driver's runtime PM APIs we need to have it requested
> (and prepared) before pm_runtime_resume_and_get(). Calling
> pm_runtime_resume_and_get() will call driver's runtime PM resume.
>
> The idea with this patch was to have all clock requests (clk, gptp, refclk)
> in a single place (it's easier to follow the code this way, in my opinion).
> If you prefer I can squash this patch with patch 07/21 "net: ravb: Move
> reference clock enable/disable on runtime PM APIs". Please, let me know
> what do you think.
Yes, please move all 3 clocks at once.
MBR, Sergey