qcacld-3.0: Dynamic antenna switch in disconnected/station mode feature

Functionality for switching antenna mode (TX/RX chains)
from 1x1 to 2x2 and vice versa dynamically without reloading
the driver. This feature is currently supported in the
disconnected state where only scan operation can happen and
standalone station mode.

The changes include the following:
1. Driver command IOCTL to set/get antenna mode as follows
DRIVER SETANTENNAMODE <# of streams>
DRIVER GETANTENNAMODE

2. Processing SETANTENNAMODE and GETANTENNAMODE to dynamically
change the number of TX/RX chains as follows

Dynamic switch request is allowed only when the supported
number of chains in the system is greater than 1.

Dynamic antenna switch is achieved by sending
WMI_PDEV_SET_ANTENNA_MODE command to the FW chain mask
manager with parameters to change the number of TX/RX chains.
This request will be maintained by the chain mask
manager and applied whenever only one MAC is active.

If there is a station association followed by dynamic switch
to 1x1 mode then SM power save IE is included in the HT caps
of the association/reassociation request management frame.

Dynamic switch in the connected standalone station mode is
achieved by sending SMPS force mode command with appropriate
values for smps mode by the chain mask manager.

Change-Id: I65d51d173a627dc2751ef10cc2172a5215e7b8db
CRs-Fixed: 931250
2 files changed
tree: 1d2147c8d3670f1e07ec4ef735b6008046294a75
  1. config/
  2. core/
  3. target/
  4. uapi/
  5. Android.mk
  6. Kbuild
  7. Kconfig
  8. Makefile
  9. README.txt