summaryrefslogtreecommitdiffstats
path: root/sys/dev/hfa/fore_var.h
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2003-07-31 14:20:07 +0000
committerharti <harti@FreeBSD.org>2003-07-31 14:20:07 +0000
commit4bd81e8df02c228993397aaab260c6c41c49f324 (patch)
tree5ac17744fbfaed400fa40b954c5004756b89b4eb /sys/dev/hfa/fore_var.h
parentf606719cc510c63902ecf1fc001d0da6fba90120 (diff)
downloadFreeBSD-src-4bd81e8df02c228993397aaab260c6c41c49f324.zip
FreeBSD-src-4bd81e8df02c228993397aaab260c6c41c49f324.tar.gz
Make the driver to work with firmware version 4.1.12 (other 4.X.Y should
also do it). Three problems have been encountered: 1. The initialisation command does not work in interrupt mode. Whether this is a firmware bug or a feature is not clear. The original Fore drivers execute the initialize command always in polling mode, so it appears that this behaviour is expected. When we detect a 4.X.Y firmware do busy wait on the command status. 2. The command code of the GET_PROM command has changed. This is an unofficial command anyway. What was GET_PROM in 3.X.Y is CLEAR_STATS in 4.X.Y (although unimplemented in the firmware). We need to use the correct code depending on the firmware. 3. The 4.X.Y firmware can set the error flag in the command status without also setting the completion flag (as the documenation says). Check both variants. An additional field in the per-card structure fu_ft4 is TRUE when we have detected a 4.X.Y firmware. Otherwise it is false. The behaviour of the driver when using a 3.X.Y firmware should be identical to the previous behaviour. This change will enable traffic shaping of (at least one) CBR channels.
Diffstat (limited to 'sys/dev/hfa/fore_var.h')
-rw-r--r--sys/dev/hfa/fore_var.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/hfa/fore_var.h b/sys/dev/hfa/fore_var.h
index 6f7dd4c..ba26928 100644
--- a/sys/dev/hfa/fore_var.h
+++ b/sys/dev/hfa/fore_var.h
@@ -226,6 +226,7 @@ struct fore_unit {
Fore_prom *fu_prom; /* Device PROM buffer */
Fore_prom *fu_promd; /* Device PROM buffer (DMA) */
struct callout_handle fu_thandle; /* Timer handle */
+ int fu_ft4; /* Running ForeThought 4 firmware */
};
typedef struct fore_unit Fore_unit;
OpenPOWER on IntegriCloud