Linux wireless drivers development
 help / color / mirror / Atom feed
* pull request: wireless-2.6 2009-08-14
From: John W. Linville @ 2009-08-14 14:12 UTC (permalink / raw)
  To: davem; +Cc: linux-wireless, netdev

Dave,

A couple more squeakers for 2.6.31...one avoids a panic related to
802.11n, the other avoids some memory corruption with rt2x00 devices.

Please let me know if there are problems!

John

---

Individual patches are available here:

	http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/

---

The following changes since commit 839d1624b9dcf31fdc02e47359043bb7bd71d6ca:
  Francois Romieu (1):
        8139cp: balance dma_map_single vs dma_unmap_single pair

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master

Luis R. Rodriguez (1):
      mac80211: fix panic when splicing unprepared TIDs

Pavel Roskin (1):
      rt2x00: fix memory corruption in rf cache, add a sanity check

 drivers/net/wireless/rt2x00/rt2x00.h |    6 ++++--
 net/mac80211/agg-tx.c                |    8 ++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index a498dde..49c9e2c 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -849,13 +849,15 @@ struct rt2x00_dev {
 static inline void rt2x00_rf_read(struct rt2x00_dev *rt2x00dev,
 				  const unsigned int word, u32 *data)
 {
-	*data = rt2x00dev->rf[word];
+	BUG_ON(word < 1 || word > rt2x00dev->ops->rf_size / sizeof(u32));
+	*data = rt2x00dev->rf[word - 1];
 }
 
 static inline void rt2x00_rf_write(struct rt2x00_dev *rt2x00dev,
 				   const unsigned int word, u32 data)
 {
-	rt2x00dev->rf[word] = data;
+	BUG_ON(word < 1 || word > rt2x00dev->ops->rf_size / sizeof(u32));
+	rt2x00dev->rf[word - 1] = data;
 }
 
 /*
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 9e5762a..a24e598 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -381,6 +381,14 @@ static void ieee80211_agg_splice_packets(struct ieee80211_local *local,
 		&local->hw, queue,
 		IEEE80211_QUEUE_STOP_REASON_AGGREGATION);
 
+	if (!(sta->ampdu_mlme.tid_state_tx[tid] & HT_ADDBA_REQUESTED_MSK))
+		return;
+
+	if (WARN(!sta->ampdu_mlme.tid_tx[tid],
+		 "TID %d gone but expected when splicing aggregates from"
+		 "the pending queue\n", tid))
+		return;
+
 	if (!skb_queue_empty(&sta->ampdu_mlme.tid_tx[tid]->pending)) {
 		spin_lock_irqsave(&local->queue_stop_reason_lock, flags);
 		/* mark queue as pending, it is stopped already */
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply related

* pull request: wireless-next-2.6 2009-08-14
From: John W. Linville @ 2009-08-14 14:13 UTC (permalink / raw)
  To: davem; +Cc: linux-wireless, netdev

Dave,

Yet another round of updates intended for 2.6.32...

-- sdio support fo wl1251
-- other wl1251 fixes
-- new driver for wl1271
-- some orinoco fixes
-- some work on LP-PHY support for b43 (finally...hooray!)
-- add new FIF_PSPOLL filter flag
-- mesh mode fixes
-- ath9k, ath5k, mac80211 updates, etc...

Please let me know if there are problems!

Thanks,

John

---

Individual patches are available here:

	http://www.kernel.org/pub/linux/kernel/people/linville/wireless-next-2.6/

---

The following changes since commit c458bc50e31631f7e9333ea6f1832fc54d4e2c1e:
  Eilon Greenstein (1):
        bnx2x: update version to 1.52.1

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6.git master

Andrey Yurovsky (1):
      mac80211: Use correct sign for mesh active path refresh.

Bob Copeland (8):
      wl1251: separate bus i/o code into io.c
      wl1251: use wiphy_dev instead of wl->spi->dev
      wl1251: introduce wl1251_if_operations struct
      wl1251: make wl1251_set_partition bus agnostic
      wl1251: move module probe methods into spi.c
      wl1251: split spi interface into separate module
      wl1251: add sdio support
      wl1251: make irq handling interface specific

Christian Lamparter (2):
      p54: Write outside array bounds
      p54: implement rfkill

Daniel Mack (1):
      libertas: name the network device wlan%d

David Kilroy (6):
      orinoco: prefer_port3 can be a single bit
      orinoco: use local types for auth alg and sequence length
      orinoco: pass orinoco_set_tkip_key the sequence lengths
      orinoco: move disassociation to hw.c
      orinoco: add function to retrieve current bssid
      orinoco: consolidate storage of WEP and TKIP keys

David Woo (2):
      mac80211: Mark a destination sequence number as valid when a PREQ is received.
      mac80211: Fix invalid length passed to IE parser for PLINK CONFIRM frames

Gábor Stefanik (12):
      b43: Add LP 2063 radio init
      b43: Typo fixes & minor cleanup
      b43: Fix fallout from the IEEE80211_IF_TYPE to NL80211_IFTYPE change.
      b43: LP-PHY: Implement STX synchronization
      b43: Implement LP-PHY baseband table initialization
      b43: Update LP-PHY rev2+ baseband init to match the specs
      ssb: Implement the remaining rev.8 SPROM vars needed for LP-PHY
      b43: Fix a typo in the sync_stx routine
      b43: LP-PHY: Implement reading band SPROM
      b43: Implement RC calibration for rev.2+ LP PHYs
      b43: LP-PHY: Refactor TX gain table I/O
      b43: Implement RC calibration for rev.0/1 LP-PHYs

Igor Perminov (3):
      rt2x00: Fix for race condition while update beacon
      rt2x00: FIF_PSPOLL filter flag support
      rt2x00: Fix beacon de-synchronization while update beacon

Ivo van Doorn (3):
      rt2x00: Remove usage of deprecated radio_enabled & IEEE80211_CONF_CHANGE_RADIO_ENABLED
      rt2x00: Use IEEE80211_TX_CTL_MORE_FRAMES flag
      rt2x00: Align ieee80211 header to 4-byte boundary for PCI devices

Javier Cardona (7):
      mac80211: Improve dequeing from mpath frame queue.
      mac80211: Use 3-address format for mesh broadcast frames.
      mac80211: Update the station failed frames average when minstrel is used.
      mac80211: Early detection of broken mesh paths when using minstrel.
      mac80211: Assign a default mesh beaconing interval.
      mac80211: Move mpath and mpp growth to mesh workqueue.
      mac80211: Fix unresolved mesh frames queued without valid control.vif

Joe Perches (1):
      MAINTAINERS: NETWORKING [WIRELESS] additional patterns

Joerg Albert (1):
      ath5k: fix missing output in monitor mode after ifconfig up

Johannes Berg (19):
      mac80211: stay authenticated after disassoc
      cfg80211: fix nl80211 disconnected events
      cfg80211: fix SME association after disassociation
      cfg80211: validate channel settings across interfaces
      cfg80211: use reassociation when possible
      nl80211: add generation number to all dumps
      mac80211: explain TX retry and status
      mac80211: document TX powersave filter requirements
      mac80211: allow DMA optimisation
      cfg80211: fix alignment problem in scan request
      iwlwifi: refactor some thermal throttle code
      iwlwifi: automatically adjust sleep level
      cfg80211: fix locking for SIWFREQ
      cfg80211: add missing device list locking
      mac80211: take statistics before encryption
      mac80211: sequence number micro-optimisation
      mac80211: small tx code cleanup
      cfg80211: check for and abort dangling scan requests
      cfg80211: allow driver to override PS default

Julia Lawall (1):
      drivers/net/wireless/ath/ath5k: Change constant name

Jussi Kivilinna (1):
      usbnet: add rx queue pausing

Kalle Valo (18):
      wl1251: remove fixed address support from spi commands
      wl1251: remove wl1251_ops
      wl1251: reorder wl1251_cmd_join() arguments
      wl1251: use beacon interval and dtim period provided by mac80211
      wl1251: remove wait parameter from wl1251_cmd_join()
      wl1251: initialise default channel to zero
      wl1251: add channel to wl1251_cmd_join() parameters
      wl1251: create wl1251_join()
      wl1251: fix channel setting in wl1251_op_config()
      wl1251: move wl1251_acx_wake_up_conditions() to wl1251_ps_set_mode()
      wl1251: use workqueue provided by mac80211
      wl1251: rename reg.h to wl1251_reg.h
      wl1251: remove Luciano as maintainer
      wl1251: add hw scan completed debug message
      wl1251: hack to disable filters for fixing association
      iwl3945: fix compilation error in iwl3945_pass_packet_to_mac80211()
      wl1251: remove wl1251_ops.c
      wl1251: remove unused definitions from wl1251_reg.h

Lars Ericsson (2):
      rt2x00: Fix quality houskeeping for software diversity
      rt2x00: Fix rounding errors in RSSI average calculation

Luciano Coelho (4):
      wl1271: add wl1271 driver files
      wl1271: add wl1271 to Kconfig and the Makefile
      MAINTAINERS: add information for wl1271 wireless driver
      wl1271: fix compiler warnings on 64 bit archs

Luis R. Rodriguez (8):
      ath9k: use new FIF_PSPOLL configure filter
      zd1211rw: make it clear we don't use leds.h LED stuff
      mac80211: fix compilation of mesh (although its disabled)
      ath9k: Fix regression on receiving PS poll frames
      ath: add common ath_rxbuf_alloc() and make ath9k use it
      ath5k: use common ath.ko ath_rxbuf_alloc()
      ath5k: use bit shift operators for cache line size
      ath9k: update kconfig to indicate support for AR9002 family

Michael Buesch (2):
      b43: Fix hardware key index handling
      rtl818x: Add some documentation to the TX desc flags

Nick Kossifidis (5):
      ath5k: Check EEPROM before tweaking SERDES
      ath5k: Linear PCDAC code fixes
      ath5k: Wakeup fixes
      ath5k: Preserve pcicfg bits during attach
      ath5k: Use SWI to trigger calibration

Pat Erley (1):
      mac80211: remove max_bandwidth

Pavel Roskin (1):
      cfg80211: fix disassociation warning due to misuse of wdev->current_bss

Reinette Chatre (3):
      iwlwifi: re-introduce per device debugging
      iwlwifi: revert uCode Alive notification with timeout
      iwlwifi: fix missing EXPORT_SYMBOL

Samuel Ortiz (1):
      cfg80211: Set WEP ciphers

Sujith (15):
      ath9k: Remove unneeded assignment of protocol field
      ath9k: Cleanup function return types
      ath9k: Try to fix whitespace damage
      ath9k: Remove a few DEBUG mesages
      ath9k: Split eeprom.c into manageable pieces
      ath9k: Cleanup ath9k_hw_4k_set_gain() interface
      ath9k: Add macros for Antenna Diversity
      ath9k: Clean antenna configuration for 4K EEPROM chips
      ath9k: Cleanup TX power calculation for 4K chips
      ath9k: Remove local chainmask variable
      ath9k: Update beacon RSSI
      ath9k: Remove has_hw_phycounters
      ath9k: Remove duplicate variables
      ath9k: Fix bug in PCI resume
      ath9k: Set HW state properly

Thadeu Lima de Souza Cascardo (1):
      trivial: remove duplicate "different" from comment

Wey-Yi Guy (10):
      iwlwifi: name changed from "fat" to "ht40"
      iwlwifi: new debugging feature for dumping data traffic
      iwlwifi: Traffic type and counter for debugFs
      iwlwifi: tx/rx queue pointer information
      iwlwifi: uCode statistics notification counter
      iwlwifi: Display sensitivity and chain noise information
      iwlwifi: fix thermal throttling locking problem
      iwlwifi: fix legacy thermal throttling power index
      iwlwifi: handle the case when set power fail
      iwlwifi: display correct critical temperature infomation

Zhu Yi (1):
      wireless: display wext SSID when connected by cfg80211

gregor kowski (1):
      b43: remove wrong probe_resp_plcp write

 MAINTAINERS                                        |   14 +-
 drivers/net/usb/usbnet.c                           |   44 +-
 drivers/net/wireless/ath/Kconfig                   |    4 +-
 drivers/net/wireless/ath/ath.h                     |   30 +
 drivers/net/wireless/ath/ath5k/ath5k.h             |   17 +
 drivers/net/wireless/ath/ath5k/attach.c            |   60 +-
 drivers/net/wireless/ath/ath5k/base.c              |  138 +-
 drivers/net/wireless/ath/ath5k/base.h              |    6 +-
 drivers/net/wireless/ath/ath5k/eeprom.c            |   10 +
 drivers/net/wireless/ath/ath5k/eeprom.h            |    4 +
 drivers/net/wireless/ath/ath5k/phy.c               |   47 +-
 drivers/net/wireless/ath/ath5k/qcu.c               |    2 +-
 drivers/net/wireless/ath/ath5k/reset.c             |  155 +-
 drivers/net/wireless/ath/ath9k/Kconfig             |    8 +-
 drivers/net/wireless/ath/ath9k/Makefile            |    3 +
 drivers/net/wireless/ath/ath9k/ani.c               |  195 +-
 drivers/net/wireless/ath/ath9k/ani.h               |    1 -
 drivers/net/wireless/ath/ath9k/ath9k.h             |    4 +-
 drivers/net/wireless/ath/ath9k/eeprom.c            | 3870 +-------------------
 drivers/net/wireless/ath/ath9k/eeprom.h            |  245 +-
 drivers/net/wireless/ath/ath9k/eeprom_4k.c         | 1186 ++++++
 drivers/net/wireless/ath/ath9k/eeprom_9287.c       | 1183 ++++++
 drivers/net/wireless/ath/ath9k/eeprom_def.c        | 1385 +++++++
 drivers/net/wireless/ath/ath9k/hw.c                |   11 +-
 drivers/net/wireless/ath/ath9k/hw.h                |   19 +-
 drivers/net/wireless/ath/ath9k/mac.c               |   17 +-
 drivers/net/wireless/ath/ath9k/mac.h               |    8 +-
 drivers/net/wireless/ath/ath9k/main.c              |    7 +-
 drivers/net/wireless/ath/ath9k/pci.c               |    4 +-
 drivers/net/wireless/ath/ath9k/phy.c               |   12 +-
 drivers/net/wireless/ath/ath9k/phy.h               |   21 +-
 drivers/net/wireless/ath/ath9k/recv.c              |   48 +-
 drivers/net/wireless/ath/main.c                    |   36 +
 drivers/net/wireless/b43/b43.h                     |   11 +-
 drivers/net/wireless/b43/main.c                    |  210 +-
 drivers/net/wireless/b43/phy_lp.c                  |  768 ++++-
 drivers/net/wireless/b43/phy_lp.h                  |   19 +
 drivers/net/wireless/b43/tables_lpphy.c            | 2151 +++++++++++-
 drivers/net/wireless/b43/tables_lpphy.h            |   13 +
 drivers/net/wireless/b43/xmit.c                    |    4 +-
 drivers/net/wireless/iwlwifi/iwl-1000.c            |    4 +-
 drivers/net/wireless/iwlwifi/iwl-3945-hw.h         |    2 +-
 drivers/net/wireless/iwlwifi/iwl-3945.c            |   13 +-
 drivers/net/wireless/iwlwifi/iwl-4965-hw.h         |    6 +-
 drivers/net/wireless/iwlwifi/iwl-4965.c            |   72 +-
 drivers/net/wireless/iwlwifi/iwl-5000.c            |   10 +-
 drivers/net/wireless/iwlwifi/iwl-6000.c            |    4 +-
 drivers/net/wireless/iwlwifi/iwl-agn-rs.c          |   81 +-
 drivers/net/wireless/iwlwifi/iwl-agn.c             |  129 +-
 drivers/net/wireless/iwlwifi/iwl-calib.c           |    2 +-
 drivers/net/wireless/iwlwifi/iwl-commands.h        |   29 +-
 drivers/net/wireless/iwlwifi/iwl-core.c            |  354 ++-
 drivers/net/wireless/iwlwifi/iwl-core.h            |   54 +-
 drivers/net/wireless/iwlwifi/iwl-debug.h           |   28 +-
 drivers/net/wireless/iwlwifi/iwl-debugfs.c         |  951 +++++-
 drivers/net/wireless/iwlwifi/iwl-dev.h             |  104 +-
 drivers/net/wireless/iwlwifi/iwl-eeprom.c          |   54 +-
 drivers/net/wireless/iwlwifi/iwl-eeprom.h          |   34 +-
 drivers/net/wireless/iwlwifi/iwl-hcmd.c            |    2 -
 drivers/net/wireless/iwlwifi/iwl-led.c             |    3 +-
 drivers/net/wireless/iwlwifi/iwl-power.c           |  496 ++--
 drivers/net/wireless/iwlwifi/iwl-power.h           |   80 +-
 drivers/net/wireless/iwlwifi/iwl-rx.c              |   21 +-
 drivers/net/wireless/iwlwifi/iwl-sta.c             |    8 +-
 drivers/net/wireless/iwlwifi/iwl-tx.c              |   16 +-
 drivers/net/wireless/iwlwifi/iwl3945-base.c        |  101 +-
 drivers/net/wireless/libertas/main.c               |    3 +-
 drivers/net/wireless/orinoco/hw.c                  |  120 +-
 drivers/net/wireless/orinoco/hw.h                  |    7 +-
 drivers/net/wireless/orinoco/main.c                |   35 +-
 drivers/net/wireless/orinoco/orinoco.h             |   16 +-
 drivers/net/wireless/orinoco/wext.c                |  173 +-
 drivers/net/wireless/p54/fwio.c                    |    5 +-
 drivers/net/wireless/p54/main.c                    |    7 +-
 drivers/net/wireless/p54/txrx.c                    |    6 +
 drivers/net/wireless/rndis_wlan.c                  |   13 +-
 drivers/net/wireless/rt2x00/rt2400pci.c            |    2 -
 drivers/net/wireless/rt2x00/rt2500pci.c            |    2 -
 drivers/net/wireless/rt2x00/rt2500usb.c            |   15 +-
 drivers/net/wireless/rt2x00/rt2800usb.c            |   11 +-
 drivers/net/wireless/rt2x00/rt2x00.h               |   33 +-
 drivers/net/wireless/rt2x00/rt2x00config.c         |   22 +-
 drivers/net/wireless/rt2x00/rt2x00dev.c            |   14 +-
 drivers/net/wireless/rt2x00/rt2x00link.c           |  154 +-
 drivers/net/wireless/rt2x00/rt2x00mac.c            |   72 +-
 drivers/net/wireless/rt2x00/rt2x00queue.c          |   30 +-
 drivers/net/wireless/rt2x00/rt61pci.c              |   10 +-
 drivers/net/wireless/rt2x00/rt73usb.c              |   10 +-
 drivers/net/wireless/rtl818x/rtl818x.h             |   14 +-
 drivers/net/wireless/wl12xx/Kconfig                |   38 +-
 drivers/net/wireless/wl12xx/Makefile               |   13 +-
 drivers/net/wireless/wl12xx/wl1251.h               |   78 +-
 drivers/net/wireless/wl12xx/wl1251_acx.c           |   84 +-
 drivers/net/wireless/wl12xx/wl1251_acx.h           |  146 +
 drivers/net/wireless/wl12xx/wl1251_boot.c          |  266 ++-
 drivers/net/wireless/wl12xx/wl1251_boot.h          |    1 +
 drivers/net/wireless/wl12xx/wl1251_cmd.c           |   62 +-
 drivers/net/wireless/wl12xx/wl1251_cmd.h           |    4 +-
 drivers/net/wireless/wl12xx/wl1251_event.c         |    7 +-
 drivers/net/wireless/wl12xx/wl1251_init.c          |  213 ++
 drivers/net/wireless/wl12xx/wl1251_init.h          |    2 +
 drivers/net/wireless/wl12xx/wl1251_io.c            |  196 +
 drivers/net/wireless/wl12xx/wl1251_io.h            |   64 +
 drivers/net/wireless/wl12xx/wl1251_main.c          |  375 ++-
 drivers/net/wireless/wl12xx/wl1251_ops.c           |  728 ----
 drivers/net/wireless/wl12xx/wl1251_ops.h           |  165 -
 drivers/net/wireless/wl12xx/wl1251_ps.c            |   18 +-
 .../net/wireless/wl12xx/{reg.h => wl1251_reg.h}    |  100 -
 drivers/net/wireless/wl12xx/wl1251_rx.c            |    9 +-
 drivers/net/wireless/wl12xx/wl1251_sdio.c          |  205 ++
 drivers/net/wireless/wl12xx/wl1251_spi.c           |  327 +-
 drivers/net/wireless/wl12xx/wl1251_spi.h           |   56 +-
 drivers/net/wireless/wl12xx/wl1251_tx.c            |   64 +-
 drivers/net/wireless/wl12xx/wl1271.h               |  407 ++
 drivers/net/wireless/wl12xx/wl1271_acx.c           |  961 +++++
 drivers/net/wireless/wl12xx/wl1271_acx.h           | 1221 ++++++
 drivers/net/wireless/wl12xx/wl1271_boot.c          |  541 +++
 drivers/net/wireless/wl12xx/wl1271_boot.h          |   72 +
 drivers/net/wireless/wl12xx/wl1271_cmd.c           |  813 ++++
 drivers/net/wireless/wl12xx/wl1271_cmd.h           |  464 +++
 drivers/net/wireless/wl12xx/wl1271_debugfs.c       |  518 +++
 drivers/net/wireless/wl12xx/wl1271_debugfs.h       |   33 +
 drivers/net/wireless/wl12xx/wl1271_event.c         |  125 +
 drivers/net/wireless/wl12xx/wl1271_event.h         |  110 +
 drivers/net/wireless/wl12xx/wl1271_init.c          |  397 ++
 drivers/net/wireless/wl12xx/wl1271_init.h          |  115 +
 drivers/net/wireless/wl12xx/wl1271_main.c          | 1397 +++++++
 drivers/net/wireless/wl12xx/wl1271_ps.c            |  142 +
 drivers/net/wireless/wl12xx/wl1271_ps.h            |   35 +
 .../net/wireless/wl12xx/{reg.h => wl1271_reg.h}    |  222 +-
 drivers/net/wireless/wl12xx/wl1271_rx.c            |  200 +
 drivers/net/wireless/wl12xx/wl1271_rx.h            |  121 +
 drivers/net/wireless/wl12xx/wl1271_spi.c           |  382 ++
 drivers/net/wireless/wl12xx/wl1271_spi.h           |  113 +
 drivers/net/wireless/wl12xx/wl1271_tx.c            |  378 ++
 drivers/net/wireless/wl12xx/wl1271_tx.h            |  130 +
 drivers/net/wireless/zd1211rw/zd_chip.c            |    6 +-
 drivers/net/wireless/zd1211rw/zd_chip.h            |    6 +-
 drivers/net/wireless/zd1211rw/zd_mac.c             |    4 +-
 drivers/ssb/pci.c                                  |   53 +-
 include/linux/nl80211.h                            |   17 +-
 include/linux/ssb/ssb.h                            |   44 +-
 include/linux/ssb/ssb_regs.h                       |   66 +-
 include/linux/usb/usbnet.h                         |    6 +
 include/net/cfg80211.h                             |   26 +-
 include/net/mac80211.h                             |   29 +-
 net/mac80211/Kconfig                               |    8 +-
 net/mac80211/cfg.c                                 |    4 +
 net/mac80211/ieee80211_i.h                         |    6 +-
 net/mac80211/main.c                                |   16 +-
 net/mac80211/mesh.c                                |  145 +-
 net/mac80211/mesh.h                                |   30 +-
 net/mac80211/mesh_hwmp.c                           |   17 +-
 net/mac80211/mesh_pathtbl.c                        |  151 +-
 net/mac80211/mesh_plink.c                          |    2 +-
 net/mac80211/mlme.c                                |   31 +-
 net/mac80211/rc80211_minstrel.c                    |   16 +-
 net/mac80211/rx.c                                  |   45 +-
 net/mac80211/scan.c                                |   10 +-
 net/mac80211/sta_info.c                            |    2 +
 net/mac80211/tx.c                                  |  158 +-
 net/wireless/Makefile                              |    3 +-
 net/wireless/chan.c                                |   89 +
 net/wireless/core.c                                |   21 +-
 net/wireless/core.h                                |   14 +-
 net/wireless/ibss.c                                |   61 +-
 net/wireless/mlme.c                                |   17 +-
 net/wireless/nl80211.c                             |   88 +-
 net/wireless/reg.c                                 |    5 +-
 net/wireless/scan.c                                |   31 +-
 net/wireless/sme.c                                 |  104 +-
 net/wireless/util.c                                |   16 +-
 net/wireless/wext-compat.c                         |   55 +-
 net/wireless/wext-compat.h                         |    3 +-
 net/wireless/wext-sme.c                            |   83 +-
 175 files changed, 21316 insertions(+), 7692 deletions(-)
 create mode 100644 drivers/net/wireless/ath/ath.h
 create mode 100644 drivers/net/wireless/ath/ath9k/eeprom_4k.c
 create mode 100644 drivers/net/wireless/ath/ath9k/eeprom_9287.c
 create mode 100644 drivers/net/wireless/ath/ath9k/eeprom_def.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1251_io.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1251_io.h
 delete mode 100644 drivers/net/wireless/wl12xx/wl1251_ops.c
 delete mode 100644 drivers/net/wireless/wl12xx/wl1251_ops.h
 copy drivers/net/wireless/wl12xx/{reg.h => wl1251_reg.h} (81%)
 create mode 100644 drivers/net/wireless/wl12xx/wl1251_sdio.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_acx.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_acx.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_boot.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_boot.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_cmd.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_cmd.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_debugfs.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_debugfs.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_event.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_event.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_init.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_init.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_main.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_ps.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_ps.h
 rename drivers/net/wireless/wl12xx/{reg.h => wl1271_reg.h} (93%)
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_rx.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_rx.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_spi.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_spi.h
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_tx.c
 create mode 100644 drivers/net/wireless/wl12xx/wl1271_tx.h
 create mode 100644 net/wireless/chan.c

Omnibus patch available here:

	http://www.kernel.org/pub/linux/kernel/people/linville/wireless-next-2.6-2009-08-14.patch.bz2

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: [PATCH] b43: Add LP-PHY firmware loading support
From: Larry Finger @ 2009-08-14 13:10 UTC (permalink / raw)
  To: Gábor Stefanik
  Cc: John Linville, Michael Buesch, Mark Huijgen, Broadcom Wireless,
	linux-wireless
In-Reply-To: <69e28c910908140602x3873f30bt95b5c148305a5e1e@mail.gmail.com>

Gábor Stefanik wrote:
> 
> Is rev.16 firmware available anywhere?
> 

finger@larrylap:~/wireless-testing> ls /lib/firmware/b43
a0b0bsinitvals4.fw   a0g1bsinitvals5.fw   b0g0initvals13.fw
lp0initvals13.fw    n0initvals16.fw        ucode15.fw
a0b0gsinitvals5.fw   a0g1bsinitvals9.fw   b0g0initvals13.fw_save
lp0initvals14.fw    pcm4.fw                ucode16.fw
a0g0bsinitvals4.fw   a0g1initvals13.fw    b0g0initvals4.fw
lp0initvals15.fw    pcm5.fw                ucode4.fw
a0g0bsinitvals5.fw   a0g1initvals5.fw     b0g0initvals5.fw
lp0initvals16.fw    sslpn0bsinitvals16.fw  ucode5.fw
a0g0bsinitvals9.fw   a0g1initvals9.fw     b0g0initvals9.fw
n0absinitvals11.fw  sslpn0initvals16.fw    ucode9.fw
a0g0initvals4.fw     b0g0bsinitvals13.fw  lp0bsinitvals13.fw
n0absinitvals13.fw  ucode11.fw
a0g0initvals5.fw     b0g0bsinitvals4.fw   lp0bsinitvals14.fw
n0bsinitvals11.fw   ucode13.fw
a0g0initvals9.fw     b0g0bsinitvals5.fw   lp0bsinitvals15.fw
n0bsinitvals16.fw   ucode13.fw_save
a0g1bsinitvals13.fw  b0g0bsinitvals9.fw   lp0bsinitvals16.fw
n0initvals11.fw     ucode14.fw

I installed my firmware using openSUSE's script called
/usr/sbin/install_bcm43xx_firmware, which uses the driver file
broadcom-wl-4.150.10.5.tar.bz2, and rev 16 firmware is there.

Larry




^ permalink raw reply

* Re: [PATCH] b43: Add LP-PHY firmware loading support
From: Gábor Stefanik @ 2009-08-14 13:02 UTC (permalink / raw)
  To: Larry Finger
  Cc: John Linville, Michael Buesch, Mark Huijgen, Broadcom Wireless,
	linux-wireless
In-Reply-To: <4A855FEA.7030907@lwfinger.net>

2009/8/14 Larry Finger <Larry.Finger@lwfinger.net>:
> Gábor Stefanik wrote:
>> Add support for loading LP-PHY firmware to b43_try_request_fw.
>>
>> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
>> ---
>> For anyone hoping that the channel switch patches will make their LP
>> card work - this is also definitely required.
>>
>> Mark, this doesn't fix your problem specifically, but it will be needed
>> after your problem is fixed.
>>
>> drivers/net/wireless/b43/main.c |   24 +++++++++++++++++++++++-
>> 1 files changed, 23 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/net/wireless/b43/main.c
>> b/drivers/net/wireless/b43/main.c
>> index fbcbe4f..1e657fe 100644
>> --- a/drivers/net/wireless/b43/main.c
>> +++ b/drivers/net/wireless/b43/main.c
>> @@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct
>> b43_request_fw_context *ctx)
>>         filename = "ucode5";
>>     else if ((rev >= 11) && (rev <= 12))
>>         filename = "ucode11";
>> -    else if (rev >= 13)
>> +    else if (rev == 13)
>>         filename = "ucode13";
>> +    else if (rev == 14)
>> +        filename = "ucode14";
>> +    else if (rev >= 15)
>> +        filename = "ucode15";
>
> As shown by http://bcm-v4.sipsolutions.net/802.11/Init/Firmware, one
> should also have "ucode16".
>
>>     else
>>         goto err_no_ucode;
>>     err = b43_do_request_fw(ctx, filename, &fw->ucode);
>> @@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct
>> b43_request_fw_context *ctx)
>>         else
>>             goto err_no_initvals;
>>         break;
>> +    case B43_PHYTYPE_LP:
>> +        if (rev == 13)
>> +            filename = "lp0initvals13";
>> +        else if (rev == 14)
>> +            filename = "lp0initvals14";
>> +        else if (rev >= 15)
>> +            filename = "lp0initvals15";
>> +        else
>
> Same for lp0initvals16.
>
>> +            goto err_no_initvals;
>>     default:
>>         goto err_no_initvals;
>>     }
>> @@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct
>> b43_request_fw_context *ctx)
>>         else
>>             goto err_no_initvals;
>>         break;
>> +    case B43_PHYTYPE_LP:
>> +        if (rev == 13)
>> +            filename = "lp0bsinitvals13";
>> +        else if (rev == 14)
>> +            filename = "lp0bsinitvals14";
>> +        else if (rev >= 15)
>> +            filename = "lp0bsinitvals15";
>
> and lp0bsinitvals16.
>
>> +        else
>> +            goto err_no_initvals;
>>     default:
>>         goto err_no_initvals;
>>     }
>
> Larry
>

