aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sound/pci/hdspe.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/sound/pci/hdspe.h')
-rw-r--r--sys/dev/sound/pci/hdspe.h78
1 files changed, 44 insertions, 34 deletions
diff --git a/sys/dev/sound/pci/hdspe.h b/sys/dev/sound/pci/hdspe.h
index daffeb4ddebc..bced78758068 100644
--- a/sys/dev/sound/pci/hdspe.h
+++ b/sys/dev/sound/pci/hdspe.h
@@ -74,35 +74,43 @@
#define HDSPE_LAT_BYTES_MIN (32 * 4)
#define hdspe_encode_latency(x) (((x)<<1) & HDSPE_LAT_MASK)
-/* Gain */
-#define HDSP_ADGain0 (1 << 25)
-#define HDSP_ADGain1 (1 << 26)
-#define HDSP_DAGain0 (1 << 27)
-#define HDSP_DAGain1 (1 << 28)
-#define HDSP_PhoneGain0 (1 << 29)
-#define HDSP_PhoneGain1 (1 << 30)
-
-#define HDSP_ADGainMask (HDSP_ADGain0 | HDSP_ADGain1)
-#define HDSP_ADGainMinus10dBV (HDSP_ADGainMask)
-#define HDSP_ADGainPlus4dBu (HDSP_ADGain0)
-#define HDSP_ADGainLowGain 0
-
-#define HDSP_DAGainMask (HDSP_DAGain0 | HDSP_DAGain1)
-#define HDSP_DAGainHighGain (HDSP_DAGainMask)
-#define HDSP_DAGainPlus4dBu (HDSP_DAGain0)
-#define HDSP_DAGainMinus10dBV 0
-
-#define HDSP_PhoneGainMask (HDSP_PhoneGain0|HDSP_PhoneGain1)
-#define HDSP_PhoneGain0dB HDSP_PhoneGainMask
-#define HDSP_PhoneGainMinus6dB (HDSP_PhoneGain0)
-#define HDSP_PhoneGainMinus12dB 0
-
-/* Settings */
+/* Register addresses */
#define HDSPE_SETTINGS_REG 0
#define HDSPE_CONTROL_REG 64
#define HDSPE_STATUS_REG 0
#define HDSPE_STATUS1_REG 64
#define HDSPE_STATUS2_REG 192
+
+/* Settings register flags */
+#define HDSPE_SETTINGS_INPUT_GAIN0 (1 << 20)
+#define HDSPE_SETTINGS_INPUT_GAIN1 (1 << 21)
+#define HDSPE_SETTINGS_OUTPUT_GAIN0 (1 << 22)
+#define HDSPE_SETTINGS_OUTPUT_GAIN1 (1 << 23)
+#define HDSPE_SETTINGS_PHONES_GAIN0 (1 << 24)
+#define HDSPE_SETTINGS_PHONES_GAIN1 (1 << 25)
+
+/* Analog input gain level */
+#define HDSPE_INPUT_LEVEL_MASK (HDSPE_SETTINGS_INPUT_GAIN0 | \
+ HDSPE_SETTINGS_INPUT_GAIN1)
+#define HDSPE_INPUT_LEVEL_LOWGAIN 0
+#define HDSPE_INPUT_LEVEL_PLUS4DBU (HDSPE_SETTINGS_INPUT_GAIN0)
+#define HDSPE_INPUT_LEVEL_MINUS10DBV (HDSPE_SETTINGS_INPUT_GAIN1)
+
+/* Analog output gain level */
+#define HDSPE_OUTPUT_LEVEL_MASK (HDSPE_SETTINGS_OUTPUT_GAIN0 | \
+ HDSPE_SETTINGS_OUTPUT_GAIN1)
+#define HDSPE_OUTPUT_LEVEL_HIGHGAIN 0
+#define HDSPE_OUTPUT_LEVEL_PLUS4DBU (HDSPE_SETTINGS_OUTPUT_GAIN0)
+#define HDSPE_OUTPUT_LEVEL_MINUS10DBV (HDSPE_SETTINGS_OUTPUT_GAIN1)
+
+/* Phones output gain level */
+#define HDSPE_PHONES_LEVEL_MASK (HDSPE_SETTINGS_PHONES_GAIN0 | \
+ HDSPE_SETTINGS_PHONES_GAIN1)
+#define HDSPE_PHONES_LEVEL_HIGHGAIN 0
+#define HDSPE_PHONES_LEVEL_PLUS4DBU (HDSPE_SETTINGS_PHONES_GAIN0)
+#define HDSPE_PHONES_LEVEL_MINUS10DBV (HDSPE_SETTINGS_PHONES_GAIN1)
+
+/* Control register flags */
#define HDSPE_ENABLE (1 << 0)
/* Interrupts */
@@ -119,23 +127,25 @@
#define HDSPE_DMASEGSIZE (HDSPE_CHANBUF_SIZE * HDSPE_MAX_SLOTS)
#define HDSPE_CHAN_AIO_LINE (1 << 0)
-#define HDSPE_CHAN_AIO_PHONE (1 << 1)
-#define HDSPE_CHAN_AIO_AES (1 << 2)
-#define HDSPE_CHAN_AIO_SPDIF (1 << 3)
-#define HDSPE_CHAN_AIO_ADAT (1 << 4)
+#define HDSPE_CHAN_AIO_EXT (1 << 1)
+#define HDSPE_CHAN_AIO_PHONE (1 << 2)
+#define HDSPE_CHAN_AIO_AES (1 << 3)
+#define HDSPE_CHAN_AIO_SPDIF (1 << 4)
+#define HDSPE_CHAN_AIO_ADAT (1 << 5)
#define HDSPE_CHAN_AIO_ALL_REC (HDSPE_CHAN_AIO_LINE | \
+ HDSPE_CHAN_AIO_EXT | \
HDSPE_CHAN_AIO_AES | \
HDSPE_CHAN_AIO_SPDIF | \
HDSPE_CHAN_AIO_ADAT)
#define HDSPE_CHAN_AIO_ALL (HDSPE_CHAN_AIO_ALL_REC | \
HDSPE_CHAN_AIO_PHONE) \
-#define HDSPE_CHAN_RAY_AES (1 << 5)
-#define HDSPE_CHAN_RAY_SPDIF (1 << 6)
-#define HDSPE_CHAN_RAY_ADAT1 (1 << 7)
-#define HDSPE_CHAN_RAY_ADAT2 (1 << 8)
-#define HDSPE_CHAN_RAY_ADAT3 (1 << 9)
-#define HDSPE_CHAN_RAY_ADAT4 (1 << 10)
+#define HDSPE_CHAN_RAY_AES (1 << 6)
+#define HDSPE_CHAN_RAY_SPDIF (1 << 7)
+#define HDSPE_CHAN_RAY_ADAT1 (1 << 8)
+#define HDSPE_CHAN_RAY_ADAT2 (1 << 9)
+#define HDSPE_CHAN_RAY_ADAT3 (1 << 10)
+#define HDSPE_CHAN_RAY_ADAT4 (1 << 11)
#define HDSPE_CHAN_RAY_ALL (HDSPE_CHAN_RAY_AES | \
HDSPE_CHAN_RAY_SPDIF | \
HDSPE_CHAN_RAY_ADAT1 | \