Messages in this thread | | | Date | Wed, 6 Aug 2008 14:46:35 -0700 | From | Ira Snyder <> | Subject | Re: Simple UART driver help and TTY questions |
| |
On Wed, Aug 06, 2008 at 11:11:00PM +0200, Jiri Slaby wrote: > conOn 08/05/2008 06:33 PM, Ira Snyder wrote: >> static void tiny_config_port(struct uart_port *port, int flags) >> { >> FUNC_ENTER(); > > if (flags & UART_CONFIG_TYPE) > port->type = PORT_16550A; > >> } > > According to the straces, you get -EIO from ioctl and read which most > likely means TTY_IO_ERROR bit set due to tiny_port->type = PORT_UNKNOWN > (i.e. 0). Try the above.
Not quite, but it got me on the right track. I needed to set port->type before calling uart_add_one_port().
Now it gets into my code. Previously, it had never even called any of my code. None of it. Unfortunately, I ran it and it segfaulted. Turns out that Greg's tinyserial driver didn't implement ops->set_termios() and that was the cause. Implementing that got everything working.
Now I get in my dmesg: [ 73.813893] ttytiny: Tiny serial driver [ 83.714486] Enter: tiny_startup [ 83.717676] Enter: tiny_set_termios [ 83.721193] Enter: tiny_set_mctrl [ 85.463793] Enter: tiny_stop_rx [ 85.466987] Enter: tiny_set_mctrl [ 85.470328] Enter: tiny_shutdown
And that looks very reasonable. (It was produced by cat /dev/ttytiny0, for your information).
Thanks a lot for your help! That problem had me completely stumped for a couple of days now :)
Ira
| |