Re: [PATCH 2/7] ark3116: (3rd try) Make existing functions 16450-aware and add close and release functions.
From: Oliver Neukum
Date: Sun Oct 25 2009 - 15:54:05 EST
Am Sonntag, 25. Oktober 2009 18:50:59 schrieb bart.hartgers@xxxxxxxxx:
> +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
èº{.nÇ+?·?®??+%?Ëlzwm?éb?ë§²æìrž?zX§»®w¥?{ayºÊ?Ú?ë,j¢f£¢·h??àz¹®w¥¢ž¢·Šj:+v?š?wèjØm¶?ÿŸ«?êçzZ+?ù???Ý¢j"?ú!¶iO?æ¬z·?vØ^¶m§ÿðÃnÆ?àþY&?