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
next prev parent 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 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.