summaryrefslogtreecommitdiff
path: root/wctdm24xxp/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'wctdm24xxp/base.c')
-rw-r--r--wctdm24xxp/base.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/wctdm24xxp/base.c b/wctdm24xxp/base.c
index a36fea8..086ebaa 100644
--- a/wctdm24xxp/base.c
+++ b/wctdm24xxp/base.c
@@ -2035,15 +2035,6 @@ static int wctdm_init_voicedaa(struct wctdm *wc, int card, int fast, int manual,
/* Enable on-hook line monitor */
wctdm_setreg(wc, card, 5, 0x08);
- /* Apply negative Tx gain of 4.5db to DAA */
- wctdm_setreg(wc, card, 38, 0x14); /* 4db */
- wctdm_setreg(wc, card, 40, 0x15); /* 0.5db */
-
- /* Apply negative Rx gain of 4.5db to DAA */
- wctdm_setreg(wc, card, 39, 0x14); /* 4db */
- wctdm_setreg(wc, card, 41, 0x15); /* 0.5db */
-
-
/* Take values for fxotxgain and fxorxgain and apply them to module */
if (fxotxgain) {
if (fxotxgain >= -150 && fxotxgain < 0) {
@@ -3773,6 +3764,20 @@ static void wctdm_vpm_init(struct wctdm *wc)
wc->vpm = 2;
else
wc->vpm = 1;
+
+ printk("Enabling VPM100 gain adjustments on any FXO ports found\n");
+ for (i = 0; i < wc->type; i++) {
+ if (wc->modtype[i] == MOD_TYPE_FXO) {
+ /* Apply negative Tx gain of 4.5db to DAA */
+ wctdm_setreg(wc, i, 38, 0x14); /* 4db */
+ wctdm_setreg(wc, i, 40, 0x15); /* 0.5db */
+
+ /* Apply negative Rx gain of 4.5db to DAA */
+ wctdm_setreg(wc, i, 39, 0x14); /* 4db */
+ wctdm_setreg(wc, i, 41, 0x15); /* 0.5db */
+ }
+ }
+
}
#endif