summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/at76c50x-usb.h
diff options
context:
space:
mode:
authorAndrea Merello <andrea.merello@gmail.com>2014-05-24 17:16:18 +0200
committerJohn W. Linville <linville@tuxdriver.com>2014-05-29 19:08:10 +0200
commit347f8fdb610db9cf20959e4eaf3544c30dd6eab1 (patch)
tree787e690a6258b95bba2b33e654a66b1035624f5e /drivers/net/wireless/at76c50x-usb.h
parentat76c50x-usb: Don't perform DMA from stack memory (diff)
downloadlinux-347f8fdb610db9cf20959e4eaf3544c30dd6eab1.tar.xz
linux-347f8fdb610db9cf20959e4eaf3544c30dd6eab1.zip
at76c50x-usb: Make WEP encryption working.
Currently the driver uses HW encryption. Whenever mac80211 calls the set_key() callback the driver restarts the whole HW configuration procedure, in order to set (also) the new WEP key. However, by doing this, it causes the card to loose association information, and the HW becomes unable to communicate with the BSS. This patch adds support for sending another HW command, that sets only the wep key, instead of resetting all. Mac80211 key-set requests are thus handled via this new command. Tested on my at76c503 Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/at76c50x-usb.h')
-rw-r--r--drivers/net/wireless/at76c50x-usb.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/drivers/net/wireless/at76c50x-usb.h b/drivers/net/wireless/at76c50x-usb.h
index f14a65473fe8..4718aa59f051 100644
--- a/drivers/net/wireless/at76c50x-usb.h
+++ b/drivers/net/wireless/at76c50x-usb.h
@@ -219,18 +219,6 @@ struct at76_req_join {
u8 reserved;
} __packed;
-struct set_mib_buffer {
- u8 type;
- u8 size;
- u8 index;
- u8 reserved;
- union {
- u8 byte;
- __le16 word;
- u8 addr[ETH_ALEN];
- } data;
-} __packed;
-
struct mib_local {
u16 reserved0;
u8 beacon_enable;
@@ -334,6 +322,19 @@ struct mib_mdomain {
u8 channel_list[14]; /* 0 for invalid channels */
} __packed;
+struct set_mib_buffer {
+ u8 type;
+ u8 size;
+ u8 index;
+ u8 reserved;
+ union {
+ u8 byte;
+ __le16 word;
+ u8 addr[ETH_ALEN];
+ struct mib_mac_wep wep_mib;
+ } data;
+} __packed;
+
struct at76_fw_header {
__le32 crc; /* CRC32 of the whole image */
__le32 board_type; /* firmware compatibility code */