diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2009-01-23 11:45:38 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2009-01-23 11:45:38 +0000 |
commit | d2100254066a577a2f495731d21c12375f350137 (patch) | |
tree | 7f487879890536c8e361d008e27a1f69e257568f /package/mac80211/patches/318-rt2x00-conf_tx-only-need-register-access-for-WMM.patch | |
parent | ac2304477f7585abf097040c807b2970cc573492 (diff) | |
download | upstream-d2100254066a577a2f495731d21c12375f350137.tar.gz upstream-d2100254066a577a2f495731d21c12375f350137.tar.bz2 upstream-d2100254066a577a2f495731d21c12375f350137.zip |
mac80211: update compat-wireless to 2009-01-23
SVN-Revision: 14154
Diffstat (limited to 'package/mac80211/patches/318-rt2x00-conf_tx-only-need-register-access-for-WMM.patch')
-rw-r--r-- | package/mac80211/patches/318-rt2x00-conf_tx-only-need-register-access-for-WMM.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/package/mac80211/patches/318-rt2x00-conf_tx-only-need-register-access-for-WMM.patch b/package/mac80211/patches/318-rt2x00-conf_tx-only-need-register-access-for-WMM.patch deleted file mode 100644 index c454165182..0000000000 --- a/package/mac80211/patches/318-rt2x00-conf_tx-only-need-register-access-for-WMM.patch +++ /dev/null @@ -1,116 +0,0 @@ -From bbb27190d504b453625d1a663124b2b1cec0fe8b Mon Sep 17 00:00:00 2001 -From: Ivo van Doorn <IvDoorn@gmail.com> -Date: Sat, 17 Jan 2009 20:25:27 +0100 -Subject: [PATCH] rt2x00: conf_tx() only need register access for WMM queues - -conf_tx() in rt61pci and rt73usb only have to check once -if the queue_idx indicates a non-WMM queue and break of -the function immediately if that is the case. - -Only the WMM queues need to have the TX configuration written -to the registers. - -Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> ---- - drivers/net/wireless/rt2x00/rt61pci.c | 30 +++++++++++++++--------------- - drivers/net/wireless/rt2x00/rt73usb.c | 30 +++++++++++++++--------------- - 2 files changed, 30 insertions(+), 30 deletions(-) - ---- a/drivers/net/wireless/rt2x00/rt61pci.c -+++ b/drivers/net/wireless/rt2x00/rt61pci.c -@@ -2657,6 +2657,7 @@ static int rt61pci_conf_tx(struct ieee80 - struct rt2x00_field32 field; - int retval; - u32 reg; -+ u32 offset; - - /* - * First pass the configuration through rt2x00lib, that will -@@ -2668,24 +2669,23 @@ static int rt61pci_conf_tx(struct ieee80 - if (retval) - return retval; - -+ /* -+ * We only need to perform additional register initialization -+ * for WMM queues/ -+ */ -+ if (queue_idx >= 4) -+ return 0; -+ - queue = rt2x00queue_get_queue(rt2x00dev, queue_idx); - - /* Update WMM TXOP register */ -- if (queue_idx < 2) { -- field.bit_offset = queue_idx * 16; -- field.bit_mask = 0xffff << field.bit_offset; -- -- rt2x00pci_register_read(rt2x00dev, AC_TXOP_CSR0, ®); -- rt2x00_set_field32(®, field, queue->txop); -- rt2x00pci_register_write(rt2x00dev, AC_TXOP_CSR0, reg); -- } else if (queue_idx < 4) { -- field.bit_offset = (queue_idx - 2) * 16; -- field.bit_mask = 0xffff << field.bit_offset; -- -- rt2x00pci_register_read(rt2x00dev, AC_TXOP_CSR1, ®); -- rt2x00_set_field32(®, field, queue->txop); -- rt2x00pci_register_write(rt2x00dev, AC_TXOP_CSR1, reg); -- } -+ offset = AC_TXOP_CSR0 + (sizeof(u32) * (!!(queue_idx & 2))); -+ field.bit_offset = (queue_idx & 1) * 16; -+ field.bit_mask = 0xffff << field.bit_offset; -+ -+ rt2x00pci_register_read(rt2x00dev, offset, ®); -+ rt2x00_set_field32(®, field, queue->txop); -+ rt2x00pci_register_write(rt2x00dev, offset, reg); - - /* Update WMM registers */ - field.bit_offset = queue_idx * 4; ---- a/drivers/net/wireless/rt2x00/rt73usb.c -+++ b/drivers/net/wireless/rt2x00/rt73usb.c -@@ -2180,6 +2180,7 @@ static int rt73usb_conf_tx(struct ieee80 - struct rt2x00_field32 field; - int retval; - u32 reg; -+ u32 offset; - - /* - * First pass the configuration through rt2x00lib, that will -@@ -2191,24 +2192,23 @@ static int rt73usb_conf_tx(struct ieee80 - if (retval) - return retval; - -+ /* -+ * We only need to perform additional register initialization -+ * for WMM queues/ -+ */ -+ if (queue_idx >= 4) -+ return 0; -+ - queue = rt2x00queue_get_queue(rt2x00dev, queue_idx); - - /* Update WMM TXOP register */ -- if (queue_idx < 2) { -- field.bit_offset = queue_idx * 16; -- field.bit_mask = 0xffff << field.bit_offset; -- -- rt2x00usb_register_read(rt2x00dev, AC_TXOP_CSR0, ®); -- rt2x00_set_field32(®, field, queue->txop); -- rt2x00usb_register_write(rt2x00dev, AC_TXOP_CSR0, reg); -- } else if (queue_idx < 4) { -- field.bit_offset = (queue_idx - 2) * 16; -- field.bit_mask = 0xffff << field.bit_offset; -- -- rt2x00usb_register_read(rt2x00dev, AC_TXOP_CSR1, ®); -- rt2x00_set_field32(®, field, queue->txop); -- rt2x00usb_register_write(rt2x00dev, AC_TXOP_CSR1, reg); -- } -+ offset = AC_TXOP_CSR0 + (sizeof(u32) * (!!(queue_idx & 2))); -+ field.bit_offset = (queue_idx & 1) * 16; -+ field.bit_mask = 0xffff << field.bit_offset; -+ -+ rt2x00usb_register_read(rt2x00dev, offset, ®); -+ rt2x00_set_field32(®, field, queue->txop); -+ rt2x00usb_register_write(rt2x00dev, offset, reg); - - /* Update WMM registers */ - field.bit_offset = queue_idx * 4; |