diff options
Diffstat (limited to 'drivers/net/soundmodem/sm_sbc.c')
-rw-r--r-- | drivers/net/soundmodem/sm_sbc.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/soundmodem/sm_sbc.c b/drivers/net/soundmodem/sm_sbc.c index 2a2f874aa..fc26b57bf 100644 --- a/drivers/net/soundmodem/sm_sbc.c +++ b/drivers/net/soundmodem/sm_sbc.c @@ -339,6 +339,7 @@ static void sbc_interrupt(int irq, void *dev_id, struct pt_regs *regs) sti(); if (sm->dma.ptt_cnt <= 0) { dma_receive(sm, curfrag); + hdlcdrv_arbitrate(dev, &sm->hdrv); if (hdlcdrv_ptt(&sm->hdrv)) { /* starting to transmit */ disable_dma(dev->dma); @@ -352,10 +353,8 @@ static void sbc_interrupt(int irq, void *dev_id, struct pt_regs *regs) sti(); dma_init_receive(sm); setup_dma_dsp(dev, sm, 0); - } else { + } else dma_transmit(sm); - hdlcdrv_arbitrate(dev, &sm->hdrv); - } sm_output_status(sm); hdlcdrv_transmitter(dev, &sm->hdrv); hdlcdrv_receiver(dev, &sm->hdrv); |