Is rev.16 firmware available anywhere?

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)

^ permalink raw reply

* Re: [PATCH] b43: Add LP-PHY firmware loading support
From: Larry Finger @ 2009-08-14 13:00 UTC (permalink / raw)
  To: Gábor Stefanik
  Cc: John Linville, Michael Buesch, Mark Huijgen, Broadcom Wireless,
	linux-wireless
In-Reply-To: <4A854FDF.5020208@gmail.com>

Gábor Stefanik wrote:
> Add support for loading LP-PHY firmware to b43_try_request_fw.
> 
> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
> ---
> For anyone hoping that the channel switch patches will make their LP
> card work - this is also definitely required.
> 
> Mark, this doesn't fix your problem specifically, but it will be needed
> after your problem is fixed.
> 
> drivers/net/wireless/b43/main.c |   24 +++++++++++++++++++++++-
> 1 files changed, 23 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/wireless/b43/main.c
> b/drivers/net/wireless/b43/main.c
> index fbcbe4f..1e657fe 100644
> --- a/drivers/net/wireless/b43/main.c
> +++ b/drivers/net/wireless/b43/main.c
> @@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct
> b43_request_fw_context *ctx)
>         filename = "ucode5";
>     else if ((rev >= 11) && (rev <= 12))
>         filename = "ucode11";
> -    else if (rev >= 13)
> +    else if (rev == 13)
>         filename = "ucode13";
> +    else if (rev == 14)
> +        filename = "ucode14";
> +    else if (rev >= 15)
> +        filename = "ucode15";

