All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/3] ath10k: Add ath10k-ct firmware feature flags and descriptions.
@ 2018-05-14 15:52 ` greearb
  0 siblings, 0 replies; 8+ messages in thread
From: greearb @ 2018-05-14 15:52 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless, Ben Greear

From: Ben Greear <greearb@candelatech.com>

These feature flags are used by ath10k-ct firmware.  Add these
so we can use them in future patches and so there are no warnings
about feature flags on loading ath10k-ct firmware.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
v2:  Fix warings typo in description.

 drivers/net/wireless/ath/ath10k/core.c | 17 +++++++++
 drivers/net/wireless/ath/ath10k/core.h | 67 ++++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+)

diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index 4cf54a7..f2f8f61 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -552,6 +552,23 @@ static const char *const ath10k_core_fw_feature_str[] = {
 	[ATH10K_FW_FEATURE_NO_PS] = "no-ps",
 	[ATH10K_FW_FEATURE_MGMT_TX_BY_REF] = "mgmt-tx-by-reference",
 	[ATH10K_FW_FEATURE_NON_BMI] = "non-bmi",
+	[ATH10K_FW_FEATURE_WMI_10X_CT] = "wmi-10.x-CT",
+	[ATH10K_FW_FEATURE_CT_RXSWCRYPT] = "rxswcrypt-CT",
+	[ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK] = "txstatus-noack",
+	[ATH10K_FW_FEATURE_CT_RATEMASK] = "ratemask-CT",
+	[ATH10K_FW_FEATURE_HAS_SAFE_BURST] = "safe-burst",
+	[ATH10K_FW_FEATURE_REGDUMP_CT] = "regdump-CT",
+	[ATH10K_FW_FEATURE_TXRATE_CT] = "txrate-CT",
+	[ATH10K_FW_FEATURE_FLUSH_ALL_CT] = "flush-all-CT",
+	[ATH10K_FW_FEATURE_PINGPONG_READ_CT] = "pingpong-CT",
+	[ATH10K_FW_FEATURE_SKIP_CH_RES_CT] = "ch-regs-CT",
+	[ATH10K_FW_FEATURE_NOP_CT] = "nop-CT",
+	[ATH10K_FW_FEATURE_HTT_MGT_CT] = "htt-mgt-CT",
+	[ATH10K_FW_FEATURE_SET_SPECIAL_CT] = "set-special-CT",
+	[ATH10K_FW_FEATURE_NO_BMISS_CT] = "no-bmiss-CT",
+	[ATH10K_FW_FEATURE_HAS_GET_TEMP_CT] = "get-temp-CT",
+	[ATH10K_FW_FEATURE_HAS_TX_RC_CT] = "tx-rc-CT",
+	[ATH10K_FW_FEATURE_CUST_STATS_CT] = "cust-stats-CT",
 };
 
 static unsigned int ath10k_core_get_fw_feature_str(char *buf,
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index e4ac8f2..c1342c5 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -711,6 +711,73 @@ enum ath10k_fw_features {
 	/* Firmware load is done externally, not by bmi */
 	ATH10K_FW_FEATURE_NON_BMI = 19,
 
+	/* tx-status has the noack bits (CT firmware version 14 and higher ) */
+	ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK = 30,
+
+	/* Firmware from Candela Technologies, enables more VIFs, etc */
+	ATH10K_FW_FEATURE_WMI_10X_CT = 31,
+
+	/* Firmware from Candela Technologies with rx-software-crypt.
+	 * Required for multiple stations connected to same AP when using
+	 * encryption (ie, commercial version of CT firmware)
+	 */
+	ATH10K_FW_FEATURE_CT_RXSWCRYPT = 32,
+
+	/* Firmware supports extended wmi_common_peer_assoc_complete_cmd that
+	 * contains an array of rate-disable masks.  This allows the host to
+	 * have better control over what rates the firmware will use.  CT
+	 * Firmware only (v15 and higher)
+	 */
+	ATH10K_FW_FEATURE_CT_RATEMASK = 33,
+
+	/* Versions of firmware before approximately 10.2.4.72 would corrupt
+	 * txop fields during burst.  Since this is fixed now, add a flag to
+	 * denote this.
+	 */
+	ATH10K_FW_FEATURE_HAS_SAFE_BURST = 34,
+
+	/* Register-dump is supported. */
+	ATH10K_FW_FEATURE_REGDUMP_CT = 35,
+
+	/* TX-Rate is reported. */
+	ATH10K_FW_FEATURE_TXRATE_CT = 36,
+
+	/* Firmware can flush all peers. */
+	ATH10K_FW_FEATURE_FLUSH_ALL_CT = 37,
+
+	/* Firmware can read memory with ping-pong protocol. */
+	ATH10K_FW_FEATURE_PINGPONG_READ_CT = 38,
+
+	/* Firmware can skip channel reservation. */
+	ATH10K_FW_FEATURE_SKIP_CH_RES_CT = 39,
+
+	/* Firmware supports NOP keep-alive message. */
+	ATH10K_FW_FEATURE_NOP_CT = 40,
+
+	/* Firmware supports CT HTT MGT feature. */
+	ATH10K_FW_FEATURE_HTT_MGT_CT = 41,
+
+	/* Set-special cmd-id is supported. */
+	ATH10K_FW_FEATURE_SET_SPECIAL_CT = 42,
+
+	/* SW Beacon Miss is disabled in this kernel, so you have to
+	 * let mac80211 manage the connection.
+	 */
+	ATH10K_FW_FEATURE_NO_BMISS_CT = 43,
+
+	/* 10.1 firmware that supports getting temperature.  Stock
+	 * 10.1 cannot.
+	 */
+	ATH10K_FW_FEATURE_HAS_GET_TEMP_CT = 44,
+
+	/* Can peer-id be over-ridden to provide rix + retries for raw pkts?
+	 *  CT only option.
+	 */
+	ATH10K_FW_FEATURE_HAS_TX_RC_CT = 45,
+
+	/* Do we support requesting custom stats */
+	ATH10K_FW_FEATURE_CUST_STATS_CT = 46,
+
 	/* keep last */
 	ATH10K_FW_FEATURE_COUNT,
 };
-- 
2.4.11

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 1/3] ath10k: Add ath10k-ct firmware feature flags and descriptions.
@ 2018-05-14 15:52 ` greearb
  0 siblings, 0 replies; 8+ messages in thread
