From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Date: Wed, 19 May 2021 22:44:51 +0100 Subject: [PATCH 6/6] net: sun8i-emac: v3s: fix soft reset timeout In-Reply-To: <20210519194208.515548-7-rehn.andreas86@gmail.com> References: <20210519194208.515548-1-rehn.andreas86@gmail.com> <20210519194208.515548-7-rehn.andreas86@gmail.com> Message-ID: <20210519224451.18d6ccfd@slackpad.fritz.box> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, 19 May 2021 21:42:08 +0200 Andreas Rehn wrote: Hi, > v3s emac soft reset tooks quit longer if autonegation is active > on 100 Mbit full duplex pairs what can result in > `sun8i_emac_eth_start: Timeout` error Mmmh, why the 500ms? Can you figure out how long it typically takes for you? By open-coding wait_for_bit_le32() and printing the time it took to flip the bit back? Happy to change this then when we have some data. Cheers, Andre > wait_for_bit_le32 polls register value each ms. > Increasing the timeout for setup do not effect current behavior > but reduces unexpected behaviors (e.g. timeouts on tftp download). > > Signed-off-by: Andreas Rehn > --- > drivers/net/sun8i_emac.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c > index 0e7ad3b0d4..23fd35f9e1 100644 > --- a/drivers/net/sun8i_emac.c > +++ b/drivers/net/sun8i_emac.c > @@ -475,7 +475,7 @@ static int sun8i_emac_eth_start(struct udevice *dev) > /* Soft reset MAC */ > writel(EMAC_CTL1_SOFT_RST, priv->mac_reg + EMAC_CTL1); > ret = wait_for_bit_le32(priv->mac_reg + EMAC_CTL1, > - EMAC_CTL1_SOFT_RST, false, 10, true); > + EMAC_CTL1_SOFT_RST, false, 500, true); > if (ret) { > printf("%s: Timeout\n", __func__); > return ret;