1. 14 3月, 2008 31 次提交
  2. 08 3月, 2008 9 次提交
    • R
      iwlwifi: fix potential lock inversion deadlock · deedf504
      Reinette Chatre 提交于
      This is a change to a previous patch ("iwlwifi: 3945 split tx_complete
      to command and packet function") to ensure we do not have hardirq safe
      locks (priv->lock in this case) depend on hardirq unsafe locks.
      
      We only call iwl3945_tx_queue_reclaim while in a tasklet so we have to use
      the irqsafe version of the function.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      deedf504
    • J
      wireless: correct warnings from using '%llx' for type 'u64' · f868f4e1
      John W. Linville 提交于
      drivers/net/wireless/ath5k/debug.c: In function 'read_file_tsf': drivers/net/wireless/ath5k/debug.c:203: warning: format '%016llx'
      expects type 'long long unsigned int', but argument 4 has type 'u64' drivers/net/wireless/ath5k/debug.c:203: warning: format '%016llx'
      expects type 'long long unsigned int', but argument 4 has type 'u64' drivers/net/wireless/ath5k/debug.c: In function 'read_file_beacon':
      drivers/net/wireless/ath5k/debug.c:274: warning: format '%016llx' expects type 'long long unsigned int', but argument 4 has type 'u64'
      drivers/net/wireless/ath5k/debug.c:274: warning: format '%016llx' expects type 'long long unsigned int', but argument 4 has type 'u64'
      
      drivers/net/wireless/iwlwifi/iwl-4965.c: In function 'iwl4965_tx_status_reply_compressed_ba':
      drivers/net/wireless/iwlwifi/iwl-4965.c:3907: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'u64'
      drivers/net/wireless/iwlwifi/iwl-4965.c: In function 'iwl4965_rx_reply_compressed_ba':
      drivers/net/wireless/iwlwifi/iwl-4965.c:4039: warning: format '%llx' expects type 'long long unsigned int', but argument 6 has type '__le64'
      drivers/net/wireless/iwlwifi/iwl-4965.c:4046: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'u64'
      drivers/net/wireless/iwlwifi/iwl4965-base.c: In function 'iwl4965_tx_status_reply_tx':
      drivers/net/wireless/iwlwifi/iwl4965-base.c:3661: warning: format '%llx' expects type 'long long unsigned int', but argument 6 has type 'u64'
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f868f4e1
    • B
      ath5k: work around wrong beacon rx timestamp in IBSS mode · 6ba81c2c
      Bruno Randolf 提交于
      atheros hardware has a problem with the rx timestamp of some IBSS beacons when
      they caused a TSF update (they have the same BSSID).
      
      the rx timestamp is wrong especially if the beacon frames get bigger than 78
      byte (at least on AR5213 and AR5414 hardware). in that case ath5k_extend_tsf()
      will assume a rs_tstamp overflow and give us a timestamp too far in the past
      which will cause mac80211 to merge IBSS on every beacon (which is not necessary
      since the BSSID already matches). but in this case we know that the HW must
      have synced to the beacons TSF and the rx timestamp must be later than that so
      we can adjust mactime accordingly.
      
      also rename the function to ath5k_check_ibss_tsf() and change comments, since
      "hw merge" is better described as a TSF update.
      
      drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
      Signed-off-by: NBruno Randolf <bruno@thinktube.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6ba81c2c
    • B
      ath5k: add notes about rx timestamp · e14296ca
      Bruno Randolf 提交于
      add comments about the fact that we don't know when exactly the atheros
      hardware takes the RX timestamp.
      
      drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
      Signed-off-by: NBruno Randolf <bruno@thinktube.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e14296ca
    • B
      ath5k: move rx and tx status structures out of hardware descriptor · b47f407b
      Bruno Randolf 提交于
      move ath5k_tx_status and ath5k_rx_status structures out of the hardware
      descriptor since they are not accessed by the hardware at all. they just
      contain converted information from the hardware descriptor. since they are only
      used in the rx and tx tasklets there is also no use to keep them for each
      descriptor.
      
      drivers/net/wireless/ath5k/ath5k.h:     Changes-licensed-under: ISC
      drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
      drivers/net/wireless/ath5k/debug.c:     Changes-licensed-under: GPL
      drivers/net/wireless/ath5k/debug.h:     Changes-licensed-under: GPL
      drivers/net/wireless/ath5k/hw.c:        Changes-licensed-under: ISC
      Signed-off-by: NBruno Randolf <bruno@thinktube.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b47f407b
    • B
      ath5k: struct ath5k_desc cleanups · 19fd6e55
      Bruno Randolf 提交于
      * make struct ath5k_desc clearer by directly including unions of structures,
        which correspond to the hardware descriptors of different HW versions (5210
        and 5212). before they were casted at onto ath5k_desc at different points
        (e.g.  ds_hw[2]).
      
      * rename some structures and variable names to make their use clearer, e.g.
        struct ath5k_hw_4w_tx_desc to ath5k_hw_4w_tx_ctl.
      
      * substitute "old" with "5210" and "new" with "5212" (eg. rename
        ath5k_hw_proc_new_rx_status() to ath5k_hw_proc_5212_rx_status()) because old
        and new are relative and we might have a newer structure at some point.
      
      * unify structs ath5k_hw_old_rx_status and ath5k_hw_new_rx_status into one
        ath5k_hw_rx_status, because they only differ in the flags and masks.
      
      drivers/net/wireless/ath5k/ath5k.h:     Changes-licensed-under: ISC
      drivers/net/wireless/ath5k/debug.c:     Changes-licensed-under: GPL
      drivers/net/wireless/ath5k/hw.c:        Changes-licensed-under: ISC
      drivers/net/wireless/ath5k/hw.h:        Changes-licensed-under: ISC
      Signed-off-by: NBruno Randolf <bruno@thinktube.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      19fd6e55
    • R
      iwlwifi: grab NIC access when disabling aggregations · b095d03a
      Ron Rindjunsky 提交于
      This patch grabs NIC access inside iwl4965_tx_queue_agg_disable, instead of the
      caller doing it.
      The caller must still hold priv->lock when calling the function.
      Signed-off-by: NMax Stepanov <max.stepanov@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NRon Rindjunsky <ron.rindjunsky@intel.com>
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b095d03a
    • T
      iwlwifi: 3945 split tx_complete to command and packet function · 91c066f2
      Tomas Winkler 提交于
      This patch
      1. removes cmd completion from iwl3945_tx_queue_reclaim
      and creates iwl3945_cmd_queue_reclaim.
      1. removes 11n relevant elements from this function
      2. removes call to ieee80211_tx_status_irqsafe
      and uses ieee80211_tx_status only
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      91c066f2
    • T
      iwlwifi: Fix 3945 rate scaling · 28447f3c
      Tomas Winkler 提交于
      This patch fix 3945 rate scaling after cfg80211 rate/band changes
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      28447f3c