Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Mar 2013 00:07:20 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r247741 - in user/adrian/net80211_tx/sys/dev/ath: . ath_hal ath_hal/ar5416
Message-ID:  <201303040007.r2407KDM042608@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Mon Mar  4 00:07:19 2013
New Revision: 247741
URL: http://svnweb.freebsd.org/changeset/base/247741

Log:
  Add a method to set/clear the VMF field in the TX descriptor.
  
  Obtained from:	Qualcomm Atheros

Modified:
  user/adrian/net80211_tx/sys/dev/ath/ath_hal/ah.h
  user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h
  user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
  user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
  user/adrian/net80211_tx/sys/dev/ath/if_athvar.h

Modified: user/adrian/net80211_tx/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- user/adrian/net80211_tx/sys/dev/ath/ath_hal/ah.h	Sun Mar  3 23:39:30 2013	(r247740)
+++ user/adrian/net80211_tx/sys/dev/ath/ath_hal/ah.h	Mon Mar  4 00:07:19 2013	(r247741)
@@ -1527,11 +1527,13 @@ struct ath_hal {
 	    			struct ath_desc *, u_int);
 	void	  __ahdecl(*ah_set11nAggrLast)(struct ath_hal *,
 				struct ath_desc *);
-
 	void	  __ahdecl(*ah_clr11nAggr)(struct ath_hal *,
 	    			struct ath_desc *);
 	void	  __ahdecl(*ah_set11nBurstDuration)(struct ath_hal *,
 	    			struct ath_desc *, u_int);
+	void	  __ahdecl(*ah_set11nVirtMoreFrag)(struct ath_hal *,
+				struct ath_desc *, u_int);
+
 	HAL_BOOL  __ahdecl(*ah_getMibCycleCounts) (struct ath_hal *,
 				HAL_SURVEY_SAMPLE *);
 

Modified: user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h
==============================================================================
--- user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h	Sun Mar  3 23:39:30 2013	(r247740)
+++ user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h	Mon Mar  4 00:07:19 2013	(r247741)
@@ -409,8 +409,9 @@ extern void ar5416Set11nAggrFirst(struct
 		u_int aggrLen, u_int numDelims);
 extern	void ar5416Set11nAggrMiddle(struct ath_hal *ah, struct ath_desc *ds, u_int numDelims);
 extern void ar5416Set11nAggrLast(struct ath_hal *ah, struct ath_desc *ds);
-
 extern	void ar5416Clr11nAggr(struct ath_hal *ah, struct ath_desc *ds);
+extern	void ar5416Set11nVirtualMoreFrag(struct ath_hal *ah,
+		struct ath_desc *ds, u_int vmf);
 
 extern	void ar5416Set11nBurstDuration(struct ath_hal *ah, struct ath_desc *ds, u_int burstDuration);
 

Modified: user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
==============================================================================
--- user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c	Sun Mar  3 23:39:30 2013	(r247740)
+++ user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c	Mon Mar  4 00:07:19 2013	(r247741)
@@ -194,6 +194,7 @@ ar5416InitState(struct ath_hal_5416 *ahp
 	ah->ah_set11nMac2040		= ar5416Set11nMac2040;
 	ah->ah_get11nRxClear		= ar5416Get11nRxClear;
 	ah->ah_set11nRxClear		= ar5416Set11nRxClear;
+	ah->ah_set11nVirtMoreFrag	= ar5416Set11nVirtualMoreFrag;
 
 	/* Interrupt functions */
 	ah->ah_isInterruptPending	= ar5416IsInterruptPending;

Modified: user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
==============================================================================
--- user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c	Sun Mar  3 23:39:30 2013	(r247740)
+++ user/adrian/net80211_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c	Mon Mar  4 00:07:19 2013	(r247741)
@@ -825,6 +825,17 @@ ar5416Clr11nAggr(struct ath_hal *ah, str
 	ads->ds_ctl6 &= ~AR_AggrLen;
 }
 
+void
+ar5416Set11nVirtualMoreFrag(struct ath_hal *ah, struct ath_desc *ds,
+    u_int vmf)
+{
+	struct ar5416_desc *ads = AR5416DESC(ds);
+	if (vmf)
+		ads->ds_ctl0 |= AR_VirtMoreFrag;
+	else
+		ads->ds_ctl0 &= ~AR_VirtMoreFrag;
+}
+
 /*
  * Program the burst duration, with the included BA delta if it's
  * applicable.

Modified: user/adrian/net80211_tx/sys/dev/ath/if_athvar.h
==============================================================================
--- user/adrian/net80211_tx/sys/dev/ath/if_athvar.h	Sun Mar  3 23:39:30 2013	(r247740)
+++ user/adrian/net80211_tx/sys/dev/ath/if_athvar.h	Mon Mar  4 00:07:19 2013	(r247741)
@@ -1297,6 +1297,8 @@ void	ath_intr(void *);
 	((*(_ah)->ah_set11nBurstDuration)((_ah), (_ds), (_dur)))
 #define	ath_hal_clr11n_aggr(_ah, _ds) \
 	((*(_ah)->ah_clr11nAggr)((_ah), (_ds)))
+#define	ath_hal_set11n_virtmorefrag(_ah, _ds, _v) \
+	((*(_ah)->ah_set11nVirtMoreFrag)((_ah), (_ds), (_v)))
 
 #define	ath_hal_gpioCfgOutput(_ah, _gpio, _type) \
 	((*(_ah)->ah_gpioCfgOutput)((_ah), (_gpio), (_type)))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303040007.r2407KDM042608>