All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3
@ 2018-06-29 15:35 Dan Murphy
  2018-06-29 15:35 ` [PATCH net-next v2 2/2] net: phy: DP83TC811: Fix SGMII enable/disable Dan Murphy
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Dan Murphy @ 2018-06-29 15:35 UTC (permalink / raw)
  To: andrew, f.fainelli; +Cc: netdev, linux-kernel, Dan Murphy

Add INT_STAT3 interrupt setting and clearing
support.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
---

v2 - Removed bug fix removal of writing INT_STAT1 twice when disabling interrupts

 drivers/net/phy/dp83tc811.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/net/phy/dp83tc811.c b/drivers/net/phy/dp83tc811.c
index 49ac678eb2dc..f8653f5d8789 100644
--- a/drivers/net/phy/dp83tc811.c
+++ b/drivers/net/phy/dp83tc811.c
@@ -21,6 +21,7 @@
 #define MII_DP83811_SGMII_CTRL	0x09
 #define MII_DP83811_INT_STAT1	0x12
 #define MII_DP83811_INT_STAT2	0x13
+#define MII_DP83811_INT_STAT3	0x18
 #define MII_DP83811_RESET_CTRL	0x1f
 
 #define DP83811_HW_RESET	BIT(15)
@@ -44,6 +45,11 @@
 #define DP83811_OVERVOLTAGE_INT_EN	BIT(6)
 #define DP83811_UNDERVOLTAGE_INT_EN	BIT(7)
 
+/* INT_STAT3 bits */
+#define DP83811_LPS_INT_EN	BIT(0)
+#define DP83811_NO_FRAME_INT_EN	BIT(3)
+#define DP83811_POR_DONE_INT_EN	BIT(4)
+
 #define MII_DP83811_RXSOP1	0x04a5
 #define MII_DP83811_RXSOP2	0x04a6
 #define MII_DP83811_RXSOP3	0x04a7
@@ -81,6 +87,10 @@ static int dp83811_ack_interrupt(struct phy_device *phydev)
 	if (err < 0)
 		return err;
 
+	err = phy_read(phydev, MII_DP83811_INT_STAT3);
+	if (err < 0)
+		return err;
+
 	return 0;
 }
 
@@ -216,6 +226,18 @@ static int dp83811_config_intr(struct phy_device *phydev)
 				DP83811_UNDERVOLTAGE_INT_EN);
 
 		err = phy_write(phydev, MII_DP83811_INT_STAT2, misr_status);
+		if (err < 0)
+			return err;
+
+		misr_status = phy_read(phydev, MII_DP83811_INT_STAT3);
+		if (misr_status < 0)
+			return misr_status;
+
+		misr_status |= (DP83811_LPS_INT_EN |
+				DP83811_NO_FRAME_INT_EN |
+				DP83811_POR_DONE_INT_EN);
+
+		err = phy_write(phydev, MII_DP83811_INT_STAT3, misr_status);
 
 	} else {
 		err = phy_write(phydev, MII_DP83811_INT_STAT1, 0);
@@ -223,6 +245,10 @@ static int dp83811_config_intr(struct phy_device *phydev)
 			return err;
 
 		err = phy_write(phydev, MII_DP83811_INT_STAT2, 0);
+		if (err < 0)
+			return err;
+
+		err = phy_write(phydev, MII_DP83811_INT_STAT3, 0);
 	}
 
 	return err;
-- 
2.17.0.582.gccdcbd54c


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH net-next v2 2/2] net: phy: DP83TC811: Fix SGMII enable/disable
  2018-06-29 15:35 [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Dan Murphy
@ 2018-06-29 15:35 ` Dan Murphy
  2018-07-03  2:38   ` David Miller
  2018-06-29 15:45 ` [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Andrew Lunn
  2018-07-03  2:38 ` David Miller
  2 siblings, 1 reply; 7+ messages in thread
From: Dan Murphy @ 2018-06-29 15:35 UTC (permalink / raw)
  To: andrew, f.fainelli; +Cc: netdev, linux-kernel, Dan Murphy

If SGMII was selected in the DT then the device should
write the SGMII enable bit.

If SGMII is not selected in the DT then the SGMII bit
should be disabled.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
---

v2 - Removed erroneous defconfig addtion in the patch.

 drivers/net/phy/dp83tc811.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/net/phy/dp83tc811.c b/drivers/net/phy/dp83tc811.c
index f8653f5d8789..78cad134a79e 100644
--- a/drivers/net/phy/dp83tc811.c
+++ b/drivers/net/phy/dp83tc811.c
@@ -284,21 +284,19 @@ static int dp83811_config_init(struct phy_device *phydev)
 	if (err < 0)
 		return err;
 
+	value = phy_read(phydev, MII_DP83811_SGMII_CTRL);
 	if (phydev->interface == PHY_INTERFACE_MODE_SGMII) {
-		value = phy_read(phydev, MII_DP83811_SGMII_CTRL);
-		if (!(value & DP83811_SGMII_EN)) {
-			err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
+		err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
 					(DP83811_SGMII_EN | value));
-			if (err < 0)
-				return err;
-		} else {
-			err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
-					(~DP83811_SGMII_EN & value));
-			if (err < 0)
-				return err;
-		}
+	} else {
+		err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
+				(~DP83811_SGMII_EN & value));
 	}
 
+	if (err < 0)
+
+		return err;
+
 	value = DP83811_WOL_MAGIC_EN | DP83811_WOL_SECURE_ON | DP83811_WOL_EN;
 
 	return phy_write_mmd(phydev, DP83811_DEVADDR, MII_DP83811_WOL_CFG,
-- 
2.17.0.582.gccdcbd54c


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3
  2018-06-29 15:35 [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Dan Murphy
  2018-06-29 15:35 ` [PATCH net-next v2 2/2] net: phy: DP83TC811: Fix SGMII enable/disable Dan Murphy
@ 2018-06-29 15:45 ` Andrew Lunn
  2018-06-29 16:17   ` Dan Murphy
  2018-07-03  2:38 ` David Miller
  2 siblings, 1 reply; 7+ messages in thread
From: Andrew Lunn @ 2018-06-29 15:45 UTC (permalink / raw)
  To: Dan Murphy; +Cc: f.fainelli, netdev, linux-kernel

On Fri, Jun 29, 2018 at 10:35:45AM -0500, Dan Murphy wrote:
> Add INT_STAT3 interrupt setting and clearing
> support.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
> 
> v2 - Removed bug fix removal of writing INT_STAT1 twice when disabling interrupts
> 
>  drivers/net/phy/dp83tc811.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/drivers/net/phy/dp83tc811.c b/drivers/net/phy/dp83tc811.c
> index 49ac678eb2dc..f8653f5d8789 100644
> --- a/drivers/net/phy/dp83tc811.c
> +++ b/drivers/net/phy/dp83tc811.c
> @@ -21,6 +21,7 @@
>  #define MII_DP83811_SGMII_CTRL	0x09
>  #define MII_DP83811_INT_STAT1	0x12
>  #define MII_DP83811_INT_STAT2	0x13
> +#define MII_DP83811_INT_STAT3	0x18
>  #define MII_DP83811_RESET_CTRL	0x1f
>  
>  #define DP83811_HW_RESET	BIT(15)
> @@ -44,6 +45,11 @@
>  #define DP83811_OVERVOLTAGE_INT_EN	BIT(6)
>  #define DP83811_UNDERVOLTAGE_INT_EN	BIT(7)
>  
> +/* INT_STAT3 bits */
> +#define DP83811_LPS_INT_EN	BIT(0)
> +#define DP83811_NO_FRAME_INT_EN	BIT(3)
> +#define DP83811_POR_DONE_INT_EN	BIT(4)
> +
>  #define MII_DP83811_RXSOP1	0x04a5
>  #define MII_DP83811_RXSOP2	0x04a6
>  #define MII_DP83811_RXSOP3	0x04a7
> @@ -81,6 +87,10 @@ static int dp83811_ack_interrupt(struct phy_device *phydev)
>  	if (err < 0)
>  		return err;
>  
> +	err = phy_read(phydev, MII_DP83811_INT_STAT3);
> +	if (err < 0)
> +		return err;
> +
>  	return 0;
>  }
>  
> @@ -216,6 +226,18 @@ static int dp83811_config_intr(struct phy_device *phydev)
>  				DP83811_UNDERVOLTAGE_INT_EN);
>  
>  		err = phy_write(phydev, MII_DP83811_INT_STAT2, misr_status);

Hi Dan

Isn't this going to fail to apply because net-next says STAT1 here?

That is why i said you need to wait for David to merge net into
net-next. Then you can submit these patches, and not have conflicts.

	  Andrew

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3
  2018-06-29 15:45 ` [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Andrew Lunn
@ 2018-06-29 16:17   ` Dan Murphy
  2018-07-02 14:00     ` Dan Murphy
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Murphy @ 2018-06-29 16:17 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: f.fainelli, netdev, linux-kernel

Andrew

On 06/29/2018 10:45 AM, Andrew Lunn wrote:
> On Fri, Jun 29, 2018 at 10:35:45AM -0500, Dan Murphy wrote:
>> Add INT_STAT3 interrupt setting and clearing
>> support.
>>
>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>> ---
>>
>> v2 - Removed bug fix removal of writing INT_STAT1 twice when disabling interrupts
>>
>>  drivers/net/phy/dp83tc811.c | 26 ++++++++++++++++++++++++++
>>  1 file changed, 26 insertions(+)
>>
>> diff --git a/drivers/net/phy/dp83tc811.c b/drivers/net/phy/dp83tc811.c
>> index 49ac678eb2dc..f8653f5d8789 100644
>> --- a/drivers/net/phy/dp83tc811.c
>> +++ b/drivers/net/phy/dp83tc811.c
>> @@ -21,6 +21,7 @@
>>  #define MII_DP83811_SGMII_CTRL	0x09
>>  #define MII_DP83811_INT_STAT1	0x12
>>  #define MII_DP83811_INT_STAT2	0x13
>> +#define MII_DP83811_INT_STAT3	0x18
>>  #define MII_DP83811_RESET_CTRL	0x1f
>>  
>>  #define DP83811_HW_RESET	BIT(15)
>> @@ -44,6 +45,11 @@
>>  #define DP83811_OVERVOLTAGE_INT_EN	BIT(6)
>>  #define DP83811_UNDERVOLTAGE_INT_EN	BIT(7)
>>  
>> +/* INT_STAT3 bits */
>> +#define DP83811_LPS_INT_EN	BIT(0)
>> +#define DP83811_NO_FRAME_INT_EN	BIT(3)
>> +#define DP83811_POR_DONE_INT_EN	BIT(4)
>> +
>>  #define MII_DP83811_RXSOP1	0x04a5
>>  #define MII_DP83811_RXSOP2	0x04a6
>>  #define MII_DP83811_RXSOP3	0x04a7
>> @@ -81,6 +87,10 @@ static int dp83811_ack_interrupt(struct phy_device *phydev)
>>  	if (err < 0)
>>  		return err;
>>  
>> +	err = phy_read(phydev, MII_DP83811_INT_STAT3);
>> +	if (err < 0)
>> +		return err;
>> +
>>  	return 0;
>>  }
>>  
>> @@ -216,6 +226,18 @@ static int dp83811_config_intr(struct phy_device *phydev)
>>  				DP83811_UNDERVOLTAGE_INT_EN);
>>  
>>  		err = phy_write(phydev, MII_DP83811_INT_STAT2, misr_status);
> 
> Hi Dan
> 
> Isn't this going to fail to apply because net-next says STAT1 here?
> 

