[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200910252056.03993.oliver@neukum.org>
Date: Sun, 25 Oct 2009 20:56:03 +0100
From: Oliver Neukum <oliver@...kum.org>
To: bart.hartgers@...il.com
Cc: "Greg Kroah-Hartman" <gregkh@...e.de>, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/7] ark3116: (3rd try) Make existing functions 16450-aware and add close and release functions.
Am Sonntag, 25. Oktober 2009 18:50:59 schrieb bart.hartgers@...il.com:
> +static void ark3116_close(struct usb_serial_port *port)
> +{
> + struct usb_serial *serial = port->serial;
>
> - /* TEST ARK3116_SND(154, 0xFE, 0x40, 0xFFFF, 0x0006); */
> + /* disable DMA */
> + ark3116_write_reg(serial, UART_FCR, 0);
>
> - kfree(buf);
> + /* deactivate interrupts */
> + ark3116_write_reg(serial, UART_IER, 0);
>
> - return;
> + if (serial->dev) {
> + /* shutdown any bulk reads that might be going on */
> + if (serial->num_bulk_out)
> + usb_kill_urb(port->write_urb);
> + if (serial->num_bulk_in)
> + usb_kill_urb(port->read_urb);
> + if (serial->num_interrupt_in)
> + usb_kill_urb(port->interrupt_in_urb);
> + }
> }
Why are the killings done on condition of serial-> != NULL but the registers
are set unconditionally?
Regards
Oliver
Powered by blists - more mailing lists