From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: alan@linux.intel.com, gregkh@suse.de, scottwood@freescale.com,
galak@kernel.crashing.org
Cc: linux-serial@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-kernel@vger.kernel.org
Subject: [PATCH 0/6] RFCv2 Fix Fsl 8250 BRK bug
Date: Sun, 4 Dec 2011 18:42:17 -0500 [thread overview]
Message-ID: <1323042143-25330-1-git-send-email-paul.gortmaker@windriver.com> (raw)
In-Reply-To: <1322783258-20443-1-git-send-email-paul.gortmaker@windriver.com>
Alan wrote:
> Things like 8250_dw.c is perhaps more the style we want to be looking at
> for other devices and adjusting 8250.c as needed to export or split
> methods up so they can be used as helpers.
[...]
> Sorting out a ->handle_port override is probably ultimately the right
> thing to do and then we can push some of the other funnies out further.
I never figured spending this much time on this, but I think this is
a lot better, and 8250.c comes out slightly smaller and cleaner too,
hopefully satisfying Alan's other request "...we want less not more".
The errata is firewalled off in 8250_fsl.c (as per Alan's 1st comment),
and 8250.c now exports a couple more things to be used as helpers.
When I started looking at a handle_port override, I realized that it
really didn't need to exist at all, and the existing handle_irq
override we already have does the job nicely. In the process, I found
an interesting quirk while cleaning up duplicated code in the timeout
handler, where we don't use the custom IRQ handler if there is one.
So, the errata is dealt with by installing a custom IRQ handler, and
it doesn't have the "eew ick" factor that Scott mentioned, in regards
to trying to learn state from watching serial_in() traffic.
The timeout cleanup seemed so obvious, that I was convinced I must
be missing some subtle thing. So I confirmed it by stripping my IRQ
properties from my dts file and running the serial console IRQ-less.
I also re-tested the sysRq feature on sbc8349, to ensure the WAR was
actually doing its job, and I also tested with serial console on
an old SocketA board to make sure non-ppc didn't get hosed somehow.
Anyway, have a look and see if this version of things is acceptable
to all. (Again, the dts update from Kumar isn't shown here).
Thanks to all who provided the feedback on v1.
Paul.
------
Paul Gortmaker (6):
serial: move struct uart_8250_port from 8250.c to 8250.h
serial: clean up parameter passing for 8250 Rx IRQ handling
serial: export the key functions for an 8250 IRQ handler
serial: make 8250 timeout use the specified IRQ handler
serial: manually inline serial8250_handle_port
serial: add irq handler for Freescale 16550 errata.
arch/powerpc/kernel/legacy_serial.c | 3 +
drivers/tty/serial/8250.c | 92 ++++++++++++-----------------------
drivers/tty/serial/8250.h | 26 ++++++++++
drivers/tty/serial/8250_fsl.c | 63 ++++++++++++++++++++++++
drivers/tty/serial/Kconfig | 5 ++
drivers/tty/serial/Makefile | 1 +
include/linux/serial_8250.h | 5 ++
7 files changed, 134 insertions(+), 61 deletions(-)
create mode 100644 drivers/tty/serial/8250_fsl.c
--
1.7.7
next prev parent reply other threads:[~2011-12-04 23:42 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-01 23:47 [PATCH 0/3] RFC Fix Fsl 8250 BRK bug via letting plat code set bugs Paul Gortmaker
2011-12-01 23:47 ` [PATCH 1/3] serial: make bugs field not specific to 8250 type uarts Paul Gortmaker
2011-12-02 0:51 ` Alan Cox
2011-12-02 1:32 ` Paul Gortmaker
2011-12-02 11:49 ` Alan Cox
2011-12-01 23:47 ` [PATCH 2/3] serial: allow passing in hardware bug info via platform device Paul Gortmaker
2011-12-01 23:47 ` [PATCH 3/3] 8250: add workaround for MPC8[356]xx UART break IRQ storm Paul Gortmaker
2011-12-01 23:51 ` Scott Wood
2011-12-02 0:05 ` Paul Gortmaker
2011-12-02 0:17 ` Kumar Gala
2011-12-02 11:30 ` Alan Cox
2011-12-02 16:34 ` Paul Gortmaker
2011-12-02 17:27 ` Scott Wood
2011-12-02 0:57 ` Alan Cox
2011-12-02 1:42 ` Paul Gortmaker
2011-12-04 23:42 ` Paul Gortmaker [this message]
2011-12-04 23:42 ` [PATCH 1/6] serial: move struct uart_8250_port from 8250.c to 8250.h Paul Gortmaker
2011-12-04 23:42 ` [PATCH 2/6] serial: clean up parameter passing for 8250 Rx IRQ handling Paul Gortmaker
2011-12-04 23:42 ` [PATCH 3/6] serial: export the key functions for an 8250 IRQ handler Paul Gortmaker
2011-12-04 23:42 ` [PATCH 4/6] serial: make 8250 timeout use the specified " Paul Gortmaker
2011-12-04 23:42 ` [PATCH 5/6] serial: manually inline serial8250_handle_port Paul Gortmaker
2011-12-04 23:42 ` [PATCH 6/6] serial: add irq handler for Freescale 16550 errata Paul Gortmaker
2011-12-05 12:18 ` [PATCH 0/6] RFCv2 Fix Fsl 8250 BRK bug Alan Cox
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=1323042143-25330-1-git-send-email-paul.gortmaker@windriver.com \
--to=paul.gortmaker@windriver.com \
--cc=alan@linux.intel.com \
--cc=galak@kernel.crashing.org \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=scottwood@freescale.com \
/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).