1. 05 8月, 2015 2 次提交
  2. 24 7月, 2015 1 次提交
  3. 11 5月, 2015 2 次提交
  4. 28 4月, 2015 1 次提交
    • R
      serial: samsung: fix serial console break · 31c6ba97
      Robert Baldyga 提交于
      This patch fixes problems with serial console break. When function
      s3c64xx_serial_startup() was started while serial console has been working,
      it caused lose of characters written to TX FIFO. This effect was particularly
      observable with systemd, which closes serial port every time when it's
      not currently needed, hence function s3c64xx_serial_startup() is called
      quite often there. To fix this problem we avoid resetting TX FIFO if port is
      used as serial console.
      
      Example of broken console log:
      
      [ 1086.7         Expecting device dev-ttySAC1.device...
      [ 1086.[  OK  ] Reached target Paths.
      [ 1086.756416] s[  OK  ] Reached target Swap.
      [ 1086.776413] systemd[1]: Reached target Swap.
      [ 1086.776642] systemd[1]: Starting Root Slice.
      [    5.53403[  OK  ] Created slice Root Slice.
      [    5.548433] systemd[1]: Create[  OK  ] Created slice User and Session Slice.
      [    5.568414] sys[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
      [    5.588388] s[  OK  ] Listening on Delayed Shutdown Socket.
      [    5.608376] sy[  OK  ] Listening on Journal Socket (/dev/log).
      [    5.628361] [  OK  ] Listening on udev Kernel Socket.
      [    5.648357] s[  OK  ] Listening on udev Control Socket.
      [    5.668353] s[  OK  ] Listening on Journal Socket.
      [    5.688366] systemd[1]: Listeni[  OK  ] Created slice System Slice.
      [    5.708393]          Mounting Temporary Directory...
      [ 7139.067436]          Starting prepare device daemon...
      [ 7139.091726] sy         Starting Generate environment from /etc/profile.d...
      [    5.792867] system         Starting Create Static Device Nodes in /dev...
      [ 7848.718         Mounting Debug File System...
      [ 7848.7384         Mounting Configuration File System...
      [    5.852         Starting Apply Kernel Variables...
      [    5.8720         Starting Setup Virtual Console...
      [ 7848.798         Starting udev Coldplug all Devices...
      [ 7848.817         Starting Journal Service...
      [  OK  ] Started Journal Service.
      [ 7848.854222] s[  OK  ] Reached target Slices.
               Starting Remount Root and Kernel File Systems...
      [  OK  ] Mounted Configuration File System.
      Reported-by: NChanwoo Choi <cw00.choi@samsung.com>
      Signed-off-by: NRobert Baldyga <r.baldyga@samsung.com>
      Reviewed-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      31c6ba97
  5. 27 3月, 2015 1 次提交
    • J
      serial: samsung: Clear operation mode on UART shutdown · e91d863d
      Javier Martinez Canillas 提交于
      Exynos serial ports operate either in a DMA-based or interrupt-based
      modes. In DMA-based mode, the UART generates a transfer data request
      and a Transmission (Tx) interrupt in interrupt-based mode.
      
      The Tx IRQ is only unmasked in interrupt-based mode and it was done
      in s3c24xx_serial_start_tx(). Commit ba019a3e ("serial: samsung:
      remove redundant interrupt enabling") removed the IRQ enable on that
      function since it is enabled when the mode is set in enable_tx_pio().
      
      The problem is that enable_tx_pio() is only called if the port mode
      has not been set before but the mode was not cleared on .shutdown().
      
      So if the UART was shutdown and then started up again, the mode set
      will remain and the Tx IRQ won't be unmasked.
      
      This caused a hang on at least Exynos5250, Exynos5420 and Exynos5800
      when the system is rebooted or powered off.
      
      Fixes: ba019a3e ("serial: samsung: remove redundant interrupt enabling")
      Signed-off-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk>
      Reviewed-by: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e91d863d
  6. 03 2月, 2015 3 次提交
    • M
      serial: samsung: earlycon support depends on CONFIG_SERIAL_SAMSUNG_CONSOLE · c3bda295
      Marek Szyprowski 提交于
      EarlyCon support depends on serial console infrastructure, so the code
      implementing it should depend on CONFIG_SERIAL_SAMSUNG_CONSOLE.
      
      This patch fixes the following build break:
      CC [M]  drivers/tty/serial/samsung.o
      drivers/tty/serial/samsung.c:2468:1: error: expected declaration specifiers or ‘...’ before string constant
      drivers/tty/serial/samsung.c:2468:1: error: expected declaration specifiers or ‘...’ before ‘s3c2410_setup_earlycon’
      drivers/tty/serial/samsung.c:2487:1: error: expected declaration specifiers or ‘...’ before string constant
      drivers/tty/serial/samsung.c:2487:1: error: expected declaration specifiers or ‘...’ before ‘s3c2412_setup_earlycon’
      drivers/tty/serial/samsung.c:2488:1: error: expected declaration specifiers or ‘...’ before string constant
      drivers/tty/serial/samsung.c:2488:1: error: expected declaration specifiers or ‘...’ before ‘s3c2440_setup_earlycon’
      drivers/tty/serial/samsung.c:2489:1: error: expected declaration specifiers or ‘...’ before string constant
      drivers/tty/serial/samsung.c:2489:1: error: expected declaration specifiers or ‘...’ before ‘s3c6400_setup_earlycon’
      drivers/tty/serial/samsung.c:2506:1: error: expected declaration specifiers or ‘...’ before string constant
      drivers/tty/serial/samsung.c:2506:1: error: expected declaration specifiers or ‘...’ before ‘s5pv210_setup_earlycon’
      drivers/tty/serial/samsung.c:2507:1: error: expected declaration specifiers or ‘...’ before string constant
      drivers/tty/serial/samsung.c:2507:1: error: expected declaration specifiers or ‘...’ before ‘exynos4210_setup_earlycon’
      drivers/tty/serial/samsung.c:2468:1: warning: ‘s3c2410_setup_earlycon’ defined but not used [-Wunused-function]
      drivers/tty/serial/samsung.c:2487:1: warning: ‘s3c2412_setup_earlycon’ defined but not used [-Wunused-function]
      drivers/tty/serial/samsung.c:2488:1: warning: ‘s3c2440_setup_earlycon’ defined but not used [-Wunused-function]
      drivers/tty/serial/samsung.c:2489:1: warning: ‘s3c6400_setup_earlycon’ defined but not used [-Wunused-function]
      drivers/tty/serial/samsung.c:2506:1: warning: ‘s5pv210_setup_earlycon’ defined but not used [-Wunused-function]
      drivers/tty/serial/samsung.c:2507:1: warning: ‘exynos4210_setup_earlycon’ defined but not used [-Wunused-function]
      make[3]: *** [drivers/tty/serial/samsung.o] Error 1
      Reported-by: Nkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c3bda295
    • R
      serial: samsung: remove redundant interrupt enabling · ba019a3e
      Robert Baldyga 提交于
      Function s3c24xx_serial_start_tx_pio() enables interrupts if needed,
      so we don't have to (or even we shouldn't) enable them before.
      Signed-off-by: NRobert Baldyga <r.baldyga@samsung.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ba019a3e
    • T
      serial: samsung: Add support for early console · b94ba032
      Tomasz Figa 提交于
      This patch adds support for early console initialized from device tree
      and kernel command line to all variants of Samsung serial driver.
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      [mszyprow: added support for command line based initialization,
                 fixed comments, added documentation]
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: NAlim Akhtar <alim.akhtar@samsung.com>
      Tested-by: NAlim Akhtar <alim.akhtar@samsung.com>
      Tested-by: NChanwoo Choi <cw00.choi@samsung.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b94ba032
  7. 10 1月, 2015 5 次提交
  8. 26 11月, 2014 4 次提交
  9. 06 11月, 2014 1 次提交
  10. 20 10月, 2014 1 次提交
  11. 19 7月, 2014 1 次提交
  12. 18 7月, 2014 3 次提交
  13. 11 7月, 2014 1 次提交
  14. 10 7月, 2014 5 次提交
  15. 18 6月, 2014 1 次提交
  16. 29 5月, 2014 1 次提交
  17. 25 4月, 2014 3 次提交
    • D
      serial: samsung: Change barrier() to cpu_relax() in console output · f94b0572
      Doug Anderson 提交于
      The two functions to write out to the console (one used in normal
      console mode and one in polling console mode) were slightly different.
      One used a barrier() in its loop and the other a cpu_relax().  The
      barrier() really doesn't do anything since we're using rd_regl() to
      read the port anyway.  Switch it to cpu_relax() to make things
      consistent.
      
      No known bugs / issues are fixed by this change--it just makes things
      more consistent.
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f94b0572
    • D
      serial: samsung: don't check config for every character · ab88c8dc
      Doug Anderson 提交于
      The s3c24xx_serial_console_putchar() is _only_ ever used by
      s3c24xx_serial_console_write() and is called in a loop (indirectly
      through uart_console_write()).  There's no reason to call
      s3c24xx_port_configured() for every iteration through the loop.  Move
      it outside the loop.
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ab88c8dc
    • D
      serial: samsung: Use the passed in "port", fixing kgdb w/ no console · bb7f09ba
      Doug Anderson 提交于
      The two functions in the samsung serial driver used for writing
      characters out to the port were inconsistent about whether they used
      the passed in "port" or the global "cons_uart".  There was no reason
      to use the global and the use of the global in
      s3c24xx_serial_put_poll_char() caused a crash in the case where you
      used the serial port for kgdboc but not for console.
      
      Fix it so we used the passed in variable.
      
      Note that this doesn't fix all problems with the samsung serial
      driver.  Specifically:
      * s3c24xx_serial_console_putchar() is still 99% identical to
        s3c24xx_serial_put_poll_char() (the function signature is different,
        but that's about it).  A future patch will make them slightly less
        identical and judging by other serial drivers we may need yet more
        differences eventually.
      * The samsung serial driver still doesn't allow you to have more than
        one console port since it still uses the global cons_uart in
        s3c24xx_serial_console_write().
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bb7f09ba
  18. 14 2月, 2014 1 次提交
  19. 09 12月, 2013 1 次提交
    • H
      serial: samsung: move clock deactivation below uart registration · 0da3336f
      Heiko Stübner 提交于
      Commit 60e93575 (serial: samsung: enable clock before clearing pending
      interrupts during init) added handling of the controller clock during init.
      
      On most systems this clock is also one of the baud_clock sources and
      possibly used by the earlycon and thus already enabled by the bootloader.
      
      Therefore a gap exists between s3c24xx_serial_init_port disabling the
      clock and an attached console reenabling it, making the transition from
      earlycon to regular console possibly hang the system - as seen on my
      S3C2442 based Freerunner today.
      
      Therefore move the disabling of the clock from s3c24xx_serial_init_port
      below the uart port registration, effectively creating an overlap and
      keeping the clock running non-stop if the console wants to grab this port.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0da3336f
  20. 27 9月, 2013 2 次提交