diff for duplicates of <1478189833.4072.65.camel@synopsys.com> diff --git a/a/1.txt b/N1/1.txt index 8dda9f8..be7d0ff 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -30,7 +30,7 @@ which means there's no chance for 1Gb mode to be set. Also this has nothing to do with link state detected and reported by PHY via MDIO. So obviously GMAC_RGSMIIIS bits are wrong. But given the fact that GMAC_RGSMIIIS bits are set based on state of RXD[3:0] lines of RGMII I may only thing that it's -PHY (in my case DP83865) who's?sending random data on the RXD during inter-frame gap. +PHY (in my case DP83865) who's sending random data on the RXD during inter-frame gap. Note data transferred through that networking connection is perfectly correct and actually I haven't see those link state prints before kernel v4.8 basically @@ -47,32 +47,32 @@ board uses MDIO for PHY setup. Something like that: --- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c @@ -337,7 +337,7 @@ static int dwmac1000_irq_status(struct mac_device_info *hw, -? -????????dwmac_pcs_isr(ioaddr, GMAC_PCS_BASE, intr_status, x); -? --???????if (intr_status & PCS_RGSMIIIS_IRQ) -+???????if (!priv->use_mdio && (intr_status & PCS_RGSMIIIS_IRQ)) -????????????????dwmac1000_rgsmii(ioaddr, x); -? -????????return ret; + + dwmac_pcs_isr(ioaddr, GMAC_PCS_BASE, intr_status, x); + +- if (intr_status & PCS_RGSMIIIS_IRQ) ++ if (!priv->use_mdio && (intr_status & PCS_RGSMIIIS_IRQ)) + dwmac1000_rgsmii(ioaddr, x); + + return ret; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 6c85b61aaa0b..34e9de0450ba 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3356,11 +3356,13 @@ int stmmac_dvr_probe(struct device *device, -? -????????stmmac_check_pcs_mode(priv); -? -+???????priv->use_mdio = 0; -????????if (priv->hw->pcs != STMMAC_PCS_RGMII??&& -????????????priv->hw->pcs != STMMAC_PCS_TBI && -????????????priv->hw->pcs != STMMAC_PCS_RTBI) { -????????????????/* MDIO bus Registration */ -????????????????ret = stmmac_mdio_register(ndev); -+???????????????priv->use_mdio = 1; -????????????????if (ret < 0) { -????????????????????????pr_debug("%s: MDIO bus (id: %d) registration failed", -?????????????????????????????????__func__, priv->plat->bus_id); + + stmmac_check_pcs_mode(priv); + ++ priv->use_mdio = 0; + if (priv->hw->pcs != STMMAC_PCS_RGMII && + priv->hw->pcs != STMMAC_PCS_TBI && + priv->hw->pcs != STMMAC_PCS_RTBI) { + /* MDIO bus Registration */ + ret = stmmac_mdio_register(ndev); ++ priv->use_mdio = 1; + if (ret < 0) { + pr_debug("%s: MDIO bus (id: %d) registration failed", + __func__, priv->plat->bus_id); -------------------------->8----------------------- Any thoughts on that are much appreciated! @@ -80,4 +80,4 @@ Any thoughts on that are much appreciated! Regards, Alexey -[1]?http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=70523e639bf8ca09b3357371c3546cee55c06351 +[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=70523e639bf8ca09b3357371c3546cee55c06351 diff --git a/a/content_digest b/N1/content_digest index 1cb7f14..9b8999f 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,7 +1,15 @@ - "From\0Alexey.Brodkin@synopsys.com (Alexey Brodkin)\0" + "From\0Alexey Brodkin <Alexey.Brodkin@synopsys.com>\0" "Subject\0stmmac: GMAC_RGSMIIIS reports bogus values\0" "Date\0Thu, 3 Nov 2016 16:17:56 +0000\0" - "To\0linux-snps-arc@lists.infradead.org\0" + "To\0netdev@vger.kernel.org <netdev@vger.kernel.org>\0" + "Cc\0manabian@gmail.com <manabian@gmail.com>" + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> + peppe.cavallaro@st.com <peppe.cavallaro@st.com> + fabrice.gasnier@st.com <fabrice.gasnier@st.com> + linux-snps-arc@lists.infradead.org <linux-snps-arc@lists.infradead.org> + alexandre.torgue@gmail.com <alexandre.torgue@gmail.com> + preid@electromag.com.au <preid@electromag.com.au> + " davem@davemloft.net <davem@davemloft.net>\0" "\00:1\0" "b\0" "Hello,\n" @@ -36,7 +44,7 @@ "Also this has nothing to do with link state detected and reported by PHY via MDIO.\n" "So obviously GMAC_RGSMIIIS bits are wrong. But given the fact that GMAC_RGSMIIIS bits\n" "are set based on state of RXD[3:0] lines of RGMII I may only thing that it's\n" - "PHY (in my case DP83865) who's?sending random data on the RXD during inter-frame gap.\n" + "PHY (in my case DP83865) who's\302\240sending random data on the RXD during inter-frame gap.\n" "\n" "Note data transferred through that networking connection is perfectly correct and\n" "actually I haven't see those link state prints before kernel v4.8 basically\n" @@ -53,32 +61,32 @@ "--- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c\n" "+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c\n" "@@ -337,7 +337,7 @@ static int dwmac1000_irq_status(struct mac_device_info *hw,\n" - "?\n" - "????????dwmac_pcs_isr(ioaddr, GMAC_PCS_BASE, intr_status, x);\n" - "?\n" - "-???????if (intr_status & PCS_RGSMIIIS_IRQ)\n" - "+???????if (!priv->use_mdio && (intr_status & PCS_RGSMIIIS_IRQ))\n" - "????????????????dwmac1000_rgsmii(ioaddr, x);\n" - "?\n" - "????????return ret;\n" + "\302\240\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240dwmac_pcs_isr(ioaddr, GMAC_PCS_BASE, intr_status, x);\n" + "\302\240\n" + "-\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (intr_status & PCS_RGSMIIIS_IRQ)\n" + "+\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!priv->use_mdio && (intr_status & PCS_RGSMIIIS_IRQ))\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240dwmac1000_rgsmii(ioaddr, x);\n" + "\302\240\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n" "diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c\n" "index 6c85b61aaa0b..34e9de0450ba 100644\n" "--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c\n" "+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c\n" "@@ -3356,11 +3356,13 @@ int stmmac_dvr_probe(struct device *device,\n" - "?\n" - "????????stmmac_check_pcs_mode(priv);\n" - "?\n" - "+???????priv->use_mdio = 0;\n" - "????????if (priv->hw->pcs != STMMAC_PCS_RGMII??&&\n" - "????????????priv->hw->pcs != STMMAC_PCS_TBI &&\n" - "????????????priv->hw->pcs != STMMAC_PCS_RTBI) {\n" - "????????????????/* MDIO bus Registration */\n" - "????????????????ret = stmmac_mdio_register(ndev);\n" - "+???????????????priv->use_mdio = 1;\n" - "????????????????if (ret < 0) {\n" - "????????????????????????pr_debug(\"%s: MDIO bus (id: %d) registration failed\",\n" - "?????????????????????????????????__func__, priv->plat->bus_id);\n" + "\302\240\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240stmmac_check_pcs_mode(priv);\n" + "\302\240\n" + "+\302\240\302\240\302\240\302\240\302\240\302\240\302\240priv->use_mdio = 0;\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (priv->hw->pcs != STMMAC_PCS_RGMII\302\240\302\240&&\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240priv->hw->pcs != STMMAC_PCS_TBI &&\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240priv->hw->pcs != STMMAC_PCS_RTBI) {\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* MDIO bus Registration */\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = stmmac_mdio_register(ndev);\n" + "+\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240priv->use_mdio = 1;\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (ret < 0) {\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240pr_debug(\"%s: MDIO bus (id: %d) registration failed\",\n" + "\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240__func__, priv->plat->bus_id);\n" "-------------------------->8-----------------------\n" "\n" "Any thoughts on that are much appreciated!\n" @@ -86,6 +94,6 @@ "Regards,\n" "Alexey\n" "\n" - [1]?http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=70523e639bf8ca09b3357371c3546cee55c06351 + "[1]\302\240http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=70523e639bf8ca09b3357371c3546cee55c06351" -4338c2c252452d4d59f3d425683e9b097231f8c7844223d632e49bac4e368c0f +b49938bad99d0b255394970b3f66fd2f1ea9890ce153b8cc83eafeb59f44de98
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.