From 54b995e5a80621b45a46d8c9452aa8fe7f57fd9e Mon Sep 17 00:00:00 2001 From: juhosg Date: Fri, 6 Mar 2009 10:26:18 +0000 Subject: [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 --- ...-rt2x00-Use-rt2x00usb_register_multiwrite.patch | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch (limited to 'package/mac80211/patches/308-rt2x00-Use-rt2x00usb_register_multiwrite.patch') 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 +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 +--- + 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. -- cgit v1.2.3