summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-03-06 10:26:18 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-03-06 10:26:18 +0000
commit54b995e5a80621b45a46d8c9452aa8fe7f57fd9e (patch)
treeeaac7f1065faf2d1daf89949eb5085a3788afd9e /package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch
parentb0a9123f24492825c245bb631cd80ec9b5972485 (diff)
[package] mac80211: update compat-wireless to 2009-03-05, add more rt2x00 and ath9k patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14757 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch')
-rw-r--r--package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch116
1 files changed, 116 insertions, 0 deletions
diff --git a/package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch b/package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch
new file mode 100644
index 000000000..a0f20ceac
--- /dev/null
+++ b/package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch
@@ -0,0 +1,116 @@
+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.