As shown by http://bcm-v4.sipsolutions.net/802.11/Init/Firmware, one
should also have "ucode16".

>     else
>         goto err_no_ucode;
>     err = b43_do_request_fw(ctx, filename, &fw->ucode);
> @@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct
> b43_request_fw_context *ctx)
>         else
>             goto err_no_initvals;
>         break;
> +    case B43_PHYTYPE_LP:
> +        if (rev == 13)
> +            filename = "lp0initvals13";
> +        else if (rev == 14)
> +            filename = "lp0initvals14";
> +        else if (rev >= 15)
> +            filename = "lp0initvals15";
> +        else

Same for lp0initvals16.

> +            goto err_no_initvals;
>     default:
>         goto err_no_initvals;
>     }
> @@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct
> b43_request_fw_context *ctx)
>         else
>             goto err_no_initvals;
>         break;
> +    case B43_PHYTYPE_LP:
> +        if (rev == 13)
> +            filename = "lp0bsinitvals13";
> +        else if (rev == 14)
> +            filename = "lp0bsinitvals14";
> +        else if (rev >= 15)
> +            filename = "lp0bsinitvals15";

and lp0bsinitvals16.

> +        else
> +            goto err_no_initvals;
>     default:
>         goto err_no_initvals;
>     }

Larry

