openwrt/staging/blogic.git
9 years agoath10k: Use TX cksum offload only for CHECKSUM_PARTIAL
Helmut Schaa [Wed, 28 Jan 2015 10:31:32 +0000 (11:31 +0100)]
ath10k: Use TX cksum offload only for CHECKSUM_PARTIAL

Otherwise ath10k will just checksum everything even if it did not
go through the TCP/IP stack (for example bridged frames). In the worst
case this could mean recreating the checksum for incorrect data.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix beacon deadlock
Michal Kazior [Thu, 29 Jan 2015 12:29:52 +0000 (14:29 +0200)]
ath10k: fix beacon deadlock

This should fix a very rare occurrence of the following deadlock:

  [<ffffffffa018265e>] ath10k_wmi_tx_beacons_nowait+0x1e/0x50 [ath10k_core]
  [<ffffffffa01829b6>] ath10k_wmi_op_ep_tx_credits+0x16/0x40 [ath10k_core]
  [<ffffffffa017d685>] ath10k_htc_send+0x285/0x3d0 [ath10k_core]
  [<ffffffffa0184b81>] ath10k_wmi_cmd_send_nowait+0x81/0x110 [ath10k_core]
  [<ffffffffa0184c61>] ath10k_wmi_tx_beacon_nowait.part.33+0x51/0x90 [ath10k_core]
  [<ffffffffa0184cd0>] ath10k_wmi_tx_beacons_iter+0x30/0x40 [ath10k_core]
  [<ffffffff81882246>] __iterate_active_interfaces+0xa6/0x100
  [<ffffffffa0184ca0>] ? ath10k_wmi_tx_beacon_nowait.part.33+0x90/0x90 [ath10k_core]
  [<ffffffff818822ae>] ieee80211_iterate_active_interfaces_atomic+0xe/0x10
  [<ffffffffa0182676>] ath10k_wmi_tx_beacons_nowait+0x36/0x50 [ath10k_core]
  [<ffffffffa01829b6>] ath10k_wmi_op_ep_tx_credits+0x16/0x40 [ath10k_core]
  [<ffffffffa017d140>] ath10k_htc_rx+0x280/0x410 [ath10k_core]
  [<ffffffffa01bcbf0>] ? ath10k_ce_completed_recv_next+0x60/0x80 [ath10k_pci]
  [<ffffffffa01bc6ab>] ath10k_pci_ce_recv_data+0x11b/0x1d0 [ath10k_pci]
  [<ffffffffa01bcf44>] ath10k_ce_per_engine_service+0x64/0xc0 [ath10k_pci]
  [<ffffffffa01bcfc2>] ath10k_ce_per_engine_service_any+0x22/0x50 [ath10k_pci]
  [<ffffffffa01bc4d0>] ath10k_pci_tasklet+0x30/0x90 [ath10k_pci]
  [<ffffffff81055a55>] tasklet_action+0xc5/0x100

To prevent this make sure to release ar->data_lock
while calling to ath10k_wmi_beacon_send_ref_nowait().

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: change dma beacon cmd prototype
Michal Kazior [Thu, 29 Jan 2015 12:29:47 +0000 (14:29 +0200)]
ath10k: change dma beacon cmd prototype

The command logic shouldn't really care about
arvif structure.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: prevent setting wrong key idx for station
SenthilKumar Jegadeesan [Thu, 29 Jan 2015 11:50:38 +0000 (13:50 +0200)]
ath10k: prevent setting wrong key idx for station

Ath10k driver sets wrong default key idx that results in
sending unicast frames with multicast key.

The reason for this behavior is that cached broadcast key
is installed for station MAC address on association. After
dot1x completes, unicast key is installed for station
MAC address. Default key idx is set to broadcast key id when
driver tries to send broadcast frame. This causes firmware
to use broadcast key id to transmit unicast frames to stations.

Used TX_USAGE flag to set default key for stations.

Added callback for setting unicast default idx which will be
invoked on every default key idx configuration.

Signed-off-by: SenthilKumar Jegadeesan <sjegadee@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix target wakeup timeout
Rajkumar Manoharan [Mon, 26 Jan 2015 16:43:06 +0000 (22:13 +0530)]
ath10k: fix target wakeup timeout

During drv_start/drv_stop stress testing in ARM platform,
sometimes target is taking more that 5ms to wake up. Similar
behaviour also noted during driver load and unload iterations.
On such cases, the wakup duration lies between 5-6ms. Hence
increasing pci wakup timeout 10ms to be more safer. With this
changes, able to complete power down/up >100 iterations without
any issues.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: Enable the MCS8 and MCS9 at 2.4G band
Yanbo Li [Fri, 23 Jan 2015 00:18:20 +0000 (08:18 +0800)]
ath10k: Enable the MCS8 and MCS9 at 2.4G band