From: greearb @ 2018-05-14 15:52 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless, Ben Greear

From: Ben Greear <greearb@candelatech.com>

These feature flags are used by ath10k-ct firmware.  Add these
so we can use them in future patches and so there are no warnings
about feature flags on loading ath10k-ct firmware.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
v2:  Fix warings typo in description.

 drivers/net/wireless/ath/ath10k/core.c | 17 +++++++++
 drivers/net/wireless/ath/ath10k/core.h | 67 ++++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+)

diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index 4cf54a7..f2f8f61 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -552,6 +552,23 @@ static const char *const ath10k_core_fw_feature_str[] = {
 	[ATH10K_FW_FEATURE_NO_PS] = "no-ps",
 	[ATH10K_FW_FEATURE_MGMT_TX_BY_REF] = "mgmt-tx-by-reference",
 	[ATH10K_FW_FEATURE_NON_BMI] = "non-bmi",
+	[ATH10K_FW_FEATURE_WMI_10X_CT] = "wmi-10.x-CT",
+	[ATH10K_FW_FEATURE_CT_RXSWCRYPT] = "rxswcrypt-CT",
+	[ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK] = "txstatus-noack",
+	[ATH10K_FW_FEATURE_CT_RATEMASK] = "ratemask-CT",
+	[ATH10K_FW_FEATURE_HAS_SAFE_BURST] = "safe-burst",
+	[ATH10K_FW_FEATURE_REGDUMP_CT] = "regdump-CT",
+	[ATH10K_FW_FEATURE_TXRATE_CT] = "txrate-CT",
+	[ATH10K_FW_FEATURE_FLUSH_ALL_CT] = "flush-all-CT",
+	[ATH10K_FW_FEATURE_PINGPONG_READ_CT] = "pingpong-CT",
+	[ATH10K_FW_FEATURE_SKIP_CH_RES_CT] = "ch-regs-CT",
+	[ATH10K_FW_FEATURE_NOP_CT] = "nop-CT",
+	[ATH10K_FW_FEATURE_HTT_MGT_CT] = "htt-mgt-CT",
+	[ATH10K_FW_FEATURE_SET_SPECIAL_CT] = "set-special-CT",
+	[ATH10K_FW_FEATURE_NO_BMISS_CT] = "no-bmiss-CT",
+	[ATH10K_FW_FEATURE_HAS_GET_TEMP_CT] = "get-temp-CT",
+	[ATH10K_FW_FEATURE_HAS_TX_RC_CT] = "tx-rc-CT",
+	[ATH10K_FW_FEATURE_CUST_STATS_CT] = "cust-stats-CT",
 };
 
 static unsigned int ath10k_core_get_fw_feature_str(char *buf,
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index e4ac8f2..c1342c5 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -711,6 +711,73 @@ enum ath10k_fw_features {
 	/* Firmware load is done externally, not by bmi */
 	ATH10K_FW_FEATURE_NON_BMI = 19,
 
+	/* tx-status has the noack bits (CT firmware version 14 and higher ) */
+	ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK = 30,
+
+	/* Firmware from Candela Technologies, enables more VIFs, etc */
+	ATH10K_FW_FEATURE_WMI_10X_CT = 31,
+
+	/* Firmware from Candela Technologies with rx-software-crypt.
+	 * Required for multiple stations connected to same AP when using
+	 * encryption (ie, commercial version of CT firmware)
+	 */
+	ATH10K_FW_FEATURE_CT_RXSWCRYPT = 32,
+
+	/* Firmware supports extended wmi_common_peer_assoc_complete_cmd that
+	 * contains an array of rate-disable masks.  This allows the host to
+	 * have better control over what rates the firmware will use.  CT
+	 * Firmware only (v15 and higher)
+	 */
+	ATH10K_FW_FEATURE_CT_RATEMASK = 33,
+
+	/* Versions of firmware before approximately 10.2.4.72 would corrupt
+	 * txop fields during burst.  Since this is fixed now, add a flag to
+	 * denote this.
+	 */
+	ATH10K_FW_FEATURE_HAS_SAFE_BURST = 34,
+
+	/* Register-dump is supported. */
+	ATH10K_FW_FEATURE_REGDUMP_CT = 35,
+
+	/* TX-Rate is reported. */
+	ATH10K_FW_FEATURE_TXRATE_CT = 36,
+
+	/* Firmware can flush all peers. */
+	ATH10K_FW_FEATURE_FLUSH_ALL_CT = 37,
+
+	/* Firmware can read memory with ping-pong protocol. */
+	ATH10K_FW_FEATURE_PINGPONG_READ_CT = 38,
+
+	/* Firmware can skip channel reservation. */
+	ATH10K_FW_FEATURE_SKIP_CH_RES_CT = 39,
+
+	/* Firmware supports NOP keep-alive message. */
+	ATH10K_FW_FEATURE_NOP_CT = 40,
+
+	/* Firmware supports CT HTT MGT feature. */
+	ATH10K_FW_FEATURE_HTT_MGT_CT = 41,
+
+	/* Set-special cmd-id is supported. */
+	ATH10K_FW_FEATURE_SET_SPECIAL_CT = 42,
+
+	/* SW Beacon Miss is disabled in this kernel, so you have to
+	 * let mac80211 manage the connection.
+	 */
+	ATH10K_FW_FEATURE_NO_BMISS_CT = 43,
+
+	/* 10.1 firmware that supports getting temperature.  Stock
+	 * 10.1 cannot.
+	 */
+	ATH10K_FW_FEATURE_HAS_GET_TEMP_CT = 44,
+
+	/* Can peer-id be over-ridden to provide rix + retries for raw pkts?
+	 *  CT only option.
+	 */
+	ATH10K_FW_FEATURE_HAS_TX_RC_CT = 45,
+
+	/* Do we support requesting custom stats */
+	ATH10K_FW_FEATURE_CUST_STATS_CT = 46,
+
 	/* keep last */
 	ATH10K_FW_FEATURE_COUNT,
 };
-- 
2.4.11


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/3] ath10k:  Don't try un-supported idle_ps_config command.
  2018-05-14 15:52 ` greearb
@ 2018-05-14 15:52   ` greearb
  -1 siblings, 0 replies; 8+ messages in thread
