History log of /drivers/net/wireless/iwlwifi/mvm/coex.c
Revision Date Author Comments
d14b28fd2c61af0bf310230472e342864d799c98 22-Sep-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - update the MPLUT Boost register value

Cc: <stable@vger.kernel.org> [3.16+]
Fixes: 2adc8949efab ("iwlwifi: mvm: BT Coex - fix boost register / LUT values")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
bbab758279a14556e6ccb17b1f98935634eeb8d5 10-Sep-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: define the non shared antenna per hardware

The sharing model will differ in new hardware. Define the
non shared antenna based on the device so that different
devices can have different names for the non shared antenna.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
582de30afa13dbc20c8b654ac8f93d32dbef99ce 21-Aug-2014 Johannes Berg <johannes.berg@intel.com> iwlwifi: mvm: BT Coex - always initialize smps_mode

smps_mode is used uninitialized in a debug statement in AP
mode, so always initialize it.

While at it, fix a typo.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
787d6c1f17eae41429d35eb0f1b38f44659f5f1d 25-Jul-2014 Johannes Berg <johannes.berg@intel.com> iwlwifi: mvm: BT Coex - remove shadowing variable

The variable 'u32 mode' exists twice, the latter shadowing
the former - remove the latter since there's no need for
two variables.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
8b4139dc9f2171f313fc703c08269f6f8a6f6fc4 24-Jul-2014 Johannes Berg <johannes.berg@intel.com> iwlwifi: add Intel Mobile Communications copyright

Our legal structure changed at some point (see wikipedia), but
we forgot to immediately switch over to the new copyright
notice.

For files that we have modified in the time since the change,
add the proper copyright notice now.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
45bbb2ca1e27c79bd3cbdcec040e7daceceeabbb 07-Jul-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - don't change AP SMPS mode

Leave it to default instead - regardless of the BT activity.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
1459f269e836834494e944ea7687177932568d00 06-Jul-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - fix the ACK / CTS kill mask

According to new requirements, the ACK / CTS kill mask is
not related to reduced TX power anymore. This allows to
remove the code that tracked reduced TX power enablement
across different interfaces.
The ACK / CTS kill mask is now fetch from a table. It
depends on the Activity grading (activity from BT) and on
the Look Up Table (LUT) type.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
5fc7d86c7afd61ac8c9d468cba014c472e9c4dcb 08-Jul-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - fix TLC with old API

A copy paste issue broke the rate control when a firmware
with the old API is used.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
4c86f938d359f30a52134d3fc9945f95a3e621e2 30-Jun-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - relax constraints when TTC / RRC is active

When TxTxCo-Running is active, we can relax the constraints
on the rate control.
When RxRxCo-Running is active, we can relax the constrains
on SMPS.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
261c0ec07ecf1cc555a600315d687a94f2ee0660 11-Jun-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - add High Band retention

Tell the firmware if TTC should be enabled when switching
to High Band.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
455e7ac578a7bb325c7f09dd8386c3b347bb3e4b 21-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - convert reduced Tx power to new API

No need to send the big BT_COEX_CMD command, we have now
a much thiner command that updates only what is needed.
Adapt the code to that.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
704602a1537e3593bb46aa3a6d9b415c868f25e3 01-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - convert the co-running update to new API

No need to send the big BT_COEX_CMD command, we have now
a much thiner command that updates only what is needed.
Adapt the code to that.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
df878f38edc660e9626247724a8671c54fb6cbf7 01-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - convert the sw boost update to new API

No need to send the big BT_COEX_CMD command, we have now
a much thiner command that updates only what is needed.
Adapt the code to that, and open the patch to the updates.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
430a3bbafdc78e30307e6eacb90980f29719d91c 02-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - new API

Start the new BT Coex implementation.
Don't react to notifications for now - only the initial
configuration is implemented. The rest will happen in next
patches.
Since coex.c now uses the new the new structures in all
functions, we need to adapt the code to compile, even if it
doesn't run yet.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
0ea8d0432c09f240b8dfdec0dc0e4abaf422b838 02-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - prepare towards new API

A new API is coming. This new API is not backward
compatible. So we need to keep the old commands to be able
to work with the former API.
Move all the current code into a new file: coex_legacy.
If a firmware with the new API is detected, we currently
just bail out since the implementation of the new API will
come in future patches.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
34c8b24ff284d78f7db17d34125e2395120c471a 28-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - avoid the shared antenna for management frames

If BT is active, we need to refrain from using the shared
antenna. This logic is done in the firmware when we use the
link quality tables. But for management frames, the rate is
written in the Tx command by the driver.
Hence the driver needs to make sure not use the shared
antenna when BT is active for any frames that don't use
the rate scale table such as management frames or multicast.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
8286d9f50af6f2c97946c6026482ee607a070c99 27-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - add reduced Tx power thresholds to constants

This really belongs to the constants file.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
35fbf5d08e57cb4e7bd516781ba9499ff83688f6 02-Jun-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - don't limit rate control if TTC is on

When the firmware enables TxTxCorunning, we can lift the
constaints on the rate control.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
7fa4fa0c441835ebe78aa25496ae952177e8bb84 25-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - allow MIMO in more cases

