From: Alan <alan@lxorguk.ukuu.org.uk>
To: Marc St-Jean <Marc_St-Jean@pmc-sierra.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] serial driver PMC MSP71xx, kernel linux-mips.git master
Date: Mon, 22 Jan 2007 21:23:19 +0000 [thread overview]
Message-ID: <20070122212319.185fd10b@localhost.localdomain> (raw)
In-Reply-To: <45B50A19.6090909@pmc-sierra.com>
> There are three different fixes:
> 1. Fix for THRE errata
That should be handled anyway. The current code actually spots this and
uses a backup timer for dodgy UARTS
> 2. Fix for Busy Detect on LCR write
> 3. Workaround for interrupt/data concurrency issue
> case UPIO_MEM:
> +#ifdef CONFIG_PMC_MSP
> + /* Save the LCR value so it can be re-written when a
> + * Busy Detect interrupt occurs. */
> + if (dwapb_offset == UART_LCR)
> + up->dwapb_lcr = value;
> +#endif
> writeb(value, up->port.membase + offset);
> +#ifdef CONFIG_PMC_MSP
> + /* Re-read the IER to ensure any interrupt disabling has
> + * completed before proceeding with ISR. */
> + if (dwapb_offset == UART_IER)
> + value = serial_in(up, dwapb_offset);
> +#endif
> break;
This I would hope you can hide in the platform specific
serial_in/serial_out functions. If you write the UART_LCR save it in
serial_out(), if you read IER etc.
> +#ifdef CONFIG_PMC_MSP
> + } else if ((iir & UART_IER_BUSY) == UART_IER_BUSY) {
> + /*
> + * The MSP (DesignWare APB UART) serial subsystem has a
> + * non-standard interrupt condition (0x7) which means
> + * that the LCR was written while the UART was busy, so
> + * the LCR was not actually written. It is cleared by
> + * reading the special non-standard extended UART status
> + * register.
Ditto... spot this case and whack it in your serial methods.
And we might want to add a void * for board specific insanity to the 8250
structures if we really have to so you can hang your brain damage
privately off that ?
next prev parent reply other threads:[~2007-01-22 21:12 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-22 19:01 [PATCH] serial driver PMC MSP71xx, kernel linux-mips.git master Marc St-Jean
2007-01-22 21:23 ` Alan [this message]
-- strict thread matches above, loose matches on Subject: below --
2007-02-16 17:39 Marc St-Jean
2007-02-15 19:26 Marc St-Jean
2007-02-15 20:31 ` Sergei Shtylyov
2007-02-16 1:10 ` Andrew Morton
2007-02-16 13:47 ` Sergei Shtylyov
2007-02-12 18:04 Marc St-Jean
2007-02-13 7:36 ` Andrew Morton
2007-02-09 21:50 Marc St-Jean
2007-02-07 22:35 Marc St-Jean
2007-02-08 12:13 ` Sergei Shtylyov
2007-02-05 18:45 Marc St-Jean
2007-02-05 21:59 ` Alan
2007-02-07 17:54 ` Sergei Shtylyov
2007-01-25 0:00 Marc St-Jean
2007-01-25 14:50 ` Sergei Shtylyov
2007-01-22 19:06 Marc St-Jean
2007-01-22 19:04 Marc St-Jean
2007-01-19 0:23 Marc St-Jean
2007-01-19 14:18 ` Ralf Baechle
2007-01-19 15:05 ` Sergei Shtylyov
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=20070122212319.185fd10b@localhost.localdomain \
--to=alan@lxorguk.ukuu.org.uk \
--cc=Marc_St-Jean@pmc-sierra.com \
--cc=linux-kernel@vger.kernel.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 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.