Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Aug 2013 13:12:33 +0200
From:      "Cedric GROSS" <cg@cgross.info>
To:        <freebsd-wireless@freebsd.org>
Subject:   [iwn] Review split 4
Message-ID:  <003001ce8f71$31aa64d0$94ff2e70$@info>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.

------=_NextPart_000_0031_01CE8F81.F53334D0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hello,

 

After split 3 applied and committed , you will find split 4.

This one modify if_iwnreg.h

 

Add nearly everything we will need for later use.

 

Cedric


------=_NextPart_000_0031_01CE8F81.F53334D0
Content-Type: application/octet-stream;
	name="define.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="define.patch"

Index: sys/dev/iwn/if_iwnreg.h=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
--- sys/dev/iwn/if_iwnreg.h	(revision 11)=0A=
+++ sys/dev/iwn/if_iwnreg.h	(working copy)=0A=
@@ -18,6 +18,9 @@=0A=
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.=0A=
  */=0A=
 =0A=
+#define	IWN_CT_KILL_THRESHOLD		114	/* in Celsius */=0A=
+#define	IWN_CT_KILL_EXIT_THRESHOLD	95	/* in Celsius */=0A=
+=0A=
 #define IWN_TX_RING_COUNT	256=0A=
 #define IWN_TX_RING_LOMARK	192=0A=
 #define IWN_TX_RING_HIMARK	224=0A=
@@ -38,6 +41,10 @@=0A=
 #define IWN_ICT_SIZE		4096=0A=
 #define IWN_ICT_COUNT		(IWN_ICT_SIZE / sizeof (uint32_t))=0A=
 =0A=
+/* For cards with PAN command, default is IWN_CMD_QUEUE_NUM */=0A=
+#define	IWN_CMD_QUEUE_NUM		4=0A=
+#define	IWN_PAN_CMD_QUEUE		9=0A=
+=0A=
 /* Maximum number of DMA segments for TX. */=0A=
 #define IWN_MAX_SCATTER	20=0A=
 =0A=
@@ -89,6 +96,7 @@=0A=
 #define IWN_MEM_WADDR		0x410=0A=
 #define IWN_MEM_WDATA		0x418=0A=
 #define IWN_MEM_RDATA		0x41c=0A=
+#define	IWN_TARG_MBX_C		0x430=0A=
 #define IWN_PRPH_WADDR  	0x444=0A=
 #define IWN_PRPH_RADDR   	0x448=0A=
 #define IWN_PRPH_WDATA  	0x44c=0A=
@@ -213,17 +221,45 @@=0A=
 #define IWN_GP_DRIVER_RADIO_2X2_IPA	(2 << 0)=0A=
 #define IWN_GP_DRIVER_CALIB_VER6	(1 << 2)=0A=
 #define IWN_GP_DRIVER_6050_1X2		(1 << 3)=0A=
+#define	IWN_GP_DRIVER_REG_BIT_RADIO_IQ_INVERT	(1 << 7)=0A=
 =0A=
 /* Possible flags for register IWN_UCODE_GP1_CLR. */=0A=
 #define IWN_UCODE_GP1_RFKILL		(1 << 1)=0A=
 #define IWN_UCODE_GP1_CMD_BLOCKED	(1 << 2)=0A=
 #define IWN_UCODE_GP1_CTEMP_STOP_RF	(1 << 3)=0A=
+#define	IWN_UCODE_GP1_CFG_COMPLETE	(1 << 5)=0A=
 =0A=
 /* Possible flags/values for register IWN_LED. */=0A=
 #define IWN_LED_BSM_CTRL	(1 << 5)=0A=
 #define IWN_LED_OFF		0x00000038=0A=
 #define IWN_LED_ON		0x00000078=0A=
 =0A=
