serial: mxs-auart: Fix mxs_auart_set_ldisc()
Subsystems (3)
Fabio Estevam
reviewerPATCH v2 1/1 serial: mxs-auart: Fix mxs_auart_set_ldisc()
From: Fabio Estevam <[email protected]>
Commit 732a84a037a4 ("serial: core: Pass termios to set_ldisc() notifications") changed the set_ldisc prototype.
At the time of this commit the mxs_auart driver did not implement set_ldisc, so that's why it has not been converted.
Adapt also mxs_auart_set_ldisc() so that the following build warning can be fixed:
drivers/tty/serial/mxs-auart.c:962:2: warning: initialization from incompatible pointer type
.set_ldisc = mxs_auart_set_ldisc,
^drivers/tty/serial/mxs-auart.c:962:2: warning: (near initialization for 'mxs_auart_ops.set_ldisc')
---
Changes since v1:
- Fix the explanation for the error
Janusz,
This is build-tested only. Please test it on real hardware, if possible.
drivers/tty/serial/mxs-auart.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/tty/serial/mxs-auart.c +3 -2
@@ -784,9 +784,10 @@ static void mxs_auart_settermios(struct uart_port *u,mxs_auart_disable_ms (u); } -static void mxs_auart_set_ldisc (struct uart_port *port,int new) +static void mxs_auart_set_ldisc (struct uart_port *port, +struct ktermios *termios) { -if (new ==N_PPS ) { +if (termios->c_line ==N_PPS ) { port->flags |=UPF_HARDPPS_CD ;mxs_auart_enable_ms (port); }else {
Signature · 1 line
1.9.1
Hi,
Procedure of the test:
* PPS source connected to a DCD line of the driver (gpio)
* ldattach PPS /dev/ttyAPPn
* watch -n 1 cat /sys/class/pps/pps0/assert
* watch -n 1 cat /sys/class/pps/pps0/clear
I just tested and finally it works on my hardware and 3.18.0-rc4-next-20141114+. Before I applied the your patch-fix and 2 others which were missed (I apologize you here):
"[PATCH] serial: mxs-auart: fix gpio change detection on interrupt" "[PATCH] gpio: mxs: implement get_direction callback"
I submitted them as separate patches because the first fixes tty-next and the second concerns gpio-next (gpiolib in fact).
I hope they could be picked up for linux-next.
My next step for the mxs-auart driver will be:
* RFC patch for spinlocks in the driver, I hope it helps here:
http://thread.gmane.org/gmane.linux.serial/16795
It wasn't continued here:
http://www.spinics.net/lists/linux-serial/msg10887.html
"By the way, where did the spinlocks go in this driver?"
* sync the driver to commit d41510ce2f071c9ccb1903d7a5135443a57dbe4e:
( "serial: Take uart port lock for direct *_enable_ms()")
* sync the driver to commit cab68f89546ba5a04bf28aaeaca841d4ccc2fd52:
( "serial: Test/disable MSIs if switching from N_PPS")
* tx_empty() fix like here with better explanation:
http://comments.gmane.org/gmane.linux.ports.arm.kernel/283882
have a nice weekend
Janusz
W dniu 2014-11-12 o 23:32, Fabio Estevam pisze:
Quoted 47 lines
From: Fabio Estevam <[email protected]>
Commit
732a84a037a4("serial: core: Pass termios toset_ldisc()notifications") changed theset_ldiscprototype.At the time of this commit the
mxs_auartdriver did not implementset_ldisc, so that's why it has not been converted.Adapt also
mxs_auart_set_ldisc()so that the following build warning can be fixed:
drivers/tty/serial/mxs-auart.c:962:2: warning: initialization from incompatible pointer type
.set_ldisc =mxs_auart_set_ldisc,
^drivers/tty/serial/mxs-auart.c:962:2: warning: (near initialization for 'mxs_auart_ops.set_ldisc')Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Fix the explanation for the errorJanusz,
This is build-tested only. Please test it on real hardware, if possible.
drivers/tty/serial/mxs-auart.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)drivers/tty/serial/mxs-auart.c +3
-2@@ -784,9 +784,10 @@ static void mxs_auart_settermios(struct uart_port *u,mxs_auart_disable_ms (u); } -static void mxs_auart_set_ldisc (struct uart_port *port,int new) +static void mxs_auart_set_ldisc (struct uart_port *port, +struct ktermios *termios) { -if (new ==N_PPS ) { +if (termios->c_line ==N_PPS ) { port->flags |=UPF_HARDPPS_CD ;mxs_auart_enable_ms (port); }else {
Fabio Estevam
reviewerHi Janusz,
Quoted 10 lines · Janusz Użycki
Hi,
Procedure of the test:
* PPS source connected to a DCD line of the driver (gpio)
* ldattach PPS/dev/ttyAPPn
* watch -n 1 cat/sys/class/pps/pps0/assert
* watch -n 1 cat/sys/class/pps/pps0/clearI just tested and finally it works on my hardware and 3.18.0-rc4-next-20141114+.
In this case, can you provide your Tested-by tag in reply to my patch? Thanks --
To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
W dniu 2014-11-12 o 23:32, Fabio Estevam pisze:
Quoted 37 lines
From: Fabio Estevam <[email protected]>
Commit
732a84a037a4("serial: core: Pass termios toset_ldisc()notifications") changed theset_ldiscprototype.At the time of this commit the
mxs_auartdriver did not implementset_ldisc, so that's why it has not been converted.Adapt also
mxs_auart_set_ldisc()so that the following build warning can be fixed:
drivers/tty/serial/mxs-auart.c:962:2: warning: initialization from incompatible pointer type
.set_ldisc =mxs_auart_set_ldisc,
^drivers/tty/serial/mxs-auart.c:962:2: warning: (near initialization for 'mxs_auart_ops.set_ldisc')Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Fix the explanation for the errorJanusz,
This is build-tested only. Please test it on real hardware, if possible.
drivers/tty/serial/mxs-auart.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)drivers/tty/serial/mxs-auart.c +0
-0@@ -784,9 +784,10 @@ static void mxs_auart_settermios(struct uart_port *u,mxs_auart_disable_ms (u); }
drivers/tty/serial/mxs-auart.c static void mxs_auart_settermios(struct uart_port *u, · line 793
Quoted 10 lines
drivers/tty/serial/mxs-auart.c +3
-2-static void mxs_auart_set_ldisc (struct uart_port *port,int new) +static void mxs_auart_set_ldisc (struct uart_port *port, +struct ktermios *termios) { -if (new ==N_PPS ) { +if (termios->c_line ==N_PPS ) { port->flags |=UPF_HARDPPS_CD ;mxs_auart_enable_ms (port); }else {