^ permalink raw reply

* [PATCH] b43: Make LP-PHY testable
From: Gábor Stefanik @ 2009-08-14 12:54 UTC (permalink / raw)
  To: John Linville, Michael Buesch, Larry Finger, Mark Huijgen
  Cc: Broadcom Wireless, linux-wireless

-Enable rate memory init for LP-PHY (same as G and N-PHY).
-Mark rev.2 LP-PHYs with the B2063 radio as supported.
-Allow using the 5GHz band on LP-PHYs.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
 drivers/net/wireless/b43/main.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 3ca3e93..5559b22 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2674,6 +2674,7 @@ static void b43_rate_memory_init(struct b43_wldev *dev)
 	case B43_PHYTYPE_A:
 	case B43_PHYTYPE_G:
 	case B43_PHYTYPE_N:
+	case B43_PHYTYPE_LP:
 		b43_rate_memory_write(dev, B43_OFDM_RATE_6MB, 1);
 		b43_rate_memory_write(dev, B43_OFDM_RATE_12MB, 1);
 		b43_rate_memory_write(dev, B43_OFDM_RATE_18MB, 1);
@@ -3888,7 +3889,7 @@ static int b43_phy_versioning(struct b43_wldev *dev)
 #endif
 #ifdef CONFIG_B43_PHY_LP
 	case B43_PHYTYPE_LP:
