1. 10 Jul, 2009 6 commits
  2. 19 Jun, 2009 2 commits
  3. 10 Jun, 2009 2 commits
  4. 03 Jun, 2009 3 commits
    • Bob Copeland's avatar
      ath5k: disable beacon interrupt when interface is down · 72828b1b
      Bob Copeland authored
      
      
      When we remove the active interface, there's no need to continue
      sending beacons; doing so would cause a null pointer deref in
      ieee80211_beacon_get().  Disable the interrupt in remove_interface
      and add a WARN_ON(!vif) in case there are other instances lurking.
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      72828b1b
    • Bob Copeland's avatar
      ath5k: remove conf->beacon_int usage · 73ca5203
      Bob Copeland authored
      
      
      ieee80211_conf->beacon_int was deprecated and removed in a cleanup
      patch, however it was accidentally added back to ath5k in the change
      "ath5k: Allow user/driver to set txpower."  Remove it once more,
      fixing the following warning:
      
      [13091.968902] WARNING: at drivers/net/wireless/ath/ath5k/base.c:2167 warn_slowpath_null+0x15/0x1a()
      [13091.968906] Hardware name: MacBook1,1
      [13091.968909] Modules linked in: usb_storage fuse i915 drm af_packet acpi_cpufreq binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_seq_dummy hid_apple arc4 ecb snd_seq_oss snd_seq_midi_event usbhid snd_seq ath5k mac80211 appletouch snd_seq_device snd_pcm_oss snd_mixer_oss sky2 snd_pcm ath processor cfg80211 snd_timer sg ohci1394 snd uhci_hcd bitrev ieee1394 joydev ehci_hcd crc32 snd_page_alloc button ac thermal battery sr_mod applesmc cdrom evdev input_polldev unix [last unloaded: microcode]
      [13091.968985] Pid: 2132, comm: phy0 Tainted: G        W  2.6.30-rc5-wl #118
      [13091.968988] Call Trace:
      [13091.968994]  [<c0125884>] warn_slowpath_fmt+0x77/0xa6
      [13091.969003]  [<c03557d8>] ? _spin_unlock+0x2c/0x41
      [13091.969008]  [<c0355a56>] ? _spin_lock_irqsave+0x15/0x69
      [13091.969012]  [<c0355783>] ? _spin_unlock_irqrestore+0x34/0x5d
      [13091.969019]  [<c01445bb>] ? trace_hardirqs_off+0xb/0xd
      [13091.969024]  [<c0355783>] ? _spin_unlock_irqrestore+0x34/0x5d
      [13091.969029]  [<c01445bb>] ? trace_hardirqs_off+0xb/0xd
      [13091.969034]  [<c0355783>] ? _spin_unlock_irqrestore+0x34/0x5d
      [13091.969039]  [<c01258c8>] warn_slowpath_null+0x15/0x1a
      [13091.969054]  [<f965846d>] ath5k_beacon_update_timers+0x44/0x27f [ath5k]
      [13091.969059]  [<c0126370>] ? vprintk+0x2dd/0x312
      [13091.969063]  [<c0125e50>] ? release_console_sem+0x1a6/0x1d3
      [13091.969076]  [<f96586c5>] ath5k_reset_tsf+0x1d/0x2c [ath5k]
      [13091.969095]  [<f93f4426>] __ieee80211_sta_join_ibss+0x35/0x3aa [mac80211]
      [13091.969102]  [<c0252793>] ? extract_entropy+0x47/0x8a
      [13091.969121]  [<f93f4b21>] ieee80211_sta_find_ibss+0x2de/0x32f [mac80211]
      [13091.969126]  [<c035422c>] ? mutex_lock_nested+0x28b/0x2a5
      [13091.969145]  [<f93f4b8e>] ? ieee80211_ibss_notify_scan_completed+0x1c/0x6f [mac80211]
      [13091.969164]  [<f93f4bc9>] ieee80211_ibss_notify_scan_completed+0x57/0x6f [mac80211]
      [13091.969182]  [<f93f26da>] ieee80211_scan_completed+0x31a/0x33f [mac80211]
      [13091.969201]  [<f93f27ca>] ieee80211_scan_work+0xcb/0x18b [mac80211]
      [13091.969207]  [<c0133a6a>] worker_thread+0x1b1/0x28e
      [13091.969212]  [<c0133a25>] ? worker_thread+0x16c/0x28e
      [13091.969230]  [<f93f26ff>] ? ieee80211_scan_work+0x0/0x18b [mac80211]
      [13091.969237]  [<c013736e>] ? autoremove_wake_function+0x0/0x38
      [13091.969242]  [<c01338b9>] ? worker_thread+0x0/0x28e
      [13091.969246]  [<c0137031>] kthread+0x4a/0x70
      [13091.971460]  [<c0136fe7>] ? kthread+0x0/0x70
      [13091.971467]  [<c0103527>] kernel_thread_helper+0x7/0x10
      [13091.971470] ---[ end trace 8defaa5d15c50cef ]---
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      73ca5203
    • John W. Linville's avatar
  5. 20 May, 2009 1 commit
  6. 06 May, 2009 7 commits
    • Nick Kossifidis's avatar
      ath5k: Implement antenna control · 2bed03eb
      Nick Kossifidis authored
      
      
      * Add code to support the various antenna scenarios supported by hw
      
       * For now hardcode the default scenario (single or dual omnis with
       tx/rx diversity working and tx antenna handled by session -hw keeps
       track on which antenna it got ack from each ap/station and maps each
       ap/station to one of the antennas-).
      Signed-off-by: default avatarNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      2bed03eb
    • Jiri Slaby's avatar
      ath5k: Enable AP mode · 6f5f39c9
      Jiri Slaby authored
      
      
      After some debuging we were hitting the following bugs so far...
      
       * Due to huge channel list hostapd couldn't get infos from the driver
       and couldn't set the channel. If we manualy set the channel after
       hostapd starts (by setting channel to 0 -auto), beacons are sent
       but they wont show up on scan because they are malformed (they have
       channel = 0 because hostapd doesn't update the channel info -this is
       probably a hostapd bug so i'm CCing Jouni) and they get dropped. Bob
       fixed this by only allowing standard channels to be registered so
       now hostapd works as expected.
      
       * Docs (and HAL source) say that we must write 0 on timer0 when
       operating on AP mode to start TSF increment but this seems to
       mess with DBA in many cases and beacon queue never gets started.
       We fixed that on the previous patch.
      
       We have some more things to deal with...
      
       * For some reason (hw bug or something else) after restarting hostapd
       a few times, beacon inteval seems to change from 100ms to a sec
       (we get one beacon per sec).
      
       * We need to set sleep timers on STA mode and enable power saving +
       support PCF.
      
       ...but i think it's time we enable AP support "officialy" so that
       we can get more feedback from users. I ran ath5k with the mentioned
       patches + hostapd 0.6.8 and AP mode worked fine (it had some less
       throughput on my tests than IBSS but it worked).
      Signed-off-by: default avatarNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6f5f39c9
    • Nick Kossifidis's avatar
      ath5k: Beaconing fixes · 428cbd4f
      Nick Kossifidis authored
      
      
      * Write next beacon timer even on AP mode since without this we get
       no beacons + ath9k does it too.  Docs say that we must write 0 on
       this register on AP mode to start TSF increment, we do both to be
       on the safe side.
      
       * Fix num_tx_pending function, we never read the register :P that's
       why we got all those "beacon queue 7 didn't stop messages".
      
       * Put full prioriy on beacon queue, lock all queues with lower
       priority using the arblock and also bypass any arblock by seting
       the arblock ignore flag.
      
       * For the CAB queue (do we need this thing ?, it seems crap) since
       it's supposed to fire up after each beacon (we don't use it on driver
       part, ath9k/MadWiFi does), don't make it DBA gated but instead make
       it fire after each beacon by using the beacon sent gated flag.
      
       * Increase bmiss threshold to 10, that's what we used on MadWiFi for
       a long time. Also when we have pending frames on the beacon queue (we
       got a beacon that didn't make it on the air) it's more likely that
       the beacon queue never started, probably due to faulty DBA setting,
       so change that "beacon queue didn't stop" message.
      
       Tested this with AP mode and IBSS mode and seems to work fine ;-)
      Signed-off-by: default avatarNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      428cbd4f
    • Nick Kossifidis's avatar
      ath5k: Allow user/driver to set txpower · a0823810
      Nick Kossifidis authored
      
      
      * Now that we have regulatory control enable the driver to set
       txpower on hw
      
       * Also use txpower table offset so that we can match
       power range set by user/driver with indices on power table.
      
       Tested 2 different cards (a CM9 and an RF5112-based ubnt) and got
       the same output using a remote machine to measure per-packet rssi
       (conected the cards using attenuators). I also switched between
       various tx power levels and i saw an equal power change on the remote
       machine (so txpower changes as expected) and verified that we have
       the same output on each rate.
      Signed-off-by: default avatarNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a0823810
    • Bob Copeland's avatar
      ath5k: correct interrupt storm warning · 2516baa6
      Bob Copeland authored
      
      
      Ben Greear points out that the "too many interrupts" message will
      never print in the intended case since the interrupt counter
      will be -1 after the loop.  Change it to pre-decrement so it will
      be 0 on the thousandth iteration.
      
      Cc: Ben Greear <greearb@candelatech.com>
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      2516baa6
    • Johannes Berg's avatar
      mac80211: unify config_interface and bss_info_changed · 2d0ddec5
      Johannes Berg authored
      
      
      The config_interface method is a little strange, it contains the
      BSSID and beacon updates, while bss_info_changed contains most
      other BSS information for each interface. This patch removes
      config_interface and rolls all the information it previously
      passed to drivers into bss_info_changed.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      2d0ddec5
    • Johannes Berg's avatar
      mac80211: clean up beacon interval settings · 57c4d7b4
      Johannes Berg authored
      
      
      We currently have two beacon interval configuration knobs:
      hw.conf.beacon_int and vif.bss_info.beacon_int. This is
      rather confusing, even though the former is used when we
      beacon ourselves and the latter when we are associated to
      an AP.
      
      This just deprecates the hw.conf.beacon_int setting in favour
      of always using vif.bss_info.beacon_int. Since it touches all
      the beaconing IBSS code anyway, we can also add support for
      the cfg80211 IBSS beacon interval configuration easily.
      
      NOTE: The hw.conf.beacon_int setting is retained for now due
            to drivers still using it -- I couldn't untangle all
            drivers, some are updated in this patch.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      57c4d7b4
  7. 22 Apr, 2009 7 commits
  8. 07 Apr, 2009 1 commit
  9. 27 Mar, 2009 5 commits
  10. 16 Mar, 2009 2 commits
  11. 05 Mar, 2009 1 commit
  12. 27 Feb, 2009 3 commits