1. 09 Jul, 2014 13 commits
    • Charles Keepax's avatar
      mfd: arizona: Lower ARIZONA_MAX_CORE_SUPPLIES to 2 · bdbc736d
      Charles Keepax authored
      There are no Arizona devices with 3 core supplies but we define a fix
      array with space for 3 core supplies. Lower the ARIZONA_MAX_CORE_SUPPLIES
      define to 2, to save a few bytes.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      bdbc736d
    • Charles Keepax's avatar
      mfd: arizona: Use num_core_supplies in arizona_dev_exit · 4420286e
      Charles Keepax authored
      Currently we call regulator_bulk_disable with
      ARRAY_SIZE(arizona->core_supplies), however this array may be larger
      than the number of supplies actually used by the chip we are dealing
      with. Use the provided num_core_supplies member instead, so that we only
      disable supplies which actually exist.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      4420286e
    • Charles Keepax's avatar
      mfd: arizona: Don't use devres for DCVDD · e6021511
      Charles Keepax authored
      Currently the Arizona core uses a devm_regulator_get against its own
      device node to obtain DCVDD. The Arizona core is an MFD device and DCVDD
      is usually supplied by a child node (arizona-ldo1) of the core. As
      devres destruction for the MFD device will run after all its children
      have been destroyed, the regulator will be destroyed before devres
      calls regulator_put. This causes a warning from both the destruction of
      the child node, as the regulator is still open, and from the put of the
      regulator as the regulator device has already been destroyed.
      
      This patch handles the regulator get and put without devres to avoid
      this issue.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      e6021511
    • Charles Keepax's avatar
      mfd: arizona: Disable DCVDD before we destroy the MFD · df6b3352
      Charles Keepax authored
      As DCVDD is probably supplied by a child of the MFD device move its
      disable to before we destroy the MFD children as the regulator likely
      won't exist after that.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      df6b3352
    • Charles Keepax's avatar
      mfd: arizona: Disable PM runtime at start of driver removal · b804020a
      Charles Keepax authored
      We don't want to trigger any PM runtime operations whilst we are tearing
      down the driver, as things the suspend and resume callbacks rely on
      might already have been destroyed. So disable PM runtime for the device
      as the first step arizona_dev_exit.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      b804020a
    • Linus Walleij's avatar
      mfd: tc3589x: Translate onecell, not twocell · 627918ed
      Linus Walleij authored
      Something changed in the OF parser in the v3.16 merge window
      making it be strict about passing the number of IRQ cells
      correctly and disturbing the irqdomain xlate function guard
      to crash when subdevices try to obtain IRQs like this:
      
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 1 at
      /home/linus/linux-stericsson/kernel/irq/irqdomain.c:676
      irq_domain_xlate_twocell+0x40/0x48()
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted
       3.15.0-07915-gf6d059821ce9-dirty #46
      [<c0014660>] (unwind_backtrace)
       from [<c0011424>] (show_stack+0x10/0x14)
      [<c0011424>] (show_stack)
       from [<c0432630>] (dump_stack+0x9c/0xd4)
      [<c0432630>] (dump_stack)
       from [<c001d5c0>] (warn_slowpath_common+0x6c/0x88)
      [<c001d5c0>] (warn_slowpath_common)
       from [<c001d678>] (warn_slowpath_null+0x1c/0x24)
      [<c001d678>] (warn_slowpath_null)
       from [<c005acd0>] (irq_domain_xlate_twocell+0x40/0x48)
      [<c005acd0>] (irq_domain_xlate_twocell)
       from [<c005b658>] (irq_create_of_mapping+0x64/0x110)
      [<c005b658>] (irq_create_of_mapping)
       from [<c02e147c>] (of_irq_get+0x38/0x48)
      [<c02e147c>] (of_irq_get)
       from [<c01f8910>] (tc3589x_gpio_probe+0x38/0x1e4)
      [<c01f8910>] (tc3589x_gpio_probe)
       from [<c022eedc>] (platform_drv_probe+0x18/0x48)
      [<c022eedc>] (platform_drv_probe)
       from [<c022d80c>] (driver_probe_device+0x118/0x24c)
      [<c022d80c>] (driver_probe_device)
       from [<c022bf20>] (bus_for_each_drv+0x58/0x8c)
      [<c022bf20>] (bus_for_each_drv)
       from [<c022d6c4>] (device_attach+0x74/0x88)
      [<c022d6c4>] (device_attach)
       from [<c022cdac>] (bus_probe_device+0x84/0xa8)
      [<c022cdac>] (bus_probe_device)
       from [<c022b35c>] (device_add+0x440/0x520)
      [<c022b35c>] (device_add)
       from [<c022ec50>] (platform_device_add+0xb4/0x218)
      [<c022ec50>] (platform_device_add)
       from [<c0243508>] (mfd_add_device+0x220/0x31c)
      [<c0243508>] (mfd_add_device)
       from [<c02436a8>] (mfd_add_devices+0xa4/0x100)
      [<c02436a8>] (mfd_add_devices)
       from [<c024312c>] (tc3589x_probe+0x334/0x3c0)
      [<c024312c>] (tc3589x_probe)
       from [<c022d80c>] (driver_probe_device+0x118/0x24c)
      
      The TC3589x device trees specify the MFD core device
      as having one interrupt cell (cannot specify flags) so the
      twocell translation function is clearly wrong, changing it to
      onecell, as it should be, fixes the regression.
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      627918ed
    • Sachin Kamat's avatar
      mfd: asic3: Fix potential null pointer dereference · 44b61a9f
      Sachin Kamat authored
      We previously assumed 'mem_sdio' could be null but it is
      dereferenced in ioremap(). Add a check to avoid a potential
      null pointer dereference error.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      44b61a9f
    • Doug Anderson's avatar
      mfd: cros_ec: spi: Fix end of transfer on devices with no spi-msg-delay · 96758059
      Doug Anderson authored
      cros_ec_spi makes the assumption that a 0-length message will put the
      spi chip select back to normal (non cs_toggle mode).  This used to be
      the case back on kernel-3.8 on the spi-s3c64xx driver but doesn't
      appear to be true anymore.  It seems like it was a pretty questionable
      assumption to begin with, so let's fix the code to be more robust.  We
      know that a message with a single 0-length segment _will_ put things
      back in order.  Change cros_ec_spi to handle this.
      
      This wasn't a problem on the main user of cros_ec_spi upstream (tegra)
      because it specified 'google,cros-ec-spi-msg-delay'.
      Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      96758059
    • Jean Delvare's avatar
      mfd: Fix cs5535 dependencies · c03842d8
      Jean Delvare authored
      As far as I know, the CS5535 and CS5536 chipsets are companions of the
      Geode series of processors, which are 32-bit only. So the CS5535
      drivers are not needed on x86-64, except for build testing purpose.
      
      This aligns the dependencies to what FB_GEODE already uses.
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      c03842d8
    • Jean Delvare's avatar
      mfd: timberdale: Depend on X86_32 · 84c3a8f6
      Jean Delvare authored
      As far as I know the Timberdale chip was only used as a companion for
      Intel Atom E600 series processors. As such, its drivers are only
      useful on X86_32.
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      84c3a8f6
    • Lee Jones's avatar
      Merge branches 'ib-mfd-extcon-regulator-3.17', 'ib-mfd-gpio-3.17' and... · 6ec9dc32
      Lee Jones authored
      Merge branches 'ib-mfd-extcon-regulator-3.17', 'ib-mfd-gpio-3.17' and 'ib-mfd-mmc-3.17' into ibs-for-mfd-merged
      6ec9dc32
    • Micky Ching's avatar
      mmc: rtsx: add support for async request · 6291e715
      Micky Ching authored
      Add support for non-blocking request, pre_req() runs dma_map_sg() and
      post_req() runs dma_unmap_sg(). This patch can increase card read/write
      speed, especially for high speed card and slow speed CPU.
      
      Test on intel i3(800MHz - 2.3GHz) performance mode(2.3GHz), SD card
      clock 208MHz
      
      run dd if=/dev/mmcblk0 of=/dev/null bs=64k count=1024
      before:
      67108864 bytes (67 MB) copied, 0.85427 s, 78.6 MB/s
      after:
      67108864 bytes (67 MB) copied, 0.74799 s, 89.7 MB/s
      Signed-off-by: default avatarMicky Ching <micky_ching@realsil.com.cn>
      Acked-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      6291e715
    • Micky Ching's avatar
      mfd: rtsx: Add dma transfer function · 8cd11830
      Micky Ching authored
      rtsx driver using a single function for transfer data, dma map/unmap are
      placed in one fix function. We need map/unmap dma in different place(for
      mmc async driver), so add three function for dma map, dma transfer and
      dma unmap.
      Signed-off-by: default avatarMicky Ching <micky_ching@realsil.com.cn>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      8cd11830
  2. 06 Jul, 2014 4 commits
    • Linus Torvalds's avatar
      Linux 3.16-rc4 · cd3de83f
      Linus Torvalds authored
      cd3de83f
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux · 100193f5
      Linus Torvalds authored
      Pull devicetree bugfix from Grant Likely:
       "Important bug fix for parsing 64-bit addresses on 32-bit platforms.
        Without this patch the kernel will try to use memory ranges that
        cannot be reached"
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
        of: Check for phys_addr_t overflows in early_init_dt_add_memory_arch
      100193f5
    • Linus Torvalds's avatar
      Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 8addf0c7
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of 13 fixes, a MAINTAINERS update and a sparse update.
        The fixes are mostly correct value initialisations, avoiding NULL
        derefs and some uninitialised pointer avoidance.
      
        All the patches have been incubated in -next for a few days.  The
        final patch (use the scsi data buffer length to extract transfer size)
        has been rebased to add a cc to stable, but only the commit message
        has changed"
      
      * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] use the scsi data buffer length to extract transfer size
        virtio-scsi: fix various bad behavior on aborted requests
        virtio-scsi: avoid cancelling uninitialized work items
        ibmvscsi: Add memory barriers for send / receive
        ibmvscsi: Abort init sequence during error recovery
        qla2xxx: Fix sparse warning in qla_target.c.
        bnx2fc: Improve stats update mechanism
        bnx2fc: do not scan uninitialized lists in case of error.
        fc: ensure scan_work isn't active when freeing fc_rport
        pm8001: Fix potential null pointer dereference and memory leak.
        MAINTAINERS: Update LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) maintainers Email IDs
        be2iscsi: remove potential junk pointer free
        be2iscsi: add an missing goto in error path
        scsi_error: set DID_TIME_OUT correctly
        scsi_error: fix invalid setting of host byte
      8addf0c7
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 110e4308
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "i915, tda998x and vmwgfx fixes,
      
        The main one is i915 fix for missing VGA connectors, along with some
        fixes for the tda998x from Russell fixing some modesetting problems.
      
        (still on holidays, but got a spare moment to find these)"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/vmwgfx: Fix incorrect write to read-only register v2:
        drm/i915: Drop early VLV WA to fix Voltage not getting dropped to Vmin
        drm/i915: only apply crt_present check on VLV
        drm/i915: Wait for vblank after enabling the primary plane on BDW
        drm/i2c: tda998x: add some basic mode validation
        drm/i2c: tda998x: faster polling for edid
        drm/i2c: tda998x: move drm_i2c_encoder_destroy call
      110e4308
  3. 05 Jul, 2014 12 commits
  4. 04 Jul, 2014 11 commits