-		if (phy_rev > 1)
+		if (phy_rev > 2)
 			unsupported = 1;
 		break;
 #endif
@@ -3945,7 +3946,7 @@ static int b43_phy_versioning(struct b43_wldev *dev)
 			unsupported = 1;
 		break;
 	case B43_PHYTYPE_LP:
-		if (radio_ver != 0x2062)
+		if (radio_ver != 0x2062 && radio_ver != 0x2063)
 			unsupported = 1;
 		break;
 	default:
@@ -4588,9 +4589,10 @@ static int b43_wireless_core_attach(struct b43_wldev *dev)
 		case B43_PHYTYPE_A:
 			have_5ghz_phy = 1;
 			break;
+		case B43_PHYTYPE_LP: //FIXME not always!
+			have_5ghz_phy = 1;
 		case B43_PHYTYPE_G:
 		case B43_PHYTYPE_N:
-		case B43_PHYTYPE_LP:
 			have_2ghz_phy = 1;
 			break;
 		default:
@@ -4605,7 +4607,8 @@ static int b43_wireless_core_attach(struct b43_wldev *dev)
 	}
 	if (1 /* disable A-PHY */) {
 		/* FIXME: For now we disable the A-PHY on multi-PHY devices. */
-		if (dev->phy.type != B43_PHYTYPE_N) {
+		if (dev->phy.type != B43_PHYTYPE_N &&
+		    dev->phy.type != B43_PHYTYPE_LP) {
 			have_2ghz_phy = 1;
 			have_5ghz_phy = 0;
 		}
-- 
1.6.2.4




^ permalink raw reply related

* Re: [PATCH] ssb: Fix e typo in the rev8 SPROM extraction routine
From: Gábor Stefanik @ 2009-08-14 12:40 UTC (permalink / raw)
  To: John Linville, Michael Buesch, Larry Finger, Mark Huijgen
  Cc: Broadcom Wireless, linux-wireless
In-Reply-To: <4A855489.6010102@gmail.com>

John, please fix the typo in the commit name... how ironic this is a
typo fix patch. :-)

2009/8/14 Gábor Stefanik <netrolller.3d@gmail.com>:
> No comment. :-)
>
> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
> ---
> Mark, this should fix your MAC address bug.
> Anyone else testing LP-PHY should also apply this.
>
> drivers/ssb/pci.c |    2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/ssb/pci.c b/drivers/ssb/pci.c
> index 50811e4..335a43f 100644
> --- a/drivers/ssb/pci.c
> +++ b/drivers/ssb/pci.c
> @@ -480,7 +480,7 @@ static void sprom_extract_r8(struct ssb_sprom *out,
> const u16 *in)
>
>        /* extract the MAC address */
>        for (i = 0; i < 3; i++) {
> -               v = in[SPOFF(SSB_SPROM1_IL0MAC) + i];
> +               v = in[SPOFF(SSB_SPROM8_IL0MAC) + i];
>                *(((__be16 *)out->il0mac) + i) = cpu_to_be16(v);
>        }
>        SPEX(country_code, SSB_SPROM8_CCODE, 0xFFFF, 0);
> --
> 1.6.2.4
>
>
>
>



-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)

^ permalink raw reply

* [PATCH v3 this time really] b43: Add LP-PHY firmware loading support
From: Gábor Stefanik @ 2009-08-14 12:39 UTC (permalink / raw)
  To: John Linville, Michael Buesch, Larry Finger, Mark Huijgen
  Cc: Broadcom Wireless, linux-wireless

Add support for loading LP-PHY firmware to b43_try_request_fw.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
I use Kate, and I added the break, then switched to Kate's
terminal, committed, format-patched - but forgot to click the Save
button before committing. :-)

V3 for real: Add yet another missing "break", this time really.
V3: Accidentally the same as V2.
V2: Add a missing "break".

 drivers/net/wireless/b43/main.c |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index fbcbe4f..3ca3e93 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		filename = "ucode5";
 	else if ((rev >= 11) && (rev <= 12))
 		filename = "ucode11";
-	else if (rev >= 13)
+	else if (rev == 13)
 		filename = "ucode13";
+	else if (rev == 14)
+		filename = "ucode14";
+	else if (rev >= 15)
+		filename = "ucode15";
 	else
 		goto err_no_ucode;
 	err = b43_do_request_fw(ctx, filename, &fw->ucode);
@@ -2111,6 +2115,16 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0initvals13";
+		else if (rev == 14)
+			filename = "lp0initvals14";
+		else if (rev >= 15)
+			filename = "lp0initvals15";
+		else
+			goto err_no_initvals;
+		break;
 	default:
 		goto err_no_initvals;
 	}
@@ -2145,6 +2159,16 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0bsinitvals13";
+		else if (rev == 14)
+			filename = "lp0bsinitvals14";
+		else if (rev >= 15)
+			filename = "lp0bsinitvals15";
+		else
+			goto err_no_initvals;
+		break;
 	default:
 		goto err_no_initvals;
 	}
-- 
1.6.2.4




^ permalink raw reply related

* Re: [PATCH -stable] rt2x00: fix memory corruption in rf cache, add a sanity check
From: John W. Linville @ 2009-08-14 12:27 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: stable, linux-wireless, Ivo van Doorn, Pavel Roskin
In-Reply-To: <1250247548-3429-1-git-send-email-sgruszka@redhat.com>

On Fri, Aug 14, 2009 at 12:59:08PM +0200, Stanislaw Gruszka wrote:
> From: Pavel Roskin <proski@gnu.org>
> 
> Change rt2x00_rf_read() and rt2x00_rf_write() to subtract 1 from the rf
> register number.  This is needed because the rf registers are enumerated
> starting with one.  The size of the rf register cache is just enough to
> hold all registers, so writing to the highest register was corrupting
> memory.  Add a check to make sure that the rf register number is valid.
> 
> Signed-off-by: Pavel Roskin <proski@gnu.org>
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
> I think nobody send this patch against stable yet. I have problem with
> rt73usb memory corruption on 2.6.30, this patch solve it. Not sure if 
> patch is also useful for 2.6.27. 

Thanks for pointing this out, I missed the memory corruption comment.

Since this hasn't gone to Linus yet, I don't think the stable guys
will take it.  I'll add a "Cc: stable@kernel.org" when I send it to
Dave/Linus so that the stable guys will see it automatically.

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: Revert commit in ath9k
From: John W. Linville @ 2009-08-14 12:19 UTC (permalink / raw)
  To: Sujith; +Cc: linux-wireless
In-Reply-To: <19076.56592.101907.186453@gargle.gargle.HOWL>

On Fri, Aug 14, 2009 at 09:12:08AM +0530, Sujith wrote:

> Can you revert the commit - "ath9k: Change DEBUG level for certain interrupts" ?
> This interrupt seems to trigger fairly often and floods the log.
> The driver does seem to work with this message suppressed.
> (which was the original behaviour).
> 
> The actual cause for this bug is still unknown, but until it is
> found and fixed, the earlier behaviour can be retained.
> 
> Sorry for the trouble. :)

OK

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* [PATCH v3] b43: Add LP-PHY firmware loading support
From: Gábor Stefanik @ 2009-08-14 12:23 UTC (permalink / raw)
  To: John Linville, Michael Buesch, Larry Finger, Mark Huijgen
  Cc: Broadcom Wireless, linux-wireless

Add support for loading LP-PHY firmware to b43_try_request_fw.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
V3: Add yet another missing "break".
V2: Add a missing "break".

 drivers/net/wireless/b43/main.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index fbcbe4f..51767fa 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		filename = "ucode5";
 	else if ((rev >= 11) && (rev <= 12))
 		filename = "ucode11";
-	else if (rev >= 13)
+	else if (rev == 13)
 		filename = "ucode13";
+	else if (rev == 14)
+		filename = "ucode14";
+	else if (rev >= 15)
+		filename = "ucode15";
 	else
 		goto err_no_ucode;
 	err = b43_do_request_fw(ctx, filename, &fw->ucode);