Yes but this should not be a pre-requisite for a code review.

Maybe I should have put the RFC in the subject.

> That is why i said you need to wait for David to merge net into
> net-next. Then you can submit these patches, and not have conflicts.
> 
> 	  Andrew
> 


-- 
------------------
Dan Murphy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3
  2018-06-29 16:17   ` Dan Murphy
@ 2018-07-02 14:00     ` Dan Murphy
  0 siblings, 0 replies; 7+ messages in thread
From: Dan Murphy @ 2018-07-02 14:00 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: f.fainelli, netdev, linux-kernel

Andrew

On 06/29/2018 11:17 AM, Dan Murphy wrote:
> Andrew
> 
> On 06/29/2018 10:45 AM, Andrew Lunn wrote:
>> On Fri, Jun 29, 2018 at 10:35:45AM -0500, Dan Murphy wrote:
>>> Add INT_STAT3 interrupt setting and clearing
>>> support.
>>>
>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>>> ---
>>>
>>> v2 - Removed bug fix removal of writing INT_STAT1 twice when disabling interrupts
>>>
>>>  drivers/net/phy/dp83tc811.c | 26 ++++++++++++++++++++++++++
>>>  1 file changed, 26 insertions(+)
>>>
>>> diff --git a/drivers/net/phy/dp83tc811.c b/drivers/net/phy/dp83tc811.c
>>> index 49ac678eb2dc..f8653f5d8789 100644
>>> --- a/drivers/net/phy/dp83tc811.c
>>> +++ b/drivers/net/phy/dp83tc811.c
>>> @@ -21,6 +21,7 @@
>>>  #define MII_DP83811_SGMII_CTRL	0x09
>>>  #define MII_DP83811_INT_STAT1	0x12
>>>  #define MII_DP83811_INT_STAT2	0x13
>>> +#define MII_DP83811_INT_STAT3	0x18
>>>  #define MII_DP83811_RESET_CTRL	0x1f
>>>  
>>>  #define DP83811_HW_RESET	BIT(15)
>>> @@ -44,6 +45,11 @@
>>>  #define DP83811_OVERVOLTAGE_INT_EN	BIT(6)
>>>  #define DP83811_UNDERVOLTAGE_INT_EN	BIT(7)
>>>  
>>> +/* INT_STAT3 bits */
>>> +#define DP83811_LPS_INT_EN	BIT(0)
>>> +#define DP83811_NO_FRAME_INT_EN	BIT(3)
>>> +#define DP83811_POR_DONE_INT_EN	BIT(4)
>>> +
>>>  #define MII_DP83811_RXSOP1	0x04a5
>>>  #define MII_DP83811_RXSOP2	0x04a6
>>>  #define MII_DP83811_RXSOP3	0x04a7
>>> @@ -81,6 +87,10 @@ static int dp83811_ack_interrupt(struct phy_device *phydev)
>>>  	if (err < 0)
>>>  		return err;
>>>  
>>> +	err = phy_read(phydev, MII_DP83811_INT_STAT3);
>>> +	if (err < 0)
>>> +		return err;
>>> +
>>>  	return 0;
>>>  }
>>>  
>>> @@ -216,6 +226,18 @@ static int dp83811_config_intr(struct phy_device *phydev)
>>>  				DP83811_UNDERVOLTAGE_INT_EN);
>>>  
>>>  		err = phy_write(phydev, MII_DP83811_INT_STAT2, misr_status);
>>
>> Hi Dan
>>
>> Isn't this going to fail to apply because net-next says STAT1 here?
>>
> 
> Yes but this should not be a pre-requisite for a code review.
> 
> Maybe I should have put the RFC in the subject.
> 
>> That is why i said you need to wait for David to merge net into
>> net-next. Then you can submit these patches, and not have conflicts.
>>