+#define	IWN_MAX_BLINK_TBL	10=0A=
+#define	IWN_LED_STATIC_ON	0=0A=
+#define	IWN_LED_STATIC_OFF	1=0A=
+#define	IWN_LED_SLOW_BLINK	2=0A=
+#define	IWN_LED_INT_BLINK	3=0A=
+#define	IWN_LED_UNIT		0x1388	/* 5 ms */=0A=
+=0A=
+static const struct {=0A=
+	uint16_t	tpt;	/* Mb/s */=0A=
+	uint8_t		on_time;=0A=
+	uint8_t		off_time;=0A=
+} blink_tbl[] =3D=0A=
+{=0A=
+	{300, 5, 5},=0A=
+	{200, 8, 8},=0A=
+	{100, 11, 11},=0A=
+	{70, 13, 13},=0A=
+	{50, 15, 15},=0A=
+	{20, 17, 17},=0A=
+	{10, 19, 19},=0A=
+	{5, 22, 22},=0A=
+	{1, 26, 26},=0A=
+	{0, 33, 33},=0A=
+	/* SOLID_ON */=0A=
+};=0A=
+=0A=
 /* Possible flags for register IWN_DRAM_INT_TBL. */=0A=
 #define IWN_DRAM_INT_TBL_WRAP_CHECK	(1 << 27)=0A=
 #define IWN_DRAM_INT_TBL_ENABLE		(1 << 31)=0A=
@@ -370,14 +406,26 @@=0A=
 } __packed;=0A=
 =0A=
 struct iwn_rx_desc {=0A=
+	/*=0A=
+	 * The first 4 bytes of the RX frame header contain both the RX frame=0A=
+	 * size and some flags.=0A=
+	 * Bit fields:=0A=
+	 * 31:    flag flush RB request=0A=
+	 * 30:    flag ignore TC (terminal counter) request=0A=
+	 * 29:    flag fast IRQ request=0A=
+	 * 28-14: Reserved=0A=
+	 * 13-00: RX frame size=0A=
+	 */=0A=
 	uint32_t	len;=0A=
 	uint8_t		type;=0A=
 #define IWN_UC_READY			  1=0A=
 #define IWN_ADD_NODE_DONE		 24=0A=
 #define IWN_TX_DONE			 28=0A=
+#define	IWN_REPLY_LED_CMD		72=0A=
 #define IWN5000_CALIBRATION_RESULT	102=0A=
 #define IWN5000_CALIBRATION_DONE	103=0A=
 #define IWN_START_SCAN			130=0A=
+#define	IWN_NOTIF_SCAN_RESULT		131=0A=
 #define IWN_STOP_SCAN			132=0A=
 #define IWN_RX_STATISTICS		156=0A=
 #define IWN_BEACON_STATISTICS		157=0A=
@@ -388,11 +436,23 @@=0A=
 #define IWN_RX_DONE			195=0A=
 #define IWN_RX_COMPRESSED_BA		197=0A=
 =0A=
-	uint8_t		flags;=0A=
-	uint8_t		idx;=0A=
+	uint8_t		flags;	/* 0:5 reserved, 6 abort, 7 internal */=0A=
+	uint8_t		idx;	/* position within TX queue */=0A=
 	uint8_t		qid;=0A=
+	/* 0:4 TX queue id - 5:6 reserved - 7 unsolicited RX=0A=
+	 * or uCode-originated notification=0A=
+	 */=0A=
 } __packed;=0A=
 =0A=
+#define	IWN_RX_DESC_QID_MSK		0x1F=0A=
+#define	IWN_UNSOLICITED_RX_NOTIF	0x80=0A=
+=0A=
+/* CARD_STATE_NOTIFICATION */=0A=
+#define	IWN_STATE_CHANGE_HW_CARD_DISABLED		0x01=0A=
+#define	IWN_STATE_CHANGE_SW_CARD_DISABLED		0x02=0A=
+#define	IWN_STATE_CHANGE_CT_CARD_DISABLED		0x04=0A=
+#define	IWN_STATE_CHANGE_RXON_CARD_DISABLED		0x10=0A=
+=0A=
 /* Possible RX status flags. */=0A=
 #define IWN_RX_NO_CRC_ERR	(1 <<  0)=0A=
 #define IWN_RX_NO_OVFL_ERR	(1 <<  1)=0A=
@@ -416,6 +476,7 @@=0A=
 #define IWN_CMD_LINK_QUALITY		 78=0A=
 #define IWN_CMD_SET_LED			 72=0A=
 #define IWN5000_CMD_WIMAX_COEX		 90=0A=
