X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fser_dsp56k.c;h=38dd40b97222610458e9c5a92e154d96eec8f79c;hb=f530f9a7018684f5ad744076220f845ed7732244;hp=efdb2e2bcc0a899526736d6782266fde753f02d6;hpb=0c26c885fbf3ab9b731e4733eff7713d3980b1ea;p=bertos.git diff --git a/drv/ser_dsp56k.c b/drv/ser_dsp56k.c index efdb2e2b..38dd40b9 100755 --- a/drv/ser_dsp56k.c +++ b/drv/ser_dsp56k.c @@ -15,6 +15,9 @@ /*#* *#* $Log$ + *#* Revision 1.8 2004/10/26 09:00:49 bernie + *#* Don't access serial data register twice. + *#* *#* Revision 1.7 2004/10/19 08:57:15 bernie *#* Bugfixes for DSP56K serial driver from scfirm. *#* @@ -146,10 +149,10 @@ static void rx_isr(const struct SCI *hw) unsigned char data = regs->DR; if (fifo_isfull(&hw->serial->rxfifo)) - if (fifo_isfull(&hw->serial->rxfifo)) - hw->serial->status |= SERRF_RXFIFOOVERRUN; - else - fifo_push(&hw->serial->rxfifo, regs->DR); + hw->serial->status |= SERRF_RXFIFOOVERRUN; + else + fifo_push(&hw->serial->rxfifo, data); + } // Writing anything to the status register clear the error bits. regs->SR = 0;