1. 06 10月, 2013 1 次提交
  2. 04 10月, 2013 2 次提交
    • M
      serial: Remove unnecessary amba_set_drvdata() · 7ea816a0
      Michal Simek 提交于
      Driver core clears the driver data to NULL after device_release
      or on probe failure, so just remove it from here.
      
      Driver core change:
      "device-core: Ensure drvdata = NULL when no driver is bound"
      (sha1: 0998d063)
      Signed-off-by: NMichal Simek <michal.simek@xilinx.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7ea816a0
    • T
      serial: 8250_dw: Improve unwritable LCR workaround · c49436b6
      Tim Kryger 提交于
      When configured with UART_16550_COMPATIBLE=NO or in versions prior to
      the introduction of this option, the Designware UART will ignore writes
      to the LCR if the UART is busy.  The current workaround saves a copy of
      the last written LCR and re-writes it in the ISR for a special interrupt
      that is raised when a write was ignored.
      
      Unfortunately, interrupts are typically disabled prior to performing a
      sequence of register writes that include the LCR so the point at which
      the retry occurs is too late.  An example is serial8250_do_set_termios()
      where an ignored LCR write results in the baud divisor not being set and
      instead a garbage character is sent out the transmitter.
      
      Furthermore, since serial_port_out() offers no way to indicate failure,
      a serious effort must be made to ensure that the LCR is actually updated
      before returning back to the caller.  This is difficult, however, as a
      UART that was busy during the first attempt is likely to still be busy
      when a subsequent attempt is made unless some extra action is taken.
      
      This updated workaround reads back the LCR after each write to confirm
      that the new value was accepted by the hardware.  Should the hardware
      ignore a write, the TX/RX FIFOs are cleared and the receive buffer read
      before attempting to rewrite the LCR out of the hope that doing so will
      force the UART into an idle state.  While this may seem unnecessarily
      aggressive, writes to the LCR are used to change the baud rate, parity,
      stop bit, or data length so the data that may be lost is likely not
      important.  Admittedly, this is far from ideal but it seems to be the
      best that can be done given the hardware limitations.
      
      Lastly, the revised workaround doesn't touch the LCR in the ISR, so it
      avoids the possibility of a "serial8250: too much work for irq" lock up.
      This problem is rare in real situations but can be reproduced easily by
      wiring up two UARTs and running the following commands.
      
        # stty -F /dev/ttyS1 echo
        # stty -F /dev/ttyS2 echo
        # cat /dev/ttyS1 &
        [1] 375
        # echo asdf > /dev/ttyS1
        asdf
      
        [   27.700000] serial8250: too much work for irq96
        [   27.700000] serial8250: too much work for irq96
        [   27.710000] serial8250: too much work for irq96
        [   27.710000] serial8250: too much work for irq96
        [   27.720000] serial8250: too much work for irq96
        [   27.720000] serial8250: too much work for irq96
        [   27.730000] serial8250: too much work for irq96
        [   27.730000] serial8250: too much work for irq96
        [   27.740000] serial8250: too much work for irq96
      Signed-off-by: NTim Kryger <tim.kryger@linaro.org>
      Reviewed-by: NMatt Porter <matt.porter@linaro.org>
      Reviewed-by: NMarkus Mayer <markus.mayer@linaro.org>
      Reviewed-by: NHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c49436b6
  3. 01 10月, 2013 2 次提交
  4. 29 9月, 2013 1 次提交
    • Y
      PCI: Workaround missing pci_set_master in pci drivers · f41f064c
      Yinghai Lu 提交于
      Ben Herrenschmidt found that commit 928bea96 ("PCI: Delay enabling
      bridges until they're needed") breaks PCI in some powerpc environments.
      
      The reason is that the PCIe port driver will call pci_enable_device() on
      the bridge, so the device is enabled, but skips pci_set_master because
      pcie_port_auto and no acpi on powerpc.
      
      Because of that, pci_enable_bridge() later on (called as a result of the
      child device driver doing pci_enable_device) will see the bridge as
      already enabled and will not call pci_set_master() on it.
      
      Fixed by add checking in pci_enable_bridge, and call pci_set_master
      if driver skip that.
      
      That will make the code more robot and wade off problem for missing
      pci_set_master in drivers.
      Reported-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f41f064c
  5. 28 9月, 2013 11 次提交
    • J
      i2c: ismt: initialize DMA buffer · bf416910
      James Ralston 提交于
      This patch adds code to initialize the DMA buffer to compensate for
      possible hardware data corruption.
      Signed-off-by: NJames Ralston <james.d.ralston@intel.com>
      [wsa: changed to use 'sizeof']
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      bf416910
    • R
      drm/msm: use drm_gem_dumb_destroy helper · 30600a90
      Rob Clark 提交于
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      30600a90
    • R
      drm/msm: deal with mach/iommu.h removal · 33b55963
      Rob Clark 提交于
      We still need an API exported by msm iommu driver (but not visible in
      any public header anymore).  For now, just declare the prototype
      ourselves, but when msm iommu driver provides a better option, use that
      instead.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      33b55963
    • J
      drm/msm: Remove iommu include from mdp4_kms.c · c55d1c41
      Joerg Roedel 提交于
      The include file has been removed and the file does not
      need it anyway, so remove it. Fixes a compile error.
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      c55d1c41
    • T
      drm/msm: Odd PTR_ERR usage · e4826a94
      Thomas Meyer 提交于
      The variable priv->kms is not initialized yet.
      
      Found by "scripts/coccinelle/tests/odd_ptr_err.cocci".
      PTR_ERR should access the value just tested by IS_ERR.
      Signed-off-by: NThomas Meyer <thomas@m3y3r.de>
      e4826a94
    • H
      serial: 8250_dw: fix broken function call · 05855573
      Heikki Krogerus 提交于
      The stub for dw8250_probe_acpi() is missing an argument.
      Reported-by: Nkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: NHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      05855573
    • H
      serial: 8250_pci: add support for Intel BayTrail · b15e5691
      Heikki Krogerus 提交于
      Intel BayTrail has two HS-UARTs with 64 byte fifo, support
      for DMA and support for 16750 compatible Auto Flow Control.
      Signed-off-by: NHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b15e5691
    • C
      i2c: designware: 10-bit addressing mode enabling if I2C_DYNAMIC_TAR_UPDATE is set · bd63ace4
      Chew, Chiau Ee 提交于
      According to Designware I2C spec, if I2C_DYNAMIC_TAR_UPDATE is set to 1,
      the 10-bit addressing mode is controlled by IC_10BITADDR_MASTER bit of
      IC_TAR register instead of IC_CON register. The IC_10BITADDR_MASTER
      in IC_CON register becomes read-only copy. Since I2C_DYNAMIC_TAR_UPDATE
      value can't be detected from hardware register, so we will always set the
      IC_10BITADDR_MASTER bit in both IC_CON and IC_TAR register whenever 10-bit
      addresing mode is requested by user application.
      Signed-off-by: NChew, Chiau Ee <chiau.ee.chew@intel.com>
      Reviewed-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      bd63ace4
    • T
      i2c: mv64xxx: Do not use writel_relaxed() · 85b3a935
      Thierry Reding 提交于
      The driver is used on PowerPC which don't provide writel_relaxed(). This
      breaks the c2k and prpmc2800 default configurations. To fix the build,
      turn the calls to writel_relaxed() into writel(). The impacts for ARM
      should be minimal.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      85b3a935
    • T
      i2c: mv64xxx: Fix some build warnings · c1a99467
      Thierry Reding 提交于
      Some functions and variables are only used if the configuration selects
      HAVE_CLK. Protect them with a corresponding #ifdef CONFIG_HAVE_CLK block
      to avoid compiler warnings.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      [wsa: added marker to #endif]
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      c1a99467
    • K
      i2c: s3c2410: fix clk_disable/clk_unprepare WARNings · 15336913
      Kim Phillips 提交于
      commit d16933b3 "i2c: s3c2410: Move
      location of clk_prepare_enable() call in probe function" refactored
      clk_enable and clk_disable calls yet neglected to remove the
      clk_disable_unprepare call in the module's remove().
      
      It helps remove warnings on an arndale during unbind:
      
      echo 12c90000.i2c > /sys/bus/platform/devices/12c90000.i2c/driver/unbind
      
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 2548 at drivers/clk/clk.c:842 clk_disable+0x18/0x24()
      Modules linked in:
      CPU: 0 PID: 2548 Comm: bash Not tainted 3.11.0-next-20130916-00003-gf4bddbc #6
      [<c0014d48>] (unwind_backtrace+0x0/0xf8) from [<c00117d0>] (show_stack+0x10/0x14)
      [<c00117d0>] (show_stack+0x10/0x14) from [<c0361be8>] (dump_stack+0x6c/0xac)
      [<c0361be8>] (dump_stack+0x6c/0xac) from [<c001d864>] (warn_slowpath_common+0x64/0x88)
      [<c001d864>] (warn_slowpath_common+0x64/0x88) from [<c001d8a4>] (warn_slowpath_null+0x1c/0x24)
      [<c001d8a4>] (warn_slowpath_null+0x1c/0x24) from [<c02c4a64>] (clk_disable+0x18/0x24)
      [<c02c4a64>] (clk_disable+0x18/0x24) from [<c028d0b0>] (s3c24xx_i2c_remove+0x28/0x70)
      [<c028d0b0>] (s3c24xx_i2c_remove+0x28/0x70) from [<c0217a10>] (platform_drv_remove+0x18/0x1c)
      [<c0217a10>] (platform_drv_remove+0x18/0x1c) from [<c0216358>] (__device_release_driver+0x58/0xb4)
      [<c0216358>] (__device_release_driver+0x58/0xb4) from [<c02163d0>] (device_release_driver+0x1c/0x28)
      [<c02163d0>] (device_release_driver+0x1c/0x28) from [<c02153c0>] (unbind_store+0x58/0x90)
      [<c02153c0>] (unbind_store+0x58/0x90) from [<c0214c90>] (drv_attr_store+0x20/0x2c)
      [<c0214c90>] (drv_attr_store+0x20/0x2c) from [<c01032c0>] (sysfs_write_file+0x168/0x198)
      [<c01032c0>] (sysfs_write_file+0x168/0x198) from [<c00ae1c0>] (vfs_write+0xb0/0x194)
      [<c00ae1c0>] (vfs_write+0xb0/0x194) from [<c00ae594>] (SyS_write+0x3c/0x70)
      [<c00ae594>] (SyS_write+0x3c/0x70) from [<c000e3e0>] (ret_fast_syscall+0x0/0x30)
      ---[ end trace 4c9f9403066f57a6 ]---
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 2548 at drivers/clk/clk.c:751 clk_unprepare+0x14/0x1c()
      Modules linked in:
      CPU: 0 PID: 2548 Comm: bash Tainted: G        W    3.11.0-next-20130916-00003-gf4bddbc #6
      [<c0014d48>] (unwind_backtrace+0x0/0xf8) from [<c00117d0>] (show_stack+0x10/0x14)
      [<c00117d0>] (show_stack+0x10/0x14) from [<c0361be8>] (dump_stack+0x6c/0xac)
      [<c0361be8>] (dump_stack+0x6c/0xac) from [<c001d864>] (warn_slowpath_common+0x64/0x88)
      [<c001d864>] (warn_slowpath_common+0x64/0x88) from [<c001d8a4>] (warn_slowpath_null+0x1c/0x24)
      [<c001d8a4>] (warn_slowpath_null+0x1c/0x24) from [<c02c5834>] (clk_unprepare+0x14/0x1c)
      [<c02c5834>] (clk_unprepare+0x14/0x1c) from [<c028d0b8>] (s3c24xx_i2c_remove+0x30/0x70)
      [<c028d0b8>] (s3c24xx_i2c_remove+0x30/0x70) from [<c0217a10>] (platform_drv_remove+0x18/0x1c)
      [<c0217a10>] (platform_drv_remove+0x18/0x1c) from [<c0216358>] (__device_release_driver+0x58/0xb4)
      [<c0216358>] (__device_release_driver+0x58/0xb4) from [<c02163d0>] (device_release_driver+0x1c/0x28)
      [<c02163d0>] (device_release_driver+0x1c/0x28) from [<c02153c0>] (unbind_store+0x58/0x90)
      [<c02153c0>] (unbind_store+0x58/0x90) from [<c0214c90>] (drv_attr_store+0x20/0x2c)
      [<c0214c90>] (drv_attr_store+0x20/0x2c) from [<c01032c0>] (sysfs_write_file+0x168/0x198)
      [<c01032c0>] (sysfs_write_file+0x168/0x198) from [<c00ae1c0>] (vfs_write+0xb0/0x194)
      [<c00ae1c0>] (vfs_write+0xb0/0x194) from [<c00ae594>] (SyS_write+0x3c/0x70)
      [<c00ae594>] (SyS_write+0x3c/0x70) from [<c000e3e0>] (ret_fast_syscall+0x0/0x30)
      ---[ end trace 4c9f9403066f57a7 ]---
      Signed-off-by: NKim Phillips <kim.phillips@linaro.org>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      15336913
  6. 27 9月, 2013 23 次提交