15 May, 2016

2 commits

  • As of commit ebd2c8f6d2ec4012 ("serial: kill off uart_info"), the
    circular transmission buffer is part of struct uart_state instead of
    struct uart_info. Make it clear this structure is pointed to from struct
    uart_port.

    Change 'circ' to 'circ_buf' to match the structure name while we're at
    it.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Jonathan Corbet

    Geert Uytterhoeven
     
  • Stop referring to the mutex member of the tty_port struct as
    'port->mutex', as 'port' is ambiguous, and usually refers to the
    uart_port struct in this document. Use 'tty_port->mutex' instead,
    following the single existing use.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Jonathan Corbet

    Geert Uytterhoeven
     

17 Apr, 2016

1 commit


16 Apr, 2016

3 commits


31 Mar, 2016

9 commits


05 Oct, 2015

1 commit


06 Nov, 2014

1 commit

  • The low-level uart driver may modify termios settings to override
    settings that are not compatible with the uart, such as CRTSCTS.
    Thus, callers of the low-level uart driver's set_termios() method must
    hold termios_rwsem write lock to prevent concurrent access to termios,
    in case such override occurs.

    The termios_rwsem lock requirement does not extend to console setup
    (ie., uart_set_options), as console setup cannot race with tty
    operations. Nor does this lock requirement extend to functions which
    cannot be concurrent with tty ioctls (ie., uart_port_startup() and
    uart_resume_port()).

    Further, always claim the port mutex to protect hardware
    re-reprogramming in the set_termios() uart driver method. Note this
    is unnecessary for console initialization in uart_set_options()
    which cannot be concurrent with other uart operations.

    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

09 Sep, 2014

1 commit

  • START_CHAR() & STOP_CHAR() can be disabled if set to '\0'
    (__DISABLED_CHAR). UART drivers which define a send_xchar()
    handler must not transmit __DISABLED_CHAR.

    Document requirement.

    Affected drivers:
    sunsab
    sunhv

    cc: David S. Miller
    cc:
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

29 May, 2014

1 commit


17 Oct, 2013

1 commit

  • This deletes the .set_wake() callback in the struct uart_ops.
    Apparently this has been unused since pre-git times. In the
    old-2.6-bkcvs it is deleted as part of a changeset removing
    the PM_SET_WAKEUP from pm_request_t which is since also deleted
    from the kernel.

    The apropriate way to set wakeups in the kernel is to have a
    code snippet like this in .suspend() or .runtime_suspend()
    callbacks:

    static int foo_suspend(struct device *dev)
    {
    if (device_may_wakeup(dev)) {
    /* Enable wakeups, set internal states */
    }
    }

    This specific callback is not coming back.

    Cc: Rafael J. Wysocki
    Cc: Len Brown
    Cc: Pavel Machek
    Cc: Kevin Hilman
    Cc: Dmitry Artamonow
    Signed-off-by: Linus Walleij
    Signed-off-by: Greg Kroah-Hartman

    Linus Walleij
     

16 Jan, 2013

2 commits


05 Jan, 2012

1 commit


21 Jul, 2008

1 commit

  • Serial drivers using DMA (like the atmel_serial driver) tend to get very
    confused when the xmit buffer is flushed and nobody told them. They
    also tend to spew a lot of garbage since the DMA engine keeps running
    after the buffer is flushed and possibly refilled with unrelated data.

    This patch adds a new flush_buffer operation to the uart_ops struct,
    along with a call to it from uart_flush_buffer() right after the xmit
    buffer has been cleared. The driver can implement this in order to
    syncronize its internal DMA state with the xmit buffer when the buffer
    is flushed.

    Signed-off-by: Haavard Skinnemoen
    Acked-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     

03 Jun, 2006

1 commit


16 Apr, 2006

1 commit

  • Improve serial driver documentation:
    - Remove CVS id.
    - Update pointer to reference driver documentation.
    - Add comments about new uart_write_console function.
    - Add TIOCM_LOOP modem control bit description.
    - Add commentry about enable_ms method being called multiple times.
    - Add commentry about startup/shutdown method calling.
    - Mention that dereferencing port->info after shutdown is invalid.

    Signed-off-by: Russell King

    Russell King
     

31 Oct, 2005

1 commit


31 Aug, 2005

1 commit

  • The start_tx and stop_tx methods were passed a flag to indicate
    whether the start/stop was from the tty start/stop callbacks, and
    some drivers used this flag to decide whether to ask the UART to
    immediately stop transmission (where the UART supports such a
    feature.)

    There are other cases when we wish this to occur - when CTS is
    lowered, or if we change from soft to hard flow control and CTS
    is inactive. In these cases, this flag was false, and we would
    allow the transmitter to drain before stopping.

    There is really only one case where we want to let the transmitter
    drain before disabling, and that's when we run out of characters
    to send.

    Hence, re-jig the start_tx and stop_tx methods to eliminate this
    flag, and introduce new functions for the special "disable and
    allow transmitter to drain" case.

    Signed-off-by: Russell King

    Russell King
     

29 Jun, 2005

1 commit

  • This patch changes the way serial ports are locked when getting modem
    status. This change is necessary because we will need to atomically
    read the modem status and take action depending on the CTS status.

    Signed-off-by: Russell King

    Russell King
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds