I was worried about the regular UART ops wanting a synced version, so I made a nonsynced version specifically to be called from the interrupt handler. I am attaching that patch for reference.<br><br><div class="gmail_quote">
On Mon, Jan 11, 2010 at 12:57 PM, Simon Kagstrom <span dir="ltr"><<a href="mailto:simon.kagstrom@netinsight.net" target="_blank">simon.kagstrom@netinsight.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
(Added the list to To: as well)<br>
<div><br>
On Tue, 5 Jan 2010 21:37:42 +0300<br>
Steve M <<a href="mailto:stevenm86@gmail.com" target="_blank">stevenm86@gmail.com</a>> wrote:<br>
<br>
> I know little of the serial layer, but I am not certain that it is a good<br>
> idea to put _nosync directly into the stop_tx function, since this is a<br>
> function whose pointer is given out to the upper layer. We may only want the<br>
> nosync behavior from within the ISR, but waiting for the ISR to complete in<br>
> other cases may be more appropriate.<br>
<br>
</div>Well, I think serial21285_stop_tx also needs _nosync since it too is<br>
called from an interrupt handler:<br>
<br>
static irqreturn_t serial21285_tx_chars(int irq, void *dev_id)<br>
{<br>
[...]<br>
if (uart_circ_empty(xmit))<br>
serial21285_stop_tx(port);<br>
}<br>
<br>
Of course, we could make an unsynced version of the stop_tx/stop_rx<br>
which is called from the local interrupt handlers, and a synchronous<br>
one which gets called from the structure.<br>
<br>
<br>
I don't know if the function pointers in uart_ops would run into some<br>
problem with the _nosync versions? I haven't seen any problems during<br>
my tests here with them at least.<br>
<font color="#888888"><br>
// Simon<br>
</font></blockquote></div><br>