#
0f60e9f4 |
| 07-Nov-2011 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Include new parameter in suspend path for wowlan
cfg80211 layer provides user defined wow parameters like Filter options, Patterns, Pattern's mask, etc via "struct cfg80211_wowlan *wow" to s
ath6kl: Include new parameter in suspend path for wowlan
cfg80211 layer provides user defined wow parameters like Filter options, Patterns, Pattern's mask, etc via "struct cfg80211_wowlan *wow" to suspend function.
Right now, this wowlan parameter is not handled in __ath6kl_cfg80211_suspend func. This parameter has to be passed to HIF layer, So that it can be passed back to ath6kl's cfg interface layer when WOW mode is selected.
In case of deep sleep and cut power mode, it's not handled.
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
6cb3c714 |
| 07-Nov-2011 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Add WOW suspend/resume implementation
This is the core WOW suspend/resume functions will be called in PM suspend/resume path.
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by
ath6kl: Add WOW suspend/resume implementation
This is the core WOW suspend/resume functions will be called in PM suspend/resume path.
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
f3e61ece |
| 02-Nov-2011 |
Jouni Malinen <jouni@qca.qualcomm.com> |
ath6kl: Do not hide ath6kl_wmi_addkey_cmd() error values
Instead of converting any error to EIO, just return the real error value to upper layers.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.c
ath6kl: Do not hide ath6kl_wmi_addkey_cmd() error values
Instead of converting any error to EIO, just return the real error value to upper layers.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
f4bb9a6f |
| 02-Nov-2011 |
Jouni Malinen <jouni@qca.qualcomm.com> |
ath6kl: Fix key configuration to copy at most seq_len from seq
There is no guarantee on the caller using 8-octet buffer for key->seq, so better follow the key->seq_len parameter on figuring out how
ath6kl: Fix key configuration to copy at most seq_len from seq
There is no guarantee on the caller using 8-octet buffer for key->seq, so better follow the key->seq_len parameter on figuring out how many octets to copy.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
11f6e40d |
| 01-Nov-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Fix lockdep warning
The following is the lockdep warning which detects possible deadlock condition with the way ar->lock and ar->list_lock are being used.
(&(&ar->lock)->rlock){+.-...}, a
ath6kl: Fix lockdep warning
The following is the lockdep warning which detects possible deadlock condition with the way ar->lock and ar->list_lock are being used.
(&(&ar->lock)->rlock){+.-...}, at: [<ffffffffa0492d13>] ath6kl_indicate_tx_activity+0x83/0x110 [ath6kl] but this lock took another, SOFTIRQ-unsafe lock in the past: (&(&ar->list_lock)->rlock){+.+...}
and interrupts could create inverse lock ordering between them.
other info that might help us debug this: Possible interrupt unsafe locking scenario:
CPU0 CPU1 ---- ---- lock(&(&ar->list_lock)->rlock); local_irq_disable(); lock(&(&ar->lock)->rlock); lock(&(&ar->list_lock)->rlock); <Interrupt> lock(&(&ar->lock)->rlock);
*** DEADLOCK ***
softirqs have to be disabled when acquiring ar->list_lock to avoid the above deadlock condition. When the above warning printed the interface is still up and running without issue.
Reported-by: Kalle Valo <kvalo@qca.qualcomm.com> Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
b4b2a0b1 |
| 01-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: cut power during suspend
If sdio controller doesn't support keep power, cut power from hardware during suspend and restart firmware during resume. If we are connected during suspend, send a
ath6kl: cut power during suspend
If sdio controller doesn't support keep power, cut power from hardware during suspend and restart firmware during resume. If we are connected during suspend, send a disconnected event to user space.
Earlier suspend failed with an error if sdio didn't support keep power. Now suspend will happen succesfully even with that case.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
76a9fbe2 |
| 01-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: add state variable depicting hw/fw state
This way it's easier to track state changes and in the future add more warnings about using hardware in wrong states. Currently there are few random
ath6kl: add state variable depicting hw/fw state
This way it's easier to track state changes and in the future add more warnings about using hardware in wrong states. Currently there are few random flags for trying to do the same, those will be cleaned and removed in the future.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
52d81a68 |
| 01-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: implement ath6kl_cfg80211_suspend()
This is in preparation for cutpower suspend feature. HIF layer makes the decision based on information provided by cfg80211 and what hardware actually sup
ath6kl: implement ath6kl_cfg80211_suspend()
This is in preparation for cutpower suspend feature. HIF layer makes the decision based on information provided by cfg80211 and what hardware actually supports. Then it calls ath6kl_cfg80211_suspend() to enable the chosen mode.
Functionality should be the same, this is just preparation for more suspend modes (cutpower and wow).
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
1f405255 |
| 01-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: reset CONNECT_PEND and CONNECTED flags in ath6kl_cfg80211_stop()
Otherwise first connection establish after cutpower suspend will fail.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
#
ec4b7f60 |
| 01-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: create ath6kl_cfg80211_stop()
Just take code from deep sleep for now, will be improved later. No functional changes.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
#
1c17d313 |
| 01-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: add aborted parameter to ath6kl_cfg80211_scan_complete_event()
Currently it takes an error code as status, but what we really want to tell is if the scan was aborted or not.
Also fix a bug
ath6kl: add aborted parameter to ath6kl_cfg80211_scan_complete_event()
Currently it takes an error code as status, but what we really want to tell is if the scan was aborted or not.
Also fix a bug where we were comparing firmware scan status values with kernel error codes, which is obviously wrong. This meant that ath6kl didn't detect when firmware informed about failed scans. I doubt that this fix doesn't make any difference in practise but it still needs to be fixed. This is fixed by adding an enum for the success status code and checking for that.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
cb93821a |
| 27-Oct-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: don't use cfg80211_scan_request after cfg80211_scan_done()
Use of cfg80211_scan_request is not valid after calling cfg80211_scan_done() but ath6kl_cfg80211_scan_complete_event() was doing ex
ath6kl: don't use cfg80211_scan_request after cfg80211_scan_done()
Use of cfg80211_scan_request is not valid after calling cfg80211_scan_done() but ath6kl_cfg80211_scan_complete_event() was doing exactly that. Change the function to call cfg80211_scan_done() last.
This was found during code review, I didn't see any visible problems due to this bug.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
1052261e |
| 27-Oct-2011 |
Jouni Malinen <jouni@qca.qualcomm.com> |
ath6kl: Report unique remain-on-channel cookie values
Even though only a single concurrent remain-on-channel operation is supported, there may be two pending remain-on-channel events (one to indicat
ath6kl: Report unique remain-on-channel cookie values
Even though only a single concurrent remain-on-channel operation is supported, there may be two pending remain-on-channel events (one to indicate end of a canceled operation and another to indicate start of a new operation). User space won't be able to distinguish these events unless unique cookies are used.
The previous behavior resulted in wpa_supplicant getting quite confused about the driver's offchannel state in various sequences and this made the P2P state machine behave incorrectly. Use of more than a single remain-on-channel cookie value fixes this.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
63541212 |
| 25-Oct-2011 |
Aarthi Thiruvengadam <athiruve@qca.qualcomm.com> |
ath6kl: add support for WPS
Add control flag CONNECT_WPS_FLAG if a WPS IE is present in the Association Request IEs. This flag is needed when the station must connect to a WPS-enabled AP.
Signed-of
ath6kl: add support for WPS
Add control flag CONNECT_WPS_FLAG if a WPS IE is present in the Association Request IEs. This flag is needed when the station must connect to a WPS-enabled AP.
Signed-off-by: Aarthi Thiruvengadam <athiruve@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
551959d8 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Use appropriate wdev from vif
Remove the wdev reference in struct ath6kl.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.
ath6kl: Use appropriate wdev from vif
Remove the wdev reference in struct ath6kl.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
3226f68a |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Add a modparam to enable multi normal interface support
This option lets operate more than one vif in normal mode (AP/STA/IBSS) when support for multiple vif is enabled. This modparam needs
ath6kl: Add a modparam to enable multi normal interface support
This option lets operate more than one vif in normal mode (AP/STA/IBSS) when support for multiple vif is enabled. This modparam needs to be used as
modprobe ath6kl multi_norm_if_support=1
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
55055976 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Implement add_virtual_intf() and del_virtual_intf()
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
#
27929723 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Use the other variant of netdev (un)register APIs
Use replace (un)register_netdev() with (un)register_netdevice() so that the same ath6kl function can be used with add_virtual_intf()/del_vir
ath6kl: Use the other variant of netdev (un)register APIs
Use replace (un)register_netdev() with (un)register_netdevice() so that the same ath6kl function can be used with add_virtual_intf()/del_virtual_intf().
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
990bd915 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Maintain virtual interface in a list
This patch removes all references to ar->vif and takes vif from a list.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-
ath6kl: Maintain virtual interface in a list
This patch removes all references to ar->vif and takes vif from a list.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
478ac027 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Introduce spinlock to protect vif specific information
Use this spinlock to protect the vif's data instead of one from ath6kl.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcom
ath6kl: Introduce spinlock to protect vif specific information
Use this spinlock to protect the vif's data instead of one from ath6kl.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
6db8fa53 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Refactor ath6kl_destroy()
So that the deinitialization of ath6kl and vif are separated.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo
ath6kl: Refactor ath6kl_destroy()
So that the deinitialization of ath6kl and vif are separated.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
e29f25f5 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Cleanup parameters in ath6kl_init_control_info() and ath6kl_init_profile_info()
Pass vif structure to those functions instead of ath6kl because these functions do vif specific information in
ath6kl: Cleanup parameters in ath6kl_init_control_info() and ath6kl_init_profile_info()
Pass vif structure to those functions instead of ath6kl because these functions do vif specific information initialization.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
28ae58dd |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Remove net_device from ath6kl
Use one which is available in vif structure instead.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.
ath6kl: Remove net_device from ath6kl
Use one which is available in vif structure instead.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
240d2799 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Take vif information from wmi event
Interface index is passed in wmi command header from target. Use this index to get the appropriate vif.
Signed-off-by: Vasanthakumar Thiagarajan <vthiaga
ath6kl: Take vif information from wmi event
Interface index is passed in wmi command header from target. Use this index to get the appropriate vif.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
334234b5 |
| 25-Oct-2011 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Maintain firmware interface index in struct ath6kl_vif
Pass this index to target in wmi commands to specify the interface for which the command needs to be handled.
Signed-off-by: Vasanthak
ath6kl: Maintain firmware interface index in struct ath6kl_vif
Pass this index to target in wmi commands to specify the interface for which the command needs to be handled.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|