Enable the MCS8 and MCS9 support for 2.4G band, it will
use these data rate with other devices having the same
capability.

Signed-off-by: Yanbo Li <yanbol@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: disable sta keepalive
Michal Kazior [Wed, 28 Jan 2015 07:57:49 +0000 (09:57 +0200)]
ath10k: disable sta keepalive

Firmware revisions providing sta keepalive service
have it enabled by default.

mac80211 already does idle connection polling so
it makes no sense to duplicate this in ath10k.
mac80211 wouldn't even know of the offloaded
keepalive NullFunc frames.

This prevents sending out some extraneous frames
on the air.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement sta keepalive command
Janusz Dziedzic [Wed, 28 Jan 2015 07:57:39 +0000 (09:57 +0200)]
ath10k: implement sta keepalive command

New wmi-tlv firmware for qca6174 has STA keepalive
service available. The service can provide
automatic idle connection polling via NullFunc
frames to AP when acting as a client.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: use per-vif wmm param setup if possible
Michal Kazior [Wed, 28 Jan 2015 07:57:28 +0000 (09:57 +0200)]
ath10k: use per-vif wmm param setup if possible

New wmi-tlv firmware for qca6174 supports this.

This should fix issues related to multi-vif WMM.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement per-vdev wmm param setup command
Michal Kazior [Wed, 28 Jan 2015 07:57:22 +0000 (09:57 +0200)]
ath10k: implement per-vdev wmm param setup command

New wmi-tlv firmware for qca6174 supports this.
This will be used soon.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: move wmm param storage to vif
Michal Kazior [Mon, 19 Jan 2015 08:53:41 +0000 (09:53 +0100)]
ath10k: move wmm param storage to vif

mac80211 already requests WMM per vif but firmware
wasn't able to handle this until now. However new
wmi-tlv firmware for qca6174 is capable of this.

This prepares per-vif WMM param setup.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix pmf for wmi-tlv on qca6174
Marek Kwaczynski [Sat, 24 Jan 2015 10:14:53 +0000 (12:14 +0200)]
ath10k: fix pmf for wmi-tlv on qca6174

New wmi-tlv firmware uses HTT 3.0 protocol which
uses TX_FRM command for management frames (instead
of a dedicated command). To support PMF it is
necessary to provide explicit tailroom.

Signed-off-by: Marek Kwaczynski <marek.kwaczynski@tieto.com>
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: remove sw encryption for pmf
Marek Kwaczynski [Sat, 24 Jan 2015 10:14:53 +0000 (12:14 +0200)]
ath10k: remove sw encryption for pmf

Software encryption was never necessary.
Tested with fw 636 and fw 10.x.

Signed-off-by: Marek Kwaczynski <marek.kwaczynski@tieto.com>
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: disable irqs after fw crash
Michal Kazior [Sat, 24 Jan 2015 10:14:52 +0000 (12:14 +0200)]
ath10k: disable irqs after fw crash

It makes little sense to keep handling irqs if fw
is dead.

This prevents multiple fw register dumps upon
crash on some devices (seen on QCA6174).

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: disable uapsd autotrigger
Michal Kazior [Sat, 24 Jan 2015 10:14:52 +0000 (12:14 +0200)]
ath10k: disable uapsd autotrigger

Only userspace can make an educated decision when
a trigger frame is required so make sure the
autotrigger service is disabled.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement uapsd autotrigger command
Janusz Dziedzic [Sat, 24 Jan 2015 10:14:52 +0000 (12:14 +0200)]
ath10k: implement uapsd autotrigger command

New wmi-tlv firmware for qca6174 has u-UAPSD
autotrigger service. If it is enabled firmware
generates trigger frames automatically as
configured.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix nullfunc workaround
Michal Kazior [Sat, 24 Jan 2015 10:14:51 +0000 (12:14 +0200)]
ath10k: fix nullfunc workaround

The workaround couldn't work correctly because the
802.11 header wasn't properly stripped of QoS Data
bit so it wasn't recognized in the later parts of
tx path as NullFunc frame and ended up in HTT Tx
instead of HTT Mgmt Tx.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix dtim period with beacon templates
Michal Kazior [Sat, 24 Jan 2015 10:14:51 +0000 (12:14 +0200)]
ath10k: fix dtim period with beacon templates

Firmware supporting beacon templates (i.e. wmi-tlv
for qca6174) doesn't implicitly take dtim period
from the template. Instead it requires vdev param
to be set accordingly.

This fixes dtim period being stuck at 3.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: use idr api for msdu_ids
Michal Kazior [Sat, 24 Jan 2015 10:14:51 +0000 (12:14 +0200)]
ath10k: use idr api for msdu_ids

HTT Tx protocol uses arbitrary host assigned ids
too associate with MSDUs when delivering
completions.

