From: Sebastian Reichel <sre@kernel.org>
To: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
Cc: Pavel Machek <pavel@ucw.cz>,
Marcel Holtmann <marcel@holtmann.org>,
Rob Herring <robh@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jslaby@suse.com>,
Peter Hurley <peter@hurleysoftware.com>,
NeilBrown <neil@brown.name>,
"Dr . H . Nikolaus Schaller" <hns@goldelico.com>,
Linus Walleij <linus.walleij@linaro.org>,
"open list:BLUETOOTH DRIVERS" <linux-bluetooth@vger.kernel.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC PATCH 0/3] UART slave device bus
Date: Tue, 23 Aug 2016 02:57:52 +0200 [thread overview]
Message-ID: <20160823005749.io6x4oi7muttkhfx@earth> (raw)
In-Reply-To: <20160823011521.0ed94283@lxorguk.ukuu.org.uk>
[-- Attachment #1: Type: text/plain, Size: 2915 bytes --]
Hi,
On Tue, Aug 23, 2016 at 01:15:21AM +0100, One Thousand Gnomes wrote:
> > > That would still be a regression. Not everyone even uses the kernel
> > > bluetooth stack. It would only return EBUSY if you had done an "up"
> > > on it via the direct bluetooth stack.
> >
> > So it returns EBUSY when uart-bus is used. Since uart-bus is about
> > hardwired devices that's basically always.
>
> That would only be when the bluetooth port in question was active via the
> hardwired interface - which is not always. You choose to turn on/off
> bluetooth interfaces. If you boot with an older user space you'd use
> hciattach instead.
So you mean if I do "hciconfig hci0 down", then the uart-bus should
"down" the tty and only on "hciconfig hci0 up" it should "up" the
tty? I would expect a uart-bus slave-device takes control of the
device ("up" it) on probe. It's hardwired anyway.
Also what should happen if old userspace use hciattach while
uart-bus slave-device doesn't have control over it? Do you
suggest to implement some dummy code, that detects uart-bus already
registered a hci device and returns success without doing anything?
Then "hciconfig hci0 up" will fail, since the tty is already taken
by hciattach.
Or do you suggest to register hci1 and one cannot use hci0? I guess
this breaks even more devices, as the device number changes.
Also note, that there is a chance, that hci0 will go up by some
script before hciattach has been called in your legacy userspace.
Then it will also fail.
So yes, from your point of view there is a regression, just because
it's working automatically. So let's just not convert existing boards
with working hciattach based bluetooth devices. New devices can use
the uart-bus, as it's not a regression for them and Nokia N series
can also do it, since they have no working bluetooth at all at the
moment.
> In many cases you'll also still need the tty interface to do
> things like firmware upgrades.
I would expect the uart-slave driver to know how to do firmware
updates. Actually most bluetooth chips are initialized by uploading
a firmware to them.
And there are definitely uart drivers not caring about having a tty
device. Nokia's vendor driver for their bluetooth protocol contains
a custom omap-serial driver combined with the actual bluetooth
driver. There is nothing related to the tty framework. I think the
same would work for the other hardwired bluetooth chips perfectly
fine.
Note: I'm not in favour of merging uart and bluetooth drivers. This
is really bad design. But it shows, that /dev/tty interface is not
needed by in-kernel drivers.
Of course tty is needed by userland drivers, but I expect, that
those do not use the uart-bus. They already require all kind of
hardware knowledge and don't work out-of-the-box anyway, so they
do not gain from this framework.
-- Sebastian
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2016-08-23 0:57 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-18 1:14 [RFC PATCH 0/3] UART slave device bus Rob Herring
2016-08-18 1:14 ` [RFC PATCH 1/3] uart bus: Introduce new bus for UART slave devices Rob Herring
2016-08-18 1:14 ` [RFC PATCH 2/3] tty: serial_core: make tty_struct optional Rob Herring
2016-08-18 10:50 ` Pavel Machek
2016-08-18 1:14 ` [RFC PATCH 3/3] tty: serial_core: add uart controller registration Rob Herring
[not found] ` <20160818011445.22726-1-robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-08-18 10:22 ` [RFC PATCH 0/3] UART slave device bus Greg Kroah-Hartman
2016-08-18 10:30 ` Marcel Holtmann
2016-08-18 10:53 ` Greg Kroah-Hartman
2016-08-18 13:53 ` Rob Herring
2016-08-18 13:15 ` Rob Herring
[not found] ` <20160818160449.328b2eec@lxorguk.ukuu.org.uk>
2016-08-18 18:33 ` Rob Herring
2016-08-19 11:03 ` One Thousand Gnomes
[not found] ` <20160818160449.328b2eec-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2016-08-25 16:40 ` Rob Herring
2016-08-26 13:12 ` One Thousand Gnomes
2016-08-18 10:39 ` H. Nikolaus Schaller
2016-08-18 10:47 ` Pavel Machek
2016-08-18 10:54 ` H. Nikolaus Schaller
2016-08-18 10:57 ` Greg Kroah-Hartman
[not found] ` <20160818105759.GA642-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2016-08-18 11:14 ` H. Nikolaus Schaller
2016-08-18 14:40 ` One Thousand Gnomes
2016-08-18 11:27 ` H. Nikolaus Schaller
2016-08-18 10:49 ` Marcel Holtmann
2016-08-18 10:55 ` Greg Kroah-Hartman
2016-08-18 11:01 ` Marcel Holtmann
2016-08-18 11:24 ` Greg Kroah-Hartman
[not found] ` <20160818112435.GA20876-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2016-08-18 11:42 ` Pavel Machek
2016-08-18 11:51 ` Marcel Holtmann
2016-08-18 11:10 ` Pavel Machek
2016-08-18 11:18 ` H. Nikolaus Schaller
2016-08-18 11:49 ` Marcel Holtmann
2016-08-18 12:16 ` H. Nikolaus Schaller
2016-08-18 11:47 ` Marcel Holtmann
2016-08-18 13:01 ` Pavel Machek
2016-08-18 11:02 ` H. Nikolaus Schaller
2016-08-18 11:41 ` Marcel Holtmann
[not found] ` <07FF6D1B-7B9B-441C-AFB9-E06AC5F469E2-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2016-08-18 12:07 ` H. Nikolaus Schaller
2016-08-18 11:02 ` Pavel Machek
2016-08-18 13:07 ` Linus Walleij
2016-08-18 17:31 ` Marcel Holtmann
2016-08-18 14:25 ` One Thousand Gnomes
2016-08-18 15:14 ` H. Nikolaus Schaller
[not found] ` <20160818163809.1b2fcfe5@lxorguk.ukuu.org.uk>
2016-08-18 18:31 ` H. Nikolaus Schaller
2016-08-18 22:25 ` Rob Herring
2016-08-19 11:38 ` One Thousand Gnomes
2016-08-19 15:36 ` Sebastian Reichel
2016-08-18 20:29 ` Sebastian Reichel
2016-08-18 23:08 ` Rob Herring
2016-08-19 5:21 ` Sebastian Reichel
2016-08-19 7:29 ` H. Nikolaus Schaller
[not found] ` <ACEF800E-8DB3-4345-ADE2-15C99F3659D5-xXXSsgcRVICgSpxsJD1C4w@public.gmane.org>
2016-08-19 7:49 ` Oleksij Rempel
2016-08-19 17:50 ` H. Nikolaus Schaller
[not found] ` <53A846F1-33E5-48C3-B3A6-DB251661CDD5-xXXSsgcRVICgSpxsJD1C4w@public.gmane.org>
2016-08-19 20:19 ` Oleksij Rempel
2016-08-20 13:34 ` One Thousand Gnomes
2016-08-21 7:50 ` H. Nikolaus Schaller
2016-08-22 20:39 ` Sebastian Reichel
2016-08-22 21:23 ` H. Nikolaus Schaller
2016-08-22 21:43 ` Arnd Bergmann
2016-08-22 22:42 ` Sebastian Reichel
2016-08-22 22:52 ` One Thousand Gnomes
2016-08-22 23:10 ` Sebastian Reichel
2016-08-23 7:28 ` H. Nikolaus Schaller
2016-08-27 12:01 ` Michal Suchanek
2016-08-19 11:06 ` One Thousand Gnomes
2016-08-19 17:42 ` H. Nikolaus Schaller
2016-08-20 13:22 ` One Thousand Gnomes
[not found] ` <20160820142226.6121e76d-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2016-08-21 7:50 ` H. Nikolaus Schaller
2016-08-21 17:09 ` One Thousand Gnomes
2016-08-21 18:23 ` H. Nikolaus Schaller
2016-08-22 9:09 ` One Thousand Gnomes
[not found] ` <20160822100936.19fd809f-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2016-08-22 9:33 ` Marcel Holtmann
2016-08-19 11:03 ` One Thousand Gnomes
2016-08-19 14:44 ` Sebastian Reichel
2016-08-22 12:37 ` Arnd Bergmann
2016-08-22 13:38 ` Rob Herring
2016-08-22 15:24 ` Arnd Bergmann
2016-08-22 15:28 ` Marcel Holtmann
2016-08-22 15:46 ` Arnd Bergmann
2016-08-22 15:45 ` One Thousand Gnomes
2016-08-22 21:07 ` Marcel Holtmann
2016-08-22 21:35 ` One Thousand Gnomes
2016-08-22 22:03 ` Sebastian Reichel
2016-08-22 22:46 ` One Thousand Gnomes
2016-08-22 23:41 ` Sebastian Reichel
2016-08-24 12:14 ` Linus Walleij
2016-08-22 16:44 ` Rob Herring
2016-08-22 17:02 ` One Thousand Gnomes
[not found] ` <20160822180254.5c95af7c-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2016-08-22 17:30 ` Rob Herring
2016-08-22 17:38 ` One Thousand Gnomes
2016-08-22 21:16 ` Marcel Holtmann
2016-08-22 21:32 ` One Thousand Gnomes
2016-08-22 22:00 ` Pavel Machek
2016-08-22 22:54 ` One Thousand Gnomes
2016-08-22 23:57 ` Sebastian Reichel
2016-08-23 0:15 ` One Thousand Gnomes
2016-08-23 0:57 ` Sebastian Reichel [this message]
2016-08-24 13:57 ` One Thousand Gnomes
[not found] ` <20160824145714.02bbebb3-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2016-08-24 14:29 ` Marcel Holtmann
2016-08-23 11:42 ` Marcel Holtmann
2016-08-22 23:02 ` Sebastian Reichel
2016-08-22 20:00 ` Sebastian Reichel
2016-08-22 22:00 ` Rob Herring
2016-08-22 22:18 ` Sebastian Reichel
2016-08-23 21:04 ` Rob Herring
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=20160823005749.io6x4oi7muttkhfx@earth \
--to=sre@kernel.org \
--cc=arnd@arndb.de \
--cc=gnomes@lxorguk.ukuu.org.uk \
--cc=gregkh@linuxfoundation.org \
--cc=hns@goldelico.com \
--cc=jslaby@suse.com \
--cc=linus.walleij@linaro.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=neil@brown.name \
--cc=pavel@ucw.cz \
--cc=peter@hurleysoftware.com \
--cc=robh@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox