Hi, I have a device connected to my apps processor over UART, the serial core's hooked up with omap-serial UART driver. There is a scenario, where the device just fails to respond, and I should be closing the UART & opening it again to re-try the request. This is also coupled with power-cycling the chip. However a normal start/stop sequence where chip responds to every request & I close UART when I'm done - is something like this, [function name & line number in logs) uart_open(1) called uart_open: 1635 uart_open: 1651 uart_open: 1663 uart_open: 1674 omap-hsuart omap-hsuart.1: serial_omap_pm+1 omap-hsuart omap-hsuart.1: Enable CTS wakeup for UART 1 omap-hsuart omap-hsuart.1: serial_omap_startup+1 omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 omap-hsuart omap-hsuart.1: serial_omap_get_mctrl+1 uart_open: 1686 uart_open: 1694 omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 omap-hsuart omap-hsuart.1: serial_omap_set_termios+1 omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 uart_open: 1705 uart_flush_buffer(1) called omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 omap-hsuart omap-hsuart.1: serial_omap_set_termios+1 omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 omap-hsuart omap-hsuart.1: serial_omap_set_termios+1 uart_flush_buffer(1) called uart_flush_buffer(1) called uart_flush_buffer(1) called omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 omap-hsuart omap-hsuart.1: serial_omap_set_termios+1 uart_wait_until_sent(1), jiffies=4294954470, expire=4294954474... omap-hsuart omap-hsuart.1: serial_omap_tx_empty+1 uart_wait_until_sent(1), jiffies=4294954471, expire=4294954475... omap-hsuart omap-hsuart.1: serial_omap_tx_empty+1 (stc): st_tty_open uart_flush_buffer(1) called uart_flush_buffer(1) called uart_flush_buffer(1) called (stk) :ldisc_install = 0 uart_close(1) called uart_close: 1295 uart_close: 1316 uart_wait_until_sent(1), jiffies=4294951992, expire=4294951996... omap-hsuart omap-hsuart.1: serial_omap_tx_empty+1 uart_close: 1327 omap-hsuart omap-hsuart.1: Disable CTS wakeup for UART1 uart_wait_until_sent(1), jiffies=4294951994, expire=4294951996... omap-hsuart omap-hsuart.1: serial_omap_tx_empty+1 uart_close: 1345 omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 omap-hsuart omap-hsuart.1: serial_omap_shutdown+1 omap-hsuart omap-hsuart.1: serial_omap_set_mctrl+1 uart_flush_buffer(1) called uart_flush_buffer(1) called omap-hsuart omap-hsuart.1: serial_omap_pm+1 uart_close: 1368 (stc): st_tty_close However, in a scenario where the chip fails to respond to one of the requests, the start/stop sequence becomes something like this, uart_open(1) called uart_open: 1635 uart_open: 1651 uart_open: 1663 uart_open: 1705 So, the problem seems to be that the port->count in the serial_core isn't 1 & hence the call, if (port->count == 1) uart_change_pm(state, 0); doesn't seem to be happening, which is very critical. Also no calls are made to uart_startup & hence omap-serial's startup. Where should I be looking as to why the port->count is messed up ? What is the this count used for? Also how is this related to chip not responding to certain commands? -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html