summaryrefslogtreecommitdiff
path: root/wcfxs.c
diff options
context:
space:
mode:
authormarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2001-12-30 17:24:52 +0000
committermarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2001-12-30 17:24:52 +0000
commit6ac94c3f3bab4d78056af33fff4a30c2157022cb (patch)
tree02bf8a2fec30f1025041678f7628cca7c42d33e1 /wcfxs.c
parenta6aa5b6c4b6795e8d18e7dfbc7f8ee11b770048a (diff)
Version 0.1.5 from FTP
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@46 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'wcfxs.c')
-rwxr-xr-xwcfxs.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/wcfxs.c b/wcfxs.c
index 88e39ff..0a9783b 100755
--- a/wcfxs.c
+++ b/wcfxs.c
@@ -64,7 +64,8 @@ static alpha indirect_regs[] =
{25,"PULSE_Y",0x0000},
//{26,"RECV_DIGITAL_GAIN",0x4000}, // playback volume set lower
{26,"RECV_DIGITAL_GAIN",0x2000}, // playback volume set lower
-{27,"XMIT_DIGITAL_GAIN",0x4000},
+//{27,"XMIT_DIGITAL_GAIN",0x4000},
+{27,"XMIT_DIGITAL_GAIN",0x2000},
{28,"LOOP_CLOSE_TRES",0x1000},
{29,"RING_TRIP_TRES",0x3600},
{30,"COMMON_MIN_TRES",0x1000},
@@ -192,10 +193,10 @@ static inline void wcfxs_receiveprep(struct wcfxs *wc, unsigned char ints)
int x;
if (ints & 0x08)
- /* Read is at interrupt address. Valid data is available at normal offset */
- readchunk = wc->readchunk;
- else
readchunk = wc->readchunk + ZT_CHUNKSIZE;
+ else
+ /* Read is not at interrupt address. Valid data is available at normal offset */
+ readchunk = wc->readchunk;
for (x=0;x<ZT_CHUNKSIZE;x++) {
wc->chan.readchunk[x] = (readchunk[x] >> 24) & 0xff;
}
@@ -229,8 +230,8 @@ static void wcfxs_interrupt(int irq, void *dev_id, struct pt_regs *regs)
wc->intcount++;
if (!(wc->intcount % 10))
wcfxs_check_hook(wc);
- wcfxs_transmitprep(wc, ints);
- wcfxs_receiveprep(wc, ints);
+ if (ints & 3) wcfxs_transmitprep(wc, ints);
+ if (ints & 0xc) wcfxs_receiveprep(wc, ints);
}
}