}
/*
- * Shows HT capability information fields.
- *
- * The following HT capability information fields are supported.
- * - Maximum AMSDU length (3839 bytes or 7935 bytes)
- * - Beam forming support
- * - Greenfield preamble support
- * - AMPDU support
- * - MIMO Power Save support
- * - Rx STBC support
- * - Tx STBC support
- * - Short GI for 20 MHz support
- * - Short GI for 40 MHz support
- * - LDPC coded packets receive support
- * - Number of delayed BA streams
- * - Number of immediate BA streams
- * - 10 MHz channel width support
- * - 20 MHz channel width support
- * - 40 MHz channel width support
- * - Presence of Tx antenna A/B/C/D
- * - Presence of Rx antenna A/B/C/D
- */
-void
-mwifiex_show_dot_11n_dev_cap(struct mwifiex_adapter *adapter, u32 cap)
-{
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Max MSDU len = %s octets\n",
- (ISSUPP_MAXAMSDU(cap) ? "7935" : "3839"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Beam forming %s\n",
- (ISSUPP_BEAMFORMING(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Greenfield preamble %s\n",
- (ISSUPP_GREENFIELD(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: AMPDU %s\n",
- (ISSUPP_AMPDU(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: MIMO Power Save %s\n",
- (ISSUPP_MIMOPS(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Rx STBC %s\n",
- (ISSUPP_RXSTBC(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Tx STBC %s\n",
- (ISSUPP_TXSTBC(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Short GI for 40 Mhz %s\n",
- (ISSUPP_SHORTGI40(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Short GI for 20 Mhz %s\n",
- (ISSUPP_SHORTGI20(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: LDPC coded packet receive %s\n",
- (ISSUPP_RXLDPC(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev,
- "info: GET_HW_SPEC: Number of Delayed Block Ack streams = %d\n",
- GET_DELAYEDBACK(cap));
- dev_dbg(adapter->dev,
- "info: GET_HW_SPEC: Number of Immediate Block Ack streams = %d\n",
- GET_IMMEDIATEBACK(cap));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: 40 Mhz channel width %s\n",
- (ISSUPP_CHANWIDTH40(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: 20 Mhz channel width %s\n",
- (ISSUPP_CHANWIDTH20(cap) ? "supported" : "not supported"));
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: 10 Mhz channel width %s\n",
- (ISSUPP_CHANWIDTH10(cap) ? "supported" : "not supported"));
-
- if (ISSUPP_RXANTENNAA(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Rx antennea A\n");
-
- if (ISSUPP_RXANTENNAB(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Rx antennea B\n");
-
- if (ISSUPP_RXANTENNAC(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Rx antennea C\n");
-
- if (ISSUPP_RXANTENNAD(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Rx antennea D\n");
-
- if (ISSUPP_TXANTENNAA(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Tx antennea A\n");
-
- if (ISSUPP_TXANTENNAB(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Tx antennea B\n");
-
- if (ISSUPP_TXANTENNAC(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Tx antennea C\n");
-
- if (ISSUPP_TXANTENNAD(cap))
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: Prescence of Tx antennea D\n");
-
- return;
-}
-
-/*
- * Shows HT MCS support field.
- */
-void
-mwifiex_show_dev_mcs_support(struct mwifiex_adapter *adapter, u8 support)
-{
- dev_dbg(adapter->dev, "info: GET_HW_SPEC: MCSs for %dx%d MIMO\n",
- GET_RXMCSSUPP(support), GET_TXMCSSUPP(support));
- return;
-}
-
-/*
* This function returns the pointer to an entry in BA Stream
* table which matches the requested BA status.
*/
#define DEFAULT_11N_CAP_MASK (HWSPEC_SHORTGI20_SUPP | HWSPEC_RXSTBC_SUPP)
#define ISSUPP_11NENABLED(FwCapInfo) (FwCapInfo & BIT(11))
-#define ISSUPP_MAXAMSDU(Dot11nDevCap) (Dot11nDevCap & BIT(31))
-#define ISSUPP_BEAMFORMING(Dot11nDevCap) (Dot11nDevCap & BIT(30))
#define ISSUPP_GREENFIELD(Dot11nDevCap) (Dot11nDevCap & BIT(29))
-#define ISSUPP_AMPDU(Dot11nDevCap) (Dot11nDevCap & BIT(28))
-#define ISSUPP_MIMOPS(Dot11nDevCap) (Dot11nDevCap & BIT(27))
#define ISSUPP_RXSTBC(Dot11nDevCap) (Dot11nDevCap & BIT(26))
#define ISSUPP_TXSTBC(Dot11nDevCap) (Dot11nDevCap & BIT(25))
#define ISSUPP_SHORTGI40(Dot11nDevCap) (Dot11nDevCap & BIT(24))
#define ISSUPP_SHORTGI20(Dot11nDevCap) (Dot11nDevCap & BIT(23))
-#define ISSUPP_RXLDPC(Dot11nDevCap) (Dot11nDevCap & BIT(22))
#define GET_DELAYEDBACK(Dot11nDevCap) (((Dot11nDevCap >> 20) & 0x03))
-#define GET_IMMEDIATEBACK(Dot11nDevCap) (((Dot11nDevCap >> 18) & 0x03))
#define ISSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap & BIT(17))
-#define ISSUPP_CHANWIDTH20(Dot11nDevCap) (Dot11nDevCap & BIT(16))
-#define ISSUPP_CHANWIDTH10(Dot11nDevCap) (Dot11nDevCap & BIT(15))
#define ISENABLED_40MHZ_INTOLARENT(Dot11nDevCap) (Dot11nDevCap & BIT(8))
-#define ISSUPP_RXANTENNAD(Dot11nDevCap) (Dot11nDevCap & BIT(7))
-#define ISSUPP_RXANTENNAC(Dot11nDevCap) (Dot11nDevCap & BIT(6))
-#define ISSUPP_RXANTENNAB(Dot11nDevCap) (Dot11nDevCap & BIT(5))
-#define ISSUPP_RXANTENNAA(Dot11nDevCap) (Dot11nDevCap & BIT(4))
-#define ISSUPP_TXANTENNAD(Dot11nDevCap) (Dot11nDevCap & BIT(3))
-#define ISSUPP_TXANTENNAC(Dot11nDevCap) (Dot11nDevCap & BIT(2))
-#define ISSUPP_TXANTENNAB(Dot11nDevCap) (Dot11nDevCap & BIT(1))
-#define ISSUPP_TXANTENNAA(Dot11nDevCap) (Dot11nDevCap & BIT(0))
#define SETSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap |= BIT(17))
#define RESETSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap &= ~BIT(17))
#define GET_TXMCSSUPP(DevMCSSupported) (DevMCSSupported >> 4)