diff mbox series

[08/14] net: phy: ksz90x1: Simplify ksz9131_config_rgmii_delay

Message ID 20241024152448.102-9-paul.barker.ct@bp.renesas.com
State New
Delegated to: Marek Vasut
Headers show
Series Add support for Ethernet interfaces on RZ/G2L | expand

Commit Message

Paul Barker Oct. 24, 2024, 3:24 p.m. UTC
We can call phy_modify_mmd() instead of manually calling drv->readext()
and drv->writeext().

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
---
 drivers/net/phy/micrel_ksz90x1.c | 26 ++++++++------------------
 1 file changed, 8 insertions(+), 18 deletions(-)

Comments

Marek Vasut Oct. 27, 2024, 4:20 p.m. UTC | #1
On 10/24/24 5:24 PM, Paul Barker wrote:
> We can call phy_modify_mmd() instead of manually calling drv->readext()
> and drv->writeext().
> 
> Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
> ---
>   drivers/net/phy/micrel_ksz90x1.c | 26 ++++++++------------------
>   1 file changed, 8 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/net/phy/micrel_ksz90x1.c b/drivers/net/phy/micrel_ksz90x1.c
> index b64046e0bc72..6515d8feb9be 100644
> --- a/drivers/net/phy/micrel_ksz90x1.c
> +++ b/drivers/net/phy/micrel_ksz90x1.c
> @@ -502,8 +502,7 @@ static int ksz9131_of_load_all_skew_values(struct phy_device *phydev)
>   
>   static int ksz9131_config_rgmii_delay(struct phy_device *phydev)
>   {
> -	struct phy_driver *drv = phydev->drv;
> -	u16 rxcdll_val, txcdll_val, val;
> +	u16 rxcdll_val, txcdll_val;
>   	int ret;
>   
>   	switch (phydev->interface) {
> @@ -527,24 +526,15 @@ static int ksz9131_config_rgmii_delay(struct phy_device *phydev)
>   		return 0;
>   	}
>   
> -	val = drv->readext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
> -			   KSZ9131RN_RXC_DLL_CTRL);
> -	val &= ~KSZ9131RN_DLL_CTRL_BYPASS;
> -	val |= rxcdll_val;
> -	ret = drv->writeext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
> -			    KSZ9131RN_RXC_DLL_CTRL, val);
> -	if (ret)
> +	ret = phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG,
> +			     KSZ9131RN_RXC_DLL_CTRL, KSZ9131RN_DLL_CTRL_BYPASS,
> +			     rxcdll_val);
> +	if (ret < 0)
>   		return ret;
>   
> -	val = drv->readext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
> -			   KSZ9131RN_TXC_DLL_CTRL);
> -
> -	val &= ~KSZ9131RN_DLL_CTRL_BYPASS;
> -	val |= txcdll_val;
> -	ret = drv->writeext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
> -			    KSZ9131RN_TXC_DLL_CTRL, val);
> -
> -	return ret;
> +	return phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG,
> +			      KSZ9131RN_TXC_DLL_CTRL, KSZ9131RN_DLL_CTRL_BYPASS,
> +			      txcdll_val);
>   }
Can't you set both bitfields at the same time ? They seem to be in the 
same register.
Paul Barker Oct. 28, 2024, 8:50 a.m. UTC | #2
On 27/10/2024 16:20, Marek Vasut wrote:
> On 10/24/24 5:24 PM, Paul Barker wrote:
>> We can call phy_modify_mmd() instead of manually calling drv->readext()
>> and drv->writeext().
>>
>> Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
>> ---
>>   drivers/net/phy/micrel_ksz90x1.c | 26 ++++++++------------------
>>   1 file changed, 8 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/net/phy/micrel_ksz90x1.c b/drivers/net/phy/micrel_ksz90x1.c
>> index b64046e0bc72..6515d8feb9be 100644
>> --- a/drivers/net/phy/micrel_ksz90x1.c
>> +++ b/drivers/net/phy/micrel_ksz90x1.c
>> @@ -502,8 +502,7 @@ static int ksz9131_of_load_all_skew_values(struct phy_device *phydev)
>>   
>>   static int ksz9131_config_rgmii_delay(struct phy_device *phydev)
>>   {
>> -	struct phy_driver *drv = phydev->drv;
>> -	u16 rxcdll_val, txcdll_val, val;
>> +	u16 rxcdll_val, txcdll_val;
>>   	int ret;
>>   
>>   	switch (phydev->interface) {
>> @@ -527,24 +526,15 @@ static int ksz9131_config_rgmii_delay(struct phy_device *phydev)
>>   		return 0;
>>   	}
>>   
>> -	val = drv->readext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
>> -			   KSZ9131RN_RXC_DLL_CTRL);
>> -	val &= ~KSZ9131RN_DLL_CTRL_BYPASS;
>> -	val |= rxcdll_val;
>> -	ret = drv->writeext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
>> -			    KSZ9131RN_RXC_DLL_CTRL, val);
>> -	if (ret)
>> +	ret = phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG,
>> +			     KSZ9131RN_RXC_DLL_CTRL, KSZ9131RN_DLL_CTRL_BYPASS,
>> +			     rxcdll_val);
>> +	if (ret < 0)
>>   		return ret;
>>   
>> -	val = drv->readext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
>> -			   KSZ9131RN_TXC_DLL_CTRL);
>> -
>> -	val &= ~KSZ9131RN_DLL_CTRL_BYPASS;
>> -	val |= txcdll_val;
>> -	ret = drv->writeext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
>> -			    KSZ9131RN_TXC_DLL_CTRL, val);
>> -
>> -	return ret;
>> +	return phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG,
>> +			      KSZ9131RN_TXC_DLL_CTRL, KSZ9131RN_DLL_CTRL_BYPASS,
>> +			      txcdll_val);
>>   }
> Can't you set both bitfields at the same time ? They seem to be in the 
> same register.