Instead of rolling out own id generation scheme
use the tools provided in kernel.

This should have little to no effect on
performance.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix 10.2 fw stats parsing
Michal Kazior [Sat, 24 Jan 2015 10:14:49 +0000 (12:14 +0200)]
ath10k: fix 10.2 fw stats parsing

Both 10.2 firmware binaries 10.2-00082-4 and
10.2.4.20 have introduced ABI changes to fw_stats
each. This caused fw_stats to output wrong data.

Define new structures and use them to parse the
statistics correctly.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: split fw pdev stats parsing
Michal Kazior [Sat, 24 Jan 2015 10:14:49 +0000 (12:14 +0200)]
ath10k: split fw pdev stats parsing

This will make it easier to implement fw stats
parsing for firmware 10.2.

This also renames a few structures for
consistency.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add support for qca6174
Michal Kazior [Sat, 24 Jan 2015 10:14:49 +0000 (12:14 +0200)]
ath10k: add support for qca6174

The QCA6174 in combination with new wmi-tlv firmware is capable of
multi-channel, beamforming, tdls and other features.

This patch just makes it possible to boot these devices and do some basic stuff
like connect to an AP without encryption. Some things may not work or may be
unreliable. New features will be implemented later. This will be addressed
eventually with future patches.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add support for qca6174 Rx descriptors
Michal Kazior [Sat, 24 Jan 2015 10:14:48 +0000 (12:14 +0200)]
ath10k: add support for qca6174 Rx descriptors

The QCA6174 chip has an extra 4 bytes in
rx_ppdu_end structure which is used in htt_rx_desc
and HTT Rx ring offset setup. This is necessary
for correct Rx for QCA6174 (otherwise Rx
descriptors are overwritten and corrupted).

This means QCA988X will have an extra 4 byte
padding in Rx descriptor layout which is harmless.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: reset chip before reading chip_id in probe
Michal Kazior [Sat, 24 Jan 2015 10:14:48 +0000 (12:14 +0200)]
ath10k: reset chip before reading chip_id in probe

There are some very rare cases with some hardware
configuration that the device doesn't init quickly
enough in which case reading chip_id yielded 0.
This caused driver to subsequently fail to setup
the device.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement rx reorder support
Michal Kazior [Sat, 24 Jan 2015 10:14:48 +0000 (12:14 +0200)]
ath10k: implement rx reorder support

New firmware and firmware (qca6174 hw3.0+ and fw
266+) are capable of full aggregation rx
reordering. If it's enabled then Rx is handled via
a new, separate htt event.

The rx ring behaviour is changed a little to
support the new rx scheme. These changes shouldn't
affect qca988x performance.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: introduce struct ath10k_skb_rxcb
Michal Kazior [Sat, 24 Jan 2015 10:14:47 +0000 (12:14 +0200)]
ath10k: introduce struct ath10k_skb_rxcb

It doesn't make much sense to share the
ath10k_skb_cb with Rx path. The Rx path doesn't
need to keep any mac80211's data.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement diag event
Michal Kazior [Sat, 24 Jan 2015 10:14:47 +0000 (12:14 +0200)]
ath10k: implement diag event

Some firmware revisions may report this event as
part of their diagnostics.

This avoids `unknown event` warnings and adds
tracing for the event.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement diag data container event
Michal Kazior [Sat, 24 Jan 2015 10:14:47 +0000 (12:14 +0200)]
ath10k: implement diag data container event

Some firmware revisions may report this event as
part of their diagnostics.

This avoids `unknown event` warnings and adds
tracing for the event.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix hwmon temperature input units
Rajkumar Manoharan [Tue, 13 Jan 2015 07:14:24 +0000 (12:44 +0530)]
ath10k: fix hwmon temperature input units

To be compliant with the hwmon interface the unit needs to be
millidegree Celsius. Fix that.

Reported-by: Matthias Kaehlcke <mka@google.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: document switch case fall-through in __ath10k_scan_finish
John W. Linville [Mon, 12 Jan 2015 21:07:02 +0000 (16:07 -0500)]
ath10k: document switch case fall-through in __ath10k_scan_finish

Add a comment for indicating that the ATH10K_SCAN_RUNNING case falls
through to the ATH10K_SCAN_ABORTING case in __ath10k_scan_finish.  This
will document that the lack of a break is intentional.

Coverity: CID 1260017

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: prevent fw reg dump spam
Michal Kazior [Mon, 12 Jan 2015 14:29:37 +0000 (15:29 +0100)]
ath10k: prevent fw reg dump spam

Originally the explicit fw register dump was added
to wait_for_target_init because interrupts are
masked early during power_up.

Due to some changes in power_up/reset sequences
sometimes when fw crashed ath10k would print the
dump more than once via hif_stop -> warm_reset ->
wait_for_target_init, possibly with different
values each.

