svn commit: r247774 - in head/sys/dev/ath: . ath_hal ath_hal/ar5416
Adrian Chadd
adrian at FreeBSD.org
Mon Mar 4 07:47:00 UTC 2013
Author: adrian
Date: Mon Mar 4 07:40:49 2013
New Revision: 247774
URL: http://svnweb.freebsd.org/changeset/base/247774
Log:
add a method to set/clear the VMF field in the TX descriptor.
Obtained from: Qualcomm Atheros
Modified:
head/sys/dev/ath/ath_hal/ah.h
head/sys/dev/ath/ath_hal/ar5416/ar5416.h
head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
head/sys/dev/ath/if_athvar.h
Modified: head/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.h Mon Mar 4 07:25:11 2013 (r247773)
+++ head/sys/dev/ath/ath_hal/ah.h Mon Mar 4 07:40:49 2013 (r247774)
@@ -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: head/sys/dev/ath/ath_hal/ar5416/ar5416.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416.h Mon Mar 4 07:25:11 2013 (r247773)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416.h Mon Mar 4 07:40:49 2013 (r247774)
@@ -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: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Mar 4 07:25:11 2013 (r247773)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Mar 4 07:40:49 2013 (r247774)
@@ -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: head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c Mon Mar 4 07:25:11 2013 (r247773)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c Mon Mar 4 07:40:49 2013 (r247774)
@@ -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: head/sys/dev/ath/if_athvar.h
==============================================================================
--- head/sys/dev/ath/if_athvar.h Mon Mar 4 07:25:11 2013 (r247773)
+++ head/sys/dev/ath/if_athvar.h Mon Mar 4 07:40:49 2013 (r247774)
@@ -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)))
More information about the svn-src-head
mailing list