@@ -2111,6 +2115,16 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0initvals13";
+		else if (rev == 14)
+			filename = "lp0initvals14";
+		else if (rev >= 15)
+			filename = "lp0initvals15";
+		else
+			goto err_no_initvals;
+		break;
 	default:
 		goto err_no_initvals;
 	}
@@ -2145,6 +2159,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0bsinitvals13";
+		else if (rev == 14)
+			filename = "lp0bsinitvals14";
+		else if (rev >= 15)
+			filename = "lp0bsinitvals15";
+		else
+			goto err_no_initvals;
 	default:
 		goto err_no_initvals;
 	}
-- 
1.6.2.4




^ permalink raw reply related

* Re: [PATCH] b43: Add LP-PHY firmware loading support
From: Mark Huijgen @ 2009-08-14 12:11 UTC (permalink / raw)
  To: Gábor Stefanik
  Cc: John Linville, Michael Buesch, Larry Finger, linux-wireless,
	Broadcom Wireless
In-Reply-To: <4A854FDF.5020208@gmail.com>

Missing break in initval case switches, see below.

Gábor Stefanik wrote:
> Add support for loading LP-PHY firmware to b43_try_request_fw.
>
> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
> ---
> For anyone hoping that the channel switch patches will make their LP card work - this is also definitely required.
>
> Mark, this doesn't fix your problem specifically, but it will be needed after your problem is fixed.
>
>  drivers/net/wireless/b43/main.c |   24 +++++++++++++++++++++++-
>  1 files changed, 23 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
> index fbcbe4f..1e657fe 100644
> --- a/drivers/net/wireless/b43/main.c
> +++ b/drivers/net/wireless/b43/main.c
> @@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
>  		filename = "ucode5";
>  	else if ((rev >= 11) && (rev <= 12))
>  		filename = "ucode11";
> -	else if (rev >= 13)
> +	else if (rev == 13)
>  		filename = "ucode13";
> +	else if (rev == 14)
> +		filename = "ucode14";
> +	else if (rev >= 15)
> +		filename = "ucode15";
>  	else
>  		goto err_no_ucode;
>  	err = b43_do_request_fw(ctx, filename, &fw->ucode);
> @@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
>  		else
>  			goto err_no_initvals;
>  		break;
> +	case B43_PHYTYPE_LP:
> +		if (rev == 13)
> +			filename = "lp0initvals13";
> +		else if (rev == 14)
> +			filename = "lp0initvals14";
> +		else if (rev >= 15)
> +			filename = "lp0initvals15";
> +		else
> +			goto err_no_initvals;
>   
break;
>  	default:
>  		goto err_no_initvals;
>  	}
> @@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
>  		else
>  			goto err_no_initvals;
>  		break;
> +	case B43_PHYTYPE_LP:
> +		if (rev == 13)
> +			filename = "lp0bsinitvals13";
> +		else if (rev == 14)
> +			filename = "lp0bsinitvals14";
> +		else if (rev >= 15)
> +			filename = "lp0bsinitvals15";
> +		else
> +			goto err_no_initvals;
>   
break;
>  	default:
>  		goto err_no_initvals;
>  	}
>   


^ permalink raw reply

* Re: [PATCH v2] b43: Add LP-PHY firmware loading support
From: Mark Huijgen @ 2009-08-14 12:20 UTC (permalink / raw)
  To: Gábor Stefanik
  Cc: John Linville, Michael Buesch, Larry Finger, Broadcom Wireless,
	linux-wireless
In-Reply-To: <4A8555F5.5090603@gmail.com>

Still missing a break in the bandswitch initvals.

Mark

Gábor Stefanik wrote:
> Add support for loading LP-PHY firmware to b43_try_request_fw.
>
> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
> ---
> drivers/net/wireless/b43/main.c |   25 ++++++++++++++++++++++++-
> 1 files changed, 24 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/b43/main.c
> b/drivers/net/wireless/b43/main.c
> index fbcbe4f..51767fa 100644
> --- a/drivers/net/wireless/b43/main.c
> +++ b/drivers/net/wireless/b43/main.c
> @@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct
> b43_request_fw_context *ctx)
>         filename = "ucode5";
>     else if ((rev >= 11) && (rev <= 12))
>         filename = "ucode11";
> -    else if (rev >= 13)
> +    else if (rev == 13)
>         filename = "ucode13";
> +    else if (rev == 14)
> +        filename = "ucode14";
> +    else if (rev >= 15)
> +        filename = "ucode15";
>     else
>         goto err_no_ucode;
>     err = b43_do_request_fw(ctx, filename, &fw->ucode);
> @@ -2111,6 +2115,16 @@ static int b43_try_request_fw(struct
> b43_request_fw_context *ctx)
>         else
>             goto err_no_initvals;
>         break;
> +    case B43_PHYTYPE_LP:
> +        if (rev == 13)
> +            filename = "lp0initvals13";
> +        else if (rev == 14)
> +            filename = "lp0initvals14";
> +        else if (rev >= 15)
> +            filename = "lp0initvals15";
> +        else
> +            goto err_no_initvals;
> +        break;
>     default:
>         goto err_no_initvals;
>     }
> @@ -2145,6 +2159,15 @@ static int b43_try_request_fw(struct
> b43_request_fw_context *ctx)
>         else
>             goto err_no_initvals;
>         break;
> +    case B43_PHYTYPE_LP:
> +        if (rev == 13)
> +            filename = "lp0bsinitvals13";
> +        else if (rev == 14)
> +            filename = "lp0bsinitvals14";
> +        else if (rev >= 15)
> +            filename = "lp0bsinitvals15";
> +        else
> +            goto err_no_initvals;
>     default:
>         goto err_no_initvals;
>     }


^ permalink raw reply

* [PATCH v2] b43: Add LP-PHY firmware loading support
From: Gábor Stefanik @ 2009-08-14 12:17 UTC (permalink / raw)
  To: John Linville, Michael Buesch, Larry Finger, Mark Huijgen
  Cc: Broadcom Wireless, linux-wireless

Add support for loading LP-PHY firmware to b43_try_request_fw.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
 drivers/net/wireless/b43/main.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index fbcbe4f..51767fa 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		filename = "ucode5";
 	else if ((rev >= 11) && (rev <= 12))
 		filename = "ucode11";
-	else if (rev >= 13)
+	else if (rev == 13)
 		filename = "ucode13";
+	else if (rev == 14)
+		filename = "ucode14";
+	else if (rev >= 15)
+		filename = "ucode15";
 	else
 		goto err_no_ucode;
 	err = b43_do_request_fw(ctx, filename, &fw->ucode);
@@ -2111,6 +2115,16 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0initvals13";
+		else if (rev == 14)
+			filename = "lp0initvals14";
+		else if (rev >= 15)
+			filename = "lp0initvals15";
+		else
+			goto err_no_initvals;
+		break;
 	default:
 		goto err_no_initvals;
 	}
@@ -2145,6 +2159,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0bsinitvals13";
+		else if (rev == 14)
+			filename = "lp0bsinitvals14";
+		else if (rev >= 15)
+			filename = "lp0bsinitvals15";
+		else
+			goto err_no_initvals;
 	default:
 		goto err_no_initvals;
 	}
-- 
1.6.2.4




^ permalink raw reply related

* [PATCH] ssb: Fix e typo in the rev8 SPROM extraction routine
From: Gábor Stefanik @ 2009-08-14 12:11 UTC (permalink / raw)
  To: John Linville, Michael Buesch, Larry Finger, Mark Huijgen
  Cc: Broadcom Wireless, linux-wireless

No comment. :-)

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
Mark, this should fix your MAC address bug.
Anyone else testing LP-PHY should also apply this.

 drivers/ssb/pci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/ssb/pci.c b/drivers/ssb/pci.c
index 50811e4..335a43f 100644
--- a/drivers/ssb/pci.c
+++ b/drivers/ssb/pci.c
@@ -480,7 +480,7 @@ static void sprom_extract_r8(struct ssb_sprom *out, const u16 *in)
 
 	/* extract the MAC address */
 	for (i = 0; i < 3; i++) {
-		v = in[SPOFF(SSB_SPROM1_IL0MAC) + i];
+		v = in[SPOFF(SSB_SPROM8_IL0MAC) + i];
 		*(((__be16 *)out->il0mac) + i) = cpu_to_be16(v);
 	}
 	SPEX(country_code, SSB_SPROM8_CCODE, 0xFFFF, 0);
-- 
1.6.2.4




^ permalink raw reply related

* [PATCH] b43: Add LP-PHY firmware loading support
From: Gábor Stefanik @ 2009-08-14 11:51 UTC (permalink / raw)
  To: John Linville, Michael Buesch, Larry Finger, Mark Huijgen
  Cc: Broadcom Wireless, linux-wireless