We can Tx in MIMO rates when we are in TxTx Disallow mode
just like we can when we are in Tight mode.
Same if we are in 5Ghz regardless of the mode we are.
Change the code to allow MIMO in these cases.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
a39979a8c3e71eac72f43568b2535da60099b8e4 27-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - allow to force the antenna allocation

This can be used for testing.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
1fa477c65a404a9e5a961efcf2acd1efc5eedd04 20-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: remove debugfs hook for reduced tx power

This was not used is unlikely to be used, just kill it.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
0f618e6ed012a5447c5128a899b54d011a480924 20-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: disable reduced Tx power when not applicable

I forgot to disable the reduced Tx power in a few paths.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
4d66449a273e44b9bb1a5fc1cd5937c1905ebebe 30-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - send channel inhibition before association

The firmware needs to know on what channel we run before we
set the association bit in the MAC context. Change a bit the
flow to achieve this.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2adc8949efab1fd6e95402fc3d40596fbdecbacb 11-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - fix boost register / LUT values

These values are used to give preference to WiFi according
to a certain pattern.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
a10229271946731959b2269370d0492d88cfab23 12-May-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: remove CMD_SYNC

CMD_SYNC is really 0 which is confusing:

if (cmd.flags & CMD_SYNC) is always false.
Fix this by simply removing its definition.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
3c6acb614d841cafbcfc3d3015400b0f6849b7af 07-May-2014 Johannes Berg <johannes.berg@intel.com> iwlwifi: add missing trailing newlines to debug messages

All messages should have a trailing newline, add all the
missing ones. Also make all messages constants, replacing
the single one that pointlessly used a variable.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
0fed2bcf17d2a049c079ffd2b7bc4caca4b7f906 13-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - fix validity flags during init

The commit below introduced a bug in the validity bits in
init. Due to that, all the Coex mechanism stopped sending
kills to the BT side. Fix that.

Fixes: b9fae2d54c9f ("iwlwifi: mvm: BT Coex add support for Co-running block")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
ae397472f64d6db307edea87db27303c78670352 30-Mar-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - send priority tables from iwl_send_bt_init_conf

Calling iwl_send_bt_init_conf for INIT firmware is not a
problem, and calling iwl_send_bt_prio_tbl from
iwl_send_bt_init_conf allows us to prepare for new API.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
e78973efe76f7a9eed9d8fbd74106e51fec92c73 02-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - minor API change

The BT Coex API underwent a minor backward compatible API
change.
We now need to set an invalid value in the override fields.
While at it, add kerneldoc comments on the fields in the
command.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
8a0063a0512755bea4aa6c40a2501bbacefb2bba 02-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - don't use comma operator

This is really not needed. This is a remainder from a C99
initialiser.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2dae313f981cc911d94f7810687b2d9099869d8d 30-Mar-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: remove IWL_UCODE_TLV_FLAGS_NEWBT_COEX TLV flag

All the supported firmwares have this flag set.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
a6bc92803e7f765e02c923cf37c8e280e729642a 13-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - fix Look Up Table

A few entries were wrong and this caused throughput issues.

Cc: <stable@vger.kernel.org> [3.13+]
Fixes: dac94da8dba3 ("iwlwifi: mvm: new BT Coex API")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2fd647f85daa27d623c176f7afd087d8a843a685 13-Mar-2014 Eliad Peller <eliad@wizery.com> iwlwifi: mvm: add ATPC implementation

Implement Adaptive Tx Power Control algorithm.

ATPC basically tries to decrease the tx power
as much as possible while the throughput is
not being hurt.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
fff47eb05a287e1a47836126573a750ff9ed22dd 02-Apr-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - send the new LUT upon antenna coupling change

I forgot to send the new Look Up Table to the firmware and
I also forgot to free the command which is kzalloc'ed.
This code is relevant for 7265 device only.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
cdb00563fe2c25a782d2fc57ad1778280fbf9edb 16-Mar-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - add debugfs hook to set BT Tx priority

In order to debug the firmware, we need to be able to set
the BT priority of WiFi packets. This priority is set based
on the type of the packet (control frames, EAPOL etc...).
For debugging purposes, allow to override this priority by
a debugfs controlled value.
Enable this feature that needs this priority to be able to
test it.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
b797e3fbab399ed023bdaeaf7fb63236f67eaa1c 06-Mar-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - enable per-AC BT priority

We can now define the priority against BT per AC. This is
possible with a newer firmware that allows to define the
priority with 2 bits.
Note that this change is compatible with older firmware
since older firmware will simply ignore the new bit (11),
and we still set the old bit (12) in the same cases as
before.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
ee7bea582e9d4b7de5928628201a5763e0e4cbbe 06-Mar-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: BT Coex - classify packet priority in BT code

This code is really related to BT Coex - move it to the coex
file.
Also - prepare for a FW API change that will happen soon:
Bits 11 and 12 will be allocated for BT priority. Today, we
only have bit 12.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
5b7ff6158dc921fa9ae0c47a5a29a750d0d0ce60 11-Mar-2014 Emmanuel Grumbach <emmanuel.grumbach@intel.com> iwlwifi: mvm: make bt-coex.c generic

Make bt-coex generic to allow other coex mechanisms.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>