[PATCH 3/3] Define rate index enum

Eugene Krasnikov k.eugene.e at gmail.com
Thu Aug 8 06:48:07 EDT 2013


Rate index is used in several places. Use an enum for that.

Signed-off-by: Eugene Krasnikov <k.eugene.e at gmail.com>
---
 main.c    | 74 ++++++++++++++++++++++++++++++++++-----------------------------
 wcn36xx.h | 14 ++++++++++++
 2 files changed, 54 insertions(+), 34 deletions(-)

diff --git a/main.c b/main.c
index da2dbf3..71b2817 100644
--- a/main.c
+++ b/main.c
@@ -91,29 +91,29 @@ static struct ieee80211_channel wcn_5ghz_channels[] = {
 }
 
 static struct ieee80211_rate wcn_2ghz_rates[] = {
-	RATE(10, 0x02, 0),
-	RATE(20, 0x04, IEEE80211_RATE_SHORT_PREAMBLE),
-	RATE(55, 0x0B, IEEE80211_RATE_SHORT_PREAMBLE),
-	RATE(110, 0x16, IEEE80211_RATE_SHORT_PREAMBLE),
-	RATE(60, 0x0C, 0),
-	RATE(90, 0x12, 0),
-	RATE(120, 0x18, 0),
-	RATE(180, 0x24, 0),
-	RATE(240, 0x30, 0),
-	RATE(360, 0x48, 0),
-	RATE(480, 0x60, 0),
-	RATE(540, 0x6C, 0)
+	RATE(10, HW_RATE_INDEX_1MBPS, 0),
+	RATE(20, HW_RATE_INDEX_2MBPS, IEEE80211_RATE_SHORT_PREAMBLE),
+	RATE(55, HW_RATE_INDEX_5_5MBPS, IEEE80211_RATE_SHORT_PREAMBLE),
+	RATE(110, HW_RATE_INDEX_11MBPS, IEEE80211_RATE_SHORT_PREAMBLE),
+	RATE(60, HW_RATE_INDEX_6MBPS, 0),
+	RATE(90, HW_RATE_INDEX_9MBPS, 0),
+	RATE(120, HW_RATE_INDEX_12MBPS, 0),
+	RATE(180, HW_RATE_INDEX_18MBPS, 0),
+	RATE(240, HW_RATE_INDEX_24MBPS, 0),
+	RATE(360, HW_RATE_INDEX_36MBPS, 0),
+	RATE(480, HW_RATE_INDEX_48MBPS, 0),
+	RATE(540, HW_RATE_INDEX_54MBPS, 0)
 };
 
 static struct ieee80211_rate wcn_5ghz_rates[] = {
-	RATE(60, 0x0C, 0),
-	RATE(90, 0x12, 0),
-	RATE(120, 0x18, 0),
-	RATE(180, 0x24, 0),
-	RATE(240, 0x30, 0),
-	RATE(360, 0x48, 0),
-	RATE(480, 0x60, 0),
-	RATE(540, 0x6C, 0)
+	RATE(60, HW_RATE_INDEX_6MBPS, 0),
+	RATE(90, HW_RATE_INDEX_9MBPS, 0),
+	RATE(120, HW_RATE_INDEX_12MBPS, 0),
+	RATE(180, HW_RATE_INDEX_18MBPS, 0),
+	RATE(240, HW_RATE_INDEX_24MBPS, 0),
+	RATE(360, HW_RATE_INDEX_36MBPS, 0),
+	RATE(480, HW_RATE_INDEX_48MBPS, 0),
+	RATE(540, HW_RATE_INDEX_54MBPS, 0)
 };
 
 static struct ieee80211_supported_band wcn_band_2ghz = {
@@ -925,6 +925,22 @@ static int __devinit wcn36xx_probe(struct platform_device *pdev)
 	struct ieee80211_hw *hw;
 	struct wcn36xx *wcn;
 	int ret;
+	u16 ofdm_rates[WCN36XX_HAL_NUM_OFDM_RATES] = {
+		HW_RATE_INDEX_6MBPS,
+		HW_RATE_INDEX_9MBPS,
+		HW_RATE_INDEX_12MBPS,
+		HW_RATE_INDEX_18MBPS,
+		HW_RATE_INDEX_24MBPS,
+		HW_RATE_INDEX_36MBPS,
+		HW_RATE_INDEX_48MBPS,
+		HW_RATE_INDEX_54MBPS
+	};
+	u16 dsss_rates[WCN36XX_HAL_NUM_DSSS_RATES] = {
+		HW_RATE_INDEX_1MBPS,
+		HW_RATE_INDEX_2MBPS,
+		HW_RATE_INDEX_5_5MBPS,
+		HW_RATE_INDEX_11MBPS
+	};
 	wcn36xx_dbg(WCN36XX_DBG_MAC, "platform probe");
 
 	hw = ieee80211_alloc_hw(sizeof(struct wcn36xx), &wcn36xx_ops);
@@ -944,20 +960,10 @@ static int __devinit wcn36xx_probe(struct platform_device *pdev)
 
 	/* Configuring supported rates */
 	wcn->supported_rates.op_rate_mode = STA_11n;
-	wcn->supported_rates.dsss_rates[0] = 0x82;
-	wcn->supported_rates.dsss_rates[1] = 0x84;
-	wcn->supported_rates.dsss_rates[2] = 0x8b;
-	wcn->supported_rates.dsss_rates[3] = 0x96;
-
-	wcn->supported_rates.ofdm_rates[0] = 0x0C;
-	wcn->supported_rates.ofdm_rates[1] = 0x12;
-	wcn->supported_rates.ofdm_rates[2] = 0x18;
-	wcn->supported_rates.ofdm_rates[3] = 0x24;
-	wcn->supported_rates.ofdm_rates[4] = 0x30;
-	wcn->supported_rates.ofdm_rates[5] = 0x48;
-	wcn->supported_rates.ofdm_rates[6] = 0x60;
-	wcn->supported_rates.ofdm_rates[7] = 0x6C;
-
+	memcpy(wcn->supported_rates.dsss_rates, dsss_rates,
+		sizeof(*dsss_rates) * WCN36XX_HAL_NUM_DSSS_RATES);
+	memcpy(wcn->supported_rates.ofdm_rates, ofdm_rates,
+		sizeof(*ofdm_rates) * WCN36XX_HAL_NUM_OFDM_RATES);
 	wcn->supported_rates.supported_mcs_set[0] = 0xFF;
 
 	if (!wcn->ctrl_ops->get_hw_mac(wcn->addresses.addr)) {
diff --git a/wcn36xx.h b/wcn36xx.h
index 6ec2fee..617d936 100644
--- a/wcn36xx.h
+++ b/wcn36xx.h
@@ -34,6 +34,20 @@
 #define DRIVER_PREFIX "wcn36xx: "
 #define WLAN_NV_FILE               "wlan/prima/WCNSS_qcom_wlan_nv.bin"
 #define WCN36XX_AGGR_BUFFER_SIZE 64
+enum {
+	HW_RATE_INDEX_1MBPS	= 0x82,
+	HW_RATE_INDEX_2MBPS	= 0x84,
+	HW_RATE_INDEX_5_5MBPS	= 0x8B,
+	HW_RATE_INDEX_6MBPS	= 0x0C,
+	HW_RATE_INDEX_9MBPS	= 0x12,
+	HW_RATE_INDEX_11MBPS	= 0x96,
+	HW_RATE_INDEX_12MBPS	= 0x18,
+	HW_RATE_INDEX_18MBPS	= 0x24,
+	HW_RATE_INDEX_24MBPS	= 0x30,
+	HW_RATE_INDEX_36MBPS	= 0x48,
+	HW_RATE_INDEX_48MBPS	= 0x60,
+	HW_RATE_INDEX_54MBPS	= 0x6C
+};
 
 extern unsigned int debug_mask;
 
-- 
1.8.2.2




More information about the wcn36xx mailing list