Prevent this by doing the explicit fw register
dump only during power_up instead of
wait_for_target_init.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix duration calculation for quiet param
Rajkumar Manoharan [Tue, 13 Jan 2015 09:22:14 +0000 (14:52 +0530)]
ath10k: fix duration calculation for quiet param

The duty cycle (% of quiet duration) is used to put the device
in quiet mode for the given period. Currently the quiet duration
is wrongly calculated which results in not enabling quiet mode.
Fix the calculation as below

     duration = (period * duty cycle) / 100

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement support for ap beacon offloading
Michal Kazior [Tue, 13 Jan 2015 14:30:12 +0000 (16:30 +0200)]
ath10k: implement support for ap beacon offloading

New firmware revisions support beacon and probe
response templates instead. This means SWBA events
are no longer delivered for these firmware
revisions.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement p2p bcn ie command
Michal Kazior [Tue, 13 Jan 2015 14:30:11 +0000 (16:30 +0200)]
ath10k: implement p2p bcn ie command

Along beacon template host is expected to setup
p2p information elements as well. Implement wmi
interface for it.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement prb tmpl wmi command
Michal Kazior [Tue, 13 Jan 2015 14:30:11 +0000 (16:30 +0200)]
ath10k: implement prb tmpl wmi command

New firmware revisions with beacon templates need
probe templates as well because they don't forward
probe requests to host at all.

This is required for new firmware to work with
direct probe requests (notably required by hidden
ssid AP).

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement beacon template command
Michal Kazior [Tue, 13 Jan 2015 14:30:11 +0000 (16:30 +0200)]
ath10k: implement beacon template command

New firmware revisions may support setting beacon
template. Implement wmi interface for it.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: implement new beacon tx status event
Michal Kazior [Tue, 13 Jan 2015 14:30:10 +0000 (16:30 +0200)]
ath10k: implement new beacon tx status event

This event is delivered to host by firmware if it
supports beacon templates only.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix config_enabled check for hwmon
Rajkumar Manoharan [Tue, 13 Jan 2015 08:51:45 +0000 (14:21 +0530)]
ath10k: fix config_enabled check for hwmon

Because of wrong macro check in commit 96bba98393f9 ("ath10k: fix build error
when hwmon is off"), hwmon never be enabled. Fix that.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: Fix potential Rx ring corruption
Vasanthakumar Thiagarajan [Fri, 9 Jan 2015 17:19:46 +0000 (22:49 +0530)]
ath10k: Fix potential Rx ring corruption

When replenishing Rx buffers driver updates the address of the
buffer and the index of rx buffer in rx ring to the firmware.
Change in order by CPU can cause rx ring corruption. Add memory
barrier before updating rx buffer index to guarantee the order.

This could fix some instances of rx ring corruption due to done
bit in rx attention flag not set.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fixup wait_for_completion_timeout return handling
Nicholas Mc Guire [Thu, 8 Jan 2015 12:27:34 +0000 (13:27 +0100)]
ath10k: fixup wait_for_completion_timeout return handling

wait_for_completion_timeout does not return negative values so the tests
for <= 0 are not needed and the case differentiation in the error handling
path unnecessary.

Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fill max_num_vdevs for wmi-tlv
Michal Kazior [Thu, 8 Jan 2015 10:36:56 +0000 (11:36 +0100)]
ath10k: fill max_num_vdevs for wmi-tlv

Recent commit
30c78167bc6536d9074aa79385a575596343bf69 ("ath10k:
set max_num_vdevs based on wmi op version")
skipped wmi-tlv case and left max_num_vdevs reset.
Make sure it is properly set.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: Remove unused htt->max_throughput_mbps
Sujith Manoharan [Mon, 5 Jan 2015 04:40:22 +0000 (10:10 +0530)]
ath10k: Remove unused htt->max_throughput_mbps

htt->max_throughput_mbps is not used anywhere.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: fix error return code
Julia Lawall [Mon, 29 Dec 2014 17:04:43 +0000 (18:04 +0100)]
ath10k: fix error return code

Return a negative error code on failure.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add support to send delba
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:28 +0000 (14:07 +0200)]
ath10k: add support to send delba

This per-station debugfs entry helps to send delba in manual mode
for debugging purpose. It accepts tid, initiator and reason code
as inputs.

To send delba,

echo 0 1 37 >/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/
     stations/XX:XX:XX:XX:XX:XX/delba

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add support to send addba response
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:27 +0000 (14:07 +0200)]
ath10k: add support to send addba response

This per-station debugfs entry helps to send addba response in
manual mode for debugging purpose. It accepts tid and status code
as input arguments.

To send addba response,

echo 0 25 >/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/
   stations/XX:XX:XX:XX:XX:XX/addba_resp

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add support to send addba request
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:27 +0000 (14:07 +0200)]
ath10k: add support to send addba request

