Re: TTY loosing data with u_serial gadget

From: Felipe Balbi
Date: Fri Mar 25 2011 - 07:02:16 EST


On Thu, Mar 24, 2011 at 04:15:02PM +0000, Toby Gray wrote:
> On 24/03/2011 15:40, Stefan Bigler wrote:
> >Can you try this:
> >>diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
> >>index 2f119e2..f0b9fb6 100644
> >>--- a/drivers/tty/tty_buffer.c
> >>+++ b/drivers/tty/tty_buffer.c
> >
> >I tried it and the console is working again.
> >There is still an problem on heavy load transfer from host to gadget.
> >I attached the patch to fix also this problem.
> >
> >diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
> >index 8e0f113..95d0a9c 100644
> >--- a/drivers/tty/n_tty.c
> >+++ b/drivers/tty/n_tty.c
> >@@ -1359,6 +1359,7 @@ static unsigned int n_tty_receive_buf(struct
> >tty_struct *tty,
> > memcpy(tty->read_buf + tty->read_head, cp, i);
> > tty->read_head = (tty->read_head + i) &
> >(N_TTY_BUF_SIZE-1);
> > tty->read_cnt += i;
> >+ ret += i;
> > spin_unlock_irqrestore(&tty->read_lock, cpuflags);
> > } else {
> > ret = count;
> >
> >With this patch I was able to transfer gigabytes without lost data.
>
> I can confirm that this combined with the last two patches from
> Felipe Balbi fix all the issues I've had as well and seems stable and
> without loss under fast data transfers.

Great guys, thanks a lot. Here's the final patch with your Tested-bys

--
balbi