From: Ivo van Doorn <ivdoorn@gmail.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org, rt2400-devel@lists.sourceforge.net
Subject: Re: [PATCH] rt2x00: Use rt2x00usb_register_multiwrite()
Date: Sun, 8 Mar 2009 15:17:09 +0100 [thread overview]
Message-ID: <200903081517.10141.IvDoorn@gmail.com> (raw)
In-Reply-To: <200903042225.28989.IvDoorn@gmail.com>
John,
Please revert below patch (932dec0edbccaf0f4b599df424cad40e04fe8ae1)
it breaks practically everything in rt2500usb and rt73usb (beaconing, HW crypto
and firmware loading)
Thanks,
Ivo
On Wednesday 04 March 2009, Ivo van Doorn wrote:
> From 26f9e08ed236c602fa92b9de93b272f78cc4026b Mon Sep 17 00:00:00 2001
> 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(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
> index 9e630e7..164deb9 100644
> --- a/drivers/net/wireless/rt2x00/rt2500usb.c
> +++ b/drivers/net/wireless/rt2x00/rt2500usb.c
> @@ -348,7 +348,6 @@ static int rt2500usb_config_key(struct rt2x00_dev *rt2x00dev,
> 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 rt2x00_dev *rt2x00dev,
> * 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
> diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
> index 24fdfdf..80ceb16 100644
> --- a/drivers/net/wireless/rt2x00/rt73usb.c
> +++ b/drivers/net/wireless/rt2x00/rt73usb.c
> @@ -273,7 +273,6 @@ static int rt73usb_config_shared_key(struct rt2x00_dev *rt2x00dev,
> {
> 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(struct rt2x00_dev *rt2x00dev,
> 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(struct rt2x00_dev *rt2x00dev,
> {
> 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(struct rt2x00_dev *rt2x00dev,
> 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 rt2x00_dev *rt2x00dev,
> /*
> * 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 queue_entry *entry)
> * 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.
prev parent reply other threads:[~2009-03-08 14:17 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-04 21:25 [PATCH] rt2x00: Use rt2x00usb_register_multiwrite() Ivo van Doorn
2009-03-08 14:17 ` Ivo van Doorn [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200903081517.10141.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=rt2400-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).