This per-station debugfs entry helps to send addba request in manual
mode. Need to pass two configuration parameters (tid, buffer size)
as input.

To send addba,

echo 1 32 >/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/
   stations/XX:XX:XX:XX:XX:XX/addba

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: Implement sta_add_debugfs
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:27 +0000 (14:07 +0200)]
ath10k: Implement sta_add_debugfs

Add per station debugfs files when a station is added to mac80211's
station list. This helps to group peer specific debugfs entries
altogether. Right now this callback adds support to test aggregation
procedures (addba/addba_resp/delba) manually.

To enable automatic aggregation in target,
echo 0 >/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/
stations/XX:XX:XX:XX:XX:XX/aggr_mode

For manual mode,
echo 1 >/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/
stations/XX:XX:XX:XX:XX:XX/aggr_mode

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add wmi support for delba_send
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:26 +0000 (14:07 +0200)]
ath10k: add wmi support for delba_send

Add WMI support for sending delba request. This command is used for
debugging purpose.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add wmi support for addba_set_resp
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:26 +0000 (14:07 +0200)]
ath10k: add wmi support for addba_set_resp

Add WMI support for sending addba response manually. This command
is used for debugging purpose.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add wmi support for addba_send
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:26 +0000 (14:07 +0200)]
ath10k: add wmi support for addba_send

Add WMI support for sending addba request. This command is meant
for debugging purpose.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add wmi support for addba_clear_resp
Rajkumar Manoharan [Mon, 12 Jan 2015 12:07:25 +0000 (14:07 +0200)]
ath10k: add wmi support for addba_clear_resp

Add WMI support for clearing addba response before switching aggregation
mode (auto/manual) for debugging purpose.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: Enable RX batching
Sujith Manoharan [Mon, 12 Jan 2015 10:30:02 +0000 (12:30 +0200)]
ath10k: Enable RX batching

This feature allows the FW to batch RX indications,
reducing the rate of host interrupt generation, which
in turn reduces CPU load. Currently, this is enabled
only for the 10.2 firmware.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: Fix DMA burst size
Sujith Manoharan [Mon, 12 Jan 2015 10:30:02 +0000 (12:30 +0200)]
ath10k: Fix DMA burst size

A value of zero indicates that 128B is the maximum
DMA request size for read/writes. But PCI cards based
on AR9880 can support 256B, so enable this for
the 10.2 firmware.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoMerge ath-next from ath.git
Kalle Valo [Fri, 9 Jan 2015 16:38:46 +0000 (18:38 +0200)]
Merge ath-next from ath.git

Major changes in ath10k:

* Device tree support

* Major restructuring how to handle different WMI interface versions

* Add WMI TLV interface in preparation for new firmware interface support

* Support new firmware branch 10.2.4

* Add thermal cooling interface

* Add hwmon interface to read temparture from the device

And of course lots of small fixes and cleanups.

9 years agoath10k: fix build error when hwmon is off
Kalle Valo [Wed, 7 Jan 2015 15:04:10 +0000 (17:04 +0200)]
ath10k: fix build error when hwmon is off

kbuild reported a linking error:

ERROR: "devm_hwmon_device_register_with_groups"
[drivers/net/wireless/ath/ath10k/ath10k_core.ko] undefined!

Fix it by returning early and letting the compiler to optimise out the function
call.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agortlwifi: Move macro definitions to core
Larry Finger [Tue, 6 Jan 2015 15:58:12 +0000 (09:58 -0600)]
rtlwifi: Move macro definitions to core

Several of the drivers still were defining their own copies of various
macros. These are all moved into the core.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8821ae: Convert driver to use common DM table initialization
Larry Finger [Tue, 6 Jan 2015 15:58:11 +0000 (09:58 -0600)]
rtlwifi: rtl8821ae: Convert driver to use common DM table initialization

Convert driver to use routine rtl_dm_diginit().

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8723be: Convert driver to use common DM table initialization
Larry Finger [Tue, 6 Jan 2015 15:58:10 +0000 (09:58 -0600)]
rtlwifi: rtl8723be: Convert driver to use common DM table initialization

Convert driver rtl8723be to use routine rtl_dm_diginit().

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8723ae: Convert driver to use common DM table initialization
Larry Finger [Tue, 6 Jan 2015 15:58:09 +0000 (09:58 -0600)]
rtlwifi: rtl8723ae: Convert driver to use common DM table initialization

Convert driver rtl8723ae to use common routine rtl_dm_diginit().

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8192ee: Convert driver to use common DM table initialization
Larry Finger [Tue, 6 Jan 2015 15:58:08 +0000 (09:58 -0600)]
rtlwifi: rtl8192ee: Convert driver to use common DM table initialization

