svn commit: r188788 - in projects/vap7/sys: . contrib/pf dev
dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210
dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212
dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54...
Sam Leffler
sam at FreeBSD.org
Wed Feb 18 21:45:06 PST 2009
Author: sam
Date: Thu Feb 19 05:45:05 2009
New Revision: 188788
URL: http://svn.freebsd.org/changeset/base/188788
Log:
merge r188771: add HAL_DIAG_SETREGS to write registers via the diag api
Modified:
projects/vap7/sys/ (props changed)
projects/vap7/sys/contrib/pf/ (props changed)
projects/vap7/sys/dev/ (props changed)
projects/vap7/sys/dev/ath/ (props changed)
projects/vap7/sys/dev/ath/ath_hal/ (props changed)
projects/vap7/sys/dev/ath/ath_hal/ah.c
projects/vap7/sys/dev/ath/ath_hal/ah_internal.h
projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed)
projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed)
projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed)
projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed)
projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed)
projects/vap7/sys/dev/cxgb/ (props changed)
projects/vap7/sys/dev/usb2/ (props changed)
projects/vap7/sys/i386/conf/USB2 (props changed)
projects/vap7/sys/modules/usb2/ (props changed)
projects/vap7/sys/net80211/ (props changed)
Modified: projects/vap7/sys/dev/ath/ath_hal/ah.c
==============================================================================
--- projects/vap7/sys/dev/ath/ath_hal/ah.c Thu Feb 19 05:44:25 2009 (r188787)
+++ projects/vap7/sys/dev/ath/ath_hal/ah.c Thu Feb 19 05:45:05 2009 (r188788)
@@ -539,6 +539,15 @@ ath_hal_getregdump(struct ath_hal *ah, c
}
return (char *) dp - (char *) dstbuf;
}
+
+static void
+ath_hal_setregs(struct ath_hal *ah, const HAL_REGWRITE *regs, int space)
+{
+ while (space >= sizeof(HAL_REGWRITE)) {
+ OS_REG_WRITE(ah, regs->addr, regs->value);
+ regs++, space -= sizeof(HAL_REGWRITE);
+ }
+}
HAL_BOOL
ath_hal_getdiagstate(struct ath_hal *ah, int request,
@@ -553,6 +562,10 @@ ath_hal_getdiagstate(struct ath_hal *ah,
case HAL_DIAG_REGS:
*resultsize = ath_hal_getregdump(ah, args, *result,*resultsize);
return AH_TRUE;
+ case HAL_DIAG_SETREGS:
+ ath_hal_setregs(ah, args, argsize);
+ *resultsize = 0;
+ return AH_TRUE;
case HAL_DIAG_FATALERR:
*result = &AH_PRIVATE(ah)->ah_fatalState[0];
*resultsize = sizeof(AH_PRIVATE(ah)->ah_fatalState);
Modified: projects/vap7/sys/dev/ath/ath_hal/ah_internal.h
==============================================================================
--- projects/vap7/sys/dev/ath/ath_hal/ah_internal.h Thu Feb 19 05:44:25 2009 (r188787)
+++ projects/vap7/sys/dev/ath/ath_hal/ah_internal.h Thu Feb 19 05:45:05 2009 (r188788)
@@ -49,6 +49,11 @@ typedef struct {
uint16_t end; /* ending register or zero */
} HAL_REGRANGE;
+typedef struct {
+ uint32_t addr; /* regiser address/offset */
+ uint32_t value; /* value to write */
+} HAL_REGWRITE;
+
/*
* Transmit power scale factor.
*
@@ -609,16 +614,14 @@ enum {
HAL_DIAG_RESETKEY = 16, /* Reset keycache backdoor */
HAL_DIAG_EEREAD = 17, /* Read EEPROM word */
HAL_DIAG_EEWRITE = 18, /* Write EEPROM word */
- /* 19 was HAL_DIAG_TXCONT, 20-23 were for radar */
- HAL_DIAG_REGREAD = 24, /* Reg reads */
- HAL_DIAG_REGWRITE = 25, /* Reg writes */
- HAL_DIAG_GET_REGBASE = 26, /* Get register base */
+ /* 19-26 removed, do not reuse */
HAL_DIAG_RDWRITE = 27, /* Write regulatory domain */
HAL_DIAG_RDREAD = 28, /* Get regulatory domain */
HAL_DIAG_FATALERR = 29, /* Read cached interrupt state */
HAL_DIAG_11NCOMPAT = 30, /* 11n compatibility tweaks */
HAL_DIAG_ANI_PARAMS = 31, /* ANI noise immunity parameters */
HAL_DIAG_CHECK_HANGS = 32, /* check h/w hangs */
+ HAL_DIAG_SETREGS = 33, /* write registers */
};
enum {
More information about the svn-src-projects
mailing list