From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Thu, 30 Apr 2020 16:25:44 -0600 Subject: [PATCH 2/8] net: dwc_eth_qos: Fix the software reset In-Reply-To: <20200430103656.29728-3-david.wu@rock-chips.com> References: <20200430103656.29728-1-david.wu@rock-chips.com> <20200430103656.29728-3-david.wu@rock-chips.com> Message-ID: <12848ce1-c637-b44e-557d-384cf1ac4d30@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 4/30/20 4:36 AM, David Wu wrote: > When using rgmii Gigabit mode, the wait_for_bit_le32() > reset method resulting in RX can not receive data, after > this patch, works well. > diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c > + limit = eqos->config->swr_wait / 10; > + while (limit--) { > + if (!(readl(&eqos->dma_regs->mode) & EQOS_DMA_MODE_SWR)) > + break; > + mdelay(10000); > + } mdelay()'s parameter is in milliseconds judging by its implementation in include/linux/delay.h. So, this delays 10 seconds in each loop iteration. That can't possibly be right.