1. 12 5月, 2012 1 次提交
  2. 07 4月, 2012 1 次提交
  3. 21 3月, 2012 1 次提交
  4. 15 3月, 2012 1 次提交
  5. 25 2月, 2012 1 次提交
  6. 22 2月, 2012 1 次提交
  7. 25 1月, 2012 2 次提交
  8. 22 11月, 2011 1 次提交
  9. 31 10月, 2011 1 次提交
  10. 27 9月, 2011 1 次提交
  11. 09 7月, 2011 1 次提交
    • S
      amba pl011: workaround for uart registers lockup · def90f42
      Shreshtha Kumar Sahu 提交于
      This workaround aims to break the deadlock situation
      which raises during continuous transfer of data for long
      duration over uart with hardware flow control. It is
      observed that CTS interrupt cannot be cleared in uart
      interrupt register (ICR). Hence further transfer over
      uart gets blocked.
      
      It is seen that during such deadlock condition ICR
      don't get cleared even on multiple write. This leads
      pass_counter to decrease and finally reach zero. This
      can be taken as trigger point to run this UART_BT_WA.
      
      Workaround backups the register configuration, does soft
      reset of UART using BIT-0 of PRCC_K_SOFTRST_SET/CLEAR
      registers and restores the registers.
      
      This patch also provides support for uart init and exit
      function calls if present.
      Signed-off-by: NShreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      def90f42
  12. 17 6月, 2011 1 次提交
    • S
      amba pl011: workaround for uart registers lockup · c16d51a3
      Shreshtha Kumar Sahu 提交于
      This workaround aims to break the deadlock situation
      which raises during continuous transfer of data for long
      duration over uart with hardware flow control. It is
      observed that CTS interrupt cannot be cleared in uart
      interrupt register (ICR). Hence further transfer over
      uart gets blocked.
      
      It is seen that during such deadlock condition ICR
      don't get cleared even on multiple write. This leads
      pass_counter to decrease and finally reach zero. This
      can be taken as trigger point to run this UART_BT_WA.
      
      Workaround backups the register configuration, does soft
      reset of UART using BIT-0 of PRCC_K_SOFTRST_SET/CLEAR
      registers and restores the registers.
      
      This patch also provides support for uart init and exit
      function calls if present.
      Signed-off-by: NShreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      c16d51a3
  13. 20 4月, 2011 1 次提交
  14. 31 3月, 2011 1 次提交
  15. 10 3月, 2011 2 次提交
  16. 24 2月, 2011 1 次提交
  17. 14 1月, 2011 1 次提交
    • G
      tty: move drivers/serial/ to drivers/tty/serial/ · ab4382d2
      Greg Kroah-Hartman 提交于
      The serial drivers are really just tty drivers, so move them to
      drivers/tty/ to make things a bit neater overall.
      
      This is part of the tty/serial driver movement proceedure as proposed by
      Arnd Bergmann and approved by everyone involved a number of months ago.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Rogier Wolff <R.E.Wolff@bitwizard.nl>
      Cc: Michael H. Warfield <mhw@wittsend.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ab4382d2
  18. 06 1月, 2011 7 次提交
    • R
      ARM: PL011: add DMA burst threshold support for ST variants · 38d62436
      Russell King 提交于
      ST Micro variants has some specific dma burst threshold compensation,
      which allows them to make better use of a DMA controller.  Add support
      to set this up.
      
      Based on a patch from Linus Walleij.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      38d62436
    • R
      ARM: PL011: Add support for transmit DMA · 68b65f73
      Russell King 提交于
      Add DMA engine support for transmit to the PL011 driver.  Based on a
      patch from Linus Walliej, with the following changes:
      
      - remove RX DMA support.  As PL011 doesn't give us receive timeout
        interrupts, we only get notified of received data when the RX DMA
        has completed.  This rather sucks for interactive use of the TTY.
      
      - remove abuse of completions.  Completions are supposed to be for
        events, not to tell what condition buffers are in.  Replace it with
        a simple 'queued' bool.
      
      - fix locking - it is only safe to access the circular buffer with the
        port lock held.
      
      - only map the DMA buffer when required - if we're ever behind an IOMMU
        this helps keep IOMMU usage down, and also ensures that we're legal
        when we change the scatterlist entry length.
      
      - fix XON/XOFF sending - we must send XON/XOFF characters out as soon
        as possible - waiting for up to 4095 characters in the DMA buffer
        to be sent first is not acceptable.
      
      - fix XON/XOFF receive handling - we need to stop DMA when instructed
        to by the TTY layer, and restart it again when instructed to.  There
        is a subtle problem here: we must not completely empty the circular
        buffer with DMA, otherwise we will not be notified of XON.
      
      - change the 'enable_dma' flag into a 'using DMA' flag, and track
        whether we can use TX DMA by whether the channel pointer is non-NULL.
        This gives us more control over whether we use DMA in the driver.
      
      - we don't need to have the TX DMA buffer continually allocated for
        each port - instead, allocate it when the port starts up, and free
        it when it's shut down.  Update the 'using DMA' flag if we get
        the buffer, and adjust the TTY FIFO size appropriately.
      
      - if we're going to use PIO to send characters, use the existing IRQ
        based functionality rather than reimplementing it.  This also ensures
        we call uart_write_wakeup() at the appropriate time, otherwise we'll
        stall.
      
      - use DMA engine helper functions for type safety.
      
      - fix init when built as a module - we can't have to initcall functions,
        so we must settle on one.  This means we can eliminate the deferred
        DMA initialization.
      
      - there is no need to terminate transfers on a failed prep_slave_sg()
        call - nothing has been setup, so nothing needs to be terminated.
        This avoids a potential deadlock in the DMA engine code
        (tasklet->callback->failed prepare->terminate->tasklet_disable
         which then ends up waiting for the tasklet to finish running.)
      
      - Dan says that the submission callback should not return an error:
        | dma_submit_error() is something I should have removed after commit
        | a0587bcf "ioat1: move descriptor allocation from submit to prep" all
        | errors should be notified by prep failing to return a descriptor
        | handle.  Negative dma_cookie_t values are only returned by the
        | dma_async_memcpy* calls which translate a prep failure into -ENOMEM.
        So remove the error handling at that point.  This also solves the
        potential deadlock mentioned in the previous comment.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      68b65f73
    • R
      ARM: PL011: Ensure IRQs are disabled in UART interrupt handler · 963cc981
      Russell King 提交于
      As the DMA support introduces a separate interrupt-time callback, our
      interrupt handler will not be the only handler which takes the port
      lock, so we need to ensure that IRQs are disabled.  We must use the
      _irqsave variant so we don't inadvertently enable interrupts.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      963cc981
    • R
      ARM: PL011: Separate hardware FIFO size from TTY FIFO size · ffca2b11
      Russell King 提交于
      With DMA support, we need to tell the TTY subsystem that the DMA buffer
      is the size of the FIFO, otherwise things like tty_wait_until_sent()
      will time out too early.  Keep (and use) the hardware value separately
      from the port->fifosize.
      
      This was part of a larger patch from Linus Walleij, with a little
      modification.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ffca2b11
    • R
      ARM: PL011: Allow better handling of vendor data · c19f12b5
      Russell King 提交于
      Rather than copying all vendor data into the port structure, copy
      just that which is frequently used, and keep a pointer to the
      remaining vendor data structure.  This makes it easier to add
      vendor quirks in the future.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c19f12b5
    • R
      ARM: PL011: Ensure error flags are clear at startup · 5063e2c5
      Russell King 提交于
      The error flags weren't being cleared upon UART startup, which
      can cause problems when we add DMA support.  It's good practice
      to ensure that these flags are cleared anyway, so let's do so.
      
      This was part of a larger patch from Linus Walleij.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5063e2c5
    • R
      ARM: PL011: include revision number in boot-time port printk · e8a7ba86
      Russell King 提交于
      Include the revision number of the PL011 primecell in the boot-time
      port printk to allow proper identification of the peripheral.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      e8a7ba86
  19. 27 7月, 2010 3 次提交
  20. 21 5月, 2010 1 次提交
    • J
      kgdb,8250,pl011: Return immediately from console poll · f5316b4a
      Jason Wessel 提交于
      The design of the kdb shell requires that every device that can
      provide input to kdb have a polling routine that exits immediately if
      there is no character available.  This is required in order to get the
      page scrolling mechanism working.
      
      Changing the kernel debugger I/O API to require all polling character
      routines to exit immediately if there is no data allows the kernel
      debugger to process multiple input channels.
      
      NO_POLL_CHAR will be the return code to the polling routine when ever
      there is no character available.
      
      CC: linux-serial@vger.kernel.org
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      f5316b4a
  21. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  22. 19 2月, 2010 1 次提交
  23. 20 9月, 2009 2 次提交
  24. 02 9月, 2009 1 次提交
  25. 11 6月, 2009 1 次提交
    • L
      [ARM] 5544/1: Trust PrimeCell resource sizes · dc890c2d
      Linus Walleij 提交于
      I found the PrimeCell/AMBA Bus drivers distrusting the resource
      passed in as part of the struct amba_device abstraction. This
      patch removes all hard coded resource sizes found in the PrimeCell
      drivers and move the responsibility of this definition back to
      the platform/board device definition, which already exist and
      appear to be correct for all in-tree users of these drivers.
      We do this using the resource_size() inline function which was
      also replicated in the only driver using the resource size, so
      that has been changed too. The KMI_SIZE was left in kmi.h in case
      someone likes it. Test-compiled against Versatile and Integrator
      defconfigs, seems to work but I don't posess these boards and
      cannot test them.
      Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      dc890c2d
  26. 05 6月, 2009 1 次提交
  27. 31 5月, 2009 1 次提交
  28. 21 5月, 2009 1 次提交
  29. 01 12月, 2008 1 次提交