Re: [PATCH] net: usb: smsc95xx: configure external LEDs function for EVB-LAN8670-USB

From: Simon Horman
Date: Wed May 22 2024 - 14:54:44 EST


On Wed, May 22, 2024 at 07:38:17PM +0530, Parthiban Veerasooran wrote:
> By default, LAN9500A configures the external LEDs to the below function.
> nSPD_LED -> Speed Indicator
> nLNKA_LED -> Link and Activity Indicator
> nFDX_LED -> Full Duplex Link Indicator
>
> But, EVB-LAN8670-USB uses the below external LEDs function which can be
> enabled by writing 1 to the LED Select (LED_SEL) bit in the LAN9500A.
> nSPD_LED -> Speed Indicator
> nLNKA_LED -> Link Indicator
> nFDX_LED -> Activity Indicator
>
> Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@xxxxxxxxxxxxx>
> ---
> drivers/net/usb/smsc95xx.c | 12 ++++++++++++
> drivers/net/usb/smsc95xx.h | 1 +
> 2 files changed, 13 insertions(+)
>
> diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
> index cbea24666479..05975461bf10 100644
> --- a/drivers/net/usb/smsc95xx.c
> +++ b/drivers/net/usb/smsc95xx.c
> @@ -1006,6 +1006,18 @@ static int smsc95xx_reset(struct usbnet *dev)
> /* Configure GPIO pins as LED outputs */
> write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
> LED_GPIO_CFG_FDX_LED;
> +
> + /* Set LED Select (LED_SEL) bit for the external LED pins functionality
> + * in the Microchip's EVB-LAN8670-USB 10BASE-T1S Ethernet device which
> + * uses the below LED function.
> + * nSPD_LED -> Speed Indicator
> + * nLNKA_LED -> Link Indicator
> + * nFDX_LED -> Activity Indicator
> + */
> + if (dev->udev->descriptor.idVendor == 0x184F &&
> + dev->udev->descriptor.idProduct == 0x0051)

Hi Parthiban,

There seems to be an endian missmatch here.
The type of .idVendor and .idProduct is __le16,
but here they are compared against host byte-order integers.

Flagged by Sparse.

> + write_buf |= LED_GPIO_CFG_LED_SEL;
> +
> ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf);
> if (ret < 0)
> return ret;

..

--
pw-bot: changes-requested