From: NeilBrown <neilb-l3A5Bk7waGM@public.gmane.org>
To: Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
Cc: Grant Likely
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Greg Kroah-Hartman
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Jiri Slaby <jslaby-AlSwsSmVLrQ@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 1/3] TTY: add support for "tty slave" devices.
Date: Mon, 5 Jan 2015 20:09:36 +1300 [thread overview]
Message-ID: <20150105200936.2ba8f596@notabene.brown> (raw)
In-Reply-To: <20150104101847.GA6122@amd>
[-- Attachment #1: Type: text/plain, Size: 2431 bytes --]
On Sun, 4 Jan 2015 11:18:47 +0100 Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> wrote:
> Hi!
>
> > > > +Optional child node:
> > > > +- a platform device listed as a child node will be probed and
> > > > + powered-on whenever the tty is in use (open).
> > > > +
> > > > Example:
> > > >
> > > > uart@80230000 {
> > >
>
> > But some line disciplines don't really want the char_dev.
> > N_MOUSE wants a serio device.
> > N_HCI wants an HCI device
> > N_GSM07010 wants 63 different tty char_devs.
> > N_IRDA and N_PPP ultimately want a net_dev.
> > etc.
> >
> > It would be really nice if the uart would register the line disciple as a
> > child device, then the line discipline would register whatever it wants.
>
> Yes.
>
> > N_HCI activates (registers the hci dev) on HCIUARTSETPROTO ioctl. A child
> > device would need a way to specify the protocol I resume.
> > N_MOUSE activates on a 'read' on the tty - and deactivates when the read
> > completes.
> > N_GSM0710 activates immediately that the ldisc is activated, as does N_IRDA
> > N_PPP seems to want a PPPIOCNEWUNIT ioctl to fully register.
> >
> > Doing any of these in a driver for a uart slave device would certainly be
> > possible. I wonder if it is something we really want to do in the kernel
> > though. What is the gain over providing sufficient information in the
> > KOBJ_ADD uevent so that udev can do the required work in user-space?
>
> Consistency. If you have bluetooth on USB, it automatically works,
> without userspace help. If we have mouse on USB, it automatically
> works, etc...
My point is: why is the kernel/userspace distinction important? As long as
it "automatically works", does it really matter where the code is?
We can put a little bit of code in the kernel (to report the details of the
attached device) and a little bit of code in udev (to run hciattach) and it
will still be automatic.
NeilBrown
>
> > However I do like the idea of having the UART probe the child instead of
> > registering a tty. It could pass the tty_operations structure to the child,
> > and the child could then register a tty with a slightly different
> > tty_operations structure, allowing it to capture any operations that it wants
> > to capture (such as open/close).
> > I might try coding that and see what it looks like...
>
> Lets have a look...
> Pavel
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: NeilBrown <neilb@suse.de>
To: Pavel Machek <pavel@ucw.cz>
Cc: Grant Likely <grant.likely@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Mark Rutland <mark.rutland@arm.com>, Jiri Slaby <jslaby@suse.cz>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] TTY: add support for "tty slave" devices.
Date: Mon, 5 Jan 2015 20:09:36 +1300 [thread overview]
Message-ID: <20150105200936.2ba8f596@notabene.brown> (raw)
In-Reply-To: <20150104101847.GA6122@amd>
[-- Attachment #1: Type: text/plain, Size: 2409 bytes --]
On Sun, 4 Jan 2015 11:18:47 +0100 Pavel Machek <pavel@ucw.cz> wrote:
> Hi!
>
> > > > +Optional child node:
> > > > +- a platform device listed as a child node will be probed and
> > > > + powered-on whenever the tty is in use (open).
> > > > +
> > > > Example:
> > > >
> > > > uart@80230000 {
> > >
>
> > But some line disciplines don't really want the char_dev.
> > N_MOUSE wants a serio device.
> > N_HCI wants an HCI device
> > N_GSM07010 wants 63 different tty char_devs.
> > N_IRDA and N_PPP ultimately want a net_dev.
> > etc.
> >
> > It would be really nice if the uart would register the line disciple as a
> > child device, then the line discipline would register whatever it wants.
>
> Yes.
>
> > N_HCI activates (registers the hci dev) on HCIUARTSETPROTO ioctl. A child
> > device would need a way to specify the protocol I resume.
> > N_MOUSE activates on a 'read' on the tty - and deactivates when the read
> > completes.
> > N_GSM0710 activates immediately that the ldisc is activated, as does N_IRDA
> > N_PPP seems to want a PPPIOCNEWUNIT ioctl to fully register.
> >
> > Doing any of these in a driver for a uart slave device would certainly be
> > possible. I wonder if it is something we really want to do in the kernel
> > though. What is the gain over providing sufficient information in the
> > KOBJ_ADD uevent so that udev can do the required work in user-space?
>
> Consistency. If you have bluetooth on USB, it automatically works,
> without userspace help. If we have mouse on USB, it automatically
> works, etc...
My point is: why is the kernel/userspace distinction important? As long as
it "automatically works", does it really matter where the code is?
We can put a little bit of code in the kernel (to report the details of the
attached device) and a little bit of code in udev (to run hciattach) and it
will still be automatic.
NeilBrown
>
> > However I do like the idea of having the UART probe the child instead of
> > registering a tty. It could pass the tty_operations structure to the child,
> > and the child could then register a tty with a slightly different
> > tty_operations structure, allowing it to capture any operations that it wants
> > to capture (such as open/close).
> > I might try coding that and see what it looks like...
>
> Lets have a look...
> Pavel
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
next prev parent reply other threads:[~2015-01-05 7:09 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-11 21:59 [PATCH 0/3] Add support for 'tty-slaves' described by devicetree NeilBrown
2014-12-11 21:59 ` [PATCH 2/3] TTY: add slave driver to power-on device via a regulator NeilBrown
[not found] ` <20141211215944.4127.4186.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2014-12-11 22:58 ` Sebastian Reichel
2014-12-11 22:58 ` Sebastian Reichel
2014-12-12 0:46 ` Marcel Holtmann
2014-12-12 1:31 ` Sebastian Reichel
2014-12-12 5:01 ` NeilBrown
2014-12-11 23:32 ` Peter Hurley
2014-12-11 23:32 ` Peter Hurley
2014-12-12 5:27 ` NeilBrown
[not found] ` <20141212162714.3a2378df-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2014-12-12 11:59 ` Peter Hurley
2014-12-12 11:59 ` Peter Hurley
2014-12-12 12:05 ` Grant Likely
2014-12-11 21:59 ` [PATCH 1/3] TTY: add support for "tty slave" devices NeilBrown
[not found] ` <20141211215943.4127.24792.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2014-12-11 22:41 ` Sebastian Reichel
2014-12-11 22:41 ` Sebastian Reichel
2014-12-11 23:18 ` Peter Hurley
2014-12-11 23:18 ` Peter Hurley
[not found] ` <548A264D.8070103-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
2014-12-12 5:23 ` NeilBrown
2014-12-12 5:23 ` NeilBrown
[not found] ` <20141212162352.66be5b5e-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2014-12-12 13:02 ` Peter Hurley
2014-12-12 13:02 ` Peter Hurley
2014-12-13 14:23 ` One Thousand Gnomes
[not found] ` <20141213142344.61372b92-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2014-12-16 16:14 ` Peter Hurley
2014-12-16 16:14 ` Peter Hurley
2014-12-13 14:12 ` One Thousand Gnomes
2014-12-13 14:12 ` One Thousand Gnomes
2014-12-12 11:59 ` Grant Likely
2014-12-13 17:46 ` Sebastian Reichel
2014-12-13 22:22 ` Grant Likely
2014-12-28 14:20 ` Pavel Machek
2015-01-02 21:33 ` NeilBrown
2015-01-04 10:18 ` Pavel Machek
2015-01-05 7:09 ` NeilBrown [this message]
2015-01-05 7:09 ` NeilBrown
[not found] ` <20150105200936.2ba8f596-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2015-01-05 13:43 ` Pavel Machek
2015-01-05 13:43 ` Pavel Machek
2015-01-05 15:41 ` One Thousand Gnomes
2015-01-05 16:28 ` Pavel Machek
2014-12-11 21:59 ` [PATCH 3/3] TTY/slave: add driver for w2sg0004 GPS NeilBrown
[not found] ` <20141211215944.4127.57146.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2014-12-11 23:04 ` Sebastian Reichel
2014-12-11 23:04 ` Sebastian Reichel
2014-12-11 23:11 ` One Thousand Gnomes
2014-12-11 23:11 ` One Thousand Gnomes
[not found] ` <20141211231100.05782a30-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2014-12-12 5:06 ` NeilBrown
2014-12-12 5:06 ` NeilBrown
[not found] ` <20141212160607.361d20db-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2014-12-15 11:39 ` One Thousand Gnomes
2014-12-15 11:39 ` One Thousand Gnomes
2014-12-12 12:11 ` Grant Likely
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=20150105200936.2ba8f596@notabene.brown \
--to=neilb-l3a5bk7wagm@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=jslaby-AlSwsSmVLrQ@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=pavel-+ZI9xUNit7I@public.gmane.org \
/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.