All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net: ethernet: stmmac: Fix altr_tse_pcs SGMII Initialization
@ 2017-05-31 19:28 thor.thayer
  2017-06-01  6:08 ` Giuseppe CAVALLARO
  2017-06-02 18:20 ` David Miller
  0 siblings, 2 replies; 3+ messages in thread
From: thor.thayer @ 2017-05-31 19:28 UTC (permalink / raw)
  To: peppe.cavallaro, alexandre.torgue; +Cc: netdev, linux-kernel, thor.thayer

From: Thor Thayer <thor.thayer@linux.intel.com>

Fix NETDEV WATCHDOG timeout on startup by adding missing register
writes that properly setup SGMII.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
---
 drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c b/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c
index 489ef14..6a9c954 100644
--- a/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c
@@ -37,6 +37,7 @@
 #define TSE_PCS_CONTROL_AN_EN_MASK			BIT(12)
 #define TSE_PCS_CONTROL_REG				0x00
 #define TSE_PCS_CONTROL_RESTART_AN_MASK			BIT(9)
+#define TSE_PCS_CTRL_AUTONEG_SGMII			0x1140
 #define TSE_PCS_IF_MODE_REG				0x28
 #define TSE_PCS_LINK_TIMER_0_REG			0x24
 #define TSE_PCS_LINK_TIMER_1_REG			0x26
@@ -65,6 +66,7 @@
 #define TSE_PCS_SW_RESET_TIMEOUT			100
 #define TSE_PCS_USE_SGMII_AN_MASK			BIT(1)
 #define TSE_PCS_USE_SGMII_ENA				BIT(0)
+#define TSE_PCS_IF_USE_SGMII				0x03
 
 #define SGMII_ADAPTER_CTRL_REG				0x00
 #define SGMII_ADAPTER_DISABLE				0x0001
@@ -101,7 +103,9 @@ int tse_pcs_init(void __iomem *base, struct tse_pcs *pcs)
 {
 	int ret = 0;
 
-	writew(TSE_PCS_USE_SGMII_ENA, base + TSE_PCS_IF_MODE_REG);
+	writew(TSE_PCS_IF_USE_SGMII, base + TSE_PCS_IF_MODE_REG);
+
+	writew(TSE_PCS_CTRL_AUTONEG_SGMII, base + TSE_PCS_CONTROL_REG);
 
 	writew(TSE_PCS_SGMII_LINK_TIMER_0, base + TSE_PCS_LINK_TIMER_0_REG);
 	writew(TSE_PCS_SGMII_LINK_TIMER_1, base + TSE_PCS_LINK_TIMER_1_REG);
-- 
2.7.4

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

* Re: [PATCH] net: ethernet: stmmac: Fix altr_tse_pcs SGMII Initialization
  2017-05-31 19:28 [PATCH] net: ethernet: stmmac: Fix altr_tse_pcs SGMII Initialization thor.thayer
@ 2017-06-01  6:08 ` Giuseppe CAVALLARO
  2017-06-02 18:20 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: Giuseppe CAVALLARO @ 2017-06-01  6:08 UTC (permalink / raw)
  To: thor.thayer, alexandre.torgue; +Cc: netdev, linux-kernel

On 5/31/2017 9:28 PM, thor.thayer@linux.intel.com wrote:
> From: Thor Thayer <thor.thayer@linux.intel.com>
>
> Fix NETDEV WATCHDOG timeout on startup by adding missing register
> writes that properly setup SGMII.
>
> Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Thanks a lot for this fix.

Acked-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>

> ---
>   drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c b/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c
> index 489ef14..6a9c954 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c
> @@ -37,6 +37,7 @@
>   #define TSE_PCS_CONTROL_AN_EN_MASK			BIT(12)
>   #define TSE_PCS_CONTROL_REG				0x00
>   #define TSE_PCS_CONTROL_RESTART_AN_MASK			BIT(9)
> +#define TSE_PCS_CTRL_AUTONEG_SGMII			0x1140
>   #define TSE_PCS_IF_MODE_REG				0x28
>   #define TSE_PCS_LINK_TIMER_0_REG			0x24
>   #define TSE_PCS_LINK_TIMER_1_REG			0x26
> @@ -65,6 +66,7 @@
>   #define TSE_PCS_SW_RESET_TIMEOUT			100
>   #define TSE_PCS_USE_SGMII_AN_MASK			BIT(1)
>   #define TSE_PCS_USE_SGMII_ENA				BIT(0)
> +#define TSE_PCS_IF_USE_SGMII				0x03
>   
>   #define SGMII_ADAPTER_CTRL_REG				0x00
>   #define SGMII_ADAPTER_DISABLE				0x0001
> @@ -101,7 +103,9 @@ int tse_pcs_init(void __iomem *base, struct tse_pcs *pcs)
>   {
>   	int ret = 0;
>   
> -	writew(TSE_PCS_USE_SGMII_ENA, base + TSE_PCS_IF_MODE_REG);
> +	writew(TSE_PCS_IF_USE_SGMII, base + TSE_PCS_IF_MODE_REG);
> +
> +	writew(TSE_PCS_CTRL_AUTONEG_SGMII, base + TSE_PCS_CONTROL_REG);
>   
>   	writew(TSE_PCS_SGMII_LINK_TIMER_0, base + TSE_PCS_LINK_TIMER_0_REG);
>   	writew(TSE_PCS_SGMII_LINK_TIMER_1, base + TSE_PCS_LINK_TIMER_1_REG);

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

* Re: [PATCH] net: ethernet: stmmac: Fix altr_tse_pcs SGMII Initialization
  2017-05-31 19:28 [PATCH] net: ethernet: stmmac: Fix altr_tse_pcs SGMII Initialization thor.thayer
  2017-06-01  6:08 ` Giuseppe CAVALLARO
@ 2017-06-02 18:20 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: David Miller @ 2017-06-02 18:20 UTC (permalink / raw)
  To: thor.thayer; +Cc: peppe.cavallaro, alexandre.torgue, netdev, linux-kernel

From: thor.thayer@linux.intel.com
Date: Wed, 31 May 2017 14:28:47 -0500

> From: Thor Thayer <thor.thayer@linux.intel.com>
> 
> Fix NETDEV WATCHDOG timeout on startup by adding missing register
> writes that properly setup SGMII.
> 
> Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>

Applied, thank you.

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

end of thread, other threads:[~2017-06-02 18:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-31 19:28 [PATCH] net: ethernet: stmmac: Fix altr_tse_pcs SGMII Initialization thor.thayer
2017-06-01  6:08 ` Giuseppe CAVALLARO
2017-06-02 18:20 ` 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.