Re: [RFC] serial_core: Add wake_peer uart operation

From: Greg Kroah-Hartman
Date: Tue Nov 18 2014 - 11:25:52 EST


On Tue, Nov 18, 2014 at 12:20:01PM +0530, Kiran Kumar Raparthy wrote:
> From: San Mehat <san@xxxxxxxxxx>
>
> serial_core: Add wake_peer uart operation
>
> Add wake_peer which is called before starting UART TX. The idea here
> is to provide a mechanism where we can wakeup our peer before sending
> data.
>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Jiri Slaby <jslaby@xxxxxxx>
> Cc: linux-serial@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: Android Kernel Team <kernel-team@xxxxxxxxxxx>
> Cc: John Stultz <john.stultz@xxxxxxxxxx>
> Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx>
> Signed-off-by: San Mehat <san@xxxxxxxxxx>
> [Kiran: Added context to commit message]
> Signed-off-by: Kiran Raparthy <kiran.kumar@xxxxxxxxxx>
> ---
> 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

Do you have a driver that uses this callback to submit? I really don't
like taking hooks that are not used in the tree, otherwise it usually
gets removed by someone who says, "look this hook isn't being used,
let's delete it!"

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/