On 14-06-2018 15:21, Dinh Nguyen wrote:
>
> [    0.835537] socfpga-dwmac ff702000.ethernet: PTP uses main clock
> [    0.841794] socfpga-dwmac ff702000.ethernet: Version ID not available
> [    0.848223] socfpga-dwmac ff702000.ethernet:         DWMAC1000
> [    0.853454] socfpga-dwmac ff702000.ethernet: Normal descriptors
> [    0.859357] socfpga-dwmac ff702000.ethernet: Ring mode enabled
> [    0.865184] socfpga-dwmac ff702000.ethernet: DMA HW capability register 
> suppo
> rted
> [    0.872654] socfpga-dwmac ff702000.ethernet: RX Checksum Offload Engine 
> suppo
> rted
> [    0.880113] socfpga-dwmac ff702000.ethernet: COE Type 2
> [    0.885329] socfpga-dwmac ff702000.ethernet: TX Checksum insertion 
> supported
>

Interesting ... Please check if bellow patch makes thing work
again (if not please send me the resultant dmesg log and also the
log without the problematic patch that you identified):

-------------------->8------------------
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c
b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 14770fc..1961819 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -252,12 +252,8 @@ int stmmac_hwif_init(struct stmmac_priv *priv)
                 return ret;
         }
 
-        /* Run quirks, if needed */
-        if (entry->quirks) {
-            ret = entry->quirks(priv);
-            if (ret)
-                return ret;
-        }
+        /* Save quirks, if needed for posterior use */
+        priv->hwif_quirks = entry->quirks;
 
         return 0;
     }
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
index 025efbf..be7da43 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
@@ -193,6 +193,9 @@ struct stmmac_priv {
 
     /* Pulse Per Second output */
     struct stmmac_pps_cfg pps[STMMAC_PPS_MAX];
+
+    /* DEBUG */
+    int (*hwif_quirks)(struct stmmac_priv *priv);
 };
 
 enum stmmac_state {
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 11fb7c7..fbe74f2 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -4130,6 +4130,12 @@ static int stmmac_hw_init(struct
stmmac_priv *priv)
     if (priv->dma_cap.tsoen)
         dev_info(priv->device, "TSO supported\n");
 
+    if (priv->hwif_quirks) {
+        ret = priv->hwif_quirks(priv);
+        if (ret)
+            return ret;
+    }
+
     return 0;
 }
 
-------------------->8------------------

Thanks and Best Regards,
Jose Miguel Abreu

Reply via email to