From: greearb @ 2018-05-14 15:52 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless, Ben Greear

From: Ben Greear <greearb@candelatech.com>

The warning the the logs does not give user a clue as to what
command is failing, so it is worth it to check for un-supported
command before trying the call.

And add return-code to survey error message.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
 drivers/net/wireless/ath/ath10k/mac.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 3d7119a..1185d0c2 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -4680,10 +4680,13 @@ static int ath10k_start(struct ieee80211_hw *hw)
 	}
 
 	param = ar->wmi.pdev_param->idle_ps_config;
-	ret = ath10k_wmi_pdev_set_param(ar, param, 1);
-	if (ret && ret != -EOPNOTSUPP) {
-		ath10k_warn(ar, "failed to enable idle_ps_config: %d\n", ret);
-		goto err_core_stop;
+	if (param != WMI_PDEV_PARAM_UNSUPPORTED) {
+		ret = ath10k_wmi_pdev_set_param(ar, param, 1);
+		if (ret) {
+			ath10k_warn(ar, "failed to enable idle_ps_config: %d\n",
+				    ret);
+			goto err_core_stop;
+		}
 	}
 
 	__ath10k_set_antenna(ar, ar->cfg_tx_chainmask, ar->cfg_rx_chainmask);
@@ -6770,7 +6773,8 @@ ath10k_mac_update_bss_chan_survey(struct ath10k *ar,
 
 	ret = ath10k_wmi_pdev_bss_chan_info_request(ar, type);
 	if (ret) {
-		ath10k_warn(ar, "failed to send pdev bss chan info request\n");
+		ath10k_warn(ar, "failed to send pdev bss chan info request: %d\n",
+			    ret);
 		return;
 	}
 
-- 
2.4.11

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/3] ath10k: Don't try un-supported idle_ps_config command.
@ 2018-05-14 15:52   ` greearb
  0 siblings, 0 replies; 8+ messages in thread
From: greearb @ 2018-05-14 15:52 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless, Ben Greear

From: Ben Greear <greearb@candelatech.com>

The warning the the logs does not give user a clue as to what
command is failing, so it is worth it to check for un-supported
command before trying the call.

And add return-code to survey error message.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
 drivers/net/wireless/ath/ath10k/mac.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 3d7119a..1185d0c2 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -4680,10 +4680,13 @@ static int ath10k_start(struct ieee80211_hw *hw)
 	}
 
 	param = ar->wmi.pdev_param->idle_ps_config;
-	ret = ath10k_wmi_pdev_set_param(ar, param, 1);
-	if (ret && ret != -EOPNOTSUPP) {
-		ath10k_warn(ar, "failed to enable idle_ps_config: %d\n", ret);
-		goto err_core_stop;
+	if (param != WMI_PDEV_PARAM_UNSUPPORTED) {
+		ret = ath10k_wmi_pdev_set_param(ar, param, 1);
+		if (ret) {
+			ath10k_warn(ar, "failed to enable idle_ps_config: %d\n",
+				    ret);
+			goto err_core_stop;
+		}
 	}
 
 	__ath10k_set_antenna(ar, ar->cfg_tx_chainmask, ar->cfg_rx_chainmask);
@@ -6770,7 +6773,8 @@ ath10k_mac_update_bss_chan_survey(struct ath10k *ar,
 
 	ret = ath10k_wmi_pdev_bss_chan_info_request(ar, type);
 	if (ret) {
-		ath10k_warn(ar, "failed to send pdev bss chan info request\n");
+		ath10k_warn(ar, "failed to send pdev bss chan info request: %d\n",
+			    ret);
 		return;
 	}
 
-- 
2.4.11


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/3] ath10k:  Support survey dump for ath10k-ct 10.1 firmware.
  2018-05-14 15:52 ` greearb
@ 2018-05-14 15:52   ` greearb
  -1 siblings, 0 replies; 8+ messages in thread
From: greearb @ 2018-05-14 15:52 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless, Ben Greear

From: Ben Greear <greearb@candelatech.com>

Recent ath10k-ct 10.1 firmware supports survey results, and
advertises the appropriate service flags.  This confuses
the ath10k driver because the 10.1 wmi commands are not set up
for survey information.  So, this patch adds support for
handling survey information.  Example output:

Survey data from wlan0
	frequency:			5180 MHz [in use]
	noise:				-97 dBm
	channel active time:		44 ms
	channel busy time:		15 ms
	channel receive time:		7 ms
	channel transmit time:		7 ms
Survey data from wlan0
	frequency:			5200 MHz
	noise:				-98 dBm
	channel active time:		46 ms
	channel busy time:		2 ms
...

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
 drivers/net/wireless/ath/ath10k/wmi.c | 54 +++++++++++++++++++++++++++++++----
 drivers/net/wireless/ath/ath10k/wmi.h |  8 ++++++
 2 files changed, 56 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index df2e92a..3497873 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -365,7 +365,8 @@ static struct wmi_cmd_map wmi_10x_cmd_map = {
 	.vdev_filter_neighbor_rx_packets_cmdid = WMI_CMD_UNSUPPORTED,
 	.mu_cal_start_cmdid = WMI_CMD_UNSUPPORTED,
 	.set_cca_params_cmdid = WMI_CMD_UNSUPPORTED,
-	.pdev_bss_chan_info_request_cmdid = WMI_CMD_UNSUPPORTED,
+	.pdev_bss_chan_info_request_cmdid =
+		WMI_10_2_PDEV_BSS_CHAN_INFO_REQUEST_CMDID,
 	.pdev_get_tpc_table_cmdid = WMI_CMD_UNSUPPORTED,
 };
 
@@ -2830,9 +2831,15 @@ static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar,
 	for (i = 0; i < num_peer_stats; i++) {
 		const struct wmi_10x_peer_stats *src;
 		struct ath10k_fw_stats_peer *dst;
+		int stats_len;
+
+		if (test_bit(WMI_SERVICE_PEER_STATS, ar->wmi.svc_map))
+			stats_len = sizeof(struct wmi_10x_peer_stats_ct_ext);
+		else
+			stats_len = sizeof(*src);
 
 		src = (void *)skb->data;
-		if (!skb_pull(skb, sizeof(*src)))
+		if (!skb_pull(skb, stats_len))
 			return -EPROTO;
 
 		dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
@@ -2843,6 +2850,12 @@ static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar,
 
 		dst->peer_rx_rate = __le32_to_cpu(src->peer_rx_rate);
 
+		if (ath10k_peer_stats_enabled(ar)) {
+			struct wmi_10x_peer_stats_ct_ext *src2 = (void *)(src);
+
+			dst->rx_duration = __le32_to_cpu(src2->rx_duration);
+		}
+
 		list_add_tail(&dst->list, &stats->peers);
 	}
 
@@ -5488,7 +5501,7 @@ static void ath10k_wmi_op_rx(struct ath10k *ar, struct sk_buff *skb)
 		ath10k_wmi_event_service_available(ar, skb);
 		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (main) eventid: %d\n", id);
 		break;
 	}
 
@@ -5618,8 +5631,11 @@ static void ath10k_wmi_10_1_op_rx(struct ath10k *ar, struct sk_buff *skb)
 	case WMI_10X_PDEV_UTF_EVENTID:
 		/* ignore utf events */
 		break;
+	case WMI_10_1_PDEV_BSS_CHAN_INFO_EVENTID: /* Newer CT 10.1 firmware */
+		ath10k_wmi_event_pdev_bss_chan_info(ar, skb);
+		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (10.1) eventid: %d\n", id);
 		break;
 	}
 
@@ -5765,7 +5781,7 @@ static void ath10k_wmi_10_2_op_rx(struct ath10k *ar, struct sk_buff *skb)
 			   "received event id %d not implemented\n", id);
 		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (10.2) eventid: %d\n", id);
 		break;
 	}
 
@@ -5879,7 +5895,7 @@ static void ath10k_wmi_10_4_op_rx(struct ath10k *ar, struct sk_buff *skb)
 		ath10k_wmi_event_tpc_final_table(ar, skb);
 		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (10.4) eventid: %d\n", id);
 		break;
 	}
 
@@ -6174,6 +6190,26 @@ static struct sk_buff *ath10k_wmi_10_1_op_gen_init(struct ath10k *ar)
 	config.num_msdu_desc = __cpu_to_le32(TARGET_10X_NUM_MSDU_DESC);
 	config.max_frag_entries = __cpu_to_le32(TARGET_10X_MAX_FRAG_ENTRIES);
 
+	if (test_bit(ATH10K_FW_FEATURE_WMI_10X_CT,
+		     ar->running_fw->fw_file.fw_features)) {
+		u32 features = 0;
+
+		if (test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags) &&
+		    test_bit(WMI_SERVICE_COEX_GPIO, ar->wmi.svc_map))
+			features |= WMI_10_2_COEX_GPIO;
+
+		if (ath10k_peer_stats_enabled(ar))
+			features |= WMI_10_2_PEER_STATS;
+
+		if (test_bit(WMI_SERVICE_BSS_CHANNEL_INFO_64, ar->wmi.svc_map))
+			features |= WMI_10_2_BSS_CHAN_INFO;
+
+		/* CT firmware uses high 8 bits of rx_decap_mode to pass the
+		 * features flags
+		 */
+		config.rx_decap_mode |= __cpu_to_le32(features << 24);
+	}
+
 	len = sizeof(*cmd) +
 	      (sizeof(struct host_memory_chunk) * ar->wmi.num_mem_chunks);
 
@@ -8642,6 +8678,12 @@ static const struct wmi_ops wmi_10_1_ops = {
 	/* .gen_p2p_go_bcn_ie not implemented */
 	/* .gen_adaptive_qcs not implemented */
 	/* .gen_pdev_enable_adaptive_cca not implemented */
+
+	/* Some CT 10.1 firmware supports this.  Non-CT 10.1 firmware will not
+	 * advertise WMI_SERVICE_BSS_CHANNEL_INFO_64, so it will never be called
+	 * in the first place.
+	 */
+	.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
 };
 
 static const struct wmi_ops wmi_10_2_ops = {
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h
index 16a3924..645da12 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -1463,6 +1463,8 @@ enum wmi_10x_event_id {
 	WMI_10X_PDEV_TPC_CONFIG_EVENTID,
 
 	WMI_10X_GPIO_INPUT_EVENTID,
+
+	WMI_10_1_PDEV_BSS_CHAN_INFO_EVENTID = 36900, /* Newer CT firmware */
 	WMI_10X_PDEV_UTF_EVENTID = WMI_10X_END_EVENTID - 1,
 };
 
@@ -4616,6 +4618,12 @@ struct wmi_10x_peer_stats {
 	__le32 peer_rx_rate;
 } __packed;
 
+struct wmi_10x_peer_stats_ct_ext {
+	struct wmi_peer_stats old;
+	__le32 peer_rx_rate;
+	__le32 rx_duration;
+} __packed;
+
 struct wmi_10_2_peer_stats {
 	struct wmi_peer_stats old;
 	__le32 peer_rx_rate;
-- 
2.4.11

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/3] ath10k: Support survey dump for ath10k-ct 10.1 firmware.
@ 2018-05-14 15:52   ` greearb
  0 siblings, 0 replies; 8+ messages in thread
From: greearb @ 2018-05-14 15:52 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless, Ben Greear

From: Ben Greear <greearb@candelatech.com>

Recent ath10k-ct 10.1 firmware supports survey results, and
advertises the appropriate service flags.  This confuses
the ath10k driver because the 10.1 wmi commands are not set up
for survey information.  So, this patch adds support for
handling survey information.  Example output:

Survey data from wlan0
	frequency:			5180 MHz [in use]
	noise:				-97 dBm
	channel active time:		44 ms
	channel busy time:		15 ms
	channel receive time:		7 ms
	channel transmit time:		7 ms
Survey data from wlan0
	frequency:			5200 MHz
	noise:				-98 dBm
	channel active time:		46 ms
	channel busy time:		2 ms
...

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
 drivers/net/wireless/ath/ath10k/wmi.c | 54 +++++++++++++++++++++++++++++++----
 drivers/net/wireless/ath/ath10k/wmi.h |  8 ++++++
 2 files changed, 56 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index df2e92a..3497873 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -365,7 +365,8 @@ static struct wmi_cmd_map wmi_10x_cmd_map = {
 	.vdev_filter_neighbor_rx_packets_cmdid = WMI_CMD_UNSUPPORTED,
 	.mu_cal_start_cmdid = WMI_CMD_UNSUPPORTED,
 	.set_cca_params_cmdid = WMI_CMD_UNSUPPORTED,
-	.pdev_bss_chan_info_request_cmdid = WMI_CMD_UNSUPPORTED,
+	.pdev_bss_chan_info_request_cmdid =
+		WMI_10_2_PDEV_BSS_CHAN_INFO_REQUEST_CMDID,
 	.pdev_get_tpc_table_cmdid = WMI_CMD_UNSUPPORTED,
 };
 
@@ -2830,9 +2831,15 @@ static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar,
 	for (i = 0; i < num_peer_stats; i++) {
 		const struct wmi_10x_peer_stats *src;
 		struct ath10k_fw_stats_peer *dst;
+		int stats_len;
+
+		if (test_bit(WMI_SERVICE_PEER_STATS, ar->wmi.svc_map))
+			stats_len = sizeof(struct wmi_10x_peer_stats_ct_ext);
+		else
+			stats_len = sizeof(*src);
 
 		src = (void *)skb->data;
-		if (!skb_pull(skb, sizeof(*src)))
+		if (!skb_pull(skb, stats_len))
 			return -EPROTO;
 
 		dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
@@ -2843,6 +2850,12 @@ static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar,
 
 		dst->peer_rx_rate = __le32_to_cpu(src->peer_rx_rate);
 
+		if (ath10k_peer_stats_enabled(ar)) {
+			struct wmi_10x_peer_stats_ct_ext *src2 = (void *)(src);
+
+			dst->rx_duration = __le32_to_cpu(src2->rx_duration);
+		}
+
 		list_add_tail(&dst->list, &stats->peers);
 	}
 
@@ -5488,7 +5501,7 @@ static void ath10k_wmi_op_rx(struct ath10k *ar, struct sk_buff *skb)
 		ath10k_wmi_event_service_available(ar, skb);
 		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (main) eventid: %d\n", id);
 		break;
 	}
 
