summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2011-04-04 16:25:33 +0000
committerShaun Ruffell <sruffell@digium.com>2011-04-04 16:25:33 +0000
commit8fdab3b960b5f135f5168312e503aeeff9e2aa19 (patch)
tree95822cc3d956a70121c36b38d0d4aae2bb291492
parenta833f75edf8c18927cab26f4411835e3a9e9c988 (diff)
wcte12xp: Use the in-hardirq versions of dahdi_receive/dahdi_transmit.
We are in hard-irq context already, so we do not need to disable all local interrupts. On one 3.06GHz Xeon test machine, drops the average time in the interrupt handler from 23.10 us to 21.87 us. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Michael Spiceland <mspiceland@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9886 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--drivers/dahdi/wcte12xp/base.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/dahdi/wcte12xp/base.c b/drivers/dahdi/wcte12xp/base.c
index 235eea3..f4315f4 100644
--- a/drivers/dahdi/wcte12xp/base.c
+++ b/drivers/dahdi/wcte12xp/base.c
@@ -1856,9 +1856,8 @@ static inline void t1_transmitprep(struct t1 *wc, u8 *sframe)
u8 *eframe = sframe;
/* Calculate Transmission */
- if (likely(test_bit(INITIALIZED, &wc->bit_flags))) {
- dahdi_transmit(&wc->span);
- }
+ if (likely(test_bit(INITIALIZED, &wc->bit_flags)))
+ _dahdi_transmit(&wc->span);
#ifdef CONFIG_VOICEBUS_ECREFERENCE
for (chan = 0; chan < wc->span.channels; chan++) {
@@ -1950,19 +1949,19 @@ static inline void t1_receiveprep(struct t1 *wc, const u8* sframe)
for (x = 0; x < wc->span.channels; x++) {
__dahdi_fifo_get(wc->ec_reference[x], buffer,
ARRAY_SIZE(buffer));
- dahdi_ec_chunk(wc->chans[x], wc->chans[x]->readchunk,
+ _dahdi_ec_chunk(wc->chans[x], wc->chans[x]->readchunk,
buffer);
}
#else
for (x = 0; x < wc->span.channels; x++) {
- dahdi_ec_chunk(wc->chans[x], wc->chans[x]->readchunk, wc->ec_chunk2[x]);
+ _dahdi_ec_chunk(wc->chans[x], wc->chans[x]->readchunk, wc->ec_chunk2[x]);
memcpy(wc->ec_chunk2[x], wc->ec_chunk1[x],
DAHDI_CHUNKSIZE);
memcpy(wc->ec_chunk1[x], wc->chans[x]->writechunk,
DAHDI_CHUNKSIZE);
}
#endif
- dahdi_receive(&wc->span);
+ _dahdi_receive(&wc->span);
}
}