1. 04 Jan, 2011 12 commits
    • Johannes Stezenbach's avatar
    • Christian Lamparter's avatar
      carl9170: fix usb pm suspend->resume woes · 97e2c402
      Christian Lamparter authored
      This patch revamps some common code-paths which are
      shared between (re-)initialization and suspend/resume
      subroutines. It also adds some helpful comments
      about quirks and associated difficulties.
      
      It's quite big, but it should fix #25382:
      <https://bugzilla.kernel.org/show_bug.cgi?id=25382>
      
      And hopefully the code is robust enough to deal with
      all possible suspend/resume scenarios without requiring
      the user to do any sort of manual and possibly
      dangerous work.
      Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      97e2c402
    • Christian Lamparter's avatar
      carl9170: reduce channel change delay · 3b386510
      Christian Lamparter authored
      By removing two "safety" msleeps (and an echo nop), the
      channel change delay is effectively halved. Previously,
      the delay could be as long as 260 ms and the device
      could not go off-channel without risking to miss the
      next DTIM beacon [interval ~307 ms].
      Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3b386510
    • Christian Lamparter's avatar
      carl9170: add missing return-value check · c9e57f0f
      Christian Lamparter authored
      This patch adds a forgotten bail-out path.
      Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c9e57f0f
    • Bob Copeland's avatar
      ath5k: fix cycle counter inconsistent locking · bb007554
      Bob Copeland authored
      ath5k_reset is called from process context and takes the cc_lock
      with plain spin_lock(), but cc_lock can also be taken from tasklets
      in softirq context.  Thus we need to at least use spin_lock_bh.
      
      This fixes the following lockdep warning:
      
      [   19.967874] sky2 0000:01:00.0: eth0: enabling interface
      [   19.982761] ieee80211 phy0: device now idle
      [   20.904809] NET: Registered protocol family 17
      [   21.243857] ieee80211 phy0: device no longer idle - scanning
      [   21.404343]
      [   21.404346] =================================
      [   21.404450] [ INFO: inconsistent lock state ]
      [   21.404518] 2.6.37-rc7-wl+ #242
      [   21.404582] ---------------------------------
      [   21.404650] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
      [   21.404721] kworker/u:4/982 [HC0[0]:SC1[3]:HE1:SE0] takes:
      [   21.404792]  (&(&common->cc_lock)->rlock){+.?...}, at: [<f8115780>] ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011] {SOFTIRQ-ON-W} state was registered at:
      [   21.405011]   [<c105cadd>] __lock_acquire+0x62f/0x13c1
      [   21.405011]   [<c105d944>] lock_acquire+0xd5/0xf1
      [   21.405011]   [<c12c978d>] _raw_spin_lock+0x45/0x72
      [   21.405011]   [<f8111533>] ath5k_reset+0x2c0/0x349 [ath5k]
      [   21.405011]   [<f8111a7a>] ath5k_start+0xb8/0x139 [ath5k]
      [   21.405011]   [<f849c714>] ieee80211_do_open+0x13f/0x819 [mac80211]
      [   21.405011]   [<f849ce51>] ieee80211_open+0x63/0x66 [mac80211]
      [   21.405011]   [<c1258b2e>] __dev_open+0x8d/0xb6
      [   21.405011]   [<c1255c64>] __dev_change_flags+0x9d/0x114
      [   21.405011]   [<c1258a75>] dev_change_flags+0x18/0x44
      [   21.405011]   [<c1262990>] do_setlink+0x23f/0x521
      [   21.405011]   [<c1262d58>] rtnl_setlink+0xe6/0xea
      [   21.405011]   [<c126347c>] rtnetlink_rcv_msg+0x18a/0x1a0
      [   21.405011]   [<c126d5f0>] netlink_rcv_skb+0x35/0x7b
      [   21.405011]   [<c12632eb>] rtnetlink_rcv+0x20/0x27
      [   21.405011]   [<c126d370>] netlink_unicast+0x1bb/0x21e
      [   21.405011]   [<c126db21>] netlink_sendmsg+0x23b/0x288
      [   21.405011]   [<c124823c>] sock_sendmsg+0xac/0xc4
      [   21.405011]   [<c1248680>] sys_sendmsg+0x152/0x1a2
      [   21.405011]   [<c1249b0d>] sys_socketcall+0x214/0x275
      [   21.405011]   [<c10029d0>] sysenter_do_call+0x12/0x36
      [   21.405011] irq event stamp: 138032
      [   21.405011] hardirqs last  enabled at (138032): [<c12ca252>] _raw_spin_unlock_irqrestore+0x3b/0x5e
      [   21.405011] hardirqs last disabled at (138031): [<c12c98cc>] _raw_spin_lock_irqsave+0x18/0x7e
      [   21.405011] softirqs last  enabled at (138024): [<f84a570e>] ieee80211_tx_skb+0x47/0x49 [mac80211]
      [   21.405011] softirqs last disabled at (138027): [<c100452b>] do_softirq+0x63/0xb4
      [   21.405011]
      [   21.405011] other info that might help us debug this:
      [   21.405011] 3 locks held by kworker/u:4/982:
      [   21.405011]  #0:  (name){+.+.+.}, at: [<c1046158>] process_one_work+0x1b8/0x41b
      [   21.405011]  #1:  ((&(&local->scan_work)->work)){+.+.+.}, at: [<c1046158>] process_one_work+0x1b8/0x41b
      [   21.405011]  #2:  (&local->mtx){+.+.+.}, at: [<f84920fb>] ieee80211_scan_work+0x32/0x4a4 [mac80211]
      [   21.405011]
      [   21.405011] stack backtrace:
      [   21.405011] Pid: 982, comm: kworker/u:4 Not tainted 2.6.37-rc7-wl+ #242
      [   21.405011] Call Trace:
      [   21.405011]  [<c12c6e68>] ? printk+0x1d/0x25
      [   21.405011]  [<c105a742>] print_usage_bug+0x181/0x18b
      [   21.405011]  [<c105b196>] ? check_usage_forwards+0x0/0xb6
      [   21.405011]  [<c105a9ec>] mark_lock+0x2a0/0x4aa
      [   21.405011]  [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd
      [   21.405011]  [<c105ca68>] __lock_acquire+0x5ba/0x13c1
      [   21.405011]  [<c1059eed>] ? trace_hardirqs_off_caller+0x18/0x8d
      [   21.405011]  [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd
      [   21.405011]  [<c1050411>] ? local_clock+0x2c/0x4f
      [   21.405011]  [<c1059e00>] ? save_trace+0x2/0xa0
      [   21.405011]  [<c105ac39>] ? mark_held_locks+0x43/0x5b
      [   21.405011]  [<c12ca252>] ? _raw_spin_unlock_irqrestore+0x3b/0x5e
      [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<c105d944>] lock_acquire+0xd5/0xf1
      [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<c12c9b1a>] _raw_spin_lock_bh+0x4a/0x77
      [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<f8115780>] ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<c105ac39>] ? mark_held_locks+0x43/0x5b
      [   21.405011]  [<f8113496>] ath5k_tasklet_ani+0x1d/0x27 [ath5k]
      [   21.405011]  [<c1037304>] tasklet_action+0x96/0x137
      [   21.405011]  [<c10379b5>] __do_softirq+0xde/0x1c3
      [   21.405011]  [<c10b0cef>] ? arch_get_unmapped_area_topdown+0x3b/0x127
      [   21.405011]  [<c10378d7>] ? __do_softirq+0x0/0x1c3
      [   21.405011]  <IRQ>  [<c1036dee>] ? irq_exit+0x3d/0x49
      [   21.405011]  [<c1003b4f>] ? do_IRQ+0x98/0xac
      [   21.405011]  [<c1002eee>] ? common_interrupt+0x2e/0x34
      [   21.405011]  [<c103007b>] ? sys_unshare+0x57/0x226
      [   21.405011]  [<c1047fee>] ? queue_delayed_work+0x1/0x27
      [   21.405011]  [<f84a83a0>] ? ieee80211_queue_delayed_work+0x2e/0x33 [mac80211]
      [   21.405011]  [<f8492528>] ? ieee80211_scan_work+0x45f/0x4a4 [mac80211]
      [   21.405011]  [<c104620e>] ? process_one_work+0x26e/0x41b
      [   21.405011]  [<c1046158>] ? process_one_work+0x1b8/0x41b
      [   21.405011]  [<f84920c9>] ? ieee80211_scan_work+0x0/0x4a4 [mac80211]
      [   21.405011]  [<c10466b6>] ? worker_thread+0x18a/0x2a5
      [   21.405011]  [<c12ca25e>] ? _raw_spin_unlock_irqrestore+0x47/0x5e
      [   21.405011]  [<c104652c>] ? worker_thread+0x0/0x2a5
      [   21.405011]  [<c104abe7>] ? kthread+0x67/0x6c
      [   21.405011]  [<c104ab80>] ? kthread+0x0/0x6c
      [   21.405011]  [<c1002efa>] ? kernel_thread_helper+0x6/0x10
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Acked-by: default avatarBruno Randolf <br1@einfach.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      bb007554
    • Brian Prodoehl's avatar
      ath9k: fix spur mitigation no-spur case for AR9002 · 44cefead
      Brian Prodoehl authored
      For the AR9002, the spur frequency read from the EEPROM is mangled
      before being compared against AR_NO_SPUR.  This results in the driver
      trying to set up the spur mitigation for bogus spurs, rather than
      cleanly breaking out.
      Signed-off-by: default avatarBrian Prodoehl <bprodoehl@nomadio.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      44cefead
    • Akinobu Mita's avatar
      airo: use simple_write_to_buffer · ad9082ad
      Akinobu Mita authored
      Simplify write file operation for /proc files by using
      simple_write_to_buffer().
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Cc: linux-wireless@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ad9082ad
    • Senthil Balasubramanian's avatar
      ath9k: spin_lock_bh is not required within tasklet context. · 52671e43
      Senthil Balasubramanian authored
      Disabling BH is not required while running from a tasklet context
      and so replace spin_lock_bh with just spin_lock.
      Signed-off-by: default avatarSenthil Balasubramanian <senthilkumar@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      52671e43
    • Stanislaw Gruszka's avatar
      iwlagn: fix scan tx antenna setting on 5Ghz band · cd017f25
      Stanislaw Gruszka authored
      Looks that we do not set correctly antennas when scanning
      on 5Ghz band and when bluetooth is enabled, because
      priv->cfg->scan_tx_antennas[band] is only defined for
      IEEE80211_BAND_2GHZ.
      
      To fix we check band before limiting antennas to first one.
      This allow to remove hard coded cfg->scan_tx_antennas[band].
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Acked-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      cd017f25
    • Bruno Randolf's avatar
      ath5k: Move mac80211 functions into new file · cd2c5486
      Bruno Randolf authored
      Move mac80211 functions into new file mac80211-ops.c to have a better
      separation and to make base.c smaller.
      Signed-off-by: default avatarBruno Randolf <br1@einfach.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      cd2c5486
    • John W. Linville's avatar
      0511af9e
    • John W. Linville's avatar
  2. 26 Dec, 2010 3 commits
  3. 23 Dec, 2010 7 commits
  4. 22 Dec, 2010 18 commits