From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: gyang <graf.yang@analog.com>
Cc: Bryan Wu <cooloney@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
torvalds@osdl.org
Subject: [PATCH] serial_core: uart_set_ldisc (Was Re: Blackfin Serial Driver: Enable IR function when user application (irattach /dev/ttyBFx -s) call TIOCSETD ioctl with line discipline N_IRDA)
Date: Tue, 3 Jun 2008 15:18:54 +0100 [thread overview]
Message-ID: <20080603151854.488af929@core> (raw)
In-Reply-To: <1212459526.6187.8.camel@dyang>
On Tue, 03 Jun 2008 10:18:46 +0800
gyang <graf.yang@analog.com> wrote:
> Hi, Alan,
>
> Have the set_ldisc operator been put into main tree?
It's been in for ages. The Uart level one seems to have gotten stuck. Let
me poke that again
--
The tty layer provides a callback that is used when the line discipline
is changed. Some hardware uses this to configure hardware specific
features such as IrDA mode on serial ports. Unfortunately the serial
layer does not provide this feature or pass it down to drivers.
Blackfin used to hack around this by rewriting the tty ops, but those are
now properly shared and const so the hack fails. Instead provide the
proper operations.
Linus: This change plus a follow up from the Blackfin guys is needed to
avoid blackfin losing features in this release.
Signed-off-by: Alan Cox <alan@redhat.com>
diff -u --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.26-rc2/drivers/serial/serial_core.c linux-2.6.26-rc2/drivers/serial/serial_core.c
--- linux.vanilla-2.6.26-rc2/drivers/serial/serial_core.c 2008-05-12 12:09:06.000000000 +0100
+++ linux-2.6.26-rc2/drivers/serial/serial_core.c 2008-06-03 15:09:52.000000000 +0100
@@ -1165,6 +1166,15 @@
return ret;
}
+static void uart_set_ldisc(struct tty_struct *tty, int ldisc)
+{
+ struct uart_state *state = tty->driver_data;
+ struct uart_port *port = state->port;
+
+ if (port->ops->set_ldisc)
+ port->ops->set_ldisc(port);
+}
+
static void uart_set_termios(struct tty_struct *tty,
struct ktermios *old_termios)
{
@@ -2285,6 +2298,7 @@
.unthrottle = uart_unthrottle,
.send_xchar = uart_send_xchar,
.set_termios = uart_set_termios,
+ .set_ldisc = uart_set_ldisc,
.stop = uart_stop,
.start = uart_start,
.hangup = uart_hangup,
diff -u --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.26-rc2/include/linux/serial_core.h linux-2.6.26-rc2/include/linux/serial_core.h
--- linux.vanilla-2.6.26-rc2/include/linux/serial_core.h 2008-05-12 12:09:08.000000000 +0100
+++ linux-2.6.26-rc2/include/linux/serial_core.h 2008-06-03 15:08:28.000000000 +0100
@@ -192,6 +192,7 @@
void (*shutdown)(struct uart_port *);
void (*set_termios)(struct uart_port *, struct ktermios *new,
struct ktermios *old);
+ void (*set_ldisc)(struct uart_port *);
void (*pm)(struct uart_port *, unsigned int state,
unsigned int oldstate);
int (*set_wake)(struct uart_port *, unsigned int state);
next prev parent reply other threads:[~2008-06-03 14:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200804241929.m3OJToSE021045@hera.kernel.org>
2008-04-24 20:50 ` Blackfin Serial Driver: Enable IR function when user application (irattach /dev/ttyBFx -s) call TIOCSETD ioctl with line discipline N_IRDA Alan Cox
2008-04-25 9:22 ` Yang, Graf
2008-04-25 9:55 ` Alan Cox
2008-05-04 15:27 ` Bryan Wu
2008-05-04 15:56 ` Alan Cox
2008-06-03 2:18 ` gyang
2008-06-03 14:18 ` Alan Cox [this message]
2008-06-04 15:59 ` [PATCH] serial_core: uart_set_ldisc (Was Re: Blackfin Serial Driver: Enable IR function when user application (irattach /dev/ttyBFx -s) call TIOCSETD ioctl with line discipline N_IRDA) Linus Torvalds
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=20080603151854.488af929@core \
--to=alan@lxorguk.ukuu.org.uk \
--cc=cooloney@kernel.org \
--cc=graf.yang@analog.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.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