Date: Wed, 26 Oct 2011 13:29:42 +0200 From: Bart Hartgers Subject: [PATCH] ark3116 initialisation fix Hi, This patch for the usb serial ark3116 driver fixes an initialisation ordering bug that gets triggered on hotplug when using at least recent debian/ubuntu userspace. Without it, ark3116 serial cables don't work. Patch is against 3.1. Groeten, Bart Signed-off-by: Bart Hartgers Tested-by: law_ence.dev@ntlworld.com --- diff -ur linux-3.1.orig//drivers/usb/serial/ark3116.c linux-3.1/drivers/usb/serial/ark3116.c --- linux-3.1.orig//drivers/usb/serial/ark3116.c 2011-10-24 09:10:05.000000000 +0200 +++ linux-3.1/drivers/usb/serial/ark3116.c 2011-10-26 09:16:41.776874595 +0200 @@ -42,7 +42,7 @@ * Version information */ -#define DRIVER_VERSION "v0.6" +#define DRIVER_VERSION "v0.7" #define DRIVER_AUTHOR "Bart Hartgers " #define DRIVER_DESC "USB ARK3116 serial/IrDA driver" #define DRIVER_DEV_DESC "ARK3116 RS232/IrDA" @@ -380,10 +380,6 @@ goto err_out; } - /* setup termios */ - if (tty) - ark3116_set_termios(tty, port, NULL); - /* remove any data still left: also clears error state */ ark3116_read_reg(serial, UART_RX, buf); @@ -406,6 +402,10 @@ /* enable DMA */ ark3116_write_reg(port->serial, UART_FCR, UART_FCR_DMA_SELECT); + /* setup termios */ + if (tty) + ark3116_set_termios(tty, port, NULL); + err_out: kfree(buf); return result;