+#define	IWN_TEMP_NOTIFICATION		98=0A=
 #define IWN5000_CMD_CALIB_CONFIG	101=0A=
 #define IWN5000_CMD_CALIB_RESULT	102=0A=
 #define IWN5000_CMD_CALIB_COMPLETE	103=0A=
@@ -432,6 +493,17 @@=0A=
 #define IWN_CMD_PHY_CALIB		176=0A=
 #define IWN_CMD_BT_COEX_PRIOTABLE	204=0A=
 #define IWN_CMD_BT_COEX_PROT		205=0A=
+#define	IWN_CMD_BT_COEX_NOTIF		206=0A=
+/* PAN commands */=0A=
+#define	IWN_CMD_WIPAN_PARAMS			0xb2=0A=
+#define	IWN_CMD_WIPAN_RXON			0xb3=0A=
+#define	IWN_CMD_WIPAN_RXON_TIMING		0xb4=0A=
+#define	IWN_CMD_WIPAN_RXON_ASSOC		0xb6=0A=
+#define	IWN_CMD_WIPAN_QOS_PARAM			0xb7=0A=
+#define	IWN_CMD_WIPAN_WEPKEY			0xb8=0A=
+#define	IWN_CMD_WIPAN_P2P_CHANNEL_SWITCH	0xb9=0A=
+#define	IWN_CMD_WIPAN_NOA_NOTIFICATION		0xbc=0A=
+#define	IWN_CMD_WIPAN_DEACTIVATION_COMPLETE	0xbd=0A=
 =0A=
 	uint8_t	flags;=0A=
 	uint8_t	idx;=0A=
@@ -439,6 +511,27 @@=0A=
 	uint8_t	data[136];=0A=
 } __packed;=0A=
 =0A=
+/*=0A=
+ * Structure for IWN_CMD_GET_STATISTICS =3D (0x9c) 156=0A=
+ * all devices identical.=0A=
+ *=0A=
+ * This command triggers an immediate response containing uCode =
statistics.=0A=
+ * The response is in the same format as IWN_BEACON_STATISTICS (0x9d) =
157.=0A=
+ *=0A=
+ * If the CLEAR_STATS configuration flag is set, uCode will clear its=0A=
+ * internal copy of the statistics (counters) after issuing the =
response.=0A=
+ * This flag does not affect IWN_BEACON_STATISTICS after beacons (see =
below).=0A=
+ *=0A=
+ * If the DISABLE_NOTIF configuration flag is set, uCode will not issue=0A=
+ * IWN_BEACON_STATISTICS after received beacons.  This flag=0A=
+ * does not affect the response to the IWN_CMD_GET_STATISTICS 0x9c =
itself.=0A=
+ */=0A=
+struct iwn_statistics_cmd {=0A=
+	uint32_t	configuration_flags;=0A=
+#define	IWN_STATS_CONF_CLEAR_STATS		htole32(0x1)=0A=
+#define	IWN_STATS_CONF_DISABLE_NOTIF	htole32(0x2)=0A=
+} __packed;=0A=
+=0A=
 /* Antenna flags, used in various commands. */=0A=
 #define IWN_ANT_A	(1 << 0)=0A=
 #define IWN_ANT_B	(1 << 1)=0A=
@@ -446,6 +539,7 @@=0A=
 /* Shortcuts. */=0A=
 #define IWN_ANT_AB	(IWN_ANT_A | IWN_ANT_B)=0A=
 #define IWN_ANT_BC	(IWN_ANT_B | IWN_ANT_C)=0A=
+#define	IWN_ANT_AC	(IWN_ANT_A | IWN_ANT_C)=0A=
 #define IWN_ANT_ABC	(IWN_ANT_A | IWN_ANT_B | IWN_ANT_C)=0A=
 =0A=
 /* Structure for command IWN_CMD_RXON. */=0A=
@@ -461,6 +555,8 @@=0A=
 #define IWN_MODE_STA		3=0A=
 #define IWN_MODE_IBSS		4=0A=
 #define IWN_MODE_MONITOR	6=0A=
