From: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
To: Kiran Kumar Raparthy <kiran.kumar@linaro.org>
Cc: linux-kernel@vger.kernel.org, San Mehat <san@google.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jslaby@suse.cz>,
linux-serial@vger.kernel.org,
Android Kernel Team <kernel-team@android.com>,
John Stultz <john.stultz@linaro.org>,
Sumit Semwal <sumit.semwal@linaro.org>
Subject: Re: [RFC] serial_core: Add wake_peer uart operation
Date: Mon, 24 Nov 2014 09:04:45 +0000 [thread overview]
Message-ID: <20141124090445.4340f747@lxorguk.ukuu.org.uk> (raw)
In-Reply-To: <1416293401-7714-1-git-send-email-kiran.kumar@linaro.org>
> This is one of the number of patches from the Android AOSP common.git tree,
> which is used on almost all Android devices. I wanted to submit it for review
> to see if it should go upstream.
>
> drivers/tty/serial/serial_core.c | 3 +++
> include/linux/serial_core.h | 1 +
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
> index df3a8c7..dc45c4b 100644
> --- a/drivers/tty/serial/serial_core.c
> +++ b/drivers/tty/serial/serial_core.c
> @@ -95,6 +95,9 @@ static void __uart_start(struct tty_struct *tty)
> struct uart_state *state = tty->driver_data;
> struct uart_port *port = state->uart_port;
>
> + if (port->ops->wake_peer)
> + port->ops->wake_peer(port);
> +
> if (!uart_tx_stopped(port))
> port->ops->start_tx(port);
> }
> diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
> index 21c2e05..219b6a3 100644
> --- a/include/linux/serial_core.h
> +++ b/include/linux/serial_core.h
> @@ -66,6 +66,7 @@ struct uart_ops {
> void (*set_ldisc)(struct uart_port *, int new);
> void (*pm)(struct uart_port *, unsigned int state,
> unsigned int oldstate);
> + void (*wake_peer)(struct uart_port *);
>
> /*
> * Return a string describing the type of the port
Can we please document the locking and call semantics for this - eg what
stop the peer going back to sleep as this call is made ? when does the
peer go back to sleep ? how does the peer decide to go back to sleep ?
Who sets wake_peer, when may it be set, why is it a uart_op when it's
likely to be per port and really ought to be a bit more dynamic ?
It's probably obvious to Android folks, but the rules are not afaik
written down anywhere in kernel land.
Also I guess why is the power management framework not appropriate for
this should also be answered.
I'm less worried about users - there are a lot of GPL out of tree drivers
using it, and several in tree ones with patches you add for Android use
which exist solely to fix up wake peer and the old wakelocks.
Alan
prev parent reply other threads:[~2014-11-24 9:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-18 6:50 [RFC] serial_core: Add wake_peer uart operation Kiran Kumar Raparthy
2014-11-18 16:25 ` Greg Kroah-Hartman
2014-11-18 16:43 ` Kiran Raparthy
2014-11-24 9:04 ` One Thousand Gnomes [this message]
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=20141124090445.4340f747@lxorguk.ukuu.org.uk \
--to=gnomes@lxorguk.ukuu.org.uk \
--cc=gregkh@linuxfoundation.org \
--cc=john.stultz@linaro.org \
--cc=jslaby@suse.cz \
--cc=kernel-team@android.com \
--cc=kiran.kumar@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=san@google.com \
--cc=sumit.semwal@linaro.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;
as well as URLs for NNTP newsgroup(s).