Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1674350 > unrolled thread

Directly accessing serial ports from drivers w/o TTYs ?

Started by"Enrico Weigelt, metux IT consult" <enrico.weigelt@gr13.net>
First post2017-06-26 00:50 +0200
Last post2017-06-30 19:30 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  Directly accessing serial ports from drivers w/o TTYs ? "Enrico Weigelt, metux IT consult" <enrico.weigelt@gr13.net> - 2017-06-26 00:50 +0200
    Re: Directly accessing serial ports from drivers w/o TTYs ? Alan Cox <gnomes@lxorguk.ukuu.org.uk> - 2017-06-26 17:00 +0200
      Re: Directly accessing serial ports from drivers w/o TTYs ? "Enrico Weigelt, metux IT consult" <enrico.weigelt@gr13.net> - 2017-06-29 13:50 +0200
        Re: Directly accessing serial ports from drivers w/o TTYs ? Alan Cox <gnomes@lxorguk.ukuu.org.uk> - 2017-06-30 19:30 +0200

#1674350 — Directly accessing serial ports from drivers w/o TTYs ?

From"Enrico Weigelt, metux IT consult" <enrico.weigelt@gr13.net>
Date2017-06-26 00:50 +0200
SubjectDirectly accessing serial ports from drivers w/o TTYs ?
Message-ID<tWovT-2uQ-11@gated-at.bofh.it>
Hi folks,


is there already a way for accessing serial ports from drivers,
w/o having to go through the TTY subsystem ?

Serdev seems provide a connection between arbitrary TTYs to device
drivers. But this implies always having a TTY for each UART (even if
it's never used outside the kernel).

Is there any way for accessing uarts more directly ?


--mtx

--
Enrico, Sohn von Wilfried, a.d.F. Weigelt,
metux IT consulting
+49-151-27565287

[toc] | [next] | [standalone]


#1674842

FromAlan Cox <gnomes@lxorguk.ukuu.org.uk>
Date2017-06-26 17:00 +0200
Message-ID<tWDEC-3EY-19@gated-at.bofh.it>
In reply to#1674350
On Mon, 26 Jun 2017 00:43:12 +0200
"Enrico Weigelt, metux IT consult" <enrico.weigelt@gr13.net> wrote:

> Hi folks,
> 
> 
> is there already a way for accessing serial ports from drivers,
> w/o having to go through the TTY subsystem ?
> 
> Serdev seems provide a connection between arbitrary TTYs to device
> drivers. But this implies always having a TTY for each UART (even if
> it's never used outside the kernel).
> 
> Is there any way for accessing uarts more directly ?

You can write your own driver for the physical hardware and claim it in
your driver. Shouldn't normally be needed except for bizarre cases when a
serial link is used for something very non tty like (eg as GPIO lines).

Otherwise all the low level tty device locking, queues and interfaces
assume there is a tty_struct attached to it, so yes you need a tty
struct.

Why do you need to do otherwise ?

Alan

[toc] | [prev] | [next] | [standalone]


#1677647

From"Enrico Weigelt, metux IT consult" <enrico.weigelt@gr13.net>
Date2017-06-29 13:50 +0200
Message-ID<tXG7o-71O-27@gated-at.bofh.it>
In reply to#1674842
On 26.06.2017 14:51, Alan Cox wrote:

Hi,

> You can write your own driver for the physical hardware and claim it in
> your driver. Shouldn't normally be needed except for bizarre cases when a
> serial link is used for something very non tty like (eg as GPIO lines).

In my case, it's not really a serial link, but an backplane w/ FIFOs, 
which looks like a serial ports to the host (AFAIK, historically coming
from older systems which actually had various serial controllers, eg.
rs232, rs485/mvb, etc). The backplane seems to simulate the lower
layers of an mvb network.

> Otherwise all the low level tty device locking, queues and interfaces
> assume there is a tty_struct attached to it, so yes you need a tty
> struct.

I was thinking about something that looks like serdev from consumer
side, but instead directly works on struct uart_port, w/o actually
allocating a tty (and also the funny things like signals, etc).

> Why do you need to do otherwise ?

Maybe it could offer better performance ?


--mtx

[toc] | [prev] | [next] | [standalone]


#1679016

FromAlan Cox <gnomes@lxorguk.ukuu.org.uk>
Date2017-06-30 19:30 +0200
Message-ID<tY7TX-8jY-9@gated-at.bofh.it>
In reply to#1677647
> I was thinking about something that looks like serdev from consumer
> side, but instead directly works on struct uart_port, w/o actually
> allocating a tty (and also the funny things like signals, etc).

uart_port is only a subset of tty devices and also relies upon tty for
some of the locking and other behaviour.

> > Why do you need to do otherwise ?  
> 
> Maybe it could offer better performance ?

Unless you have very tight latency requirements I would be surprised if
you could do that much better even on a slow machine. If you don't need
tty semantics then you can probably beat it hands down by writing your
own custom driver for the hardware that doesn't pretend to be a tty in
the first place.

The cost in the tty stack is pretty much all the Unix tty API and POSIX
guarantees.

Alan

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web