All of lore.kernel.org
 help / color / mirror / Atom feed
* Bug with 2.6 serial driver when in UART 8250 mode
@ 2004-08-19 16:53 Alexandre Courbot
  0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Courbot @ 2004-08-19 16:53 UTC (permalink / raw)
  To: linux-serial

Hello everybody,

I've sent this email to the lkml but it seems to have raised no 
discussion at all. So I'm submitting it with hopes that someone will at 
least have a look at the matter. Thanks! :)

For communicating with a serial device of ours we need to disable the
UART buffer (the device at the other end doesn't have a serial buffer at
all and therefore we can't use hardware control flow efficiently). The
only way to do this with Linux seems to pass the UART in 8250 mode,
which doesn't use the buffer:

# setserial /dev/ttyS0 uart 8250

We did that with success with 2.4 kernel series. Since most of our
machines are using 2.6, we tried to do the same on them, but noticed
something wrong: only one byte upon 16 is being sent. For instance, if I

$ echo -n "qwertyuiopasdfgh" > /dev/ttyS0

My device only receives the 'h', while with a 2.4 kernel it receives the
entire string.

So I think that for some reason, the UART buffer is not deactivated
while switching it to 8250 mode, and that the driver only sends the last
byte it contains when the interrupt is triggered.

I've tried to look at the code but unfortunately only lost myself
without being able to even identify the right source file to look at.
Sorry about that. :/

Could someone have a look at this or point me to the right section of
code so I do it myself?

Thanks,
Alex.
--
Alexandre Courbot
PhD Student - LIFL/RD2P
http://www.lifl.fr/~courbot/


^ permalink raw reply	[flat|nested] 2+ messages in thread
* Bug with 2.6 serial driver when in UART 8250 mode
@ 2004-08-04 12:31 Alexandre Courbot
  0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Courbot @ 2004-08-04 12:31 UTC (permalink / raw)
  To: linux-kernel

Hello everybody,

For communicating with a serial device of ours we need to disable the 
UART buffer (the device at the other end doesn't have a serial buffer at 
all and therefore we can't use hardware control flow efficiently). The 
only way to do this with Linux seems to pass the UART in 8250 mode, 
which doesn't use the buffer:

# setserial /dev/ttyS0 uart 8250

We did that with success with 2.4 kernel series. Since most of our 
machines are using 2.6, we tried to do the same on them, but noticed 
something wrong: only one byte upon 16 is being sent. For instance, if I

$ echo -n "qwertyuiopasdfgh" > /dev/ttyS0

My device only receives the 'h', while with a 2.4 kernel it receives the 
entire string.

So I think that for some reason, the UART buffer is not deactivated 
while switching it to 8250 mode, and that the driver only sends the last 
byte it contains when the interrupt is triggered.

I've tried to look at the code but unfortunately only lost myself 
without being able to even identify the right source file to look at. 
Sorry about that. :/

Could someone have a look at this or point me to the right section of 
code so I do it myself?

Thanks,
Alex.
PS: please CC replies as I'm not subscribed to the list.
-- 
Alexandre Courbot
PhD Student - LIFL/RD2P
http://www.lifl.fr/~courbot/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-08-19 16:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-19 16:53 Bug with 2.6 serial driver when in UART 8250 mode Alexandre Courbot
  -- strict thread matches above, loose matches on Subject: below --
2004-08-04 12:31 Alexandre Courbot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.