These writes are to two different registers (KSZ9131RN_RXC_DLL_CTRL and
KSZ9131RN_TXC_DLL_CTRL), using the same bitmask in both cases
(KSZ9131RN_DLL_CTRL_BYPASS).

Thanks,
diff mbox series

Patch

diff --git a/drivers/net/phy/micrel_ksz90x1.c b/drivers/net/phy/micrel_ksz90x1.c
index b64046e0bc72..6515d8feb9be 100644
--- a/drivers/net/phy/micrel_ksz90x1.c
+++ b/drivers/net/phy/micrel_ksz90x1.c
@@ -502,8 +502,7 @@  static int ksz9131_of_load_all_skew_values(struct phy_device *phydev)
 
 static int ksz9131_config_rgmii_delay(struct phy_device *phydev)
 {
-	struct phy_driver *drv = phydev->drv;
-	u16 rxcdll_val, txcdll_val, val;
+	u16 rxcdll_val, txcdll_val;
 	int ret;
 
 	switch (phydev->interface) {
@@ -527,24 +526,15 @@  static int ksz9131_config_rgmii_delay(struct phy_device *phydev)
 		return 0;
 	}
 
-	val = drv->readext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
-			   KSZ9131RN_RXC_DLL_CTRL);
-	val &= ~KSZ9131RN_DLL_CTRL_BYPASS;
-	val |= rxcdll_val;
-	ret = drv->writeext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
-			    KSZ9131RN_RXC_DLL_CTRL, val);
-	if (ret)
+	ret = phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG,
+			     KSZ9131RN_RXC_DLL_CTRL, KSZ9131RN_DLL_CTRL_BYPASS,
+			     rxcdll_val);
+	if (ret < 0)
 		return ret;
 
-	val = drv->readext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
-			   KSZ9131RN_TXC_DLL_CTRL);
-
-	val &= ~KSZ9131RN_DLL_CTRL_BYPASS;
-	val |= txcdll_val;
-	ret = drv->writeext(phydev, 0, KSZ9131RN_MMD_COMMON_CTRL_REG,
-			    KSZ9131RN_TXC_DLL_CTRL, val);
-
-	return ret;
+	return phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG,
+			      KSZ9131RN_TXC_DLL_CTRL, KSZ9131RN_DLL_CTRL_BYPASS,
+			      txcdll_val);
 }
 
 /* Silicon Errata DS80000693B