+#define	IWN_MODE_2STA		8=0A=
+#define	IWN_MODE_P2P		9=0A=
 =0A=
 	uint8_t		air;=0A=
 	uint16_t	rxchain;=0A=
@@ -544,7 +640,8 @@=0A=
 	uint16_t	atim;=0A=
 	uint32_t	binitval;=0A=
 	uint16_t	lintval;=0A=
-	uint16_t	reserved;=0A=
+	uint8_t		dtim_period;=0A=
+	uint8_t		delta_cp_bss_tbtts;=0A=
 } __packed;=0A=
 =0A=
 /* Structure for command IWN_CMD_ADD_NODE. */=0A=
@@ -558,6 +655,9 @@=0A=
 	uint16_t	reserved2;=0A=
 	uint8_t		id;=0A=
 #define IWN_ID_BSS		 0=0A=
+#define	IWN_STA_ID		1=0A=
+=0A=
+#define	IWN_PAN_ID_BCAST		14=0A=
 #define IWN5000_ID_BROADCAST	15=0A=
 #define IWN4965_ID_BROADCAST	31=0A=
 =0A=
@@ -759,6 +859,11 @@=0A=
 #define IWN_PS_SLEEP_OVER_DTIM	(1 << 2)=0A=
 #define IWN_PS_PCI_PMGT		(1 << 3)=0A=
 #define IWN_PS_FAST_PD		(1 << 4)=0A=
+#define	IWN_PS_BEACON_FILTERING	(1 << 5)=0A=
+#define	IWN_PS_SHADOW_REG	(1 << 6)=0A=
+#define	IWN_PS_CT_KILL		(1 << 7)=0A=
+#define	IWN_PS_BT_SCD		(1 << 8)=0A=
+#define	IWN_PS_ADVANCED_PM	(1 << 9)=0A=
 =0A=
 	uint8_t		keepalive;=0A=
 	uint8_t		debug;=0A=
@@ -796,6 +901,7 @@=0A=
 =0A=
 struct iwn_scan_chan {=0A=
 	uint32_t	flags;=0A=
+#define	IWN_CHAN_PASSIVE	(0 << 0)=0A=
 #define IWN_CHAN_ACTIVE		(1 << 0)=0A=
 #define IWN_CHAN_NPBREQS(x)	(((1 << (x)) - 1) << 1)=0A=
 =0A=
@@ -806,9 +912,25 @@=0A=
 	uint16_t	passive;	/* msecs */=0A=
 } __packed;=0A=
 =0A=
+#define	IWN_SCAN_CRC_TH_DISABLED	0=0A=
+#define	IWN_SCAN_CRC_TH_DEFAULT		htole16(1)=0A=
+#define	IWN_SCAN_CRC_TH_NEVER		htole16(0xffff)=0A=
+=0A=
 /* Maximum size of a scan command. */=0A=
 #define IWN_SCAN_MAXSZ	(MCLBYTES - 4)=0A=
 =0A=
+#define	IWN_ACTIVE_DWELL_TIME_24	(30)	/* all times in msec */=0A=
+#define	IWN_ACTIVE_DWELL_TIME_52	(20)=0A=
+#define	IWN_ACTIVE_DWELL_FACTOR_24	(3)=0A=
+#define	IWN_ACTIVE_DWELL_FACTOR_52	(2)=0A=
+=0A=
+#define	IWN_PASSIVE_DWELL_TIME_24	(20)	/* all times in msec */=0A=
+#define	IWN_PASSIVE_DWELL_TIME_52	(10)=0A=
+#define	IWN_PASSIVE_DWELL_BASE		(100)=0A=
+#define	IWN_CHANNEL_TUNE_TIME		(5)=0A=
+=0A=
+#define	IWN_SCAN_CHAN_TIMEOUT		2=0A=
+=0A=
 /* Structure for command IWN_CMD_TXPOWER (4965AGN only.) */=0A=
 #define IWN_RIDX_MAX	32=0A=
 struct iwn4965_cmd_txpower {=0A=
@@ -855,6 +977,16 @@=0A=
 =0A=
 struct iwn6000_btcoex_config {=0A=
 	uint8_t		flags;=0A=
+#define	IWN_BT_FLAG_COEX6000_CHAN_INHIBITION	1=0A=
+#define	IWN_BT_FLAG_COEX6000_MODE_MASK		((1 << 3) | (1 << 4) | (1 << 5 =
))=0A=
+#define	IWN_BT_FLAG_COEX6000_MODE_SHIFT			3=0A=
+#define	IWN_BT_FLAG_COEX6000_MODE_DISABLED		0=0A=
+#define	IWN_BT_FLAG_COEX6000_MODE_LEGACY_2W		1=0A=
+#define	IWN_BT_FLAG_COEX6000_MODE_3W			2=0A=
+#define	IWN_BT_FLAG_COEX6000_MODE_4W			3=0A=
+=0A=
+#define	IWN_BT_FLAG_UCODE_DEFAULT		(1 << 6)=0A=
+#define	IWN_BT_FLAG_SYNC_2_BT_DISABLE	(1 << 7)=0A=
 	uint8_t		lead_time;=0A=
 	uint8_t		max_kill;=0A=
 	uint8_t		bt3_t7_timer;=0A=
