linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Lars K.W. Gohlke" <lkwg82@gmx.de>
To: Tilman Schmidt <tilman@imap.cc>
Cc: linux-kernel@vger.kernel.org
Subject: Re: How to access correctly serial port inside module?
Date: Thu, 24 May 2007 12:51:38 +0200	[thread overview]
Message-ID: <46556E3A.5090005@gmx.de> (raw)
In-Reply-To: <4648E4A4.60309@imap.cc>

[-- Attachment #1: Type: text/plain, Size: 2426 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tilman Schmidt schrieb:
> Am 14.05.2007 15:00 schrieb Lars K.W. Gohlke:
>> after searching the mailing list and searching the web, I still don't
>> know how to access correctly the serial port (in user space known as
>> /dev/ttyS01)
>
> I can only tell you how I did it in the special case of the
> ser_gigaset driver which drives an ISDN device attached to
> a serial port: I implemented it as a line discipline which
> is associated to the appropriate serial port by a userspace
> daemon.
>
> Reading material:
>
> Documentation/tty.txt
> 	documentation on the line discipline interface
> include/linux/tty.h
> include/linux/tty_ldisc.h
> 	definitions for same
> drivers/isdn/gigaset/ser-gigaset.c
> 	my code - a simple example of abusing the line
> 	discipline interface for your own ends :-)
>
>> would somebody be so kind to give me an example:
>
> I hope the following will help you some. If not, feel free to
> ask again.
>
>> with this behaviour:
>>
>> 1. read from port
>
> That's not how things work in the kernel. There is no system
> call for reading some data that has arrived on that port or
> blocking if there is none, like a userspace program would do.
> Instead, when you register your line discipline you provide
> a callback function (receive_buf) for the serial driver to
> call when data has been received. That function can be called
> at any time and has to deal with the data as it gets it.
>
>> 2. output via printk()
>
> You can of course put a printk() in your receive_buf function.
> But ultimately you'll want to do more than that with the data,
> I'm sure.
>
>> 3. write to port
>
> That's easy. :-) No, it isn't. The serial driver *does*
> provide a function (aptly called "write") for sending data
> to the serial port, but you can't just call it any time you
> like. You have to synchronize with the driver by waiting for
> it to call your "write_wakeup" callback before you can call
> its write function again.
>
> HTH
> T.
>

I read you piece of code but it is overkill for me, I dont not see the
wood for the trees.

Many lines I'm recognizing as things I have read about kernel in my
book, but far away from understanding.

Anyway thx.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (MingW32) - GPGrelay v0.959

iD8DBQFGVW47AAomYJ1taN8RAuccAJ9TIvocrrVFCwcxnFsZZo8cLxLgKACglwD3
/zudmDgwvWo/5St0zC0UnHI=
=1Qgs
-----END PGP SIGNATURE-----

[-- Attachment #2: lkwg82.vcf --]
[-- Type: text/x-vcard, Size: 124 bytes --]

begin:vcard
fn:Lars K.W. Gohlke
n:Gohlke;Lars K.W.
email;internet:lkwg82@gmx.de
x-mozilla-html:FALSE
version:2.1
end:vcard


  reply	other threads:[~2007-05-24 10:51 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-14 13:00 How to access correctly serial port inside module? Lars K.W. Gohlke
2007-05-14 17:40 ` Lars K.W. Gohlke
2007-05-14 20:00   ` Jan Engelhardt
2007-05-14 20:25     ` Lars K.W. Gohlke
2007-05-14 23:00     ` Tilman Schmidt
2007-05-15  8:43       ` Jan Engelhardt
2007-05-22 22:17         ` Tilman Schmidt
2007-05-24 10:22           ` Lars K.W. Gohlke
2007-05-24 10:26             ` Jan Engelhardt
2007-05-24 10:45               ` Lars K.W. Gohlke
2007-05-24 10:50                 ` Jan Engelhardt
2007-05-24 11:20                   ` Lars K.W. Gohlke
2007-05-24 17:03             ` Tilman Schmidt
2007-05-24 17:19               ` Lars K.W. Gohlke
2007-05-24 17:29                 ` Jan Engelhardt
2007-05-24 19:15                   ` Lars K.W. Gohlke
2007-05-28 17:05                     ` Tilman Schmidt
2007-05-28 19:03                       ` Jan Engelhardt
2007-05-30  7:07                       ` Lars K.W. Gohlke
2007-05-30  7:46                         ` Lars K.W. Gohlke
2007-05-30  9:38                           ` Tilman Schmidt
     [not found]       ` <851fc09e0705162315w3380ddabh9b9f0b2198cb8457@mail.gmail.com>
2007-05-22 21:55         ` Tilman Schmidt
2007-06-03 20:28           ` Lars K.W. Gohlke
2007-06-05 21:41             ` Tilman Schmidt
2007-06-06  8:27               ` Lars K.W. Gohlke
2007-06-07 22:25                 ` Lars K.W. Gohlke
2007-06-08  0:27                   ` Tilman Schmidt
2007-05-14 22:37 ` Tilman Schmidt
2007-05-24 10:51   ` Lars K.W. Gohlke [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-06-05  7:55 Lars K.W. Gohlke
2007-06-07 22:27 Lars K.W. Gohlke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46556E3A.5090005@gmx.de \
    --to=lkwg82@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tilman@imap.cc \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).