1. 29 Jun, 2017 7 commits
    • Dong Aisheng's avatar
      tty: serial: lpuart: refactor lpuart32_{read|write} prototype · a0204f25
      Dong Aisheng authored
      Due to the original lpuart32_read/write takes no port specific
      information arguments, it's hard to distinguish port difference
      within the API. Although it works before, but not suitable anymore
      when adding more new chips support.
      
      So let's convert it to accept a new struct uart_port argument
      to make it be able to retrieve more port specific information.
      This is a preparation for the later adding new chips support
      more easily. No functions changes.
      
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Jiri Slaby <jslaby@suse.com>
      Cc: Stefan Agner <stefan@agner.ch>
      Cc: Mingkai Hu <Mingkai.Hu@nxp.com>
      Cc: Yangbo Lu <yangbo.lu@nxp.com>
      Cc: Fugang Duan <fugang.duan@nxp.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
      Signed-off-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a0204f25
    • Dong Aisheng's avatar
      tty: serial: lpuart: introduce lpuart_soc_data to represent SoC property · 0d6fce90
      Dong Aisheng authored
      This is used to dynamically check the SoC specific lpuart properies.
      Currently only the iotype is added, it functions the same as before.
      With this, new chips with different iotype will be more easily added.
      
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Jiri Slaby <jslaby@suse.com>
      Cc: Stefan Agner <stefan@agner.ch>
      Cc: Mingkai Hu <Mingkai.Hu@nxp.com>
      Cc: Yangbo Lu <yangbo.lu@nxp.com>
      Cc: Fugang Duan <fugang.duan@nxp.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
      Signed-off-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0d6fce90
    • Nandor Han's avatar
      serial: imx-serial - move DMA buffer configuration to DT · a3015aff
      Nandor Han authored
      The size of the DMA buffer can affect the delta time between data being
      produced and data being consumed. Basically the DMA system will move
      data to tty buffer when a) DMA buffer is full b) serial line is idle.
      The situation is visible when producer generates data continuously and
      there is no possibility for idle line. At this point the DMA buffer is
      directly affecting the delta time.
      
      The patch will add the possibility to configure the DMA buffers in DT,
      which case by case can be configured separately for every driver
      instance. The DT configuration is optional and in case missing the
      driver will use the 4096 buffer with 4 periods (as before), therefore no
      clients are impacted by this change.
      Signed-off-by: default avatarNandor Han <nandor.han@ge.com>
      Signed-off-by: default avatarRomain Perier <romain.perier@collabora.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a3015aff
    • Nandor Han's avatar
      serial: imx: Enable RTSD only when needed · 6376cd39
      Nandor Han authored
      Currently, this IRQ is always enabled. Some devices might mux these pins
      to other I/Os, like I2C. This could lead to spurious interrupts.
      
      This commit makes this IRQ optional, by using the field have_rtscts.
      Signed-off-by: default avatarNandor Han <nandor.han@ge.com>
      Signed-off-by: default avatarRomain Perier <romain.perier@collabora.com>
      Reviewed-by: default avatarFabio Estevam <fabio.estevam@nxp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6376cd39
    • Fabio Estevam's avatar
      serial: imx: Remove unused members from imx_port struct · 5ac88295
      Fabio Estevam authored
      IRDA support is gone since commit afe9cbb1 ("serial: imx: drop
      support for IRDA"), so remove the remaining irda members from
      imx_port structure.
      
      While at it, also remove 'trcv_delay' which is also unused.
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@nxp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5ac88295
    • Vignesh R's avatar
      serial: 8250: 8250_omap: Fix race b/w dma completion and RX timeout · a1bfb6eb
      Vignesh R authored
      DMA RX completion handler for UART is called from a tasklet and hence
      may be delayed depending on the system load. In meanwhile, there may be
      RX timeout interrupt which can get serviced first before DMA RX
      completion handler is executed for the completed transfer.
      omap_8250_rx_dma_flush() which is called on RX timeout interrupt makes
      sure that the DMA RX buffer is pushed and then the FIFO is drained and
      also queues a new DMA request. But, when DMA RX completion handler
      executes, it will erroneously flush the currently queued DMA transfer
      which sometimes results in data corruption and double queueing of DMA RX
      requests.
      
      Fix this by checking whether RX completion is for the currently queued
      transfer or not. And also hold port lock when in DMA completion to avoid
      race wrt RX timeout handler preempting it.
      Signed-off-by: default avatarVignesh R <vigneshr@ti.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a1bfb6eb
    • Phil Elwell's avatar
      serial: 8250: Fix THRE flag usage for CAP_MINI · cfde770d
      Phil Elwell authored
      The BCM2835 MINI UART has non-standard THRE semantics. Conventionally
      the bit means that the FIFO is empty (although there may still be a
      byte in the transmit register), but on 2835 it indicates that the FIFO
      is not full. This causes interrupts after every byte is transmitted,
      with the FIFO providing some interrupt latency tolerance.
      
      A consequence of this difference is that the usual strategy of writing
      multiple bytes into the TX FIFO after checking THRE once is unsafe.
      In the worst case of 7 bytes in the FIFO, writing 8 bytes loses all
      but the first since by then the FIFO is full.
      
      There is an HFIFO ("Hidden FIFO") capability that causes the transmit
      loop to terminate when both THRE and TEMT are set, i.e. when the TX
      block is completely idle. This is unnecessarily cautious, potentially
      causing gaps in transmission.
      
      Add a new conditional to the transmit loop, predicated on CAP_MINI,
      that exits when THRE is no longer set (the FIFO is full). This allows
      the FIFO to fill quickly but subsequent writes are paced by the
      transmission rate.
      Signed-off-by: default avatarPhil Elwell <phil@raspberrypi.org>
      Acked-by: default avatarEric Anholt <eric@anholt.net>
      Acked-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cfde770d
  2. 20 Jun, 2017 7 commits
  3. 14 Jun, 2017 2 commits
  4. 13 Jun, 2017 9 commits
  5. 09 Jun, 2017 11 commits
  6. 05 Jun, 2017 1 commit
  7. 04 Jun, 2017 3 commits
    • Linus Torvalds's avatar
      Linux 4.12-rc4 · 3c2993b8
      Linus Torvalds authored
      3c2993b8
    • Richard Narron's avatar
      fs/ufs: Set UFS default maximum bytes per file · 239e250e
      Richard Narron authored
      This fixes a problem with reading files larger than 2GB from a UFS-2
      file system:
      
          https://bugzilla.kernel.org/show_bug.cgi?id=195721
      
      The incorrect UFS s_maxsize limit became a problem as of commit
      c2a9737f ("vfs,mm: fix a dead loop in truncate_inode_pages_range()")
      which started using s_maxbytes to avoid a page index overflow in
      do_generic_file_read().
      
      That caused files to be truncated on UFS-2 file systems because the
      default maximum file size is 2GB (MAX_NON_LFS) and UFS didn't update it.
      
      Here I simply increase the default to a common value used by other file
      systems.
      Signed-off-by: default avatarRichard Narron <comet.berkeley@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Will B <will.brokenbourgh2877@gmail.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: <stable@vger.kernel.org> # v4.9 and backports of c2a9737fSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      239e250e
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.12-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 125f42b0
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Bugfixes include:
      
         - Fix a typo in commit e0926934 ("NFS append COMMIT after
           synchronous COPY") that breaks copy offload
      
         - Fix the connect error propagation in xs_tcp_setup_socket()
      
         - Fix a lock leak in nfs40_walk_client_list
      
         - Verify that pNFS requests lie within the offset range of the layout
           segment"
      
      * tag 'nfs-for-4.12-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        nfs: Mark unnecessarily extern functions as static
        SUNRPC: ensure correct error is reported by xs_tcp_setup_socket()
        NFSv4.0: Fix a lock leak in nfs40_walk_client_list
        pnfs: Fix the check for requests in range of layout segment
        xprtrdma: Delete an error message for a failed memory allocation in xprt_rdma_bc_setup()
        pNFS/flexfiles: missing error code in ff_layout_alloc_lseg()
        NFS fix COMMIT after COPY
      125f42b0