mirror of https://github.com/hak5/openwrt.git
117 lines
3.9 KiB
Diff
117 lines
3.9 KiB
Diff
From 26f9e08ed236c602fa92b9de93b272f78cc4026b Mon Sep 17 00:00:00 2001
|
|
From: Ivo van Doorn <IvDoorn@gmail.com>
|
|
Date: Wed, 4 Mar 2009 22:22:15 +0100
|
|
Subject: [PATCH] rt2x00: Use rt2x00usb_register_multiwrite()
|
|
|
|
rt2x00usb.h contains a wrapper for writing multiple
|
|
bytes to the hardware in a single action. Replace
|
|
all individual calls to rt2x00usb_vendor_request_buff
|
|
with rt2x00usb_register_multiwrite.
|
|
|
|
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
|
|
---
|
|
drivers/net/wireless/rt2x00/rt2500usb.c | 9 ++-------
|
|
drivers/net/wireless/rt2x00/rt73usb.c | 31 ++++++++-----------------------
|
|
2 files changed, 10 insertions(+), 30 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
|
|
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
|
|
@@ -348,7 +348,6 @@ static int rt2500usb_config_key(struct r
|
|
struct rt2x00lib_crypto *crypto,
|
|
struct ieee80211_key_conf *key)
|
|
{
|
|
- int timeout;
|
|
u32 mask;
|
|
u16 reg;
|
|
|
|
@@ -376,12 +375,8 @@ static int rt2500usb_config_key(struct r
|
|
* rt2x00usb_vendor_request() to send the key to the hardware.
|
|
*/
|
|
reg = KEY_ENTRY(key->hw_key_idx);
|
|
- timeout = REGISTER_TIMEOUT32(sizeof(crypto->key));
|
|
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
|
- USB_VENDOR_REQUEST_OUT, reg,
|
|
- crypto->key,
|
|
- sizeof(crypto->key),
|
|
- timeout);
|
|
+ rt2500usb_register_multiwrite(rt2x00dev, reg,
|
|
+ crypto->key, sizeof(crypto->key));
|
|
|
|
/*
|
|
* The driver does not support the IV/EIV generation
|
|
--- a/drivers/net/wireless/rt2x00/rt73usb.c
|
|
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
|
|
@@ -273,7 +273,6 @@ static int rt73usb_config_shared_key(str
|
|
{
|
|
struct hw_key_entry key_entry;
|
|
struct rt2x00_field32 field;
|
|
- int timeout;
|
|
u32 mask;
|
|
u32 reg;
|
|
|
|
@@ -309,12 +308,8 @@ static int rt73usb_config_shared_key(str
|
|
sizeof(key_entry.rx_mic));
|
|
|
|
reg = SHARED_KEY_ENTRY(key->hw_key_idx);
|
|
- timeout = REGISTER_TIMEOUT32(sizeof(key_entry));
|
|
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
|
- USB_VENDOR_REQUEST_OUT, reg,
|
|
- &key_entry,
|
|
- sizeof(key_entry),
|
|
- timeout);
|
|
+ rt2x00usb_register_multiwrite(rt2x00dev, reg,
|
|
+ &key_entry, sizeof(key_entry));
|
|
|
|
/*
|
|
* The cipher types are stored over 2 registers.
|
|
@@ -375,7 +370,6 @@ static int rt73usb_config_pairwise_key(s
|
|
{
|
|
struct hw_pairwise_ta_entry addr_entry;
|
|
struct hw_key_entry key_entry;
|
|
- int timeout;
|
|
u32 mask;
|
|
u32 reg;
|
|
|
|
@@ -410,12 +404,8 @@ static int rt73usb_config_pairwise_key(s
|
|
sizeof(key_entry.rx_mic));
|
|
|
|
reg = PAIRWISE_KEY_ENTRY(key->hw_key_idx);
|
|
- timeout = REGISTER_TIMEOUT32(sizeof(key_entry));
|
|
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
|
- USB_VENDOR_REQUEST_OUT, reg,
|
|
- &key_entry,
|
|
- sizeof(key_entry),
|
|
- timeout);
|
|
+ rt2x00usb_register_multiwrite(rt2x00dev, reg,
|
|
+ &key_entry, sizeof(key_entry));
|
|
|
|
/*
|
|
* Send the address and cipher type to the hardware register.
|
|
@@ -1112,11 +1102,8 @@ static int rt73usb_load_firmware(struct
|
|
/*
|
|
* Write firmware to device.
|
|
*/
|
|
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
|
- USB_VENDOR_REQUEST_OUT,
|
|
- FIRMWARE_IMAGE_BASE,
|
|
- data, len,
|
|
- REGISTER_TIMEOUT32(len));
|
|
+ rt2x00usb_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE,
|
|
+ (void *)data, len);
|
|
|
|
/*
|
|
* Send firmware request to device to load firmware,
|
|
@@ -1554,10 +1541,8 @@ static void rt73usb_write_beacon(struct
|
|
* Write entire beacon with descriptor to register.
|
|
*/
|
|
beacon_base = HW_BEACON_OFFSET(entry->entry_idx);
|
|
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
|
- USB_VENDOR_REQUEST_OUT, beacon_base,
|
|
- entry->skb->data, entry->skb->len,
|
|
- REGISTER_TIMEOUT32(entry->skb->len));
|
|
+ rt2x00usb_register_multiwrite(rt2x00dev, beacon_base,
|
|
+ entry->skb->data, entry->skb->len);
|
|
|
|
/*
|
|
* Clean up the beacon skb.
|