Convert driver rtl8192ee to use the common routine to initialize
dm_digtable.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8192de: Convert driver to use common DM table initialization
Larry Finger [Tue, 6 Jan 2015 15:58:07 +0000 (09:58 -0600)]
rtlwifi: rtl8192de: Convert driver to use common DM table initialization

This patch converts driver rtl8192de to use the common routine to
initialize dm_digtable.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8192c-common: Convert driver to use common DM table initialization
Larry Finger [Tue, 6 Jan 2015 15:58:06 +0000 (09:58 -0600)]
rtlwifi: rtl8192c-common: Convert driver to use common DM table initialization

These changes convert both rtl8192ce and rtl8192cu to use the new routine.
Some additional definitions are needed in the core, thus several of the
headers for other drivers are affected, but no other executable code is
changed.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8188ee: Convert driver to use the common DM table init routine
Larry Finger [Tue, 6 Jan 2015 15:58:05 +0000 (09:58 -0600)]
rtlwifi: rtl8188ee: Convert driver to use the common DM table init routine

The previous patch created a routine in rtlwifi to initialize dm_digtable.
Driver rtl8188ee is converted to use that routine.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: Create new routine to initialize the DM tables
Larry Finger [Tue, 6 Jan 2015 15:58:04 +0000 (09:58 -0600)]
rtlwifi: Create new routine to initialize the DM tables

Each of the drivers contains a routine that initializes the dm_digtable
member of the driver's private area. As a first step toward reducing the
size of the drivers, a copy of this driver is created in rtlwifi, and the
definitions of the parameters are moved there.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: rtl8723be: Improve modinfo output
Larry Finger [Tue, 6 Jan 2015 15:58:03 +0000 (09:58 -0600)]
rtlwifi: rtl8723be: Improve modinfo output

The description of the power-save variables for this driver is not as
clear as for the others. The wording is changed to match the others.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agortlwifi: Unify variable naming for all drivers
Larry Finger [Tue, 6 Jan 2015 15:58:02 +0000 (09:58 -0600)]
rtlwifi: Unify variable naming for all drivers

Some drivers refer to a particular quantity in the driver's private
are by one name, while others use a different name. These differences
are removed.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agobrcmfmac: get rid of duplicate SDIO device identifiers
Arend van Spriel [Tue, 6 Jan 2015 22:02:54 +0000 (23:02 +0100)]
brcmfmac: get rid of duplicate SDIO device identifiers

Instead of defining SDIO device identifier in brcm80211 code use
the defintions in linux/mmc/sdio_ids.h directly.

Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowl18xx: declare radar_detect_widths support for ap interfaces
Eliad Peller [Mon, 29 Dec 2014 06:24:13 +0000 (08:24 +0200)]
wl18xx: declare radar_detect_widths support for ap interfaces

After having all the dfs infrastructure in place, declare
radar_detect_widths support for the ap interfaces combination.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: add dfs region to reg domain update cmd
Guy Mishol [Mon, 29 Dec 2014 06:24:12 +0000 (08:24 +0200)]
wlcore: add dfs region to reg domain update cmd

Add dfs region to the reg domain channel update command.

Signed-off-by: Guy Mishol <guym@ti.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: allow using dfs channels
Eliad Peller [Mon, 29 Dec 2014 06:24:11 +0000 (08:24 +0200)]
wlcore: allow using dfs channels

Since we are going to support dfs channels, there
is no reason to mark them as NO_IR (having
the DFS flag is enough anyway).

Additionally, when setting the regdomain configuration,
enable usable dfs channels.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: add dfs master restart calls
Eliad Peller [Mon, 29 Dec 2014 06:24:10 +0000 (08:24 +0200)]
wlcore: add dfs master restart calls

call wlcore_cmd_dfs_master_restart when starting
the ap on a new channel (after csa is done).

Add a new WLVIF_FLAG_BEACON_DISABLED flag to
indicate that dfs_master_restart command
is required.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: add support for ap csa
Eliad Peller [Mon, 29 Dec 2014 06:24:09 +0000 (08:24 +0200)]
wlcore: add support for ap csa

Support ap csa support by implementing the channel_switch_beacon()
mac80211 op.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowl18xx: add debugfs file to emulate radar event
Eliad Peller [Mon, 29 Dec 2014 06:24:08 +0000 (08:24 +0200)]
wl18xx: add debugfs file to emulate radar event

Add debugfs file to emulate radar detection through
a special fw cmd (which in turn will generate radar
event)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowl18xx: add radar detection implementation
Eliad Peller [Mon, 29 Dec 2014 06:24:07 +0000 (08:24 +0200)]
wl18xx: add radar detection implementation

Add support for CAC start/stop commands, and pass
radar detection events from the fw to mac80211.

Bump fw name (to wl18xx-fw-4.bin) and min fw version
(to 8.9.*.*.11), and align event mailbox accordingly.

