1. 28 2月, 2012 13 次提交
  2. 23 2月, 2012 4 次提交
  3. 16 2月, 2012 1 次提交
  4. 07 2月, 2012 3 次提交
  5. 04 2月, 2012 2 次提交
    • M
      ath9k: Fix kernel panic during driver initilization · 07445f68
      Mohammed Shafi Shajakhan 提交于
      all works need to be initialized before ieee80211_register_hw
      to prevent mac80211 call backs such as drv_start, drv_config
      getting started. otherwise we would queue/cancel works before
      initializing them and it leads to kernel panic.
      this issue can be recreated with the following script
      in Chrome laptops with AR928X cards, with background scan
      running (or) Network manager is running
      
      while true
      do
      sudo modprobe -v ath9k
      sleep 3
      sudo modprobe -r ath9k
      sleep 3
      done
      
      	 EIP: [<81040a47>] __cancel_work_timer+0xb8/0xe1 SS:ESP 0068:f6be9d70
      	 ---[ end trace 4f86d6139a9900ef ]---
      	 Registered led device: ath9k-phy0
      	 ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xf88a0000,
      	 irq=16
      	 Kernel panic - not syncing: Fatal exception
      	 Pid: 456, comm: wpa_supplicant Tainted: G      D
      	 3.0.13 #1
      	Call Trace:
      	 [<81379e21>] panic+0x53/0x14a
      	 [<81004a30>] oops_end+0x73/0x81
      	 [<81004b53>] die+0x4c/0x55
      	 [<81002710>] do_trap+0x7c/0x83
      	 [<81002855>] ? do_bounds+0x58/0x58
      	 [<810028cc>] do_invalid_op+0x77/0x81
      	 [<81040a47>] ? __cancel_work_timer+0xb8/0xe1
      	 [<810489ec>] ? sched_clock_cpu+0x81/0x11f
      	 [<8103f809>] ? wait_on_work+0xe2/0xf7
      	 [<8137f807>] error_code+0x67/0x6c
      	 [<810300d8>] ? wait_consider_task+0x4ba/0x84c
      	 [<81040a47>] ? __cancel_work_timer+0xb8/0xe1
      	 [<810380c9>] ? try_to_del_timer_sync+0x5f/0x67
      	 [<81040a91>] cancel_work_sync+0xf/0x11
      	 [<f88d7b7c>] ath_set_channel+0x62/0x25c [ath9k]
      	 [<f88d67d1>] ? ath9k_tx_last_beacon+0x26a/0x85c [ath9k]
      	 [<f88d8899>] ath_radio_disable+0x3f1/0x68e [ath9k]
      	 [<f90d0edb>] ieee80211_hw_config+0x111/0x116 [mac80211]
      	 [<f90dd95c>] __ieee80211_recalc_idle+0x919/0xa37 [mac80211]
      	 [<f90dda76>] __ieee80211_recalc_idle+0xa33/0xa37 [mac80211]
      	 [<812dbed8>] __dev_open+0x82/0xab
      
      Cc: <stable@vger.kernel.org>
      Cc: Gary Morain <gmorain@google.com>
      Cc: Paul Stewart <pstew@google.com>
      Cc: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Tested-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NRajkumar Manoharan <rmanohar@qca.qualcomm.com>
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      07445f68
    • J
      ath9k: use WARN_ON_ONCE in ath_rc_get_highest_rix · 8149415e
      John W. Linville 提交于
      The device seems to survive the issue, so no need to flood the logs
      about it...
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8149415e
  6. 02 2月, 2012 3 次提交
  7. 01 2月, 2012 1 次提交
  8. 31 1月, 2012 8 次提交
    • S
      ath9k: Print the correct channel mode · feced201
      Sujith Manoharan 提交于
      channelFlags doesn't contain the operating HT mode.
      Use IS_CHAN_HT40 to determine if the current channel is
      in HT40 mode.
      Signed-off-by: NSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      feced201
    • S
      ath9k_htc: Load firmware asynchronously · 0ed7b93e
      Sujith Manoharan 提交于
      This patch modifies ath9k_htc to load the needed
      firmware in an asynchronous manner, fixing timeouts
      that were introduced with the new udev changes.
      Signed-off-by: NSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0ed7b93e
    • R
      ath6kl: Return a proper error code when not in connected state · 3c411a43
      Raja Mani 提交于
      Error code ENOTCONN is more suitable than EINVAL to report
      when the driver is not in connected state in ath6kl_wow_suspend().
      
      I found this during code review.
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3c411a43
    • R
      ath6kl: Wait for host sleep mode cmd processed event during WOW suspend · 081c7a84
      Raja Mani 提交于
      For every WMI_SET_HOST_SLEEP_MODE_CMDID command (send from the host),
      the firmware sends WMI_SET_HOST_SLEEP_MODE_CMD_PROCESSED_EVENTID as
      an acknowledgement to the host.
      
      In order to being sync with the firmware, the host has to wait for
      WMI_SET_HOST_SLEEP_MODE_CMD_PROCESSED_EVENT event before going to
      the suspend state. This patch ensures ath6kl_wow_suspend() waits
      until it gets this event after sending set host sleep mode command.
      
      This patch adds,
       * New command WMI_SET_HOST_SLEEP_MODE_CMD_PROCESSED_EVENTID in
         WMI event table.
       * New WMI function ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx()
         to process the event.
       * New flag HOST_SLEEP_MODE_CMD_PROCESSED in VIF flags to record
         the arrival of the event.
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      081c7a84
    • R
      ath6kl: Configure WOW patterns while going to wow_suspend · d91e8eee
      Raja Mani 提交于
      First preference is given to the user configured WOW patterns.
      If the user doesn't configure any patterns (for ex, via iw command),
      the default patterns will be configured based on the current mode
      (vif->nw_type) while going to WOW suspend.
      
      Summary of changes:
      
        * ath6kl_wow_ap() is added to configure the below default
          patterns when the system enters into WOW suspend in AP mode.
            + Unicast IP, EAPOL-like and ARP packet pattern
            + ARP packet pattern
            + mDNS/SSDP/LLMNR pattern
            + DHCP broadcast pattern
      
       * ath6kl_wow_sta() is added to configure the below default
         patterns when the system enters into WOW suspend in STA mode.
            + Unicast packet pattern
            + mDNS/SSDP/LLMNR pattern
      
        * Move the user provided WOW patterns configuration code
          from ath6kl_wow_suspend() to a separate function called
          ath6kl_wow_usr().
      
        * Two argument variable's ('filter' and 'mask) data type in
          ath6kl_wmi_add_wow_pattern_cmd() are changed from 'u8 *' to
          'const u8 *'. This is needed to make all pattern and mask
          arrays to be 'static const u8' in the caller function.
      
        * New conditional check is added to make sure user
          configured pattern count is within the limit (WOW_MAX_FILTERS_PER_LIST).
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      d91e8eee
    • R
      ath6kl: Re-architect suspend mode handling in ath6kl_sdio_suspend · e390af77
      Raja Mani 提交于
      Using this patch, the user can bypass existing auto
      suspend mode selection logic and force ath6kl to enter
      into the suspend mode what he/she wants.
      
      If the user doesn't choose any suspend mode while doing
      insmod of the driver, auto suspend mode selection logic
      will kick in and choose suspend mode based on the host
      SDIO controller capability.
      
      Generic module parameter is required to specify suspend
      mode including Deep Sleep and WOW while doing insmod.
      Renaming existing mod param variable suspend_cutpower
      would be sufficient to meet this requirement.
      
      New module parameter suspend_mode can take any one of
      the below suspend state,
         1. cut power
         2. deep sleep
         3. wow
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      e390af77
    • V
      ath6kl: Fix kernel panic during rx aggregation · c8651541
      Vasanthakumar Thiagarajan 提交于
      "ath6kl: Define a structure for connection specific aggregation information"
      introduces this. In aggr_conn_init(), vif->aggr_cntxt is assigned to
      aggr_conn->aggr_info, but vif->aggr_cntxt is not initialized at this
      point, this would end up accessing an invalid pointer in aggregation
      receive path. Fix this by passing the correct aggr_info to aggr_conn_init().
      The panic trace would look like.
      
      [<ffffffff8159e02e>] panic+0xa1/0x1c6
      [<ffffffff8103773d>] ? kmsg_dump+0xfd/0x160
      [<ffffffff815a2f6a>] oops_end+0xea/0xf0
      [<ffffffff8102b95d>] no_context+0x11d/0x2d0
      [<ffffffff8102bc5d>] __bad_area_nosemaphore+0x14d/0x230
      [<ffffffff815a5c4d>] ? do_page_fault+0x30d/0x520
      [<ffffffff8102bd53>] bad_area_nosemaphore+0x13/0x20
      [<ffffffff815a5cfd>] do_page_fault+0x3bd/0x520
      [<ffffffff8108bd60>] ? __lock_acquire+0x320/0x1680
      [<ffffffff812e3a9d>] ? trace_hardirqs_off_thunk+0x3a/0x3c
      [<ffffffff815a2385>] page_fault+0x25/0x30
      [<ffffffffa0487a5f>] ? aggr_slice_amsdu+0xdf/0x170 [ath6kl_core]
      [<ffffffffa0487bac>] aggr_deque_frms+0xbc/0x190 [ath6kl_core]
      [<ffffffffa0488404>] ath6kl_rx+0x3e4/0xae0 [ath6kl_core]
      [<ffffffffa047ae77>] ath6kl_htc_rxmsg_pending_handler+0x8b7/0xf10 [ath6kl_core]
      [<ffffffffa00c82f0>] ? mmc_do_release_host+0x70/0x90 [mmc_core]
      [<ffffffffa00c833a>] ? mmc_release_host+0x2a/0x50 [mmc_core]
      [<ffffffffa04865c0>] ? ath6kl_alloc_amsdu_rxbuf+0x140/0x140 [ath6kl_core]
      [<ffffffffa0477772>] ath6kl_hif_intr_bh_handler+0x362/0x510 [ath6kl_core]
      [<ffffffffa01f1000>] ath6kl_sdio_irq_handler+0x60/0xb0 [ath6kl_sdio]
      [<ffffffffa00d30bc>] sdio_irq_thread+0xec/0x320 [mmc_core]
      [<ffffffffa00d2fd0>] ? sdio_claim_irq+0x220/0x220 [mmc_core]
      [<ffffffffa00d2fd0>] ? sdio_claim_irq+0x220/0x220 [mmc_core]
      [<ffffffff8105b21e>] kthread+0xbe/0xd0
      [<ffffffff815ab574>] kernel_thread_helper+0x4/0x10
      [<ffffffff815a2174>] ? retint_restore_args+0x13/0x13
      [<ffffffff8105b160>] ? __init_kthread_worker+0x70/0x70
      [<ffffffff815ab570>] ? gs_change+0x13/0x13
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      c8651541
    • K
      ath6kl: fix testmode when fw-2.bin or fw-3.bin is used · 5f1127ff
      Kalle Valo 提交于
      Testmode (TCMD and ART) was not enabled when fw-2.bin or fw-3.bin files
      were available, fix that by fetching testmode file just after the
      board file but before rest of the firmware files are fetched.
      
      I also added testmode field to struct ath6kl and moved the module parameter
      to core.c. Now all module parameters are grouped in one place.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5f1127ff
  9. 30 1月, 2012 1 次提交
  10. 28 1月, 2012 1 次提交
  11. 25 1月, 2012 3 次提交