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)))
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to