@@ -871,6 +1003,28 @@=0A=
 	uint16_t	rx_prio_boost;=0A=
 } __packed;=0A=
 =0A=
+/* Structure for enhanced command IWN_CMD_BLUETOOTH for 2000 Series. */=0A=
+struct iwn2000_btcoex_config {=0A=
+	uint8_t		flags;	/* Cf Flags in iwn6000_btcoex_config */=0A=
+	uint8_t		lead_time;=0A=
+	uint8_t		max_kill;=0A=
+	uint8_t		bt3_t7_timer;=0A=
+	uint32_t	kill_ack;=0A=
+	uint32_t	kill_cts;=0A=
+	uint8_t		sample_time;=0A=
+	uint8_t		bt3_t2_timer;=0A=
+	uint16_t	bt4_reaction;=0A=
+	uint32_t	lookup_table[12];=0A=
+	uint16_t	bt4_decision;=0A=
+	uint16_t	valid;=0A=
+=0A=
+	uint32_t	prio_boost;	/* size change prior to iwn6000_btcoex_config */=0A=
+	uint8_t		reserved;	/* added prior to iwn6000_btcoex_config */=0A=
+=0A=
+	uint8_t		tx_prio_boost;=0A=
+	uint16_t	rx_prio_boost;=0A=
+} __packed;=0A=
+=0A=
 struct iwn_btcoex_priotable {=0A=
 	uint8_t		calib_init1;=0A=
 	uint8_t		calib_init2;=0A=
@@ -989,6 +1143,17 @@=0A=
 	uint16_t	reserved;=0A=
 } __packed;=0A=
 =0A=
+struct iwn5000_phy_calib_temp_offsetv2 {=0A=
+	uint8_t		code;=0A=
+	uint8_t		group;=0A=
+	uint8_t		ngroups;=0A=
+	uint8_t		isvalid;=0A=
+	int16_t		offset_high;=0A=
+	int16_t		offset_low;=0A=
+	int16_t		burnt_voltage_ref;=0A=
+	int16_t		reserved;=0A=
+} __packed;=0A=
+=0A=
 struct iwn_phy_calib_gain {=0A=
 	uint8_t	code;=0A=
 	uint8_t	group;=0A=
@@ -1056,6 +1221,10 @@=0A=
 } __packed;=0A=
 =0A=
 /* Structures for IWN_TX_DONE notification. */=0A=
+#define	IWN_TX_STATUS_MSK		0xff=0A=
+#define	TX_STATUS_SUCCESS		0x01=0A=
+#define	TX_STATUS_DIRECT_DONE		0x02=0A=
+=0A=
 #define IWN_TX_SUCCESS			0x00=0A=
 #define IWN_TX_FAIL			0x80	/* all failures have 0x80 set */=0A=
 #define IWN_TX_FAIL_SHORT_LIMIT		0x82	/* too many RTS retries */=0A=
