1. 02 Feb, 2012 1 commit
  2. 30 Jan, 2012 3 commits
    • Raja Mani's avatar
      ath6kl: Return a proper error code when not in connected state · 3c411a43
      Raja Mani authored
      
      
      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: default avatarRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      3c411a43
    • Raja Mani's avatar
      ath6kl: Wait for host sleep mode cmd processed event during WOW suspend · 081c7a84
      Raja Mani authored
      
      
      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: default avatarRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      081c7a84
    • Raja Mani's avatar
      ath6kl: Configure WOW patterns while going to wow_suspend · d91e8eee
      Raja Mani authored
      
      
      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: default avatarRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      d91e8eee
  3. 24 Jan, 2012 2 commits
  4. 18 Jan, 2012 4 commits
  5. 13 Jan, 2012 1 commit
    • Thirumalai Pachamuthu's avatar
      ath6kl: Add support for uAPSD · c1762a3f
      Thirumalai Pachamuthu authored
      
      
      * A new APSD power save queue is added in the station structure.
      * When a station has APSD capability and goes to power save, the frame
        designated to the station will be buffered in APSD queue.
      * When the host receives a frame which the firmware marked as trigger,
        host delivers the buffered frame from the APSD power save queue.
        Number of frames to deliver is decided by MAX SP length.
      * When a station moves from sleep to awake state, all frames buffered
        in APSD power save queue are sent to the firmware.
      * When a station is disconnected, all frames bufferes in APSD power save
        queue are dropped.
      * When the host queues the first frame to the APSD queue or removes the
        last frame from the APSD queue, it is indicated to the firmware using
        WMI_AP_APSD_BUFFERED_TRAFFIC_CMD.
      
      kvalo: fix buggy handling of sks queues, made it more obvious
      the user priority when wmm is disabled, remove unneed else block and
      combined some variable declarations
      Signed-off-by: default avatarThirumalai Pachamuthu <tpachamu@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      c1762a3f
  6. 12 Jan, 2012 2 commits
    • Sujith Manoharan's avatar
      ath6kl: Fix listen interval handling · 8232736d
      Sujith Manoharan authored
      
      
      This patch addresses a few problems with the commit:
      
      "ath6kl: Implement support for listen interval from userspace"
      
      * The debugfs file required for reading/writing the listen interval
        wasn't created. Fix this.
      
      * The interface index was being hardcoded to zero. Fix this.
      
      * Two separate parameters, "listen_interval_time and listen_interval_beacons"
        were being used. This fails to work as expected because the FW assigns
        higher precedence to "listen_interval_beacons" and "listen_interval_time"
        ends up being never used at all.
      
        To handle this, fix the host driver to exclusively use listen interval
        based on units of beacon intervals.
      
      To set the listen interval, a user would now do something like this:
      
      echo "10" > /sys/kernel/debug/ieee80211/*/ath6kl/listen_interval
      
      kvalo: fix two checkpatch warnings
      Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      8232736d
    • Sujith Manoharan's avatar
      ath6kl: Remove redundant pointer check · 4a8ce2fd
      Sujith Manoharan authored
      
      
      'params' is already used earlier and there is no point
      in checking for a NULL condition again.
      Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      4a8ce2fd
  7. 09 Jan, 2012 1 commit
  8. 02 Jan, 2012 3 commits
  9. 23 Dec, 2011 4 commits
    • Sujith Manoharan's avatar
      ath6kl: Fix panic when setting a channel · e68f6750
      Sujith Manoharan authored
      
      
      cfg80211 could pass a NULL net_device to the driver via the
      set_channel() callback, when it receives a request to set the
      device's channel. Not handling this case properly results in this panic:
      
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000cb0
      IP: [<ffffffffa0374e49>] ath6kl_cfg80211_ready+0x9/0x70 [ath6kl_sdio]
      
      Call Trace:
      [<ffffffffa0374ed7>] ath6kl_set_channel+0x27/0x90 [ath6kl_sdio]
      [<ffffffffa04dfd5f>] cfg80211_set_freq+0xff/0x1d0 [cfg80211]
      [<ffffffffa04d3275>] ? nl80211_set_wiphy+0x85/0x660 [cfg80211]
      [<ffffffffa04d3198>] __nl80211_set_channel.isra.39+0x118/0x140 [cfg80211]
      [<ffffffffa04d34f3>] nl80211_set_wiphy+0x303/0x660 [cfg80211]
      [<ffffffff813678d7>] ? rtnl_lock+0x17/0x20
      [<ffffffffa04ca165>] ? nl80211_pre_doit+0xb5/0x150 [cfg80211]
      [<ffffffff81382a45>] genl_rcv_msg+0x1d5/0x250
      [<ffffffff81382870>] ? genl_rcv+0x40/0x40
      [<ffffffff81381be9>] netlink_rcv_skb+0xa9/0xd0
      [<ffffffff81382855>] genl_rcv+0x25/0x40
      [<ffffffff811354f0>] ? might_fault+0x40/0x90
      [<ffffffff81381519>] netlink_unicast+0x2d9/0x320
      [<ffffffff813818e6>] netlink_sendmsg+0x2c6/0x320
      [<ffffffff81343800>] ? sock_update_classid+0xb0/0x110
      [<ffffffff8133f52e>] sock_sendmsg+0x10e/0x130
      [<ffffffff81169933>] ? mem_cgroup_update_page_stat+0x193/0x250
      [<ffffffff811354f0>] ? might_fault+0x40/0x90
      [<ffffffff811354f0>] ? might_fault+0x40/0x90
      [<ffffffff81135539>] ? might_fault+0x89/0x90
      [<ffffffff811354f0>] ? might_fault+0x40/0x90
      [<ffffffff8134d126>] ? verify_iovec+0x56/0xd0
      [<ffffffff8133f9e6>] __sys_sendmsg+0x396/0x3b0
      [<ffffffff8108e823>] ? up_read+0x23/0x40
      [<ffffffff81040e68>] ? do_page_fault+0x208/0x4e0
      [<ffffffff81193151>] ? vfsmount_lock_local_unlock+0x21/0x60
      [<ffffffff811947d0>] ? mntput_no_expire+0x30/0xe0
      [<ffffffff8119489f>] ? mntput+0x1f/0x30
      [<ffffffff81342149>] sys_sendmsg+0x49/0x90
      [<ffffffff81425482>] system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      e68f6750
    • Raja Mani's avatar
      ath6kl: Send own IP addr to the firmware during WOW suspend · c08631c6
      Raja Mani authored
      
      
      Firmware ARP module requires own IP addr in order to respond
      to the outside world when the target is in WOW suspend state.
      
      At present, firmware ARP module has capability to hold 2 IP addr.
      So, WOW mode will be disabled if the total IP addr configured in
      net_dev for our device is greater than firmware limit (MAX_IP_ADDRS)
      which is 2 at this moment.
      Signed-off-by: default avatarRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: default avatarThirumalai Pachamuthu <tpachamu@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      c08631c6
    • Jouni Malinen's avatar
      ath6kl: Fix connect command to clear previously used IEs · 6e786cb1
      Jouni Malinen authored
      
      
      Empty IE buffer means that the new association is not supposed to
      include extra IEs. Make sure any previously configured (Re)Association
      Request frame IEs get cleared in such a case. This is based on a patch
      from Shuibing.
      
      Cc: Dai Shuibing <shuibing@qca.qualcomm.com>
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      6e786cb1
    • Vasanthakumar Thiagarajan's avatar
      ath6kl: Use cfg80211_roamed_bss() to report roaming event · 5e13fd35
      Vasanthakumar Thiagarajan authored
      
      
      This is to avoid the scenario where the bss entry of the AP got
      expired when reporting roaming event to current AP. As the bss
      entry for the current bss is available in driver, pass this bss
      to cfg80211. This fixes WARNING: at net/wireless/sme.c:586.
      
      This patch depends on the following patch in cfg80211
      "cfg80211: Fix race in bss timeout".
      Reported-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      Signed-off-by: default avatarVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      5e13fd35
  10. 14 Dec, 2011 1 commit
    • Aarthi Thiruvengadam's avatar
      ath6kl: support for P2P mgmt operations on station interface · 3ca9d1fc
      Aarthi Thiruvengadam authored
      
      
      This patch enables support for doing P2P management operations like device
      discovery on top of a station interface. After group formation, the station
      interface will become a P2P GO/client interface as the case may be.
      
      This feature requires modifications to a couple of existing WMI structures and
      therefore new command ids and structures have been defined in order to be
      compatible with older firmware versions and other chips. The exception here is
      the wmi_connect_cmd. Adding a new field to the end of the structure will not
      cause any issues with previous firmware versions since firmware only checks for
      minimum length of the command. The other structures are of variable length,
      hence it was not possible to add new fields to the end.
      
      The new command ids have to be added to the end of enum wmi_cmd_id, so it has
      updated to match the firmware.
      
      The driver will support both the 'old' and the 'new' commands for a while by
      checking the firmware capabilities.
      Signed-off-by: default avatarAarthi Thiruvengadam <athiruve@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      3ca9d1fc
  11. 13 Dec, 2011 5 commits
  12. 24 Nov, 2011 2 commits
  13. 21 Nov, 2011 3 commits
  14. 16 Nov, 2011 3 commits
  15. 13 Nov, 2011 5 commits