Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Feb 2011 16:37:29 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r218490 - in head/sys/dev/ath: . ath_hal
Message-ID:  <201102091637.p19GbTLD090462@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Wed Feb  9 16:37:29 2011
New Revision: 218490
URL: http://svn.freebsd.org/changeset/base/218490

Log:
  Expose the 4k transaction workaround hooks to the driver, but don't (yet)
  fix the descriptor allocation.

Modified:
  head/sys/dev/ath/ath_hal/ah.c
  head/sys/dev/ath/ath_hal/ah.h
  head/sys/dev/ath/if_athvar.h

Modified: head/sys/dev/ath/ath_hal/ah.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.c	Wed Feb  9 15:55:48 2011	(r218489)
+++ head/sys/dev/ath/ath_hal/ah.c	Wed Feb  9 16:37:29 2011	(r218490)
@@ -594,6 +594,8 @@ ath_hal_getcapability(struct ath_hal *ah
 		default:
 			return HAL_ENOTSUPP;
 		}
+	case HAP_CAP_SPLIT_4KB_TRANS:	/* hardware handles descriptors straddling 4k page boundary */
+		return pCap->hal4kbSplitTransSupport ? HAL_OK : HAL_ENOTSUPP;
 	default:
 		return HAL_EINVAL;
 	}

Modified: head/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.h	Wed Feb  9 15:55:48 2011	(r218489)
+++ head/sys/dev/ath/ath_hal/ah.h	Wed Feb  9 16:37:29 2011	(r218490)
@@ -112,6 +112,7 @@ typedef enum {
 	HAL_CAP_INTRMASK	= 37,	/* bitmask of supported interrupts */
 	HAL_CAP_BSSIDMATCH	= 38,	/* hardware has disable bssid match */
 	HAL_CAP_STREAMS		= 39,	/* how many 802.11n spatial streams are available */
+	HAP_CAP_SPLIT_4KB_TRANS	= 40,	/* hardware supports descriptors straddling a 4k page boundary */
 } HAL_CAPABILITY_TYPE;
 
 /* 

Modified: head/sys/dev/ath/if_athvar.h
==============================================================================
--- head/sys/dev/ath/if_athvar.h	Wed Feb  9 15:55:48 2011	(r218489)
+++ head/sys/dev/ath/if_athvar.h	Wed Feb  9 16:37:29 2011	(r218490)
@@ -636,6 +636,8 @@ void	ath_intr(void *);
 	(ath_hal_getcapability(_ah, HAL_CAP_RX_CHAINMASK, 0, _prxchainmask))
 #define	ath_hal_gettxchainmask(_ah, _ptxchainmask) \
 	(ath_hal_getcapability(_ah, HAL_CAP_TX_CHAINMASK, 0, _ptxchainmask))
+#define	ath_hal_split4ktrans(_ah) \
+	(ath_hal_getcapability(_ah, HAP_CAP_SPLIT_4KB_TRANS, 0, NULL) == HAL_OK)
 
 #define	ath_hal_setuprxdesc(_ah, _ds, _size, _intreq) \
 	((*(_ah)->ah_setupRxDesc)((_ah), (_ds), (_size), (_intreq)))



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