lkml.org 
[lkml]   [2018]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 6/8] serial: 8250: Copy mctrl when register port.
    From
    Date
    Hi Aaron,

    Il 06/06/2018 16:31, Aaron Sierra ha scritto:
    > ----- Original Message -----
    >> From: "Giulio Benetti" <giulio.benetti@micronovasrl.com>
    >> Sent: Friday, June 1, 2018 7:40:19 AM
    >
    >> RS485 can modify mctrl on startup, especially when RTS_AFTER_SEND is on
    >> TIOCM_RTS is set, then need to keep it set when registering port.
    >>
    >> Copy mctrl to new port too.
    >>
    >> Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
    >> ---
    >> drivers/tty/serial/8250/8250_core.c | 1 +
    >> 1 file changed, 1 insertion(+)
    >>
    >> diff --git a/drivers/tty/serial/8250/8250_core.c
    >> b/drivers/tty/serial/8250/8250_core.c
    >> index c8c2b260c681..c8e62fbd6570 100644
    >> --- a/drivers/tty/serial/8250/8250_core.c
    >> +++ b/drivers/tty/serial/8250/8250_core.c
    >> @@ -993,6 +993,7 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
    >> uart->port.unthrottle = up->port.unthrottle;
    >> uart->port.rs485_config = up->port.rs485_config;
    >> uart->port.rs485 = up->port.rs485;
    >> + uart->port.mctrl = up->port.mctrl;
    >
    > Hi Guilio,
    >
    > I ran into this same thing about six months ago, but I was able to
    > accomplish what I needed by assigning a set_mctrl() function in my
    > port definition. Perhaps that would be enough for your case, too?

    Thanks for pointing me.
    But wouldn't it be better copying mctrl?
    In any case, serial8250_register_8250_port() will call:
    - uart_add_one_port()
    - uart_configure_port()
    - port->ops->set_mctrl(port, mctrl);

    So it would be a double call IMHO.
    Are there any drawbacks on doing what I'm saying?
    Maybe I'm missing something.

    > You should see a little lower in this file that set_mctrl is copied
    > to the new port. > -Aaron
    >
    >> uart->dma = up->dma;
    >> uart->em485 = up->em485;
    >>
    >> --
    >> 2.17.0

    --
    Giulio Benetti
    CTO

    MICRONOVA SRL
    Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
    Tel. 049/8931563 - Fax 049/8931346
    Cod.Fiscale - P.IVA 02663420285
    Capitale Sociale € 26.000 i.v.
    Iscritta al Reg. Imprese di Padova N. 02663420285
    Numero R.E.A. 258642

    \
     
     \ /
      Last update: 2018-06-06 16:45    [W:8.154 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site