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&?