[PATCH 1/6] usb: eth: asix88179: Use negative ECOMM return value

Marek Vasut marek.vasut at mailbox.org
Fri Jan 30 02:23:54 CET 2026


On 1/30/26 1:29 AM, Jonas Karlman wrote:
> The ASIX 88179 driver asix_read/write_cmd() return a positive error
> value instead of a typical negative error value. This return value is
> checked in the asix_read/write_mac() to control a debug() print and can
> also propagate to probe() and write_hwaddr() ops.
> 
> Change to use a proper negative ECOMM return value when read/write a
> command. Also update to use the ETH_ALEN const instead of 6 for
> consistent use in asix_read/write_mac().
> 
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> ---
>   drivers/usb/eth/asix88179.c | 15 ++++++++-------
>   1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/usb/eth/asix88179.c b/drivers/usb/eth/asix88179.c
> index 69d3073b669a..8915ef1fdc36 100644
> --- a/drivers/usb/eth/asix88179.c
> +++ b/drivers/usb/eth/asix88179.c
> @@ -235,7 +235,7 @@ static int asix_write_cmd(struct ueth_data *dev, u8 cmd, u16 value, u16 index,
>   		size,
>   		USB_CTRL_SET_TIMEOUT);
>   
> -	return len == size ? 0 : ECOMM;
> +	return len == size ? 0 : -ECOMM;
>   }
>   
>   static int asix_read_cmd(struct ueth_data *dev, u8 cmd, u16 value, u16 index,
> @@ -260,15 +260,16 @@ static int asix_read_cmd(struct ueth_data *dev, u8 cmd, u16 value, u16 index,
>   
>   	memcpy(data, buf, size);
>   
> -	return len == size ? 0 : ECOMM;
> +	return len == size ? 0 : -ECOMM;
>   }
>   
>   static int asix_read_mac(struct ueth_data *dev, uint8_t *enetaddr)
>   {
>   	int ret;
>   
> -	ret = asix_read_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, 6, 6, enetaddr);
> -	if (ret < 0)
> +	ret = asix_read_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID,
> +			    ETH_ALEN, ETH_ALEN, enetaddr);
> +	if (ret)
>   		debug("Failed to read MAC address: %02x\n", ret);

This print likely needs to be fixed too, it prints unsigned hex while 
the value is now signed int.

>   
>   	return ret;
> @@ -278,9 +279,9 @@ static int asix_write_mac(struct ueth_data *dev, uint8_t *enetaddr)
>   {
>   	int ret;
>   
> -	ret = asix_write_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, ETH_ALEN,
> -				 ETH_ALEN, enetaddr);
> -	if (ret < 0)
> +	ret = asix_write_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID,
> +			     ETH_ALEN, ETH_ALEN, enetaddr);
> +	if (ret)
>   		debug("Failed to set MAC address: %02x\n", ret);
DTTO


More information about the U-Boot mailing list