1. 07 3月, 2015 1 次提交
  2. 10 1月, 2015 1 次提交
  3. 06 11月, 2014 1 次提交
    • S
      tty: serial: 8250_omap: add custom DMA-TX callback · 31a17132
      Sebastian Andrzej Siewior 提交于
      This patch provides mostly a copy of serial8250_tx_dma() +
      __dma_tx_complete() with the following extensions:
      
      - DMA bug
        At least on AM335x the following problem exists: Even if the TX FIFO is
        empty and a TX transfer is programmed (and started) the UART does not
        trigger the DMA transfer.
        After $TRESHOLD number of bytes have been written to the FIFO manually the
        UART reevaluates the whole situation and decides that now there is enough
        room in the FIFO and so the transfer begins.
        This problem has not been seen on DRA7 or beagle board xm (OMAP3). I am not
        sure if this is UART-IP core specific or DMA engine.
      
        The workaround is to use a threshold of one byte, program the DMA
        transfer minus one byte and then to put the first byte into the FIFO to
        kick start the transfer.
      
      - support for runtime PM
        RPM is enabled on start_tx(). We can't disable RPM on DMA complete callback
        because there is still data in the FIFO which is being sent. We have to wait
        until the FIFO is empty before we disable it.
        For this to happen we fake a TX sent error and enable THRI. Once the
        FIFO is empty we receive an interrupt and since the TTY-buffer is still
        empty we "put RPM" via __stop_tx(). Should it been filed then in the
        start_tx() path we should program the DMA transfer and remove the error
        flag and the THRI bit.
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Reviewed-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      31a17132
  4. 18 7月, 2014 1 次提交
    • Y
      serial/uart/8250: Add tunable RX interrupt trigger I/F of FIFO buffers · aef9a7bd
      Yoshihiro YUNOMAE 提交于
      Add tunable RX interrupt trigger I/F of FIFO buffers.
      
      Serial devices are used as not only message communication devices but control
      or sending communication devices. For the latter uses, normally small data
      will be exchanged, so user applications want to receive data unit as soon as
      possible for real-time tendency. If we have a sensor which sends a 1 byte data
      each time and must control a device based on the sensor feedback, the RX
      interrupt should be triggered for each data.
      
      According to HW specification of serial UART devices, RX interrupt trigger
      can be changed, but the trigger is hard-coded. For example, RX interrupt trigger
      in 16550A can be set to 1, 4, 8, or 14 bytes for HW, but current driver sets
      the trigger to only 8bytes.
      
      This patch makes some devices change RX interrupt trigger from userland.
      
      <How to use>
      - Read current setting
       # cat /sys/class/tty/ttyS0/rx_trig_bytes
       8
      
      - Write user setting
       # echo 1 > /sys/class/tty/ttyS0/rx_trig_bytes
       # cat /sys/class/tty/ttyS0/rx_trig_bytes
       1
      
      <Support uart devices>
      - 16550A and Tegra (1, 4, 8, or 14 bytes)
      - 16650V2 (8, 16, 24, or 28 bytes)
      - 16654 (8, 16, 56, or 60 bytes)
      - 16750 (1, 16, 32, or 56 bytes)
      
      <Change log>
      Changes in V9:
       - Use attr_group instead of dev_spec_attr_group of uart_port structure
      
      Changes in V8:
       - Divide this patch from V7's patch based on Greg's comment
      
      Changes in V7:
       - Add Documentation
       - Change I/F name from rx_int_trig to rx_trig_bytes because the name
         rx_int_trig is hard to understand how users specify the value
      
      Changes in V6:
       - Move FCR_RX_TRIG_* definition in 8250.h to include/uapi/linux/serial_reg.h,
         rename those to UART_FCR_R_TRIG_*, and use UART_FCR_TRIGGER_MASK to
         UART_FCR_R_TRIG_BITS()
       - Change following function names:
          convert_fcr2val() => fcr_get_rxtrig_bytes()
          convert_val2rxtrig() => bytes_to_fcr_rxtrig()
       - Fix typo in serial8250_do_set_termios()
       - Delete the verbose error message pr_info() in bytes_to_fcr_rxtrig()
       - Rename *rx_int_trig/rx_trig* to *rxtrig* for several functions or variables
         (but UI remains rx_int_trig)
       - Change the meaningless variable name 'val' to 'bytes' following functions:
          fcr_get_rxtrig_bytes(), bytes_to_fcr_rxtrig(), do_set_rxtrig(),
          do_serial8250_set_rxtrig(), and serial8250_set_attr_rxtrig()
       - Use up->fcr in order to get rxtrig_bytes instead of rx_trig_raw in
         fcr_get_rxtrig_bytes()
       - Use conf_type->rxtrig_bytes[0] instead of switch statement for support check
         in register_dev_spec_attr_grp()
       - Delete the checking whether a user changed FCR or not when minimum buffer
         is needed in serial8250_do_set_termios()
      
      Changes in V5.1:
       - Fix FCR_RX_TRIG_MAX_STATE definition
      
      Changes in V5:
       - Support Tegra, 16650V2, 16654, and 16750
       - Store default FCR value to up->fcr when the port is first created
       - Add rx_trig_byte[] in uart_config[] for each device and use rx_trig_byte[]
         in convert_fcr2val() and convert_val2rxtrig()
      
      Changes in V4:
       - Introduce fifo_bug flag in uart_8250_port structure
         This is enabled only when parity is enabled and UART_BUG_PARITY is enabled
         for up->bugs. If this flag is enabled, user cannot set RX trigger.
       - Return -EOPNOTSUPP when it does not support device at convert_fcr2val() and
         at convert_val2rxtrig()
       - Set the nearest lower RX trigger when users input a meaningless value at
         convert_val2rxtrig()
       - Check whether p->fcr is existing at serial8250_clear_and_reinit_fifos()
       - Set fcr = up->fcr in the begging of serial8250_do_set_termios()
      
      Changes in V3:
       - Change I/F from ioctl(2) to sysfs(rx_int_trig)
      
      Changed in V2:
       - Use _IOW for TIOCSFIFORTRIG definition
       - Pass the interrupt trigger value itself
      Signed-off-by: NYoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      aef9a7bd
  5. 25 4月, 2014 1 次提交
  6. 28 8月, 2013 1 次提交
    • G
      Revert "OMAP: UART: Keep the TX fifo full when possible" · 355fe568
      Greg Kroah-Hartman 提交于
      This reverts commit c4415084.
      
      Kevin writes:
      	Hmm, another OMAP serial patch that wasn't Cc'd to linux-omap
      	where OMAP users might have seen it. :(
      
      	I just bisected a strange problem in linux-next on OMAP3 down to
      	this patch.  Reverting it fixes the problem.
      
      	On OMAP3530 Beagle and Overo, after boot, doing a 'cat
      	/proc/cpuinfo' was not returning to a prompt, suggesting
      	something strange with the FIFO.  Hitting return gets me back to
      	a prompt.
      
      	Greg, this one should also be dropped from tty-next until it can
      	be further investgated and the problem solved.
      Reported-by: NKevin Hilman <khilman@linaro.org>
      Cc: Dmitry Fink <finik@ti.com>
      Cc: Alexander Savchenko <oleksandr.savchenko@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      355fe568
  7. 27 7月, 2013 1 次提交
  8. 22 11月, 2012 2 次提交
  9. 13 10月, 2012 1 次提交
  10. 07 9月, 2012 1 次提交
  11. 23 9月, 2011 1 次提交
  12. 20 5月, 2011 2 次提交
  13. 01 12月, 2010 2 次提交
  14. 11 8月, 2010 1 次提交
    • F
      hsu: driver for Medfield High Speed UART device · d843fc6e
      Feng Tang 提交于
      This is a PCI & UART driver, which suppors both PIO and DMA mode
      UART operation. It has 3 identical UART ports and one internal
      DMA controller.
      
      Current FW will export 4 pci devices for hsu: 3 uart ports and 1
      dma controller, each has one IRQ line. And we need to discuss the
      device model, one PCI device covering whole HSU should be a better
      model, but there is a problem of how to export the 4 IRQs info
      
      Current driver set the highest baud rate to 2746800bps, which is
      easy to scale down to 115200/230400.... To suport higher baud rate,
      we need add special process, change DLAB/DLH/PS/DIV/MUL registers
      all together.
      
      921600 is the highest baud rate that has been tested with Bluetooth
      modem connected to HSU port 0. Will test more when there is right
      BT firmware.
      
      Current version contains several work around for A0's Silicon bugs
      Signed-off-by: NFeng Tang <feng.tang@intel.com>
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d843fc6e
  15. 04 12月, 2009 1 次提交
  16. 23 6月, 2009 1 次提交
  17. 23 8月, 2007 1 次提交
  18. 08 5月, 2007 1 次提交
    • M
      serial driver PMC MSP71xx · beab697a
      Marc St-Jean 提交于
      Serial driver patch for the PMC-Sierra MSP71xx devices.
      
      There are three different fixes:
      
      1 Fix for DesignWare APB THRE errata: In brief, this is a non-standard
        16550 in that the THRE interrupt will not re-assert itself simply by
        disabling and re-enabling the THRI bit in the IER, it is only re-enabled
        if a character is actually sent out.
      
        It appears that the "8250-uart-backup-timer.patch" in the "mm" tree
        also fixes it so we have dropped our initial workaround.  This patch now
        needs to be applied on top of that "mm" patch.
      
      2 Fix for Busy Detect on LCR write: The DesignWare APB UART has a feature
        which causes a new Busy Detect interrupt to be generated if it's busy
        when the LCR is written.  This fix saves the value of the LCR and
        rewrites it after clearing the interrupt.
      
      3 Workaround for interrupt/data concurrency issue: The SoC needs to
        ensure that writes that can cause interrupts to be cleared reach the UART
        before returning from the ISR.  This fix reads a non-destructive register
        on the UART so the read transaction completion ensures the previously
        queued write transaction has also completed.
      Signed-off-by: NMarc St-Jean <Marc_St-Jean@pmc-sierra.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      beab697a
  19. 23 2月, 2006 1 次提交
  20. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      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!
      1da177e4