1. 15 1月, 2014 8 次提交
    • L
      ASoC: samsung: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag · d70e861a
      Lars-Peter Clausen 提交于
      The Samsung dmaengine ASoC driver is used with two different dmaengine drivers.
      The pl80x, which properly supports residue reporting and the pl330, which
      reports that it does not support residue reporting. So there is no need to
      manually set the NO_RESIDUE flag. This has the advantage that a proper (race
      condition free) PCM pointer() implementation is used when the pl80x driver is
      used. Also once the pl330 driver supports residue reporting the ASoC PCM driver
      will automatically start using it.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      d70e861a
    • L
      ASoC: axi-{spdif,i2s}: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag · 153e66f5
      Lars-Peter Clausen 提交于
      The pl330 driver properly reports that it does not have residue reporting
      support, which means the PCM dmanegine driver is able to figure this out on its
      own. So there is no need to set the flag manually. Removing the flag has the
      advantage that once the pl330 driver gains support for residue reporting it will
      automatically be used by the generic dmaengine PCM driver.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      153e66f5
    • L
      ASoC: generic-dmaengine-pcm: Check DMA residue granularity · 478028e0
      Lars-Peter Clausen 提交于
      The dmaengine framework now exposes the granularity with which it is able to
      report the transfer residue for a certain DMA channel. Check the granularity in
      the generic dmaengine PCM driver and
      	a) Set the SNDRV_PCM_INFO_BATCH if the granularity is per period or worse.
      	b) Fallback to the (race condition prone) period counting if the driver does
      	not support any residue reporting.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      478028e0
    • L
      ASoC: generic-dmaengine-pcm: Check NO_RESIDUE flag at runtime · 93b943ed
      Lars-Peter Clausen 提交于
      Currently we have two different snd_soc_platform_driver structs in the generic
      dmaengine PCM driver. One for dmaengine drivers that support residue reporting
      and one for those which do not. When registering the PCM component we check
      whether the NO_RESIDUE flag is set or not and use the corresponding
      snd_soc_platform_driver. This patch modifies the driver to only have one
      snd_soc_platform_driver struct where the pointer() callback checks the
      NO_RESIDUE flag at runtime. This allows us to set the NO_RESIDUE flag after the
      PCM component has been registered. This becomes necessary when querying whether
      the dmaengine driver supports residue reporting from the dmaengine driver itself
      since the DMA channel might only be requested after the PCM component has been
      registered.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      93b943ed
    • L
      dma: pl330: Set residue_granularity · bfb9bb42
      Lars-Peter Clausen 提交于
      The pl330 driver currently does not support residue reporting, so set the
      residue granularity to DMA_RESIDUE_GRANULARITY_DESCRIPTOR.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      bfb9bb42
    • L
      dma: Indicate residue granularity in dma_slave_caps · 50720563
      Lars-Peter Clausen 提交于
      This patch adds a new field to the dma_slave_caps struct which indicates the
      granularity with which the driver is able to update the residue field of the
      dma_tx_state struct. Making this information available to dmaengine users allows
      them to make better decisions on how to operate. E.g. for audio certain features
      like wakeup less operation or timer based scheduling only make sense and work
      correctly if the reported residue is fine-grained enough.
      
      Right now four different levels of granularity are supported:
      	* DESCRIPTOR: The DMA channel is only able to tell whether a descriptor has
      	  been completed or not, which means residue reporting is not supported by
      	  this channel. The residue field of the dma_tx_state field will always be
      	  0.
      	* SEGMENT: The DMA channel updates the residue field after each successfully
      	  completed segment of the transfer (For cyclic transfers this is after each
      	  period). This is typically implemented by having the hardware generate an
      	  interrupt after each transferred segment and then the drivers updates the
      	  outstanding residue by the size of the segment. Another possibility is if
      	  the hardware supports SG and the segment descriptor has a field which gets
      	  set after the segment has been completed. The driver then counts the
      	  number of segments without the flag set to compute the residue.
      	* BURST: The DMA channel updates the residue field after each transferred
      	  burst. This is typically only supported if the hardware has a progress
      	  register of some sort (E.g. a register with the current read/write address
      	  or a register with the amount of bursts/beats/bytes that have been
      	  transferred or still need to be transferred).
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      50720563
    • M
      Merge branch 'topic/samsung' of... · 8e6714ac
      Mark Brown 提交于
      Merge branch 'topic/samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-dma
      8e6714ac
    • M
      Merge branch 'topic/axi' of... · 67c2fe2f
      Mark Brown 提交于
      Merge branch 'topic/axi' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-dma
      67c2fe2f
  2. 30 12月, 2013 2 次提交
  3. 17 12月, 2013 3 次提交
  4. 12 12月, 2013 3 次提交
  5. 11 12月, 2013 2 次提交
  6. 10 12月, 2013 9 次提交
    • S
      dma: add channel request API that supports deferred probe · 0ad7c000
      Stephen Warren 提交于
      dma_request_slave_channel() simply returns NULL whenever DMA channel
      lookup fails. Lookup could fail for two distinct reasons:
      
      a) No DMA specification exists for the channel name.
         This includes situations where no DMA specifications exist at all, or
         other general lookup problems.
      
      b) A DMA specification does exist, yet the driver for that channel is not
         yet registered.
      
      Case (b) should trigger deferred probe in client drivers. However, since
      they have no way to differentiate the two situations, it cannot.
      
      Implement new function dma_request_slave_channel_reason(), which performs
      identically to dma_request_slave_channel(), except that it returns an
      error-pointer rather than NULL, which allows callers to detect when
      deferred probe should occur.
      
      Eventually, all drivers should be converted to this new API, the old API
      removed, and the new API renamed to the more desirable name. This patch
      doesn't convert the existing API and all drivers in one go, since some
      drivers call dma_request_slave_channel() then dma_request_channel() if
      that fails. That would require either modifying dma_request_channel() in
      the same way, or adding extra error-handling code to all affected
      drivers, and there are close to 100 drivers using the other API, rather
      than just the 15-20 or so that use dma_request_slave_channel(), which
      might be tenable in a single patch.
      
      acpi_dma_request_slave_chan_by_name() doesn't currently implement
      deferred probe. It should, but this will be addressed later.
      Acked-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      0ad7c000
    • S
      ASoC: dmaengine: add custom DMA config to snd_dmaengine_pcm_config · 194c7dea
      Stephen Warren 提交于
      Add fields to struct snd_dmaengine_pcm_config to allow custom:
      
      - DMA channel names.
      
        This is useful when the default "tx" and "rx" channel names don't
        apply, for example if a HW module supports multiple channels, each
        having different DMA channel names. This is the case with the FIFOs
        in Tegra's AHUB. This new facility can replace
        SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME.
      
      - DMA device
      
        This allows requesting DMA channels for a device other than the device
        which is registering the "PCM" driver. This is quite unusual, but is
        currently useful on Tegra. In much HW, and in Tegra20, each DAI HW
        module contains its own FIFOs which DMA writes to. However, in Tegra30,
        the DMA FIFOs were split out AHUB HW module, which then routes the data
        through a cross-bar, and into the DAI HW modules. However, the current
        ASoC driver structure does not expose this detail, and acts as if the
        FIFOs are still part of the DAI HW modules. Consequently, the "PCM"
        driver is registered with the DAI HW module, yet the DMA channels must
        be looked up in the AHUB HW module's device tree node. This new config
        field allows that to happen. Eventually, the Tegra drivers will be
        reworked to fully expose the AHUB, and this config field can be
        removed.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      194c7dea
    • M
      a715d01e
    • S
      ASoC: don't leak on error in snd_dmaengine_pcm_register · 6b9f3e65
      Stephen Warren 提交于
      If snd_dmaengine_pcm_register()'s call to snd_soc_add_platform() fails,
      all objects allocated during registration are leaked. Fix this by adding
      error-handling code.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      6b9f3e65
    • S
      ASoC: restructure dmaengine_pcm_request_chan_of() · 11b3a7ad
      Stephen Warren 提交于
      Restructure the internals of dmaengine_pcm_request_chan_of() as a loop
      over all channels to be allocated. This makes it easier to add logic
      that applies to all allocated channels, without having to duplicate that
      logic in each of the half-duplex/full-duplex paths.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      11b3a7ad
    • L
      ASoC: Add support for the Analog Devices AXI-SPDIF driver · 429e4374
      Lars-Peter Clausen 提交于
      This patch adds a ASoC driver for the AXI-SPDIF softcore. The core implements a
      simple SPDIF transmitter and is used on some Analog Devices' reference designs
      for various FPGA platforms. For now the driver only support the PL330 as the the
      DMA controller.
      
      The driver uses the generic PCM dmaengine driver for its PCM. The only
      restriction is that we need to set the SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag as
      the dmaengine driver for the DMA core (PL330) that is used with this core has no
      residue reporting capabilities yet. This will be fixed in the future though.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      429e4374
    • L
      dt: Add bindings documentation for the ADI AXI-SPDIF audio controller · d7b528ef
      Lars-Peter Clausen 提交于
      This patch adds the devicetree documentation for the ADI AXI-SPDIF audio
      controller. The controller has:
       * One set of memory mapped register
       * Two clocks, one for the memory mapped register interface, one used as the
         audio reference clock
       * A DMA interface for the transmit data
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: devicetree@vger.kernel.org
      Signed-off-by: NMark Brown <broonie@linaro.org>
      d7b528ef
    • L
      ASoC: Add support for the Analog Devices AXI-I2S core · 8f2fe346
      Lars-Peter Clausen 提交于
      This patch adds support for the AXI-I2S softcore. The core implements a simple
      bidirectional I2S transceiver and is used by Analog Devices in some of their
      reference designs for various FPGA platforms.
      
      The driver uses the generic PCM dmaengine driver for its PCM. The only
      restriction is that we need to set the SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag as
      the dmaengine driver for the DMA core (PL330) that is used with this core has no
      residue reporting capabilities yet. This will be fixed in the future though.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      8f2fe346
    • L
      dt: Add bindings documentation for the ADI AXI-I2S controller · 00e6cb2a
      Lars-Peter Clausen 提交于
      This patch adds the devicetree documentation for the ADI AXI-SPDIF audio
      controller. The controller has:
       * One set of memory mapped register
       * Two clocks, one for the memory mapped register interface, one used as the
         audio reference clock
       * One DMA interface each for the transmit and receive data
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: devicetree@vger.kernel.org
      Signed-off-by: NMark Brown <broonie@linaro.org>
      00e6cb2a
  7. 05 12月, 2013 1 次提交
    • M
      Merge tag 's3c64xx-dmaengine' of... · beaec3aa
      Mark Brown 提交于
      Merge tag 's3c64xx-dmaengine' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc into asoc-samsung
      
      ARM: s3c64xx: Convert to dmaengine
      
      This series of commits from Tomasz converting s3c64xx to use dmaengine
      rather than the old s3c-dma API missed the v3.13 merge window - Kukjin
      said that he'd applied it (which should mean it's OK from a review point
      of view) but it didn't make it into -next or a pull request.
      
      Since a s3c64xx based system is one of my primary development platforms
      it'd be really helpful if I could merge this into both ASoC and SPI,
      I've got some patches for ASoC ready to go converting to use dmaengine
      directly which help with multiplatform and there's some other dmaengine
      work for SPI in progress too.  I've therefore made this signed tag, it'd
      be great if it could be merged into both arm-soc and those two trees.
      beaec3aa
  8. 02 12月, 2013 1 次提交
  9. 28 11月, 2013 1 次提交
  10. 24 11月, 2013 6 次提交
  11. 23 11月, 2013 4 次提交
    • L
      Linux 3.13-rc1 · 6ce4eac1
      Linus Torvalds 提交于
      6ce4eac1
    • L
      Merge tag 'ecryptfs-3.13-rc1-quiet-checkers' of... · 57498f9c
      Linus Torvalds 提交于
      Merge tag 'ecryptfs-3.13-rc1-quiet-checkers' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull minor eCryptfs fix from Tyler Hicks:
       "Quiet static checkers by removing unneeded conditionals"
      
      * tag 'ecryptfs-3.13-rc1-quiet-checkers' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        eCryptfs: file->private_data is always valid
      57498f9c
    • L
      Merge tag 'sound-fix2-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · e48f88a3
      Linus Torvalds 提交于
      Pull second set of sound fixes from Takashi Iwai:
       "A collection of small fixes in HD-audio quirks and runtime PM, ASoC
        rcar, abs8500 and other codecs.  Most of commits are for stable
        kernels, too"
      
      * tag 'sound-fix2-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Set current_headset_type to ALC_HEADSET_TYPE_ENUM (janitorial)
        ALSA: hda - Provide missing pin configs for VAIO with ALC260
        ALSA: hda - Add headset quirk for Dell Inspiron 3135
        ALSA: hda - Fix the headphone jack detection on Sony VAIO TX
        ALSA: hda - Fix missing bass speaker on ASUS N550
        ALSA: hda - Fix unbalanced runtime PM notification at resume
        ASoC: arizona: Set FLL to free-run before disabling
        ALSA: hda - A casual Dell Headset quirk
        ASoC: rcar: fixup dma_async_issue_pending() timing
        ASoC: rcar: off by one in rsnd_scu_set_route()
        ASoC: wm5110: Add post SYSCLK register patch for rev D chip
        ASoC: ab8500: Revert to using custom I/O functions
        ALSA: hda - Also enable mute/micmute LED control for "Lenovo dock" fixup
        ALSA: firewire-lib: include sound/asound.h to refer to snd_pcm_format_t
        ALSA: hda - Select FW_LOADER from CONFIG_SND_HDA_CODEC_CA0132_DSP
        ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Realtek codec
        ASoC: rcar: fixup mod access before checking
      e48f88a3
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · aecde27c
      Linus Torvalds 提交于
      Pull DRM fixes from Dave Airlie:
       "I was going to leave this until post -rc1 but sysfs fixes broke
        hotplug in userspace, so I had to fix it harder, otherwise a set of
        pulls from intel, radeon and vmware,
      
        The vmware/ttm changes are bit larger but since its early and they are
        unlikely to break anything else I put them in, it lets vmware work
        with dri3"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (36 commits)
        drm/sysfs: fix hotplug regression since lifetime changes
        drm/exynos: g2d: fix memory leak to userptr
        drm/i915: Fix gen3 self-refresh watermarks
        drm/ttm: Remove set_need_resched from the ttm fault handler
        drm/ttm: Don't move non-existing data
        drm/radeon: hook up backlight functions for CI and KV family.
        drm/i915: Replicate BIOS eDP bpp clamping hack for hsw
        drm/i915: Do not enable package C8 on unsupported hardware
        drm/i915: Hold pc8 lock around toggling pc8.gpu_idle
        drm/i915: encoder->get_config is no longer optional
        drm/i915/tv: add ->get_config callback
        drm/radeon/cik: Add macrotile mode array query
        drm/radeon/cik: Return backend map information to userspace
        drm/vmwgfx: Make vmwgfx dma buffers prime aware
        drm/vmwgfx: Make surfaces prime-aware
        drm/vmwgfx: Hook up the prime ioctls
        drm/ttm: Add a minimal prime implementation for ttm base objects
        drm/vmwgfx: Fix false lockdep warning
        drm/ttm: Allow execbuf util reserves without ticket
        drm/i915: restore the early forcewake cleanup
        ...
      aecde27c