Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 735 → Rev 734

/shark/trunk/drivers/serial/scomirq.c
68,18 → 68,16
 
void com_irq_sel(int no)
{
BYTE b, v;
BYTE b;
unsigned i;
 
for(i=0;i<4;i++)
if (com_irq[i] == no) break;
 
while(PENDIRQ(v = com_read(i, IIR))) {
b = DECODE(com_read(i, IIR));
 
b = DECODE(v);
 
switch (b)
{
switch (b)
{
case LS_CHANGED:
LSR_handler(i);
break;
91,10 → 89,7
case TX_EMPTY:
THRE_handler(i);
break;
}
 
}
 
}
 
void com_irq_enable(unsigned port, unsigned irq)
196,12 → 191,9
 
void THRE_handler (unsigned port) /* Transmit Data Register Ready for next byte */
{
if (SCom_TX_data[port].ptr < SCom_TX_data[port].len) {
com_write(port, THR, SCom_TX_data[port].buf[SCom_TX_data[port].ptr++]);
} else {
SCom_Access.confirm(port, COM_OK);
}
 
if (SCom_TX_data[port].ptr < SCom_TX_data[port].len)
com_write(port, THR, SCom_TX_data[port].buf[SCom_TX_data[port].ptr++]);
else SCom_Access.confirm(port, COM_OK);
}
 
void RBRF_handler (unsigned port) /* Receive Data Register Full */
212,6 → 204,6
void LSR_handler (unsigned port) /* break = 8, frame = 4, parity = 2, RBR overrun = 1*/
{
SCom_Error[port] = (com_read(port, LSR) & (bit4|bit3|bit2|bit1) ) >> 1;
SCom_Access.confirm(port, COM_ERROR);
SCom_Access.confirm(port, COM_ERROR);
}