Messages in this thread | | | Date | Fri, 13 Sep 2013 18:22:07 +0200 | From | Paul Chavent <> | Subject | Re: [PATCH 3/3] USB : serial : pl2303 wake up after dcd status check. |
| |
Hi.
This patch was just a suggestion. Don't bother with rebasing. I will wait your changes and remove this patch from the next submission.
Cheers. Paul.
On 09/13/2013 06:23 PM, Johan Hovold wrote: > On Fri, Sep 13, 2013 at 05:35:13PM +0200, Paul Chavent wrote: >> Seems to be done this way in other drivers (ch341, 8250, ...). >> And get tty reference only if dcd_change need to be called. > > This is fine. I have a patch here doing the same two changes as part of > a larger clean-up of the pl2303 interrupt handling (which in turn is > part of the MSR-refactoring I mentioned). I could rebase on top of this, > unless you care to wait another week. :) > > Thanks, > Johan > >> Signed-off-by: Paul Chavent <paul.chavent@onera.fr> >> --- >> drivers/usb/serial/pl2303.c | 17 +++++++++-------- >> 1 file changed, 9 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c >> index e7a84f0..8b81188 100644 >> --- a/drivers/usb/serial/pl2303.c >> +++ b/drivers/usb/serial/pl2303.c >> @@ -854,15 +854,16 @@ static void pl2303_update_line_status(struct usb_serial_port *port, >> spin_unlock_irqrestore(&priv->lock, flags); >> if (priv->line_status & UART_BREAK_ERROR) >> usb_serial_handle_break(port); >> - wake_up_interruptible(&port->port.delta_msr_wait); >> >> - tty = tty_port_tty_get(&port->port); >> - if (!tty) >> - return; >> - if ((priv->line_status ^ prev_line_status) & UART_DCD) >> - usb_serial_handle_dcd_change(port, tty, >> - priv->line_status & UART_DCD); >> - tty_kref_put(tty); >> + if ((priv->line_status ^ prev_line_status) & UART_DCD) { >> + tty = tty_port_tty_get(&port->port); >> + if (tty) >> + usb_serial_handle_dcd_change(port, tty, >> + priv->line_status & UART_DCD); >> + tty_kref_put(tty); >> + } >> + >> + wake_up_interruptible(&port->port.delta_msr_wait); >> } >> >> static void pl2303_read_int_callback(struct urb *urb) >> -- >> 1.7.12.1 >> >
| |