All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] eth: asix88179: reset during probe
@ 2024-06-18 14:57 Caleb Connolly
  2024-06-23  4:34 ` Marek Vasut
  2024-07-09  8:39 ` Mattijs Korpershoek
  0 siblings, 2 replies; 6+ messages in thread
From: Caleb Connolly @ 2024-06-18 14:57 UTC (permalink / raw)
  To: Caleb Connolly, Marek Vasut, Mattijs Korpershoek, Tom Rini; +Cc: u-boot

In some cases (consistently in my case with an embedded board) the
ethernet controller will time out on the first init but always succeed
after reset.

Let's reset the controller during probe so we always start with it in a
known state, and don't have wait for the first asix_wait_link() to
time out.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
---
I see this behaviour consistently across three Qualcomm platforms that use this
controller.
---
 drivers/usb/eth/asix88179.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/eth/asix88179.c b/drivers/usb/eth/asix88179.c
index 7bfd285b3aa4..a0aa5c25e428 100644
--- a/drivers/usb/eth/asix88179.c
+++ b/drivers/usb/eth/asix88179.c
@@ -628,8 +628,14 @@ static int ax88179_eth_probe(struct udevice *dev)
 
 	usb_dev = priv->ueth.pusb_dev;
 	priv->maxpacketsize = usb_dev->epmaxpacketout[AX_ENDPOINT_OUT];
 
+	ret = asix_basic_reset(&priv->ueth, priv);
+	if (ret) {
+		printf("Failed to reset ethernet device\n");
+		return ret;
+	}
+
 	/* Get the MAC address */
 	ret = asix_read_mac(&priv->ueth, pdata->enetaddr);
 	if (ret)
 		return ret;
-- 
2.45.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-07-13 17:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-18 14:57 [PATCH] eth: asix88179: reset during probe Caleb Connolly
2024-06-23  4:34 ` Marek Vasut
2024-07-09  8:39 ` Mattijs Korpershoek
2024-07-09 11:13   ` Marek Vasut
2024-07-09 12:25     ` Mattijs Korpershoek
2024-07-13 17:52       ` Marek Vasut

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.