* [PATCH v2] serial: meson: add Magic SysRq support @ 2017-09-06 13:52 ` Yixun Lan 0 siblings, 0 replies; 12+ messages in thread From: Yixun Lan @ 2017-09-06 13:52 UTC (permalink / raw) To: linus-amlogic This dirver try to implement the Magic SysRq support[1] for Amlogic Inc's meson platfo >From the hardware perspective, the UART IP can't detect the 'BREAK' command clearly via the status register. Instead, we rely on the combination of 'FRAME_ERR bit && ch == 0', and it works fine. [1] Documentation/admin-guide/sysrq.rst Signed-off-by: Yixun Lan <dlan@gentoo.org> --- Changes since v1 at [0]: - add changelog & a few more comments [0] https://patchwork.kernel.org/patch/9728475/ --- drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c index 42e4a4c7597f..3fea24bafd80 100644 --- a/drivers/tty/serial/meson_uart.c +++ b/drivers/tty/serial/meson_uart.c @@ -14,6 +14,10 @@ * */ +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) +#define SUPPORT_SYSRQ +#endif + #include <linux/clk.h> #include <linux/console.h> #include <linux/delay.h> @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) { struct tty_port *tport = &port->state->port; char flag; - u32 status, ch, mode; + u32 ostatus, status, ch, mode; do { flag = TTY_NORMAL; port->icount.rx++; - status = readl(port->membase + AML_UART_STATUS); + ostatus = status = readl(port->membase + AML_UART_STATUS); if (status & AML_UART_ERR) { if (status & AML_UART_TX_FIFO_WERR) @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) ch = readl(port->membase + AML_UART_RFIFO); ch &= 0xff; + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { + port->icount.brk++; + flag = TTY_BREAK; + if (uart_handle_break(port)) + continue; + } + + if (uart_handle_sysrq_char(port, ch)) + continue; + if ((status & port->ignore_status_mask) == 0) tty_insert_flip_char(tport, ch, flag); -- 2.14.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support @ 2017-09-06 13:52 ` Yixun Lan 0 siblings, 0 replies; 12+ messages in thread From: Yixun Lan @ 2017-09-06 13:52 UTC (permalink / raw) To: linux-arm-kernel This dirver try to implement the Magic SysRq support[1] for Amlogic Inc's meson platfo >From the hardware perspective, the UART IP can't detect the 'BREAK' command clearly via the status register. Instead, we rely on the combination of 'FRAME_ERR bit && ch == 0', and it works fine. [1] Documentation/admin-guide/sysrq.rst Signed-off-by: Yixun Lan <dlan@gentoo.org> --- Changes since v1 at [0]: - add changelog & a few more comments [0] https://patchwork.kernel.org/patch/9728475/ --- drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c index 42e4a4c7597f..3fea24bafd80 100644 --- a/drivers/tty/serial/meson_uart.c +++ b/drivers/tty/serial/meson_uart.c @@ -14,6 +14,10 @@ * */ +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) +#define SUPPORT_SYSRQ +#endif + #include <linux/clk.h> #include <linux/console.h> #include <linux/delay.h> @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) { struct tty_port *tport = &port->state->port; char flag; - u32 status, ch, mode; + u32 ostatus, status, ch, mode; do { flag = TTY_NORMAL; port->icount.rx++; - status = readl(port->membase + AML_UART_STATUS); + ostatus = status = readl(port->membase + AML_UART_STATUS); if (status & AML_UART_ERR) { if (status & AML_UART_TX_FIFO_WERR) @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) ch = readl(port->membase + AML_UART_RFIFO); ch &= 0xff; + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { + port->icount.brk++; + flag = TTY_BREAK; + if (uart_handle_break(port)) + continue; + } + + if (uart_handle_sysrq_char(port, ch)) + continue; + if ((status & port->ignore_status_mask) == 0) tty_insert_flip_char(tport, ch, flag); -- 2.14.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support @ 2017-09-06 13:52 ` Yixun Lan 0 siblings, 0 replies; 12+ messages in thread From: Yixun Lan @ 2017-09-06 13:52 UTC (permalink / raw) To: Kevin Hilman, Greg Kroah-Hartman Cc: linux-kernel, Ben Dooks, linux-serial, linux-amlogic, linux-arm-kernel, Yixun Lan This dirver try to implement the Magic SysRq support[1] for Amlogic Inc's meson platfo >From the hardware perspective, the UART IP can't detect the 'BREAK' command clearly via the status register. Instead, we rely on the combination of 'FRAME_ERR bit && ch == 0', and it works fine. [1] Documentation/admin-guide/sysrq.rst Signed-off-by: Yixun Lan <dlan@gentoo.org> --- Changes since v1 at [0]: - add changelog & a few more comments [0] https://patchwork.kernel.org/patch/9728475/ --- drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c index 42e4a4c7597f..3fea24bafd80 100644 --- a/drivers/tty/serial/meson_uart.c +++ b/drivers/tty/serial/meson_uart.c @@ -14,6 +14,10 @@ * */ +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) +#define SUPPORT_SYSRQ +#endif + #include <linux/clk.h> #include <linux/console.h> #include <linux/delay.h> @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) { struct tty_port *tport = &port->state->port; char flag; - u32 status, ch, mode; + u32 ostatus, status, ch, mode; do { flag = TTY_NORMAL; port->icount.rx++; - status = readl(port->membase + AML_UART_STATUS); + ostatus = status = readl(port->membase + AML_UART_STATUS); if (status & AML_UART_ERR) { if (status & AML_UART_TX_FIFO_WERR) @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) ch = readl(port->membase + AML_UART_RFIFO); ch &= 0xff; + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { + port->icount.brk++; + flag = TTY_BREAK; + if (uart_handle_break(port)) + continue; + } + + if (uart_handle_sysrq_char(port, ch)) + continue; + if ((status & port->ignore_status_mask) == 0) tty_insert_flip_char(tport, ch, flag); -- 2.14.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support 2017-09-06 13:52 ` Yixun Lan (?) @ 2017-10-20 8:10 ` Neil Armstrong -1 siblings, 0 replies; 12+ messages in thread From: Neil Armstrong @ 2017-10-20 8:10 UTC (permalink / raw) To: linus-amlogic Hi Yixun, On 06/09/2017 15:52, Yixun Lan wrote: > This dirver try to implement the Magic SysRq support[1] for > Amlogic Inc's meson platfo Please fix these typos. > From the hardware perspective, the UART IP can't detect the 'BREAK' command > clearly via the status register. Instead, we rely on the combination of > 'FRAME_ERR bit && ch == 0', and it works fine. > > [1] Documentation/admin-guide/sysrq.rst > > Signed-off-by: Yixun Lan <dlan@gentoo.org> > > --- > Changes since v1 at [0]: > - add changelog & a few more comments > > [0] https://patchwork.kernel.org/patch/9728475/ > --- > drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c > index 42e4a4c7597f..3fea24bafd80 100644 > --- a/drivers/tty/serial/meson_uart.c > +++ b/drivers/tty/serial/meson_uart.c > @@ -14,6 +14,10 @@ > * > */ > > +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) > +#define SUPPORT_SYSRQ > +#endif > + > #include <linux/clk.h> > #include <linux/console.h> > #include <linux/delay.h> > @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) > { > struct tty_port *tport = &port->state->port; > char flag; > - u32 status, ch, mode; > + u32 ostatus, status, ch, mode; > > do { > flag = TTY_NORMAL; > port->icount.rx++; > - status = readl(port->membase + AML_UART_STATUS); > + ostatus = status = readl(port->membase + AML_UART_STATUS); > > if (status & AML_UART_ERR) { > if (status & AML_UART_TX_FIFO_WERR) > @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) > ch = readl(port->membase + AML_UART_RFIFO); > ch &= 0xff; > > + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { > + port->icount.brk++; > + flag = TTY_BREAK; > + if (uart_handle_break(port)) > + continue; > + } > + > + if (uart_handle_sysrq_char(port, ch)) > + continue; > + > if ((status & port->ignore_status_mask) == 0) > tty_insert_flip_char(tport, ch, flag); > > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support @ 2017-10-20 8:10 ` Neil Armstrong 0 siblings, 0 replies; 12+ messages in thread From: Neil Armstrong @ 2017-10-20 8:10 UTC (permalink / raw) To: linux-arm-kernel Hi Yixun, On 06/09/2017 15:52, Yixun Lan wrote: > This dirver try to implement the Magic SysRq support[1] for > Amlogic Inc's meson platfo Please fix these typos. > From the hardware perspective, the UART IP can't detect the 'BREAK' command > clearly via the status register. Instead, we rely on the combination of > 'FRAME_ERR bit && ch == 0', and it works fine. > > [1] Documentation/admin-guide/sysrq.rst > > Signed-off-by: Yixun Lan <dlan@gentoo.org> > > --- > Changes since v1 at [0]: > - add changelog & a few more comments > > [0] https://patchwork.kernel.org/patch/9728475/ > --- > drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c > index 42e4a4c7597f..3fea24bafd80 100644 > --- a/drivers/tty/serial/meson_uart.c > +++ b/drivers/tty/serial/meson_uart.c > @@ -14,6 +14,10 @@ > * > */ > > +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) > +#define SUPPORT_SYSRQ > +#endif > + > #include <linux/clk.h> > #include <linux/console.h> > #include <linux/delay.h> > @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) > { > struct tty_port *tport = &port->state->port; > char flag; > - u32 status, ch, mode; > + u32 ostatus, status, ch, mode; > > do { > flag = TTY_NORMAL; > port->icount.rx++; > - status = readl(port->membase + AML_UART_STATUS); > + ostatus = status = readl(port->membase + AML_UART_STATUS); > > if (status & AML_UART_ERR) { > if (status & AML_UART_TX_FIFO_WERR) > @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) > ch = readl(port->membase + AML_UART_RFIFO); > ch &= 0xff; > > + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { > + port->icount.brk++; > + flag = TTY_BREAK; > + if (uart_handle_break(port)) > + continue; > + } > + > + if (uart_handle_sysrq_char(port, ch)) > + continue; > + > if ((status & port->ignore_status_mask) == 0) > tty_insert_flip_char(tport, ch, flag); > > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2] serial: meson: add Magic SysRq support @ 2017-10-20 8:10 ` Neil Armstrong 0 siblings, 0 replies; 12+ messages in thread From: Neil Armstrong @ 2017-10-20 8:10 UTC (permalink / raw) To: Yixun Lan, Kevin Hilman, Greg Kroah-Hartman Cc: linux-kernel, Ben Dooks, linux-serial, linux-amlogic, linux-arm-kernel Hi Yixun, On 06/09/2017 15:52, Yixun Lan wrote: > This dirver try to implement the Magic SysRq support[1] for > Amlogic Inc's meson platfo Please fix these typos. > From the hardware perspective, the UART IP can't detect the 'BREAK' command > clearly via the status register. Instead, we rely on the combination of > 'FRAME_ERR bit && ch == 0', and it works fine. > > [1] Documentation/admin-guide/sysrq.rst > > Signed-off-by: Yixun Lan <dlan@gentoo.org> > > --- > Changes since v1 at [0]: > - add changelog & a few more comments > > [0] https://patchwork.kernel.org/patch/9728475/ > --- > drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c > index 42e4a4c7597f..3fea24bafd80 100644 > --- a/drivers/tty/serial/meson_uart.c > +++ b/drivers/tty/serial/meson_uart.c > @@ -14,6 +14,10 @@ > * > */ > > +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) > +#define SUPPORT_SYSRQ > +#endif > + > #include <linux/clk.h> > #include <linux/console.h> > #include <linux/delay.h> > @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) > { > struct tty_port *tport = &port->state->port; > char flag; > - u32 status, ch, mode; > + u32 ostatus, status, ch, mode; > > do { > flag = TTY_NORMAL; > port->icount.rx++; > - status = readl(port->membase + AML_UART_STATUS); > + ostatus = status = readl(port->membase + AML_UART_STATUS); > > if (status & AML_UART_ERR) { > if (status & AML_UART_TX_FIFO_WERR) > @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) > ch = readl(port->membase + AML_UART_RFIFO); > ch &= 0xff; > > + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { > + port->icount.brk++; > + flag = TTY_BREAK; > + if (uart_handle_break(port)) > + continue; > + } > + > + if (uart_handle_sysrq_char(port, ch)) > + continue; > + > if ((status & port->ignore_status_mask) == 0) > tty_insert_flip_char(tport, ch, flag); > > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support 2017-10-20 8:10 ` Neil Armstrong (?) @ 2017-10-20 8:32 ` Yixun Lan -1 siblings, 0 replies; 12+ messages in thread From: Yixun Lan @ 2017-10-20 8:32 UTC (permalink / raw) To: linus-amlogic Hi Greg-KH I think you've already accepted this patch (and merged into your git repo) so, is it possible for you to amend the commit message? or do you want me to send a PATCH v3 then? On 10:10 Fri 20 Oct , Neil Armstrong wrote: > Hi Yixun, > > On 06/09/2017 15:52, Yixun Lan wrote: > > This dirver try to implement the Magic SysRq support[1] for > > Amlogic Inc's meson platfo > > Please fix these typos. > oops, not sure why this line is broken.. s/platfo/platform./ and should squash next line . > > From the hardware perspective, the UART IP can't detect the 'BREAK' command > > clearly via the status register. Instead, we rely on the combination of > > 'FRAME_ERR bit && ch == 0', and it works fine. > > > > [1] Documentation/admin-guide/sysrq.rst > > > > Signed-off-by: Yixun Lan <dlan@gentoo.org> > > > > --- > > Changes since v1 at [0]: > > - add changelog & a few more comments > > > > [0] https://patchwork.kernel.org/patch/9728475/ > > --- > > drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- > > 1 file changed, 16 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c > > index 42e4a4c7597f..3fea24bafd80 100644 > > --- a/drivers/tty/serial/meson_uart.c > > +++ b/drivers/tty/serial/meson_uart.c > > @@ -14,6 +14,10 @@ > > * > > */ > > > > +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) > > +#define SUPPORT_SYSRQ > > +#endif > > + > > #include <linux/clk.h> > > #include <linux/console.h> > > #include <linux/delay.h> > > @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) > > { > > struct tty_port *tport = &port->state->port; > > char flag; > > - u32 status, ch, mode; > > + u32 ostatus, status, ch, mode; > > > > do { > > flag = TTY_NORMAL; > > port->icount.rx++; > > - status = readl(port->membase + AML_UART_STATUS); > > + ostatus = status = readl(port->membase + AML_UART_STATUS); > > > > if (status & AML_UART_ERR) { > > if (status & AML_UART_TX_FIFO_WERR) > > @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) > > ch = readl(port->membase + AML_UART_RFIFO); > > ch &= 0xff; > > > > + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { > > + port->icount.brk++; > > + flag = TTY_BREAK; > > + if (uart_handle_break(port)) > > + continue; > > + } > > + > > + if (uart_handle_sysrq_char(port, ch)) > > + continue; > > + > > if ((status & port->ignore_status_mask) == 0) > > tty_insert_flip_char(tport, ch, flag); > > > > > > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> > > _______________________________________________ > linux-amlogic mailing list > linux-amlogic at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-amlogic -- Yixun Lan (dlan) Gentoo Linux Developer GPG Key ID AABEFD55 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support @ 2017-10-20 8:32 ` Yixun Lan 0 siblings, 0 replies; 12+ messages in thread From: Yixun Lan @ 2017-10-20 8:32 UTC (permalink / raw) To: linux-arm-kernel Hi Greg-KH I think you've already accepted this patch (and merged into your git repo) so, is it possible for you to amend the commit message? or do you want me to send a PATCH v3 then? On 10:10 Fri 20 Oct , Neil Armstrong wrote: > Hi Yixun, > > On 06/09/2017 15:52, Yixun Lan wrote: > > This dirver try to implement the Magic SysRq support[1] for > > Amlogic Inc's meson platfo > > Please fix these typos. > oops, not sure why this line is broken.. s/platfo/platform./ and should squash next line . > > From the hardware perspective, the UART IP can't detect the 'BREAK' command > > clearly via the status register. Instead, we rely on the combination of > > 'FRAME_ERR bit && ch == 0', and it works fine. > > > > [1] Documentation/admin-guide/sysrq.rst > > > > Signed-off-by: Yixun Lan <dlan@gentoo.org> > > > > --- > > Changes since v1 at [0]: > > - add changelog & a few more comments > > > > [0] https://patchwork.kernel.org/patch/9728475/ > > --- > > drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- > > 1 file changed, 16 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c > > index 42e4a4c7597f..3fea24bafd80 100644 > > --- a/drivers/tty/serial/meson_uart.c > > +++ b/drivers/tty/serial/meson_uart.c > > @@ -14,6 +14,10 @@ > > * > > */ > > > > +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) > > +#define SUPPORT_SYSRQ > > +#endif > > + > > #include <linux/clk.h> > > #include <linux/console.h> > > #include <linux/delay.h> > > @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) > > { > > struct tty_port *tport = &port->state->port; > > char flag; > > - u32 status, ch, mode; > > + u32 ostatus, status, ch, mode; > > > > do { > > flag = TTY_NORMAL; > > port->icount.rx++; > > - status = readl(port->membase + AML_UART_STATUS); > > + ostatus = status = readl(port->membase + AML_UART_STATUS); > > > > if (status & AML_UART_ERR) { > > if (status & AML_UART_TX_FIFO_WERR) > > @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) > > ch = readl(port->membase + AML_UART_RFIFO); > > ch &= 0xff; > > > > + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { > > + port->icount.brk++; > > + flag = TTY_BREAK; > > + if (uart_handle_break(port)) > > + continue; > > + } > > + > > + if (uart_handle_sysrq_char(port, ch)) > > + continue; > > + > > if ((status & port->ignore_status_mask) == 0) > > tty_insert_flip_char(tport, ch, flag); > > > > > > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> > > _______________________________________________ > linux-amlogic mailing list > linux-amlogic at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-amlogic -- Yixun Lan (dlan) Gentoo Linux Developer GPG Key ID AABEFD55 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2] serial: meson: add Magic SysRq support @ 2017-10-20 8:32 ` Yixun Lan 0 siblings, 0 replies; 12+ messages in thread From: Yixun Lan @ 2017-10-20 8:32 UTC (permalink / raw) To: Neil Armstrong Cc: Kevin Hilman, Greg Kroah-Hartman, linux-arm-kernel, linux-amlogic, Ben Dooks, linux-kernel, linux-serial Hi Greg-KH I think you've already accepted this patch (and merged into your git repo) so, is it possible for you to amend the commit message? or do you want me to send a PATCH v3 then? On 10:10 Fri 20 Oct , Neil Armstrong wrote: > Hi Yixun, > > On 06/09/2017 15:52, Yixun Lan wrote: > > This dirver try to implement the Magic SysRq support[1] for > > Amlogic Inc's meson platfo > > Please fix these typos. > oops, not sure why this line is broken.. s/platfo/platform./ and should squash next line . > > From the hardware perspective, the UART IP can't detect the 'BREAK' command > > clearly via the status register. Instead, we rely on the combination of > > 'FRAME_ERR bit && ch == 0', and it works fine. > > > > [1] Documentation/admin-guide/sysrq.rst > > > > Signed-off-by: Yixun Lan <dlan@gentoo.org> > > > > --- > > Changes since v1 at [0]: > > - add changelog & a few more comments > > > > [0] https://patchwork.kernel.org/patch/9728475/ > > --- > > drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- > > 1 file changed, 16 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c > > index 42e4a4c7597f..3fea24bafd80 100644 > > --- a/drivers/tty/serial/meson_uart.c > > +++ b/drivers/tty/serial/meson_uart.c > > @@ -14,6 +14,10 @@ > > * > > */ > > > > +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) > > +#define SUPPORT_SYSRQ > > +#endif > > + > > #include <linux/clk.h> > > #include <linux/console.h> > > #include <linux/delay.h> > > @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) > > { > > struct tty_port *tport = &port->state->port; > > char flag; > > - u32 status, ch, mode; > > + u32 ostatus, status, ch, mode; > > > > do { > > flag = TTY_NORMAL; > > port->icount.rx++; > > - status = readl(port->membase + AML_UART_STATUS); > > + ostatus = status = readl(port->membase + AML_UART_STATUS); > > > > if (status & AML_UART_ERR) { > > if (status & AML_UART_TX_FIFO_WERR) > > @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) > > ch = readl(port->membase + AML_UART_RFIFO); > > ch &= 0xff; > > > > + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { > > + port->icount.brk++; > > + flag = TTY_BREAK; > > + if (uart_handle_break(port)) > > + continue; > > + } > > + > > + if (uart_handle_sysrq_char(port, ch)) > > + continue; > > + > > if ((status & port->ignore_status_mask) == 0) > > tty_insert_flip_char(tport, ch, flag); > > > > > > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> > > _______________________________________________ > linux-amlogic mailing list > linux-amlogic@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-amlogic -- Yixun Lan (dlan) Gentoo Linux Developer GPG Key ID AABEFD55 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support 2017-10-20 8:32 ` Yixun Lan (?) @ 2017-10-20 8:48 ` Neil Armstrong -1 siblings, 0 replies; 12+ messages in thread From: Neil Armstrong @ 2017-10-20 8:48 UTC (permalink / raw) To: linus-amlogic I Yixun, On 20/10/2017 10:32, Yixun Lan wrote: > Hi Greg-KH > > I think you've already accepted this patch (and merged into your git repo) > > so, is it possible for you to amend the commit message? or do you want me > to send a PATCH v3 then? I was not aware greg applied it, no need to amen anything, ignore my tag. Neil > > On 10:10 Fri 20 Oct , Neil Armstrong wrote: >> Hi Yixun, >> >> On 06/09/2017 15:52, Yixun Lan wrote: >>> This dirver try to implement the Magic SysRq support[1] for >>> Amlogic Inc's meson platfo >> >> Please fix these typos. >> > oops, not sure why this line is broken.. > > s/platfo/platform./ > and should squash next line . > >>> From the hardware perspective, the UART IP can't detect the 'BREAK' command >>> clearly via the status register. Instead, we rely on the combination of >>> 'FRAME_ERR bit && ch == 0', and it works fine. >>> >>> [1] Documentation/admin-guide/sysrq.rst >>> >>> Signed-off-by: Yixun Lan <dlan@gentoo.org> >>> >>> --- >>> Changes since v1 at [0]: >>> - add changelog & a few more comments >>> >>> [0] https://patchwork.kernel.org/patch/9728475/ >>> --- >>> drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- >>> 1 file changed, 16 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c >>> index 42e4a4c7597f..3fea24bafd80 100644 >>> --- a/drivers/tty/serial/meson_uart.c >>> +++ b/drivers/tty/serial/meson_uart.c >>> @@ -14,6 +14,10 @@ >>> * >>> */ >>> >>> +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) >>> +#define SUPPORT_SYSRQ >>> +#endif >>> + >>> #include <linux/clk.h> >>> #include <linux/console.h> >>> #include <linux/delay.h> >>> @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) >>> { >>> struct tty_port *tport = &port->state->port; >>> char flag; >>> - u32 status, ch, mode; >>> + u32 ostatus, status, ch, mode; >>> >>> do { >>> flag = TTY_NORMAL; >>> port->icount.rx++; >>> - status = readl(port->membase + AML_UART_STATUS); >>> + ostatus = status = readl(port->membase + AML_UART_STATUS); >>> >>> if (status & AML_UART_ERR) { >>> if (status & AML_UART_TX_FIFO_WERR) >>> @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) >>> ch = readl(port->membase + AML_UART_RFIFO); >>> ch &= 0xff; >>> >>> + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { >>> + port->icount.brk++; >>> + flag = TTY_BREAK; >>> + if (uart_handle_break(port)) >>> + continue; >>> + } >>> + >>> + if (uart_handle_sysrq_char(port, ch)) >>> + continue; >>> + >>> if ((status & port->ignore_status_mask) == 0) >>> tty_insert_flip_char(tport, ch, flag); >>> >>> >> >> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> >> >> _______________________________________________ >> linux-amlogic mailing list >> linux-amlogic at lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-amlogic > ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] serial: meson: add Magic SysRq support @ 2017-10-20 8:48 ` Neil Armstrong 0 siblings, 0 replies; 12+ messages in thread From: Neil Armstrong @ 2017-10-20 8:48 UTC (permalink / raw) To: linux-arm-kernel I Yixun, On 20/10/2017 10:32, Yixun Lan wrote: > Hi Greg-KH > > I think you've already accepted this patch (and merged into your git repo) > > so, is it possible for you to amend the commit message? or do you want me > to send a PATCH v3 then? I was not aware greg applied it, no need to amen anything, ignore my tag. Neil > > On 10:10 Fri 20 Oct , Neil Armstrong wrote: >> Hi Yixun, >> >> On 06/09/2017 15:52, Yixun Lan wrote: >>> This dirver try to implement the Magic SysRq support[1] for >>> Amlogic Inc's meson platfo >> >> Please fix these typos. >> > oops, not sure why this line is broken.. > > s/platfo/platform./ > and should squash next line . > >>> From the hardware perspective, the UART IP can't detect the 'BREAK' command >>> clearly via the status register. Instead, we rely on the combination of >>> 'FRAME_ERR bit && ch == 0', and it works fine. >>> >>> [1] Documentation/admin-guide/sysrq.rst >>> >>> Signed-off-by: Yixun Lan <dlan@gentoo.org> >>> >>> --- >>> Changes since v1 at [0]: >>> - add changelog & a few more comments >>> >>> [0] https://patchwork.kernel.org/patch/9728475/ >>> --- >>> drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- >>> 1 file changed, 16 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c >>> index 42e4a4c7597f..3fea24bafd80 100644 >>> --- a/drivers/tty/serial/meson_uart.c >>> +++ b/drivers/tty/serial/meson_uart.c >>> @@ -14,6 +14,10 @@ >>> * >>> */ >>> >>> +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) >>> +#define SUPPORT_SYSRQ >>> +#endif >>> + >>> #include <linux/clk.h> >>> #include <linux/console.h> >>> #include <linux/delay.h> >>> @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) >>> { >>> struct tty_port *tport = &port->state->port; >>> char flag; >>> - u32 status, ch, mode; >>> + u32 ostatus, status, ch, mode; >>> >>> do { >>> flag = TTY_NORMAL; >>> port->icount.rx++; >>> - status = readl(port->membase + AML_UART_STATUS); >>> + ostatus = status = readl(port->membase + AML_UART_STATUS); >>> >>> if (status & AML_UART_ERR) { >>> if (status & AML_UART_TX_FIFO_WERR) >>> @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) >>> ch = readl(port->membase + AML_UART_RFIFO); >>> ch &= 0xff; >>> >>> + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { >>> + port->icount.brk++; >>> + flag = TTY_BREAK; >>> + if (uart_handle_break(port)) >>> + continue; >>> + } >>> + >>> + if (uart_handle_sysrq_char(port, ch)) >>> + continue; >>> + >>> if ((status & port->ignore_status_mask) == 0) >>> tty_insert_flip_char(tport, ch, flag); >>> >>> >> >> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> >> >> _______________________________________________ >> linux-amlogic mailing list >> linux-amlogic at lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-amlogic > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2] serial: meson: add Magic SysRq support @ 2017-10-20 8:48 ` Neil Armstrong 0 siblings, 0 replies; 12+ messages in thread From: Neil Armstrong @ 2017-10-20 8:48 UTC (permalink / raw) To: Yixun Lan Cc: Kevin Hilman, Greg Kroah-Hartman, linux-arm-kernel, linux-amlogic, Ben Dooks, linux-kernel, linux-serial I Yixun, On 20/10/2017 10:32, Yixun Lan wrote: > Hi Greg-KH > > I think you've already accepted this patch (and merged into your git repo) > > so, is it possible for you to amend the commit message? or do you want me > to send a PATCH v3 then? I was not aware greg applied it, no need to amen anything, ignore my tag. Neil > > On 10:10 Fri 20 Oct , Neil Armstrong wrote: >> Hi Yixun, >> >> On 06/09/2017 15:52, Yixun Lan wrote: >>> This dirver try to implement the Magic SysRq support[1] for >>> Amlogic Inc's meson platfo >> >> Please fix these typos. >> > oops, not sure why this line is broken.. > > s/platfo/platform./ > and should squash next line . > >>> From the hardware perspective, the UART IP can't detect the 'BREAK' command >>> clearly via the status register. Instead, we rely on the combination of >>> 'FRAME_ERR bit && ch == 0', and it works fine. >>> >>> [1] Documentation/admin-guide/sysrq.rst >>> >>> Signed-off-by: Yixun Lan <dlan@gentoo.org> >>> >>> --- >>> Changes since v1 at [0]: >>> - add changelog & a few more comments >>> >>> [0] https://patchwork.kernel.org/patch/9728475/ >>> --- >>> drivers/tty/serial/meson_uart.c | 18 ++++++++++++++++-- >>> 1 file changed, 16 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c >>> index 42e4a4c7597f..3fea24bafd80 100644 >>> --- a/drivers/tty/serial/meson_uart.c >>> +++ b/drivers/tty/serial/meson_uart.c >>> @@ -14,6 +14,10 @@ >>> * >>> */ >>> >>> +#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) >>> +#define SUPPORT_SYSRQ >>> +#endif >>> + >>> #include <linux/clk.h> >>> #include <linux/console.h> >>> #include <linux/delay.h> >>> @@ -183,12 +187,12 @@ static void meson_receive_chars(struct uart_port *port) >>> { >>> struct tty_port *tport = &port->state->port; >>> char flag; >>> - u32 status, ch, mode; >>> + u32 ostatus, status, ch, mode; >>> >>> do { >>> flag = TTY_NORMAL; >>> port->icount.rx++; >>> - status = readl(port->membase + AML_UART_STATUS); >>> + ostatus = status = readl(port->membase + AML_UART_STATUS); >>> >>> if (status & AML_UART_ERR) { >>> if (status & AML_UART_TX_FIFO_WERR) >>> @@ -216,6 +220,16 @@ static void meson_receive_chars(struct uart_port *port) >>> ch = readl(port->membase + AML_UART_RFIFO); >>> ch &= 0xff; >>> >>> + if ((ostatus & AML_UART_FRAME_ERR) && (ch == 0)) { >>> + port->icount.brk++; >>> + flag = TTY_BREAK; >>> + if (uart_handle_break(port)) >>> + continue; >>> + } >>> + >>> + if (uart_handle_sysrq_char(port, ch)) >>> + continue; >>> + >>> if ((status & port->ignore_status_mask) == 0) >>> tty_insert_flip_char(tport, ch, flag); >>> >>> >> >> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> >> >> _______________________________________________ >> linux-amlogic mailing list >> linux-amlogic@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-amlogic > ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-10-20 8:48 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-09-06 13:52 [PATCH v2] serial: meson: add Magic SysRq support Yixun Lan 2017-09-06 13:52 ` Yixun Lan 2017-09-06 13:52 ` Yixun Lan 2017-10-20 8:10 ` Neil Armstrong 2017-10-20 8:10 ` Neil Armstrong 2017-10-20 8:10 ` Neil Armstrong 2017-10-20 8:32 ` Yixun Lan 2017-10-20 8:32 ` Yixun Lan 2017-10-20 8:32 ` Yixun Lan 2017-10-20 8:48 ` Neil Armstrong 2017-10-20 8:48 ` Neil Armstrong 2017-10-20 8:48 ` Neil Armstrong
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.