diff mbox series

eth: asix88179: reset during probe

Message ID 20240618145759.3296876-2-caleb.connolly@linaro.org
State Accepted
Commit 1bd136715a4d3a8e44ccbe693e4c2a9010efb342
Headers show
Series eth: asix88179: reset during probe | expand

Commit Message

Caleb Connolly June 18, 2024, 2:57 p.m. UTC
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(+)

Comments

Marek Vasut June 23, 2024, 4:34 a.m. UTC | #1
On 6/18/24 4:57 PM, Caleb Connolly wrote:
> 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>

Reviewed-by: Marek Vasut <marex@denx.de>

Please let me know if you need me to pick this up via usb tree, even if 
this is kind-of a -net patch .

Thanks
Mattijs Korpershoek July 9, 2024, 8:39 a.m. UTC | #2
Hi Caleb,

Thank you for the patch.

On mar., juin 18, 2024 at 16:57, Caleb Connolly <caleb.connolly@linaro.org> wrote:

> 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>

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> ---
> 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
Marek Vasut July 9, 2024, 11:13 a.m. UTC | #3
On 7/9/24 10:39 AM, Mattijs Korpershoek wrote:
> Hi Caleb,

Hi,

> Thank you for the patch.
> 
> On mar., juin 18, 2024 at 16:57, Caleb Connolly <caleb.connolly@linaro.org> wrote:
> 
>> 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>
> 
> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
> 
>> ---
>> I see this behaviour consistently across three Qualcomm platforms that use this
>> controller.
>> ---
>>   drivers/usb/eth/asix88179.c | 6 ++++++
>>   1 file changed, 6 insertions(+)

Do you want to pick it via usb-gadget tree or shall I pick it via usb tree ?
Mattijs Korpershoek July 9, 2024, 12:25 p.m. UTC | #4
Hi Marek,

On mar., juil. 09, 2024 at 13:13, Marek Vasut <marex@denx.de> wrote:

> On 7/9/24 10:39 AM, Mattijs Korpershoek wrote:
>> Hi Caleb,
>
> Hi,
>
>> Thank you for the patch.
>> 
>> On mar., juin 18, 2024 at 16:57, Caleb Connolly <caleb.connolly@linaro.org> wrote:
>> 
>>> 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>
>> 
>> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
>> 
>>> ---
>>> I see this behaviour consistently across three Qualcomm platforms that use this
>>> controller.
>>> ---
>>>   drivers/usb/eth/asix88179.c | 6 ++++++
>>>   1 file changed, 6 insertions(+)
>
> Do you want to pick it via usb-gadget tree or shall I pick it via usb tree ?

According to get_maintainer.pl, it should be you :)

./scripts/get_maintainer.pl -- drivers/usb/eth/asix88179.c
Marek Vasut <marex@denx.de> (maintainer:USB)
Tom Rini <trini@konsulko.com> (maintainer:THE REST,authored:3/3=100%,added_lines:1/1=100%,removed_lines:2/2=100%)
Mattijs Korpershoek <mkorpershoek@baylibre.com> (commit_signer:1/3=33%)
u-boot@lists.denx.de (open list)

If you are okay with that, please pick it up.

Thanks!
Mattijs
Marek Vasut July 13, 2024, 5:52 p.m. UTC | #5
On 7/9/24 2:25 PM, Mattijs Korpershoek wrote:
> Hi Marek,
> 
> On mar., juil. 09, 2024 at 13:13, Marek Vasut <marex@denx.de> wrote:
> 
>> On 7/9/24 10:39 AM, Mattijs Korpershoek wrote:
>>> Hi Caleb,
>>
>> Hi,
>>
>>> Thank you for the patch.
>>>
>>> On mar., juin 18, 2024 at 16:57, Caleb Connolly <caleb.connolly@linaro.org> wrote:
>>>
>>>> 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>
>>>
>>> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
>>>
>>>> ---
>>>> I see this behaviour consistently across three Qualcomm platforms that use this
>>>> controller.
>>>> ---
>>>>    drivers/usb/eth/asix88179.c | 6 ++++++
>>>>    1 file changed, 6 insertions(+)
>>
>> Do you want to pick it via usb-gadget tree or shall I pick it via usb tree ?
> 
> According to get_maintainer.pl, it should be you :)

Applied to usb/master, thanks !
diff mbox series

Patch

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;