Signed-off-by: Guy Mishol <guym@ti.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: enable sleep during AP mode operation
Kobi L [Mon, 29 Dec 2014 06:24:06 +0000 (08:24 +0200)]
wlcore: enable sleep during AP mode operation

Enable ELP authorization in AP mode and enable the use
of the wakeup bit in the ELP register.

Introduce AP role sleep configuration which is disabled
by default. When configured, it allows the AP to sleep
when ELP is authorized for it.

Signed-off-by: Kobi Leibovitch <kobi.lev100@gmail.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: enable AP wowlan
Eliad Peller [Mon, 29 Dec 2014 06:24:05 +0000 (08:24 +0200)]
wlcore: enable AP wowlan

configure wowlan when host is suspended in AP mode,
since the FW can now wake the host up on Rx.

Signed-off-by: Kobi Leibovitch <kobi.lev100@gmail.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: add ability to reduce FW interrupts during suspend
Ram Amrani [Mon, 29 Dec 2014 06:24:04 +0000 (08:24 +0200)]
wlcore: add ability to reduce FW interrupts during suspend

Add the ability to mask FW interrupts on RX BA activity, PSM
entry/exit and fast-link notifications. This is used when the host
is suspended in order to decrease redundant wake ups.

Signed-off-by: Ram Amrani <ramrani@ti.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore/wl18xx: handle rc updates in a separate work
Eliad Peller [Mon, 29 Dec 2014 06:24:03 +0000 (08:24 +0200)]
wlcore/wl18xx: handle rc updates in a separate work

sta_rc_update runs in atomic context. thus, a new work
should be scheduled in order to configure the fw
with the required configuration.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: fix sparse warning
Eliad Peller [Mon, 29 Dec 2014 06:24:02 +0000 (08:24 +0200)]
wlcore: fix sparse warning

Use kstrtoul_from_user() for reading the user value,
and fix the following sparse warning:

drivers/net/wireless/ti/wlcore/debugfs.c:937:15: error: incompatible
types in comparison expression (different type sizes)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowlcore: fix WLCORE_VENDOR_ATTR_GROUP_KEY policy
Eliad Peller [Mon, 29 Dec 2014 06:24:01 +0000 (08:24 +0200)]
wlcore: fix WLCORE_VENDOR_ATTR_GROUP_KEY policy

The attribute type is binary data (with max length).

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: tdls: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:58 +0000 (15:35 +0100)]
mwifiex: tdls: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.function = f;
-t.data = d;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: 11n_rxreorder: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:57 +0000 (15:35 +0100)]
mwifiex: 11n_rxreorder: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.function = f;
-t.data = d;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: main: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:56 +0000 (15:35 +0100)]
mwifiex: main: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.function = f;
-t.data = d;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agoorinoco_usb: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:55 +0000 (15:35 +0100)]
orinoco_usb: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.function = f;
-t.data = d;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agoiwl3945: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:49 +0000 (15:35 +0100)]
iwl3945: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.data = d;
-t.function = f;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agoiwl4965: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:48 +0000 (15:35 +0100)]
iwl4965: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.data = d;
-t.function = f;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agocw1200: queue: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:39 +0000 (15:35 +0100)]
cw1200: queue: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.data = d;
-t.function = f;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agocw1200: main: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:38 +0000 (15:35 +0100)]
cw1200: main: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.data = d;
-t.function = f;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowireless: cw1200: Use setup_timer
Julia Lawall [Fri, 26 Dec 2014 14:35:37 +0000 (15:35 +0100)]
wireless: cw1200: Use setup_timer

Convert a call to init_timer and accompanying intializations of
the timer's data and function fields to a call to setup_timer.

A simplified version of the semantic match that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression t,f,d;
@@

-init_timer(&t);
+setup_timer(&t,f,d);
-t.data = d;
-t.function = f;
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agort2x00: use helper to check capability/requirement
Fred Chou [Fri, 26 Dec 2014 08:19:18 +0000 (16:19 +0800)]
rt2x00: use helper to check capability/requirement

Use rt2x00_has_cap_flag macro to check rt2x00dev->cap_flags.

Signed-off-by: Fred Chou <fred.chou.nd@gmail.com>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agowil6210: use 'uint64_t' instead of 'cycles_t' to avoid warnings
Chen Gang [Wed, 24 Dec 2014 15:08:44 +0000 (23:08 +0800)]
wil6210: use 'uint64_t' instead of 'cycles_t' to avoid warnings