David has applied the pre-requisite patch so this series can be review and tested.

Dan

>> 	  Andrew
>>
> 
> 


-- 
------------------
Dan Murphy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3
  2018-06-29 15:35 [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Dan Murphy
  2018-06-29 15:35 ` [PATCH net-next v2 2/2] net: phy: DP83TC811: Fix SGMII enable/disable Dan Murphy
  2018-06-29 15:45 ` [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Andrew Lunn
@ 2018-07-03  2:38 ` David Miller
  2 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2018-07-03  2:38 UTC (permalink / raw)
  To: dmurphy; +Cc: andrew, f.fainelli, netdev, linux-kernel

From: Dan Murphy <dmurphy@ti.com>
Date: Fri, 29 Jun 2018 10:35:45 -0500

> Add INT_STAT3 interrupt setting and clearing
> support.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
> 
> v2 - Removed bug fix removal of writing INT_STAT1 twice when disabling interrupts

Applied.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next v2 2/2] net: phy: DP83TC811: Fix SGMII enable/disable
  2018-06-29 15:35 ` [PATCH net-next v2 2/2] net: phy: DP83TC811: Fix SGMII enable/disable Dan Murphy
@ 2018-07-03  2:38   ` David Miller
  0 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2018-07-03  2:38 UTC (permalink / raw)
  To: dmurphy; +Cc: andrew, f.fainelli, netdev, linux-kernel

From: Dan Murphy <dmurphy@ti.com>
Date: Fri, 29 Jun 2018 10:35:46 -0500

> If SGMII was selected in the DT then the device should
> write the SGMII enable bit.
> 
> If SGMII is not selected in the DT then the SGMII bit
> should be disabled.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
> 
> v2 - Removed erroneous defconfig addtion in the patch.

Applied.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-07-03  2:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-29 15:35 [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Dan Murphy
2018-06-29 15:35 ` [PATCH net-next v2 2/2] net: phy: DP83TC811: Fix SGMII enable/disable Dan Murphy
2018-07-03  2:38   ` David Miller
2018-06-29 15:45 ` [PATCH net-next v2 1/2] net: phy: DP83TC811: Add INT_STAT3 Andrew Lunn
2018-06-29 16:17   ` Dan Murphy
2018-07-02 14:00     ` Dan Murphy
2018-07-03  2:38 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.