@@ -1077,7 +1246,7 @@=0A=
 } __packed;=0A=
 =0A=
 struct iwn5000_tx_stat {=0A=
-	uint8_t		nframes;=0A=
+	uint8_t		nframes;	/* 1 no aggregation, >1 aggregation */=0A=
 	uint8_t		btkillcnt;=0A=
 	uint8_t		rtsfailcnt;=0A=
 	uint8_t		ackfailcnt;=0A=
@@ -1089,7 +1258,7 @@=0A=
 	uint16_t	seq;=0A=
 	uint16_t	len;=0A=
 	uint8_t		tlc;=0A=
-	uint8_t		ratid;=0A=
+	uint8_t		ratid;	/* tid (0:3), sta_id (4:7) */=0A=
 	uint8_t		fc[2];=0A=
 	uint16_t	status;=0A=
 	uint16_t	sequence;=0A=
@@ -1137,6 +1306,42 @@=0A=
 	uint16_t	chan;=0A=
 	uint8_t		phybuf[32];=0A=
 	uint32_t	rate;=0A=
+/*=0A=
+ * rate bit fields=0A=
+ *=0A=
+ * High-throughput (HT) rate format for bits 7:0 (bit 8 must be "1"):=0A=
+ *  2-0:  0)   6 Mbps=0A=
+ *        1)  12 Mbps=0A=
+ *        2)  18 Mbps=0A=
+ *        3)  24 Mbps=0A=
+ *        4)  36 Mbps=0A=
+ *        5)  48 Mbps=0A=
+ *        6)  54 Mbps=0A=
+ *        7)  60 Mbps=0A=
+ *=0A=
+ *  4-3:  0)  Single stream (SISO)=0A=
+ *        1)  Dual stream (MIMO)=0A=
+ *        2)  Triple stream (MIMO)=0A=
+ *=0A=
+ *    5:  Value of 0x20 in bits 7:0 indicates 6 Mbps HT40 duplicate data=0A=
+ *=0A=
+ * Legacy OFDM rate format for bits 7:0 (bit 8 must be "0", bit 9 "0"):=0A=
+ *  3-0:  0xD)   6 Mbps=0A=
+ *        0xF)   9 Mbps=0A=
+ *        0x5)  12 Mbps=0A=
+ *        0x7)  18 Mbps=0A=
+ *        0x9)  24 Mbps=0A=
+ *        0xB)  36 Mbps=0A=
+ *        0x1)  48 Mbps=0A=
+ *        0x3)  54 Mbps=0A=
+ *=0A=
+ * Legacy CCK rate format for bits 7:0 (bit 8 must be "0", bit 9 "1"):=0A=
+ *  6-0:   10)  1 Mbps=0A=
+ *         20)  2 Mbps=0A=
+ *         55)  5.5 Mbps=0A=
+ *        110)  11 Mbps=0A=
+ *=0A=
+ */=0A=
 	uint16_t	len;=0A=
 	uint16_t	reserve3;=0A=
 } __packed;=0A=
@@ -1359,8 +1564,18 @@=0A=
 #define IWN_FW_TLV_INIT_DATA		4=0A=
 #define IWN_FW_TLV_BOOT_TEXT		5=0A=
 #define IWN_FW_TLV_PBREQ_MAXLEN		6=0A=
+#define	IWN_FW_TLV_PAN				7=0A=
+#define	IWN_FW_TLV_RUNT_EVTLOG_PTR	8=0A=
+#define	IWN_FW_TLV_RUNT_EVTLOG_SIZE	9=0A=
+#define	IWN_FW_TLV_RUNT_ERRLOG_PTR	10=0A=
+#define	IWN_FW_TLV_INIT_EVTLOG_PTR	11=0A=
+#define	IWN_FW_TLV_INIT_EVTLOG_SIZE	12=0A=
+#define	IWN_FW_TLV_INIT_ERRLOG_PTR	13=0A=
 #define IWN_FW_TLV_ENH_SENS		14=0A=
 #define IWN_FW_TLV_PHY_CALIB		15=0A=
+#define	IWN_FW_TLV_WOWLAN_INST		16=0A=
+#define	IWN_FW_TLV_WOWLAN_DATA		17=0A=
+#define	IWN_FW_TLV_FLAGS			18=0A=
 =0A=
 	uint16_t	alt;=0A=
 	uint32_t	len;=0A=