do_div() checks the type strictly. 'cycles_t' may be 32-bit under quite
a few architectures (parisc, arm, avr32 ...). So use 'uint64_t' instead
of, the related warning (with allmodconfig under parisc):

    CC [M]  drivers/net/wireless/ath/wil6210/debugfs.o
  In file included from arch/parisc/include/generated/asm/div64.h:1:0,
                   from include/linux/kernel.h:124,
                   from include/linux/list.h:8,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:
  drivers/net/wireless/ath/wil6210/debugfs.c: In function ‘wil_vring_debugfs_show’:
  include/asm-generic/div64.h:43:28: warning: comparison of distinct pointer types lacks a cast
    (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
                              ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion of macro ‘do_div’
      do_div(idle, total);
      ^
  In file included from include/uapi/linux/stddef.h:1:0,
                   from include/linux/stddef.h:4,
                   from ./include/uapi/linux/posix_types.h:4,
                   from include/uapi/linux/types.h:13,
                   from include/linux/types.h:5,
                   from include/linux/list.h:4,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:
  include/asm-generic/div64.h:44:18: warning: right shift count >= width of type [-Wshift-count-overflow]
    if (likely(((n) >> 32) == 0)) {   \
                    ^
  include/linux/compiler.h:159:40: note: in definition of macro ‘likely’
   # define likely(x) __builtin_expect(!!(x), 1)
                                          ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion of macro ‘do_div’
      do_div(idle, total);
      ^
  In file included from arch/parisc/include/generated/asm/div64.h:1:0,
                   from include/linux/kernel.h:124,
                   from include/linux/list.h:8,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:
  include/asm-generic/div64.h:48:22: warning: passing argument 1 of ‘__div64_32’ from incompatible pointer type [-Wincompatible-pointer-types]
     __rem = __div64_32(&(n), __base); \
                        ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion of macro ‘do_div’
      do_div(idle, total);
      ^
  include/asm-generic/div64.h:35:17: note: expected ‘uint64_t * {aka long long unsigned int *}’ but argument is of type ‘cycles_t * {aka long unsigned int *}’
   extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
                   ^

Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: Add support for wowlan disconnect
Maithili Hinge [Wed, 31 Dec 2014 10:36:46 +0000 (02:36 -0800)]
mwifiex: Add support for wowlan disconnect

This patch adds support for wowlan disconnect.

Signed-off-by: Maithili Hinge <maithili@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: Move code for wowlan magic-packet and patterns to a function
Maithili Hinge [Wed, 31 Dec 2014 10:36:45 +0000 (02:36 -0800)]
mwifiex: Move code for wowlan magic-packet and patterns to a function

This patch moves code for wowlan magic-packet and patterns to a function
mwifiex_set_mef_filter.

Signed-off-by: Maithili Hinge <maithili@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: Increase priority of firmware download message
Amitkumar Karwar [Wed, 31 Dec 2014 10:36:44 +0000 (02:36 -0800)]
mwifiex: Increase priority of firmware download message

When driver is loaded, it is important to know if FW was already
active or it is freshly downloaded. This patch increases the
priority of these messages.

Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: do not release lock during list_for_each_entry_safe()
Amitkumar Karwar [Wed, 31 Dec 2014 10:36:43 +0000 (02:36 -0800)]
mwifiex: do not release lock during list_for_each_entry_safe()

As we are releasing the lock, during next iteration we may end
up getting page fault if other thread has already deleted that
node.

Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: wakeup pending wait queues
Amitkumar Karwar [Wed, 31 Dec 2014 10:36:42 +0000 (02:36 -0800)]
mwifiex: wakeup pending wait queues

Wakeup pending wait queues in unload path. This will help to avoid
soft lockup issues in corner cases.

Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: add wakeup timer based recovery mechanism
Amitkumar Karwar [Wed, 31 Dec 2014 10:36:41 +0000 (02:36 -0800)]
mwifiex: add wakeup timer based recovery mechanism

If host fails to wakeup the firmware, we will trigger card reset
after 3 second timeout.

Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: increase delay during card reset
Marc Yang [Wed, 31 Dec 2014 10:36:40 +0000 (02:36 -0800)]
mwifiex: increase delay during card reset

200ms is the requirement to allow VDD1.1 and VDD1.8 to
drop to have proper reset.

Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Marc Yang <yangyang@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: Adjust calling place of mwifiex_terminate_workqueue
Marc Yang [Wed, 31 Dec 2014 10:36:39 +0000 (02:36 -0800)]
mwifiex: Adjust calling place of mwifiex_terminate_workqueue

Workqueue needs to be flushed early when removing card, otherwise
soft lockup issue may happen because main_process is triggered by
interrupt while card is being removed.

Signed-off-by: Marc Yang <yangyang@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
9 years agomwifiex: remove redundant flag MWIFIEX_HW_STATUS_FW_READY
Amitkumar Karwar [Wed, 31 Dec 2014 10:36:38 +0000 (02:36 -0800)]
mwifiex: remove redundant flag MWIFIEX_HW_STATUS_FW_READY

This flag is never set but checked at two places. We will get rid of
this code.

Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>