Messages in this thread | | | Date | Thu, 06 Sep 2012 20:54:25 +0200 | From | Jiri Slaby <> | Subject | Re: [PATCH v6] uartclk value from serial_core exposed to sysfs |
| |
On 09/06/2012 08:39 PM, Tomas Hlavacek wrote: > On Thu, Sep 6, 2012 at 7:54 PM, Jiri Slaby <jslaby@suse.cz> wrote: >> On 09/06/2012 03:17 AM, Tomas Hlavacek wrote: >>> @@ -2362,8 +2392,8 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport) >>> * Register the port whether it's detected or not. This allows >>> * setserial to be used to alter this ports parameters. >>> */ >>> - tty_dev = tty_port_register_device(port, drv->tty_driver, uport->line, >>> - uport->dev); >>> + tty_dev = tty_register_device_attr(drv->tty_driver, uport->line, >>> + uport->dev, port, tty_dev_attr_groups); >> >> This makes me believe you have not tested the change at all? > > Thanks! I can't believe I missed that. (And I actually tested that, > but I have to admit that it was not enough apparently.) > > I will re-send the patch (after some additional testing and double-checking).
Ok. A couple more questions...
* why are you passing tty_port to the struct device's private data and not uart_port proper? Is this for some future use? * cannot be all those attribute structs const? * kdoc for tty_register_device_attr says that when TTY_DRIVER_DYNAMIC_DEV is not set, tty_register_device_attr *should* not be called. But it must not be called, otherwise it will fail and emit a warning as a bonus, right? * final remark. I would prefer declaration and code be delimited by a new line in uart_get_attr_uartclk: <===> + int ret; + + struct tty_port *port = dev_get_drvdata(dev); + struct uart_state *state = container_of(port, struct uart_state, port); + mutex_lock(&state->port.mutex); <===>
Like: <===> struct tty_port *port = ...; struct uart_state *state = ...; int ret;
mutex_lock(&state->port.mutex); <===>
regards, -- js suse labs
| |