@@ -5618,8 +5631,11 @@ static void ath10k_wmi_10_1_op_rx(struct ath10k *ar, struct sk_buff *skb)
 	case WMI_10X_PDEV_UTF_EVENTID:
 		/* ignore utf events */
 		break;
+	case WMI_10_1_PDEV_BSS_CHAN_INFO_EVENTID: /* Newer CT 10.1 firmware */
+		ath10k_wmi_event_pdev_bss_chan_info(ar, skb);
+		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (10.1) eventid: %d\n", id);
 		break;
 	}
 
@@ -5765,7 +5781,7 @@ static void ath10k_wmi_10_2_op_rx(struct ath10k *ar, struct sk_buff *skb)
 			   "received event id %d not implemented\n", id);
 		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (10.2) eventid: %d\n", id);
 		break;
 	}
 
@@ -5879,7 +5895,7 @@ static void ath10k_wmi_10_4_op_rx(struct ath10k *ar, struct sk_buff *skb)
 		ath10k_wmi_event_tpc_final_table(ar, skb);
 		break;
 	default:
-		ath10k_warn(ar, "Unknown eventid: %d\n", id);
+		ath10k_warn(ar, "Unknown (10.4) eventid: %d\n", id);
 		break;
 	}
 
@@ -6174,6 +6190,26 @@ static struct sk_buff *ath10k_wmi_10_1_op_gen_init(struct ath10k *ar)
 	config.num_msdu_desc = __cpu_to_le32(TARGET_10X_NUM_MSDU_DESC);
 	config.max_frag_entries = __cpu_to_le32(TARGET_10X_MAX_FRAG_ENTRIES);
 