Add support for loading LP-PHY firmware to b43_try_request_fw.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
For anyone hoping that the channel switch patches will make their LP card work - this is also definitely required.

Mark, this doesn't fix your problem specifically, but it will be needed after your problem is fixed.

 drivers/net/wireless/b43/main.c |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index fbcbe4f..1e657fe 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		filename = "ucode5";
 	else if ((rev >= 11) && (rev <= 12))
 		filename = "ucode11";
-	else if (rev >= 13)
+	else if (rev == 13)
 		filename = "ucode13";
+	else if (rev == 14)
+		filename = "ucode14";
+	else if (rev >= 15)
+		filename = "ucode15";
 	else
 		goto err_no_ucode;
 	err = b43_do_request_fw(ctx, filename, &fw->ucode);
@@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0initvals13";
+		else if (rev == 14)
+			filename = "lp0initvals14";
+		else if (rev >= 15)
+			filename = "lp0initvals15";
+		else
+			goto err_no_initvals;
 	default:
 		goto err_no_initvals;
 	}
@@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
 		else
 			goto err_no_initvals;
 		break;
+	case B43_PHYTYPE_LP:
+		if (rev == 13)
+			filename = "lp0bsinitvals13";
+		else if (rev == 14)
+			filename = "lp0bsinitvals14";
+		else if (rev >= 15)
+			filename = "lp0bsinitvals15";
+		else
+			goto err_no_initvals;
 	default:
 		goto err_no_initvals;
 	}
-- 
1.6.2.4




^ permalink raw reply related

* Re: compat-wireless-2009-08-13 ath9k timeouts
From: Howard Chu @ 2009-08-14 11:43 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org
In-Reply-To: <4A84D3E4.5050406@symas.com>

After reading this hint

> From: Sujith <Sujith.Manoharan@...>
> Subject: Re: Revert commit in ath9k
> Date: 2009-08-14 06:17:42 GMT (5 hours and 20 minutes ago)
>
> Pavel Roskin wrote:
>> Quoting Sujith <Sujith.Manoharan@...>:
>>
>> > John,
>> >
>> > Can you revert the commit - "ath9k: Change DEBUG level for certain
>> > interrupts" ?
>> > This interrupt seems to trigger fairly often and floods the log.

I reverted that commit in my build, and things were a bit more usable. But now 
I'm seeing this momentary pauses, and this in dmesg:

[22479.126146] wlan0: associated
[22734.695276] ath9k: DMA failed to stop in 10 ms AR_CR=0x00000024 
AR_DIAG_SW=0x40000020
[22978.405252] ath9k: DMA failed to stop in 10 ms AR_CR=0x00000024 
AR_DIAG_SW=0x42000020

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

^ permalink raw reply

* [PATCH] p54: disable PS by default
From: Christian Lamparter @ 2009-08-14 11:23 UTC (permalink / raw)
  To: wireless; +Cc: John W. Linville, Larry Finger, Johannes Berg

Johannes kindly pointed out that I completely missed a hunk in
his patch: "[PATCH] cfg80211: allow driver to override PS default".

The driver must explicitly set ps_default to false,
as the setting is pre-filled with the kconfig default.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
---
diff --git a/drivers/net/wireless/p54/main.c b/drivers/net/wireless/p54/main.c
index 4a741df..77203e3 100644
--- a/drivers/net/wireless/p54/main.c
+++ b/drivers/net/wireless/p54/main.c
@@ -575,6 +575,12 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len)
 	dev->extra_tx_headroom = sizeof(struct p54_hdr) + 4 +
 				 sizeof(struct p54_tx_data);
 
+	/*
+	 * For now, disable PS by default because it affects
+	 * link stability significantly.
+	 */
+	dev->wiphy->ps_default = false;
+
 	mutex_init(&priv->conf_mutex);
 	mutex_init(&priv->eeprom_mutex);
 	init_completion(&priv->eeprom_comp);

^ permalink raw reply related

* [PATCH -stable] rt2x00: fix memory corruption in rf cache, add a sanity check
From: Stanislaw Gruszka @ 2009-08-14 10:59 UTC (permalink / raw)
  To: stable
  Cc: linux-wireless, John W. Linville, Ivo van Doorn, Pavel Roskin,
	Stanislaw Gruszka

From: Pavel Roskin <proski@gnu.org>

