1. 12 Jan, 2012 4 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: Initialize a variable properly · cbec267a
      Sujith Manoharan authored
      This prevents 'comp_pktq' from being used in an
      incorrect manner.
      Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      cbec267a
    • 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
    • Sujith Manoharan's avatar
      ath6kl: Fix SDIO error path · 866dc886
      Sujith Manoharan authored
      sdio_release_host() would be called twice if sdio_set_block_size()
      fails for some reason, which would result in the following warning.
      
      WARNING: at /home/sujith/dev/wireless-testing/drivers/mmc/core/core.c:828 mmc_release_host+0x42/0x50 [mmc_core]()
      
      Call Trace:
      [<ffffffff81064fdf>] warn_slowpath_common+0x7f/0xc0
      [<ffffffff8106503a>] warn_slowpath_null+0x1a/0x20
      [<ffffffffa03beb42>] mmc_release_host+0x42/0x50 [mmc_core]
      [<ffffffffa03c917e>] sdio_release_host+0x1e/0x30 [mmc_core]
      [<ffffffffa053fac7>] ath6kl_sdio_config+0xc7/0x110 [ath6kl_sdio]
      [<ffffffffa053fd2c>] ath6kl_sdio_probe+0x21c/0x320 [ath6kl_sdio]
      [<ffffffffa03beb2a>] ? mmc_release_host+0x2a/0x50 [mmc_core]
      [<ffffffffa03c7d2a>] sdio_bus_probe+0xfa/0x130 [mmc_core]
      [<ffffffff813015ae>] driver_probe_device+0x7e/0x1b0
      [<ffffffff8130178b>] __driver_attach+0xab/0xb0
      [<ffffffff813016e0>] ? driver_probe_device+0x1b0/0x1b0
      [<ffffffff813016e0>] ? driver_probe_device+0x1b0/0x1b0
      [<ffffffff81300504>] bus_for_each_dev+0x64/0xa0
      [<ffffffff8130123e>] driver_attach+0x1e/0x20
      [<ffffffff81300e80>] bus_add_driver+0x1b0/0x280
      [<ffffffffa0065000>] ? 0xffffffffa0064fff
      [<ffffffff81301d06>] driver_register+0x76/0x140
      [<ffffffffa0065000>] ? 0xffffffffa0064fff
      [<ffffffffa03c7b71>] sdio_register_driver+0x21/0x30 [mmc_core]
      [<ffffffffa0065012>] ath6kl_sdio_init+0x12/0x35 [ath6kl_sdio]
      [<ffffffff81002042>] do_one_initcall+0x42/0x180
      [<ffffffff810b025f>] sys_init_module+0x8f/0x200
      [<ffffffff81425ac2>] 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>
      866dc886
  2. 09 Jan, 2012 7 commits
  3. 02 Jan, 2012 7 commits
  4. 23 Dec, 2011 7 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
    • Kalle Valo's avatar
      ath6kl: add support for FW API 3 · 65a8b4cc
      Kalle Valo authored
      As firmware starting from 3.2.0.12 has some API changes and doesn't work
      with older versions of ath6kl we need to bump up the API version. This
      way we don't break anything.
      
      Also store which version of API is used and print that during boot:
      
      ath6kl: ar6003 hw 2.1.1 sdio fw 3.2.0.13 api 3
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      65a8b4cc
    • Kalle Valo's avatar
      ath6kl: handle firmware names more dynamically · c0038972
      Kalle Valo authored
      Currently ath6kl has just hardcoded paths to each firmware file. Change
      this more dynamic by separating the the directory and file name from each
      other. That way it's easier to dynamically create full paths to firmware and
      code looks better. And now it's possible to remove a function needed by
      devicetree code.
      
      While at it add a structure inside struct ath6kl_hw to contain all
      firmware names. I deliberately omitted board file support as
      those will be handled later.
      
      This is needed for firmware API 3.
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      c0038972
    • 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
    • Raja Mani's avatar
      ath6kl: Avoid taking struct as argument in ath6kl_wmi_set_ip_cmd · ca1d16a0
      Raja Mani authored
      In this way, caller is free to pass only the value of IP addr
      to configure.
      
      In addition to this,
        * 'ips' variable data type in struct wmi_set_ip_cmd is changed
           from __le32 to __be32 in order to match network byte order.
        *  ipv4_is_multicast() is used to validate multicast ip addr.
        *  New argument if_idx is added to supply correct vif index
           to ath6kl_wmi_cmd_send().
      
      This will be used in the next patch.
      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>
      ca1d16a0
    • 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
  5. 16 Dec, 2011 7 commits
  6. 15 Dec, 2011 8 commits