1. 08 3月, 2012 3 次提交
  2. 07 3月, 2012 4 次提交
    • R
      ath6kl: Set optimal listen intvl,bmiss,scan params while going to wow suspend · ce0dc0cf
      Raja Mani 提交于
      * In order to save the target power in WOW suspend state,
        configure the best optimal values for the below parameters,
           - listen interval.
           - beacon miss interval.
           - scan parameters.
      
        Default values for above attributes are reverted in
        wow resume operation.
      
      * The default listen interval is set before the host issue
        connect request.
      
      * New function is added to configure beacon miss count.
      
      kvalo: minor changes to fix open parenthesis alignment
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      ce0dc0cf
    • R
      ath6kl: Maintain the listen interval per VIF specific · 8f46fccd
      Raja Mani 提交于
      Firmware has the option to support the listen interval
      per vif specific. Fix this.
      
      Listen interval can be set by the TUs or by the number
      of beacons. Current code enables the user to configure
      the listen interval in the unit of 'number of beacons'
      using debugfs entry "listen_interval". Going forward,
      we need to alter the listen interval in the unit of TUs
      to get good power numbers while going to WOW suspend/resume.
      
      Allowing the user to change the listen interval in
      the unit of "number of beacons"  in debugfs and changing
      listen interval in wow suspend/resume in the unit of
      time (TUs) would lead us to confuse.
      
      This patch make sures the listen interval is changed only
      in the unit of time (TUs).
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      8f46fccd
    • R
      ath6kl: Check wow state before sending control and data pkt · 390a8c8f
      Raja Mani 提交于
      Below two scenarios are taken care in this patch which helped
      to fix the firmware crash during wow suspend/resume.
      
      * TX operation (ctrl tx and data tx) has to be controlled based
        on suspend state. i.e, with respect to WOW mode, control packets
        are allowed to send from the host until the suspend state goes
        ATH6KL_STATE_WOW and the data packets are allowed until WOW
        suspend operation starts.
      
      * Similarly, wow resume is NOT allowed if WOW suspend is in progress.
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      390a8c8f
    • R
      ath6kl: Add provision to define suspend policy in disconnected state. · 1e9a905d
      Raja Mani 提交于
      It gives flexibility to the user to define suspend policy
      when the suspend mode is set to WOW and the device is in
      disconnected state at the time of suspend.
      
      New module parameter wow_mode is added to get the choice
      from the user. This parameter is valid only if the module
      parameter suspend_mode is set to WOW.
      
      To force WOW in connected state and cut power
      in disconnected state:
        suspend_mode=0x3 wow_mode=0x1
      
      To force WOW in connected state and deep sleep
      in disconnected state (this is also the default wow_mode):
         suspend_mode=0x3 wow_mode=0x2
      
      If there is no value specified to wow_mode during insmod,
      deep sleep mode will be tried in the disconnected state.
      
      kvalo: clarified commit log
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      1e9a905d
  3. 06 3月, 2012 2 次提交
    • V
      ath6kl: Fix kernel panic while receiving fwlog during boot · 068a4633
      Vasanthakumar Thiagarajan 提交于
      "ath6kl: Defer wiphy and netdev registration till the end of ath6kl_core_init()"
      causes kernel panic by accessing the unallocated debug resources during
      boot time. To fix this, split the debug initialization funtion into two,
      one initializes the debug resource and the other takes care of debugfs
      initialization. When this issue shows up the kernel crash dump would
      look like
      
       ath6kl_debug_fwlog_event+0x9c/0x10a
       [<c10666c9>] register_lock_class+0x57/0x288
       [<c1065cd3>] ? trace_hardirqs_on+0xb/0xd
       [<f801f4c9>] ? ath6kl_debug_fwlog_event+0x9c/0x10a
       [<c1066a8a>] __lock_acquire+0x96/0xbe5
       [<c106007b>] ? alarmtimer_suspend+0x80/0x127
       [<c10258da>] ? vprintk+0x394/0x3b1
       [<f801f4c9>] ? ath6kl_debug_fwlog_event+0x9c/0x10a
       [<c10676b3>] lock_acquire+0xda/0xf9
       [<f801f4c9>] ? ath6kl_debug_fwlog_event+0x9c/0x10a
       [<c1532ce3>] _raw_spin_lock+0x28/0x58
       [<f801f4c9>] ? ath6kl_debug_fwlog_event+0x9c/0x10a
       [<f801f4c9>] ath6kl_debug_fwlog_event+0x9c/0x10a
       [<f80310a4>] ath6kl_wmi_control_rx+0x69d/0xb50 [ath6kl_core]
       [<f802d2e1>] ? ath6kl_rx+0x3c/0x839 [ath6kl_core]
       [<f802d35d>] ath6kl_rx+0xb8/0x839 [ath6kl_core]
       [<c104b81e>] ? local_clock+0x2d/0x4e
       [<c102a0af>] ? _local_bh_enable_ip+0x94/0x98
       [<f802bfc0>] ? ath6kl_alloc_amsdu_rxbuf+0xb7/0xb7
       [<f8023b28>] ath6kl_htc_rxmsg_pending_handler+0x891/0x988 [ath6kl_core]
       [<f802bf00>] ? ath6kl_refill_amsdu_rxbufs+0x89/0x92
       [<f802d2a5>] ? aggr_timeout+0xed/0xed [ath6kl_core]
       [<f802bfc0>] ? ath6kl_alloc_amsdu_rxbuf+0xb7/0xb7
       [<f802c420>] ? ath6kl_tx_complete+0x376/0x376 [ath6kl_core]
       [<f8020e92>] ath6kl_hif_intr_bh_handler+0xf7/0x33e
       [<c138ab00>] ? mmc_host_disable+0x15/0x3a
       [<f8123b5c>] ath6kl_sdio_irq_handler+0x3c/0x90 [ath6kl_sdio]
       [<c1392f56>] sdio_irq_thread+0xb6/0x29c
       [<c1392ea0>] ? sdio_claim_irq+0x1cb/0x1cb
       [<c103d4c0>] kthread+0x67/0x6c
       [<c103d459>] ? __init_kthread_worker+0x42/0x42
       [<c153903a>] kernel_thread_helper+0x6/0xd
       BUG: unable to handle kernel NULL pointer dereference at
      EIP: [<f801f4d4>] ath6kl_debug_fwlog_event+0xa7/0x10a
      
      kvalo: rename new function to ath6kl_debug_init_fs() and add a comment
      why it's needed
      Reported-by: NKalle Valo <kvalo@qca.qualcomm.com>
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      068a4633
    • R
      ath6kl: Restrict memcpy to bounce buffer only for write request · daa16bc5
      Raja Mani 提交于
      No need to copy received local buffer content to bounce buffer
      (DMA buffer) while performing sync READ operation from the chip.
      
      It's applicable for only WRITE operation.
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      daa16bc5
  4. 01 3月, 2012 25 次提交
  5. 28 2月, 2012 6 次提交