Change rt2x00_rf_read() and rt2x00_rf_write() to subtract 1 from the rf
register number.  This is needed because the rf registers are enumerated
starting with one.  The size of the rf register cache is just enough to
hold all registers, so writing to the highest register was corrupting
memory.  Add a check to make sure that the rf register number is valid.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
I think nobody send this patch against stable yet. I have problem with
rt73usb memory corruption on 2.6.30, this patch solve it. Not sure if 
patch is also useful for 2.6.27. 

 drivers/net/wireless/rt2x00/rt2x00.h |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 84bd6f1..c242b54 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -814,13 +814,15 @@ struct rt2x00_dev {
 static inline void rt2x00_rf_read(struct rt2x00_dev *rt2x00dev,
 				  const unsigned int word, u32 *data)
 {
-	*data = rt2x00dev->rf[word];
+	BUG_ON(word < 1 || word > rt2x00dev->ops->rf_size / sizeof(u32));
+	*data = rt2x00dev->rf[word - 1];
 }
 
 static inline void rt2x00_rf_write(struct rt2x00_dev *rt2x00dev,
 				   const unsigned int word, u32 data)
 {
-	rt2x00dev->rf[word] = data;
+	BUG_ON(word < 1 || word > rt2x00dev->ops->rf_size / sizeof(u32));
+	rt2x00dev->rf[word - 1] = data;
 }
 
 /*
-- 
1.6.2.5


^ permalink raw reply related

* Re: Deauthentications with p54usb
From: Christian Lamparter @ 2009-08-14 10:41 UTC (permalink / raw)
  To: Larry Finger; +Cc: wireless
In-Reply-To: <4A84995C.8060109@lwfinger.net>

On Friday 14 August 2009 00:53:16 Larry Finger wrote:
> Chunkeey@web.de wrote:
> > "Larry Finger" <Larry.Finger@lwfinger.net> wrote:
> >> I'll try to collect a dump.
> >>
> > Any news regarding that dump?
> > Or are you too busy reviewing b43's LP code? :)
> > 
> > It looks like more drivers are affected. 
> >  - Luis reported some deauth (reasons=7) for ath9k with a cisco ap.
> >  - Kalle has the same issues with wl1271 with a ?Zyxel? AP.
> 
> Not only reviewing the code, but updating the specs and doing the RE
> work. No, I have no further info. Mine have been on a Linksys AP.
yeah, b43 definitely needs the attention.

The powersave default mode should be back to "off" for p54, due to:
"[PATCH] cfg80211: allow driver to override PS default".
so, no need to revert the psm patch again.

Regards,
	Chr

^ permalink raw reply

* Re: [PATCH v2 11/25] wireless: clarify rndis_wlan is not broadcom specific
From: Gábor Stefanik @ 2009-08-14 10:13 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: linville, linux-wireless, Michael Buesch, Johannes Berg,
	Jussi Kivilinna
In-Reply-To: <1250210584-13374-12-git-send-email-lrodriguez@atheros.com>

On Fri, Aug 14, 2009 at 2:42 AM, Luis R.
Rodriguez<lrodriguez@atheros.com> wrote:
> Cc: Michael Buesch <mb@bu3sch.de>
> Cc: Gábor Stefanik <netrolller.3d@gmail.com>
> Cc: Johannes Berg <johannes@sipsolutions.net>
> Cc: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
> ---
>  drivers/net/wireless/Kconfig |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
> index cb5aae6..a1bdb51 100644
> --- a/drivers/net/wireless/Kconfig
> +++ b/drivers/net/wireless/Kconfig
> @@ -403,7 +403,9 @@ config USB_NET_RNDIS_WLAN
>          BUFFALO WLI-USB-G54
>
>          All of these devices are based on Broadcom 4320 chip which is the
> -         only wireless RNDIS chip known to date.
> +         only wireless RNDIS chip known to date. Technically RNDIS follows
> +         a specification and although only Broadcom currently supports this
> +         other vendors could technically follow the implementation as well.

To the aforementioned "other vendors" - please do not follow this
brain-dead, Microsoft-based spec! :-)

BTW, there are a few missing commas in the 3rd added line:
"a specification, and although only Broadcom currently support this,"
would be better.

>
>          If you choose to build a module, it'll be called rndis_wlan.
>
> --
> 1.6.2.5
>
>


-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)

^ permalink raw reply

* Re: [RFT] ar9170: downgrade BUG_ON() on unexpected mdpu
From: Christian Lamparter @ 2009-08-14  9:50 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless
In-Reply-To: <1250215295-11253-1-git-send-email-lrodriguez@atheros.com>

On Friday 14 August 2009 04:01:35 Luis R. Rodriguez wrote:
> If someone pulls the harware out while RX'ing a lot of traffic
> I would funky data may be passed, BUG_ON() seems pretty extreme
> so lets just drop the frame as we do when the length does not
> meet our criteria for processing.
> 
> Cc: Christian Lamparter <chunkeey@web.de>
> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
> ---
> 
> This one depends on my previous patch.
> 
>  drivers/net/wireless/ath/ar9170/main.c |    7 +++++--
>  1 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ar9170/main.c b/drivers/net/wireless/ath/ar9170/main.c
> index 75c317d..0bbbc36 100644
> --- a/drivers/net/wireless/ath/ar9170/main.c
> +++ b/drivers/net/wireless/ath/ar9170/main.c
> @@ -1068,8 +1068,11 @@ static void ar9170_handle_mpdu(struct ar9170 *ar, u8 *buf, int len)
>  		break;
>  
>  	default:
> -		BUG_ON(1);
> -		break;
> +		if (ar9170_nag_limiter(ar))
> +			printk(KERN_ERR "%s: rx'd unexpected "
> +			       "type of MPDU.\n",
> +			       wiphy_name(ar->hw->wiphy));
> +		return;
>  	}

no, this is really impossible! really!

But let's take a closer look why should be so:

the switch goes like this:
> switch (mac->status & AR9170_RX_STATUS_MPDU_MASK) {
mac->status is a u8 and AND with AR9170_RX_STATUS_MPDU_MASK.

AR9170_RX_STATUS_MPDU_MASK (etc.) is #define in hw.h
and it's a 0x30 _mask_.

This leaves only four possibilities: 0x00, 0x10, 0x20, 0x30.

>case AR9170_RX_STATUS_MPDU_FIRST: (case 0x20:)
>case AR9170_RX_STATUS_MPDU_LAST: (case 0x10:)
>case AR9170_RX_STATUS_MPDU_MIDDLE: (case 0x30:)
>case AR9170_RX_STATUS_MPDU_SINGLE: (case 0x00:)

so the default case is a deadly dead code path here ;-).
And the reason why you see it was because some checker tool kept
complaining about unlikely _corner_ cases.

>  	if (unlikely(mpdu_len < FCS_LEN))

Regards,
	Chr

^ permalink raw reply

* Re: [RFT] ar9170: check mpdu len on single mpdu before processing
From: Christian Lamparter @ 2009-08-14  9:21 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless, Stephen Chen
In-Reply-To: <1250214676-10608-1-git-send-email-lrodriguez@atheros.com>

On Friday 14 August 2009 03:51:16 Luis R. Rodriguez wrote:
> When ar9170 recieves a single MPDU in RX stream mode
> we set the header and tail pointers for processing
> but we never check if the MPDU will actually have
> it given by the length passed. Should we have run into
> this we would be chowing down on memory which may
> not be ours.
> 
> Cc: Stephen Chen <Stephen.Chen@atheros.com>
> Cc: Christian Lamparter <chunkeey@web.de>
> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
> ---
> 
> I won't be able to test this for a bit, was reviewing
> RX stream support and noticed this.
> 
> BTW Chris, Stephen points out we *can* use packet mode for
> RX with Otus devices.
I know... The otus driver talks about how to set the stream modes.
But then you make the firmware cry, it wants to control the all the
USB settings by itself.

> I haven't yet checked if ar9170 supports
> it but I think that's what the Windows driver uses.
(Well, you basically answered this already in the other post...)
But here's some more: The windows driver also utilize txstream
since XP/Vista can feed whole _aggregates_ 
(well, not the aggregate you might think, just a bundle of frames) 
directly into the _tx routines.

> It seems RX stream mode is used to reduce the number of
> interrupt and can help on some platforms.
> The down side to RX stream mode seems to be that it
> "may introduce buffer copy as a side effect",
> not sure what that is though, Stephen, can you clarify?
well, seems like you're struck by the same thought I had when
I looked at it: But c'mon: even for low-cost systems the memory
bandwidth easily exceeds the USB 2.0 bandwidth by orders of magnitudes.

And another upside is that we don't have to alloc 16k frames - that's 
(order 3 I think) all the time.

It may sounds a bit strange, but as you know ar9170 supports 8k msdu.
So we have to be ready to receive them. 
Now it's pretty straight forward, this would be a very wasteful behavior.
Since A-MSDU aren't used much and normally the frames are between
1 and 2k... 

so yes, that rxstream is not so bad after all!
(Also, it makes refilling much easier since the original skb is not consumed,
 we will never run out of rx buffers when the memory is too fragmented)

>  drivers/net/wireless/ath/ar9170/main.c |   18 ++++++++++++++++++
>  1 files changed, 18 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ar9170/main.c b/drivers/net/wireless/ath/ar9170/main.c
> index ea8c941..75c317d 100644
> --- a/drivers/net/wireless/ath/ar9170/main.c
> +++ b/drivers/net/wireless/ath/ar9170/main.c
> @@ -1040,9 +1040,27 @@ static void ar9170_handle_mpdu(struct ar9170 *ar, u8 *buf, int len)
>  
>  	case AR9170_RX_STATUS_MPDU_SINGLE:
>  		/* single mpdu - has plcp (head) and phy status (tail) */
> +
> +		if (unlikely(mpdu_len < sizeof(struct ar9170_rx_head))) {
> +			if (ar9170_nag_limiter(ar))
> +				printk(KERN_ERR "%s: rx'd single mpdu "
> +				       "with no header.\n",
> +				       wiphy_name(ar->hw->wiphy));
> +			return;
> +		}
> +
>  		head = (void *) buf;
>  
>  		mpdu_len -= sizeof(struct ar9170_rx_head);
> +
> +		if (unlikely(mpdu_len < sizeof(struct ar9170_rx_phystatus))) {
> +			if (ar9170_nag_limiter(ar))
> +				printk(KERN_ERR "%s: rx'd single mpdu"
> +				       "with no tail.\n",
> +				       wiphy_name(ar->hw->wiphy));
> +			return ;
> +		}
> +
>  		mpdu_len -= sizeof(struct ar9170_rx_phystatus);
>  
>  		buf += sizeof(struct ar9170_rx_head);
> 

naaa, not necessary...  there is more than your eyes can see :)
---
        case AR9170_RX_STATUS_MPDU_SINGLE:
                /* single mpdu - has plcp (head) and phy status (tail) */
                head = (void *) buf;
		[...]
                mpdu_len -= sizeof(struct ar9170_rx_head);
                mpdu_len -= sizeof(struct ar9170_rx_phystatus);
		[...]
        default:
                BUG_ON(1);
                break;
        }

        if (unlikely(mpdu_len < FCS_LEN))
                return ;
---
of course frames that only have FCS_LEN octets are a most likely
_damaged_ in some way... but we don't know, so we pass it on to
the stack to decide, maybe the user has a running monitor...

Regards,
	Chr

^ permalink raw reply

* Re: [PATCH v2 00/25] wireless: cleanup and reorganize kconfig
From: Holger Schurig @ 2009-08-14  8:00 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless
In-Reply-To: <1250210584-13374-1-git-send-email-lrodriguez@atheros.com>

On Friday 14 August 2009 02:42:39 Luis R. Rodriguez wrote:

Could you also post one combined patch for all of this?

^ permalink raw reply

* Re: [PATCH] nl80211 connect API support
From: Zhu Yi @ 2009-08-14  7:55 UTC (permalink / raw)
  To: Johannes Berg
  Cc: Jouni Malinen, hostap@lists.shmoo.com,
	linux-wireless@vger.kernel.org, Samuel Ortiz
In-Reply-To: <1250229046.7696.0.camel@johannes.local>

On Fri, 2009-08-14 at 13:50 +0800, Johannes Berg wrote:
> On Fri, 2009-08-14 at 12:17 +0800, Zhu Yi wrote:
> 
> > Johannes, I think we need a way in cfg80211 to tell connect vs.
> > auth/assoc. The current capability method (nl80211_send_wiphy) cannot do
> > this. For example,
> > 
> > 	if (dev->ops->connect || dev->ops->auth)
> > 		NLA_PUT_U32(msg, i, NL80211_CMD_CONNECT);
> > 
> > We need to either make NL80211_CMD_CONNECT only depends on ops->connect
> > or make NL80211_CMD_AUTH depends on ops->auth. Johannes, which one do
> > you prefer?
> 
> The latter is already there as far as I can see?
> 
>         CMD(auth, AUTHENTICATE);
>         CMD(assoc, ASSOCIATE);
>         CMD(deauth, DEAUTHENTICATE);
>         CMD(disassoc, DISASSOCIATE);
> 
> so you should be able to check for these.

My bad. I'll use NL80211_CMD_AUTHENTICATE.

Thanks,
-yi


^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox