On 14-06-2018 17:18, Dinh Nguyen wrote: > On Thu, Jun 14, 2018 at 10:23 AM Jose Abreu <jose.ab...@synopsys.com> wrote: >> 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------------------ >> > The above patch fixed it!
Thanks for testing. I will send a proper patch next week. Thanks and Best Regards, Jose Miguel Abreu > > Dinh