+	if (test_bit(ATH10K_FW_FEATURE_WMI_10X_CT,
+		     ar->running_fw->fw_file.fw_features)) {
+		u32 features = 0;
+
+		if (test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags) &&
+		    test_bit(WMI_SERVICE_COEX_GPIO, ar->wmi.svc_map))
+			features |= WMI_10_2_COEX_GPIO;
+
+		if (ath10k_peer_stats_enabled(ar))
+			features |= WMI_10_2_PEER_STATS;
+
+		if (test_bit(WMI_SERVICE_BSS_CHANNEL_INFO_64, ar->wmi.svc_map))
+			features |= WMI_10_2_BSS_CHAN_INFO;
+
+		/* CT firmware uses high 8 bits of rx_decap_mode to pass the
+		 * features flags
+		 */
+		config.rx_decap_mode |= __cpu_to_le32(features << 24);
+	}
+
 	len = sizeof(*cmd) +
 	      (sizeof(struct host_memory_chunk) * ar->wmi.num_mem_chunks);
 
@@ -8642,6 +8678,12 @@ static const struct wmi_ops wmi_10_1_ops = {
 	/* .gen_p2p_go_bcn_ie not implemented */
 	/* .gen_adaptive_qcs not implemented */
 	/* .gen_pdev_enable_adaptive_cca not implemented */
+
+	/* Some CT 10.1 firmware supports this.  Non-CT 10.1 firmware will not
+	 * advertise WMI_SERVICE_BSS_CHANNEL_INFO_64, so it will never be called
+	 * in the first place.
+	 */
+	.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
 };
 
 static const struct wmi_ops wmi_10_2_ops = {
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h
index 16a3924..645da12 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -1463,6 +1463,8 @@ enum wmi_10x_event_id {
 	WMI_10X_PDEV_TPC_CONFIG_EVENTID,
 
 	WMI_10X_GPIO_INPUT_EVENTID,
+
+	WMI_10_1_PDEV_BSS_CHAN_INFO_EVENTID = 36900, /* Newer CT firmware */
 	WMI_10X_PDEV_UTF_EVENTID = WMI_10X_END_EVENTID - 1,
 };
 
@@ -4616,6 +4618,12 @@ struct wmi_10x_peer_stats {
 	__le32 peer_rx_rate;
 } __packed;
 
+struct wmi_10x_peer_stats_ct_ext {
+	struct wmi_peer_stats old;
+	__le32 peer_rx_rate;
+	__le32 rx_duration;
+} __packed;
+
 struct wmi_10_2_peer_stats {
 	struct wmi_peer_stats old;
 	__le32 peer_rx_rate;
-- 
2.4.11


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/3] ath10k: Add ath10k-ct firmware feature flags and descriptions.
  2018-05-14 15:52 ` greearb
@ 2018-07-13 17:16   ` Ben Greear
  -1 siblings, 0 replies; 8+ messages in thread
From: Ben Greear @ 2018-07-13 17:16 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless

On 05/14/2018 08:52 AM, greearb@candelatech.com wrote:
> From: Ben Greear <greearb@candelatech.com>
>
> These feature flags are used by ath10k-ct firmware.  Add these
> so we can use them in future patches and so there are no warnings
> about feature flags on loading ath10k-ct firmware.

Hello Kalle,

Any chance you could apply this series?  It has been sitting in patchwork in
new state with no feedback for months (last I checked).

I've plenty more patches after this to provide better support for my
firmware, and some of it will probably also be useful for stock firmware.

If I can get these initial patches in, I'll cook up some more and post
them.

Thanks,
Ben

>
> Signed-off-by: Ben Greear <greearb@candelatech.com>
> ---
> v2:  Fix warings typo in description.
>
>  drivers/net/wireless/ath/ath10k/core.c | 17 +++++++++
>  drivers/net/wireless/ath/ath10k/core.h | 67 ++++++++++++++++++++++++++++++++++
>  2 files changed, 84 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
> index 4cf54a7..f2f8f61 100644
> --- a/drivers/net/wireless/ath/ath10k/core.c
> +++ b/drivers/net/wireless/ath/ath10k/core.c
> @@ -552,6 +552,23 @@ static const char *const ath10k_core_fw_feature_str[] = {
>  	[ATH10K_FW_FEATURE_NO_PS] = "no-ps",
>  	[ATH10K_FW_FEATURE_MGMT_TX_BY_REF] = "mgmt-tx-by-reference",
>  	[ATH10K_FW_FEATURE_NON_BMI] = "non-bmi",
> +	[ATH10K_FW_FEATURE_WMI_10X_CT] = "wmi-10.x-CT",
> +	[ATH10K_FW_FEATURE_CT_RXSWCRYPT] = "rxswcrypt-CT",
> +	[ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK] = "txstatus-noack",
> +	[ATH10K_FW_FEATURE_CT_RATEMASK] = "ratemask-CT",
> +	[ATH10K_FW_FEATURE_HAS_SAFE_BURST] = "safe-burst",
> +	[ATH10K_FW_FEATURE_REGDUMP_CT] = "regdump-CT",
> +	[ATH10K_FW_FEATURE_TXRATE_CT] = "txrate-CT",
> +	[ATH10K_FW_FEATURE_FLUSH_ALL_CT] = "flush-all-CT",
> +	[ATH10K_FW_FEATURE_PINGPONG_READ_CT] = "pingpong-CT",
> +	[ATH10K_FW_FEATURE_SKIP_CH_RES_CT] = "ch-regs-CT",
> +	[ATH10K_FW_FEATURE_NOP_CT] = "nop-CT",
> +	[ATH10K_FW_FEATURE_HTT_MGT_CT] = "htt-mgt-CT",
> +	[ATH10K_FW_FEATURE_SET_SPECIAL_CT] = "set-special-CT",
> +	[ATH10K_FW_FEATURE_NO_BMISS_CT] = "no-bmiss-CT",
> +	[ATH10K_FW_FEATURE_HAS_GET_TEMP_CT] = "get-temp-CT",
> +	[ATH10K_FW_FEATURE_HAS_TX_RC_CT] = "tx-rc-CT",
> +	[ATH10K_FW_FEATURE_CUST_STATS_CT] = "cust-stats-CT",
>  };
>
>  static unsigned int ath10k_core_get_fw_feature_str(char *buf,
> diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
> index e4ac8f2..c1342c5 100644
> --- a/drivers/net/wireless/ath/ath10k/core.h
> +++ b/drivers/net/wireless/ath/ath10k/core.h
> @@ -711,6 +711,73 @@ enum ath10k_fw_features {
>  	/* Firmware load is done externally, not by bmi */
>  	ATH10K_FW_FEATURE_NON_BMI = 19,
>
> +	/* tx-status has the noack bits (CT firmware version 14 and higher ) */
> +	ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK = 30,
> +
> +	/* Firmware from Candela Technologies, enables more VIFs, etc */
> +	ATH10K_FW_FEATURE_WMI_10X_CT = 31,
> +
> +	/* Firmware from Candela Technologies with rx-software-crypt.
> +	 * Required for multiple stations connected to same AP when using
> +	 * encryption (ie, commercial version of CT firmware)
> +	 */
> +	ATH10K_FW_FEATURE_CT_RXSWCRYPT = 32,
> +
> +	/* Firmware supports extended wmi_common_peer_assoc_complete_cmd that
> +	 * contains an array of rate-disable masks.  This allows the host to
> +	 * have better control over what rates the firmware will use.  CT
> +	 * Firmware only (v15 and higher)
> +	 */
> +	ATH10K_FW_FEATURE_CT_RATEMASK = 33,
> +
> +	/* Versions of firmware before approximately 10.2.4.72 would corrupt
> +	 * txop fields during burst.  Since this is fixed now, add a flag to
> +	 * denote this.
> +	 */
> +	ATH10K_FW_FEATURE_HAS_SAFE_BURST = 34,
> +
> +	/* Register-dump is supported. */
> +	ATH10K_FW_FEATURE_REGDUMP_CT = 35,
> +
> +	/* TX-Rate is reported. */
> +	ATH10K_FW_FEATURE_TXRATE_CT = 36,
> +
> +	/* Firmware can flush all peers. */
> +	ATH10K_FW_FEATURE_FLUSH_ALL_CT = 37,
> +
> +	/* Firmware can read memory with ping-pong protocol. */
> +	ATH10K_FW_FEATURE_PINGPONG_READ_CT = 38,
> +
> +	/* Firmware can skip channel reservation. */
> +	ATH10K_FW_FEATURE_SKIP_CH_RES_CT = 39,
> +
> +	/* Firmware supports NOP keep-alive message. */
> +	ATH10K_FW_FEATURE_NOP_CT = 40,
> +
> +	/* Firmware supports CT HTT MGT feature. */
> +	ATH10K_FW_FEATURE_HTT_MGT_CT = 41,
> +
> +	/* Set-special cmd-id is supported. */
> +	ATH10K_FW_FEATURE_SET_SPECIAL_CT = 42,
> +
> +	/* SW Beacon Miss is disabled in this kernel, so you have to
> +	 * let mac80211 manage the connection.
> +	 */
> +	ATH10K_FW_FEATURE_NO_BMISS_CT = 43,
> +
> +	/* 10.1 firmware that supports getting temperature.  Stock
> +	 * 10.1 cannot.
> +	 */
> +	ATH10K_FW_FEATURE_HAS_GET_TEMP_CT = 44,
> +
> +	/* Can peer-id be over-ridden to provide rix + retries for raw pkts?
> +	 *  CT only option.
> +	 */
> +	ATH10K_FW_FEATURE_HAS_TX_RC_CT = 45,
> +
> +	/* Do we support requesting custom stats */
> +	ATH10K_FW_FEATURE_CUST_STATS_CT = 46,
> +
>  	/* keep last */
>  	ATH10K_FW_FEATURE_COUNT,
>  };
>


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/3] ath10k: Add ath10k-ct firmware feature flags and descriptions.
@ 2018-07-13 17:16   ` Ben Greear
  0 siblings, 0 replies; 8+ messages in thread
From: Ben Greear @ 2018-07-13 17:16 UTC (permalink / raw)
  To: ath10k; +Cc: kvalo, linux-wireless

On 05/14/2018 08:52 AM, greearb@candelatech.com wrote:
> From: Ben Greear <greearb@candelatech.com>
>
> These feature flags are used by ath10k-ct firmware.  Add these
> so we can use them in future patches and so there are no warnings
> about feature flags on loading ath10k-ct firmware.

Hello Kalle,

Any chance you could apply this series?  It has been sitting in patchwork in
new state with no feedback for months (last I checked).

I've plenty more patches after this to provide better support for my
firmware, and some of it will probably also be useful for stock firmware.

If I can get these initial patches in, I'll cook up some more and post
them.

Thanks,
Ben

>
> Signed-off-by: Ben Greear <greearb@candelatech.com>
> ---
> v2:  Fix warings typo in description.
>
>  drivers/net/wireless/ath/ath10k/core.c | 17 +++++++++
>  drivers/net/wireless/ath/ath10k/core.h | 67 ++++++++++++++++++++++++++++++++++
>  2 files changed, 84 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
> index 4cf54a7..f2f8f61 100644
> --- a/drivers/net/wireless/ath/ath10k/core.c
> +++ b/drivers/net/wireless/ath/ath10k/core.c
> @@ -552,6 +552,23 @@ static const char *const ath10k_core_fw_feature_str[] = {
>  	[ATH10K_FW_FEATURE_NO_PS] = "no-ps",
>  	[ATH10K_FW_FEATURE_MGMT_TX_BY_REF] = "mgmt-tx-by-reference",
>  	[ATH10K_FW_FEATURE_NON_BMI] = "non-bmi",
> +	[ATH10K_FW_FEATURE_WMI_10X_CT] = "wmi-10.x-CT",
> +	[ATH10K_FW_FEATURE_CT_RXSWCRYPT] = "rxswcrypt-CT",
> +	[ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK] = "txstatus-noack",
> +	[ATH10K_FW_FEATURE_CT_RATEMASK] = "ratemask-CT",
> +	[ATH10K_FW_FEATURE_HAS_SAFE_BURST] = "safe-burst",
> +	[ATH10K_FW_FEATURE_REGDUMP_CT] = "regdump-CT",
> +	[ATH10K_FW_FEATURE_TXRATE_CT] = "txrate-CT",
> +	[ATH10K_FW_FEATURE_FLUSH_ALL_CT] = "flush-all-CT",
> +	[ATH10K_FW_FEATURE_PINGPONG_READ_CT] = "pingpong-CT",
> +	[ATH10K_FW_FEATURE_SKIP_CH_RES_CT] = "ch-regs-CT",
> +	[ATH10K_FW_FEATURE_NOP_CT] = "nop-CT",
> +	[ATH10K_FW_FEATURE_HTT_MGT_CT] = "htt-mgt-CT",
> +	[ATH10K_FW_FEATURE_SET_SPECIAL_CT] = "set-special-CT",
> +	[ATH10K_FW_FEATURE_NO_BMISS_CT] = "no-bmiss-CT",
> +	[ATH10K_FW_FEATURE_HAS_GET_TEMP_CT] = "get-temp-CT",
> +	[ATH10K_FW_FEATURE_HAS_TX_RC_CT] = "tx-rc-CT",
> +	[ATH10K_FW_FEATURE_CUST_STATS_CT] = "cust-stats-CT",
>  };
>
>  static unsigned int ath10k_core_get_fw_feature_str(char *buf,
> diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
> index e4ac8f2..c1342c5 100644
> --- a/drivers/net/wireless/ath/ath10k/core.h
> +++ b/drivers/net/wireless/ath/ath10k/core.h
> @@ -711,6 +711,73 @@ enum ath10k_fw_features {
>  	/* Firmware load is done externally, not by bmi */
>  	ATH10K_FW_FEATURE_NON_BMI = 19,
>
> +	/* tx-status has the noack bits (CT firmware version 14 and higher ) */
> +	ATH10K_FW_FEATURE_HAS_TXSTATUS_NOACK = 30,
> +
> +	/* Firmware from Candela Technologies, enables more VIFs, etc */
> +	ATH10K_FW_FEATURE_WMI_10X_CT = 31,
> +
> +	/* Firmware from Candela Technologies with rx-software-crypt.
> +	 * Required for multiple stations connected to same AP when using
> +	 * encryption (ie, commercial version of CT firmware)
> +	 */
> +	ATH10K_FW_FEATURE_CT_RXSWCRYPT = 32,
> +
> +	/* Firmware supports extended wmi_common_peer_assoc_complete_cmd that
> +	 * contains an array of rate-disable masks.  This allows the host to
> +	 * have better control over what rates the firmware will use.  CT
> +	 * Firmware only (v15 and higher)
> +	 */
> +	ATH10K_FW_FEATURE_CT_RATEMASK = 33,
> +
> +	/* Versions of firmware before approximately 10.2.4.72 would corrupt
> +	 * txop fields during burst.  Since this is fixed now, add a flag to
> +	 * denote this.
> +	 */
> +	ATH10K_FW_FEATURE_HAS_SAFE_BURST = 34,
> +
> +	/* Register-dump is supported. */
> +	ATH10K_FW_FEATURE_REGDUMP_CT = 35,
> +
> +	/* TX-Rate is reported. */
> +	ATH10K_FW_FEATURE_TXRATE_CT = 36,
> +
> +	/* Firmware can flush all peers. */
> +	ATH10K_FW_FEATURE_FLUSH_ALL_CT = 37,
> +
> +	/* Firmware can read memory with ping-pong protocol. */
> +	ATH10K_FW_FEATURE_PINGPONG_READ_CT = 38,
> +
> +	/* Firmware can skip channel reservation. */
> +	ATH10K_FW_FEATURE_SKIP_CH_RES_CT = 39,
> +
> +	/* Firmware supports NOP keep-alive message. */
> +	ATH10K_FW_FEATURE_NOP_CT = 40,
> +
> +	/* Firmware supports CT HTT MGT feature. */
> +	ATH10K_FW_FEATURE_HTT_MGT_CT = 41,
> +
> +	/* Set-special cmd-id is supported. */
> +	ATH10K_FW_FEATURE_SET_SPECIAL_CT = 42,
> +
> +	/* SW Beacon Miss is disabled in this kernel, so you have to
> +	 * let mac80211 manage the connection.
> +	 */
> +	ATH10K_FW_FEATURE_NO_BMISS_CT = 43,
> +
> +	/* 10.1 firmware that supports getting temperature.  Stock
> +	 * 10.1 cannot.
> +	 */
> +	ATH10K_FW_FEATURE_HAS_GET_TEMP_CT = 44,
> +
> +	/* Can peer-id be over-ridden to provide rix + retries for raw pkts?
> +	 *  CT only option.
> +	 */
> +	ATH10K_FW_FEATURE_HAS_TX_RC_CT = 45,
> +
> +	/* Do we support requesting custom stats */
> +	ATH10K_FW_FEATURE_CUST_STATS_CT = 46,
> +
>  	/* keep last */
>  	ATH10K_FW_FEATURE_COUNT,
>  };
>


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-07-13 17:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-14 15:52 [PATCH v2 1/3] ath10k: Add ath10k-ct firmware feature flags and descriptions greearb
2018-05-14 15:52 ` greearb
2018-05-14 15:52 ` [PATCH v2 2/3] ath10k: Don't try un-supported idle_ps_config command greearb
2018-05-14 15:52   ` greearb
2018-05-14 15:52 ` [PATCH v2 3/3] ath10k: Support survey dump for ath10k-ct 10.1 firmware greearb
2018-05-14 15:52   ` greearb
2018-07-13 17:16 ` [PATCH v2 1/3] ath10k: Add ath10k-ct firmware feature flags and descriptions Ben Greear
2018-07-13 17:16   ` Ben Greear

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.