Subject: Re: [PATCH 1/2] rt2800usb:fix efuse detection

From: Sergei Shtylyov <[email-masked]>
Date: Sun, 01 Jun 2014 23:06:11 +0400

Hello.

On 06/01/2014 09:52 PM, Michael Braun wrote:

> The device 057c:8501 (AVM Fritz! WLAN v2 rev. B) currently does not
> load. One thing observed is that the vendors driver detects EFUSE mode
> for this device, but rt2800usb does not. This is due to rt2800usb
> lacking a check for the firmware mode present in the vendors driver,
> that this patch adopts for rt2800usb.

> With this patch applied, the 'RF chipset' detection does no longer fail.

> Signed-off-by: Michael Braun <[email-masked]>
> ---
>   drivers/net/wireless/rt2x00/rt2800usb.c |   16 +++++++++++++++-
>   1 file changed, 15 insertions(+), 1 deletion(-)

> diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
> index a49c3d7..b601422 100644
> --- a/drivers/net/wireless/rt2x00/rt2800usb.c
> +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
> @@ -735,11 +735,25 @@ static void rt2800usb_fill_rxdone(struct queue_entry *entry,
>   /*
>    * Device probe functions.
>    */
> +static int rt2800usb_efuse_detect(struct rt2x00_dev *rt2x00dev)
> +{
> +	__le32 fwMode;
> +
> +	rt2x00usb_vendor_request(rt2x00dev, USB_DEVICE_MODE,
> +				 USB_VENDOR_REQUEST_IN, 0, 0x11, &fwMode,
> +				 sizeof(fwMode), REGISTER_TIMEOUT_FIRMWARE);
> +
> +	if ((fwMode & 0x00000003) == 2)

    Operating directly on '__le32'? That doesn't look right.

> +		return 1;
> +
> +	return rt2800_efuse_detect(rt2x00dev);
> +}
> +

WBR, Sergei