Hi,

I find some problem in MigoR board using scif serial device and console too.

Looking at the setup-Sh7722.c, the platform sci port data has the irqs
line equal to one interrupt. In the driver this line is multiplexed and
using for manage all the interrupt (error, transmit, receive, etc...) but
the sci_mpxed_interrupt check the wrong status for interrupt and break
error. They are on a single bit. So modify the code like this, resolve
the issue.

/* Error Interrupt */
if ((ssr_status & 0x0080) && (scr_status & 0x08)) <-----
sci_er_interrupt(irq, ptr);
/* Break Interrupt */
if ((ssr_status & 0x0010) && (scr_status & 0x08)) <-----
sci_br_interrupt(irq, ptr);

Is there any reasons to multiplex the serial interrupt on sh7722?

Another question is:

It is correct to implement the tx_empty like this?

static unsigned int sci_tx_empty(struct uart_port *port)
{
unsigned int ret = TIOCSER_TEMT;

/* Detect for scif device */
if (port->type == PORT_SCIF) {
if (scif_txroom(port) == SCIF_TXROOM_MAX)
ret = TIOCSER_TEMT;
else
ret = 0;
}
return ret;
}

Regards Michael





Scopri il blog di Yahoo! Mail:
Trucchi, novitÓ e scrivi la tua opinione.
http://www.ymailblogit.com/blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/