From bd096e7becf14e3f6bf858cda48eb7b89fb8a65f Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Mon, 4 Apr 2011 16:25:33 +0000 Subject: 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 Acked-by: Michael Spiceland Acked-by: Kinsey Moore git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9886 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/wcte12xp/base.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'drivers/dahdi/wcte12xp/base.c') 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); } } -- cgit v1.2.3