1. 29 Jun, 2012 1 commit
  2. 28 Jun, 2012 10 commits
  3. 27 Jun, 2012 14 commits
  4. 26 Jun, 2012 15 commits
    • Luciano Coelho's avatar
      a572ac1a
    • Sujith Manoharan's avatar
      ath9k_htc: Fix IDLE power save · 6bcfe67f
      Sujith Manoharan authored
      Remove the radio enable/disable stuff and fix the
      transition to FULL_SLEEP mode when the device is idle.
      Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6bcfe67f
    • Sujith Manoharan's avatar
    • Sujith Manoharan's avatar
    • Sujith Manoharan's avatar
      ath9k: Fix lockdep splat · fad29cd2
      Sujith Manoharan authored
      Cancel the MCI work only when MCI is actually enabled.
      Fixes this:
      
      [96833.124051] Call Trace:
      [96833.124060]  [<ffffffff810afaf8>] __lock_acquire+0x1518/0x1e40
      [96833.124065]  [<ffffffff810ad126>] ? mark_held_locks+0x86/0x110
      [96833.124069]  [<ffffffff810ad3ad>] ? trace_hardirqs_on+0xd/0x10
      [96833.124073]  [<ffffffff814464f0>] ? _raw_spin_unlock_irq+0x30/0x70
      [96833.124078]  [<ffffffff81072968>] ? wait_on_cpu_work+0x98/0xc0
      [96833.124082]  [<ffffffff810b0a11>] lock_acquire+0xa1/0x150
      [96833.124085]  [<ffffffff81072990>] ? wait_on_cpu_work+0xc0/0xc0
      [96833.124088]  [<ffffffff81072990>] ? wait_on_cpu_work+0xc0/0xc0
      [96833.124092]  [<ffffffff810729e2>] wait_on_work+0x52/0x120
      [96833.124095]  [<ffffffff81072990>] ? wait_on_cpu_work+0xc0/0xc0
      [96833.124099]  [<ffffffff81063b3f>] ? del_timer+0x7f/0x110
      [96833.124102]  [<ffffffff81072c13>] __cancel_work_timer+0x83/0x130
      [96833.124106]  [<ffffffff81072cf0>] cancel_work_sync+0x10/0x20
      [96833.124113]  [<ffffffffa065b5cd>] __ath_cancel_work+0x4d/0x60 [ath9k]
      [96833.124119]  [<ffffffffa065cf28>] ath9k_config+0x458/0x680 [ath9k]
      [96833.124125]  [<ffffffffa065dd1e>] ? ath9k_flush+0x6e/0x1d0 [ath9k]
      [96833.124129]  [<ffffffff8144394d>] ? __mutex_unlock_slowpath+0x10d/0x190
      [96833.124146]  [<ffffffffa056c7b5>] ieee80211_hw_config+0x135/0x2a0 [mac80211]
      [96833.124163]  [<ffffffffa057ebbb>] ieee80211_do_open+0x67b/0xc50 [mac80211]
      [96833.124178]  [<ffffffffa057f1fd>] ieee80211_open+0x6d/0x80 [mac80211]
      [96833.124183]  [<ffffffff8137a44f>] __dev_open+0x9f/0xf0
      [96833.124187]  [<ffffffff8137a701>] __dev_change_flags+0xa1/0x180
      [96833.124190]  [<ffffffff8137a898>] dev_change_flags+0x28/0x70
      [96833.124195]  [<ffffffff813e1179>] devinet_ioctl+0x659/0x780
      [96833.124199]  [<ffffffff8137aea0>] ? dev_ioctl+0x210/0x6d0
      [96833.124203]  [<ffffffff813e1db5>] inet_ioctl+0x75/0x90
      [96833.124208]  [<ffffffff8135e0e0>] sock_do_ioctl+0x30/0x70
      [96833.124211]  [<ffffffff8135e3dd>] sock_ioctl+0x7d/0x2c0
      [96833.124218]  [<ffffffff81193c39>] do_vfs_ioctl+0x99/0x580
      [96833.124222]  [<ffffffff81447415>] ? sysret_check+0x22/0x5d
      [96833.124226]  [<ffffffff811941b9>] sys_ioctl+0x99/0xa0
      [96833.124230]  [<ffffffff814473e9>] system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      fad29cd2
    • Sven Eckelmann's avatar
      ath9k: raise aggregation limit to 64k for HT IBSS · 313eb87f
      Sven Eckelmann authored
      mac80211 adds stations in HT IBSS as soon as a frame comes by,
      even if the HT capabilities are not known yet (they are often
      received later, e.g. in beacons). So far, ampdu factor/density
      are only calculated when the station is initially added.
      
      This patch changes this to update ampdu factor/density settings
      when starting a blockack session.
      
      Using this patch, we had performance boosts from 60 to 150 MBit/s
      between two 2x2 Atheros devices in 5 GHz HT IBSS mode.
      Signed-off-by: default avatarSven Eckelmann <sven@narfation.org>
      Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      313eb87f
    • Larry Finger's avatar
      rtlwifi: rtl8192se: Fix double inclusion of header pci.h · 46e5129b
      Larry Finger authored
      The command "make includecheck" yields the following for the rtlwifi tree:
      
      /home/finger/linux-2.6/drivers/net/wireless/rtlwifi/rtl8192se/sw.c: ../pci.h is included more than once.
      Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      46e5129b
    • Larry Finger's avatar
      rtlwifi: Fix IRQ disabled warning · 5a2766ab
      Larry Finger authored
      The PCI-based drivers can generate the following warning:
      
      [ 9497.776350] ------------[ cut here ]------------
      [ 9497.776366] WARNING: at kernel/softirq.c:159 local_bh_enable_ip+0x7a/0xa0()
      [ 9497.776370] Hardware name: 05794NC
      [ 9497.776597] Pid: 6413, comm: hostapd Not tainted 3.3.0-4.fc16.x86_64 #1
      [ 9497.776601] Call Trace:
      [ 9497.776612]  [<ffffffff81057b1f>] warn_slowpath_common+0x7f/0xc0
      [ 9497.776633]  [<ffffffffa034a099>] ? rtl_pci_reset_trx_ring+0x199/0x230
      [rtlwifi]
      [ 9497.776640]  [<ffffffff81057b7a>] warn_slowpath_null+0x1a/0x20
      [ 9497.776646]  [<ffffffff8105f06a>] local_bh_enable_ip+0x7a/0xa0
      [ 9497.776654]  [<ffffffff815f3ef6>] _raw_spin_unlock_bh+0x16/0x20
      [ 9497.776671]  [<ffffffffa03e50de>] destroy_conntrack+0x9e/0x120
      [nf_conntrack]
      [ 9497.776681]  [<ffffffff81511847>] nf_conntrack_destroy+0x17/0x20
      [ 9497.776689]  [<ffffffff814d9c85>] skb_release_head_state+0xe5/0x120
      [ 9497.776695]  [<ffffffff814d98b6>] __kfree_skb+0x16/0xa0
      [ 9497.776700]  [<ffffffff814d9a35>] kfree_skb+0x45/0xc0
      [ 9497.776717]  [<ffffffffa034a099>] rtl_pci_reset_trx_ring+0x199/0x230
      [rtlwifi]
      [ 9497.776734]  [<ffffffffa034a155>] rtl_pci_start+0x25/0x1d0 [rtlwifi]
      [ 9497.776750]  [<ffffffffa03440b5>] rtl_op_start+0x55/0x90 [rtlwifi]
      [ 9497.776785]  [<ffffffffa02c4956>] ieee80211_do_open+0x296/0xa10 [mac80211]
      [ 9497.776794]  [<ffffffff815f7ddd>] ? notifier_call_chain+0x4d/0x70
      [ 9497.776828]  [<ffffffffa02c513d>] ieee80211_open+0x6d/0x80 [mac80211]
      [ 9497.776836]  [<ffffffff814e8b3f>] __dev_open+0x8f/0xe0
      [ 9497.776842]  [<ffffffff814e8de1>] __dev_change_flags+0xa1/0x180
      [ 9497.776847]  [<ffffffff814e8f78>] dev_change_flags+0x28/0x70
      [ 9497.776856]  [<ffffffff8154e99d>] devinet_ioctl+0x61d/0x7b0
      [ 9497.776863]  [<ffffffff8154ef55>] inet_ioctl+0x75/0x90
      [ 9497.776870]  [<ffffffff814cdd50>] sock_do_ioctl+0x30/0x70
      [ 9497.776876]  [<ffffffff814cee09>] sock_ioctl+0x79/0x2f0
      [ 9497.776885]  [<ffffffff81193498>] do_vfs_ioctl+0x98/0x550
      [ 9497.776891]  [<ffffffff811939e1>] sys_ioctl+0x91/0xa0
      [ 9497.776897]  [<ffffffff815fc029>] system_call_fastpath+0x16/0x1b
      [ 9497.776902] ---[ end trace 22886c442489082d ]---
      
      The cause is due to calling kfree_skb() with interrupts disabled.
      
      This bug is discussed in https://bugzilla.redhat.com/show_bug.cgi?id=797709.
      
      Reported-and-Tested by: Ivan Ivanovich <iivanich@gmail.com>
      Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5a2766ab
    • John W. Linville's avatar
    • John W. Linville's avatar
    • Eyal Shapira's avatar
      wlcore: print stack trace in every recovery · 680c6055
      Eyal Shapira authored
      As recovery queuing can now occur from multiple code paths
      it's convenient to know what triggered it in all cases
      other than an intended recovery which is part of the
      switch between single role to multi role.
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      680c6055
    • Eyal Shapira's avatar
      wlcore: queue recovery in case of bus errors during cmd_remove_peer · 6c15c1aa
      Eyal Shapira authored
      Following the addition of propagating errors from the bus ops
      there's a need to distinguish between bus errors (including timeout)
      and a legitimate timeout occuring in cmd_wait_for_event_or_timeout.
      In case of real bus errors we need to queue recovery even in cases
      where a timeout on a response from the FW to a command is acceptable.
      Reported-by: default avatarArik Nemtsov <arik@wizery.com>
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      6c15c1aa
    • Eyal Shapira's avatar
      wlcore: fix broken TX due to wrong queuing of recovery · 7a50bdfb
      Eyal Shapira authored
      commit 14bba17b "wl12xx: Propagate errors from wl1271_raw_write32"
      breaks down TX in certain scenarios. wl1271_irq_locked() propagates
      errors from wl1271_tx_work_locked however it may return -EBUSY
      when the FW queues are full which is a legitimate case and not a
      a real error. In this case a recovery is triggered by wl1271_irq
      and this keeps repeating itself so TX is completely broken.
      Fix it by avoiding propagating return values as errors even if they
      aren't. Only bus (SDIO or SPI) ops failures would be progagated
      as only these should trigger recovery.
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      7a50bdfb
    • Luciano Coelho's avatar
      wlcore: fix some failure cases in wlcore_probe() · 8b425e62
      Luciano Coelho authored
      We need to release the IRQ if hw_info() or identify_chip() fails.  And
      we need unregister the HW with mac80211 if there are any failures
      after it's registered.
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      8b425e62
    • Luciano Coelho's avatar
      wl18xx: deprecate PG1 support · e59bec16
      Luciano Coelho authored
      The new PG2 version of the chip has a few differences in terms of FW
      API if compared to PG1.  PG1 is just a sample that shouldn't be used
      in real life, so to avoid having to handle both separately, mark the
      PG1 version as deprecated and bail out during probe.
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      e59bec16