@@ -1394,6 +1609,7 @@=0A=
 #define IWN4965_EEPROM_VOLTAGE	0x0e9=0A=
 #define IWN4965_EEPROM_BANDS	0x0ea=0A=
 /* Indirect offsets. */=0A=
+#define	IWN5000_EEPROM_NO_HT40	0x000=0A=
 #define IWN5000_EEPROM_DOMAIN	0x001=0A=
 #define IWN5000_EEPROM_BAND1	0x004=0A=
 #define IWN5000_EEPROM_BAND2	0x013=0A=
@@ -1505,6 +1721,16 @@=0A=
 	IWN5000_EEPROM_BAND7=0A=
 };=0A=
 =0A=
+static const uint32_t iwn1000_regulatory_bands[IWN_NBANDS] =3D {=0A=
+	IWN5000_EEPROM_BAND1,=0A=
+	IWN5000_EEPROM_BAND2,=0A=
+	IWN5000_EEPROM_BAND3,=0A=
+	IWN5000_EEPROM_BAND4,=0A=
+	IWN5000_EEPROM_BAND5,=0A=
+	IWN5000_EEPROM_BAND6,=0A=
+	IWN5000_EEPROM_NO_HT40,=0A=
+};=0A=
+=0A=
 #define IWN_CHAN_BANDS_COUNT	 7=0A=
 #define IWN_MAX_CHAN_PER_BAND	14=0A=
 static const struct iwn_chan_band {=0A=
@@ -1524,6 +1750,13 @@=0A=
 	{ 11, { 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157 } }=0A=
 };=0A=
 =0A=
+static const uint8_t iwn_bss_ac_to_queue[] =3D {=0A=
+	2, 3, 1, 0,=0A=
+};=0A=
+=0A=
+static const uint8_t iwn_pan_ac_to_queue[] =3D {=0A=
+	5, 4, 6, 7,=0A=
+};=0A=
 #define IWN1000_OTP_NBLOCKS	3 =0A=
 #define IWN6000_OTP_NBLOCKS	4 =0A=
 #define IWN6050_OTP_NBLOCKS	7=0A=
@@ -1533,7 +1766,15 @@=0A=
 #define IWN_RIDX_OFDM6	4=0A=
 =0A=
 #define IWN4965_MAX_PWR_INDEX	107=0A=
+#define	IWN_POWERSAVE_LVL_NONE			0=0A=
+#define	IWN_POWERSAVE_LVL_VOIP_COMPATIBLE	1=0A=
+#define	IWN_POWERSAVE_LVL_MAX			5=0A=
 =0A=
+#define	IWN_POWERSAVE_LVL_DEFAULT	IWN_POWERSAVE_LVL_NONE=0A=
+=0A=
+/* DTIM value to pass in for IWN_POWERSAVE_LVL_VOIP_COMPATIBLE */=0A=
+#define	IWN_POWERSAVE_DTIM_VOIP_COMPATIBLE	2=0A=
+=0A=
 /*=0A=
  * RF Tx gain values from highest to lowest power (values obtained from=0A=
  * the reference driver.)=0A=
@@ -1715,6 +1956,19 @@=0A=
 	100=0A=
 };=0A=
 =0A=
+/* Get value from linux kernel 3.2.+ in =
Drivers/net/wireless/iwlwifi/iwl-2000.c*/=0A=
+static const struct iwn_sensitivity_limits iwn2030_sensitivity_limits =
=3D {=0A=
+	105,110,=0A=
+	128,232,=0A=
+	80,145,=0A=
+	128,232,=0A=
+	125,175,=0A=
+	160,310,=0A=
+	97,=0A=
+	97,=0A=
+	110=0A=
+};=0A=
+=0A=
 /* Map TID to TX scheduler's FIFO. */=0A=
 static const uint8_t iwn_tid2fifo[] =3D {=0A=
 	1, 0, 0, 1, 2, 2, 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 3=0A=

------=_NextPart_000_0031_01CE8F81.F53334D0--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?003001ce8f71$31aa64d0$94ff2e70$>