Thread (6 messages) flat view 6 messages, 3 authors, 2014-06-02

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

From: Sergei Shtylyov <hidden>
Date: 2014-06-01 19:06:16
Also in: lkml, netdev

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 <redacted>
---
  drivers/net/wireless/rt2x00/rt2800usb.c |   16 +++++++++++++++-
  1 file changed, 15 insertions(+), 1 deletion(-)
quoted hunk ↗ jump to hunk
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help