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
This commit is contained in:
parent
f38965153b
commit
5ffb28b1f0
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user