1. 27 7月, 2012 1 次提交
  2. 12 6月, 2012 1 次提交
  3. 08 6月, 2012 2 次提交
  4. 03 6月, 2012 6 次提交
    • S
      ASoC: make snd_soc_dai_link more symmetrical · bc92657a
      Stephen Warren 提交于
      Prior to this patch, the CPU side of a DAI link was specified using a
      single name. Often, this was the result of calling dev_name() on the
      device providing the DAI, but in the case of a CPU DAI driver that
      provided multiple DAIs, it needed to mix together both the device name
      and some device-relative name, in order to form a single globally unique
      name.
      
      However, the CODEC side of the DAI link was specified using separate
      fields for device (name or OF node) and device-relative DAI name.
      
      This patch allows the CPU side of a DAI link to be specified in the same
      way as the CODEC side, separating concepts of device and device-relative
      DAI name.
      
      I believe this will be important in multi-codec and/or dynamic PCM
      scenarios, where a single CPU driver provides multiple DAIs, while also
      booting using device tree, with accompanying desire not to hard-code the
      CPU side device's name into the original .cpu_dai_name field.
      
      Ideally, both the CPU DAI and CODEC DAI loops in soc_bind_dai_link()
      would now be identical. However, two things prevent that at present:
      
      1) The need to save rtd->codec for the CODEC side, which means we have
      to search for the CODEC explicitly, and not just the CODEC side DAI.
      
      2) Since we know the CODEC side DAI is part of a codec, and not just
      a standalone DAI, it's slightly more efficient to convert .codec_name/
      .codec_of_node into a codec first, and then compare each DAI's .codec
      field, since this avoids strcmp() on each DAI's CODEC's name within
      the loop.
      
      However, the two loops are essentially semantically equivalent.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      bc92657a
    • S
      ASoC: tegra+wm8903: remove non-DT support for Seaboard · b350ecbe
      Stephen Warren 提交于
      In kernel 3.6, Seaboard will only be supported when booting using device
      tree; the board files are being removed. Hence, remove the non-DT support
      for Seaboard and derivatives Kaen and Aebl from the audio driver.
      
      Harmony is the only remaining board supported by this driver when not
      using DT. This support is currently scheduled for removal in 3.7.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      b350ecbe
    • S
      ASoC: tegra+wm8903: simplify gpio tests in widget callbacks · 14df415a
      Stephen Warren 提交于
      By the time any widget callbacks could be called, if the GPIO ID they
      will manipulate is valid, it must have already been requested, or the
      card would have failed to probe or initialize. So, testing for GPIO
      validity is equivalent to testing whether the GPIO was successfully
      requested at this point in the code. Making this change will allow later
      patches to remove the gpio_requested variable.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      14df415a
    • S
      ASoC: tegra+wm8903: unconditionally free jack GPIOs in remove · e44fbbd4
      Stephen Warren 提交于
      The headphone jack GPIOs are added/initialized in the DAI link's init()
      method, and hence in theory may not always have been added before remove()
      is called in some unusual cases. In order to prevent calling
      snd_soc_jack_free_gpios() if snd_soc_jack_add_gpios() had not been, the
      code kept track of the initialization state to avoid the free call when
      necessary.
      
      However, it appears that snd_soc_jack_free_gpios() is robust in the face
      of being called without snd_soc_jack_add_gpios() first succeeding, so
      there is little point manually tracking this information. Hence, remove
      the tracking code. Almost all other machine drivers already operate this
      way.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      e44fbbd4
    • S
      ASoC: tegra+wm8903: Use devm_gpio_request_one · e2d287c1
      Stephen Warren 提交于
      By using this function, the driver no longer needs to explicitly free
      the GPIOs. Hence, we can also remove the flags we use to track whether
      we allocated these GPIOs.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      e2d287c1
    • S
      ASoC: tegra+wm8903: move all GPIO setup into probe · f51022f1
      Stephen Warren 提交于
      Now that deferred probe exists, we can parse device tree and request
      GPIOs from probe(), rather than deferring this to the DAI link's init().
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      f51022f1
  5. 07 4月, 2012 1 次提交
  6. 01 4月, 2012 2 次提交
  7. 23 12月, 2011 1 次提交
  8. 20 12月, 2011 1 次提交
    • S
      ASoC: Tegra+WM8903 machine: Add device tree binding · 07cdf36d
      Stephen Warren 提交于
      This driver is parameterized in two ways:
      
      a) Platform data, which supplies the set of GPIOs used by the driver.
         These GPIOs can now be parsed out of device tree.
      
      b) Machine-specific DAPM route arrays embedded into the ASoC machine
         driver itself. Historically, the driver picks the appropriate array
         to use using machine_is_*(). The driver now requires this array to
         be parsed from device tree when instantiated through device tree,
         using the core ASoC support for this parsing.
      
      Based on work by John Bonesio, but significantly reworked since then.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      07cdf36d
  9. 08 12月, 2011 1 次提交
    • S
      ASoC: Tegra: Move DAS configuration into DAS driver · 7b9b5e11
      Stephen Warren 提交于
      Move DAS routing setup into the DAS driver itself. This removes the need
      to duplicate this in each machine driver, of which we'll soon have three.
      
      An added advantage is that the machine drivers no longer call the Tegra20-
      specific DAS functions by name, so the machine driver no longer needs to
      be split up into Tegra20 and Tegra30 versions.
      
      If individual machine drivers need a different routing setup to this
      default, they can still call the DAS functions to set that up.
      
      Long-term, DAS will be a codec driver, and user-space will be able to
      control its routing, possibly within constraints that the machine driver
      sets up. Configuring the DAS routing from the DAS driver is a very slight
      move in that direction.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      7b9b5e11
  10. 29 11月, 2011 1 次提交
  11. 24 11月, 2011 1 次提交
  12. 23 11月, 2011 2 次提交
  13. 08 10月, 2011 1 次提交
  14. 24 8月, 2011 1 次提交
    • S
      ASoC: Tegra: wm8903 machine driver: Drop Ventana support · ee1a4d4b
      Stephen Warren 提交于
      Board file support for Ventana is not yet mainlined, and probably won't
      ever be given the move to Device-Tree. Consequently, the Ventana entry
      is being removed from arch/arm/tools/mach-types in the next merge window,
      since it was registered over a year ago.
      
      This will also remove function machine_is_ventana(), which is used by
      the ASoC Tegra WM8903 machine driver. This will cause compilation
      failures. Drop Ventana support to resolve this.
      
      Hopefully, in the not-too-distant future, tegra_wm8903.c will be able to
      configure itself from Device-Tree, and hence we'll be able to re-instate
      Ventana support just by creating a .dts file for the board.
      
      Also note that Aebl support is in a similar boat. However, that board
      isn't scheduled for deprecation for at least another 5 months, and
      perhaps we will have completely removed non-Device-Tree support from
      tegra_wm8903.c by then and/or adjusted mach-types policy.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      ee1a4d4b
  15. 09 8月, 2011 1 次提交
    • S
      ASoC: Tegra: wm8903 machine driver: Allow re-insertion of module · 29591ed4
      Stephen Warren 提交于
      Two issues were preventing module snd-soc-tegra-wm8903.ko from being
      removed and re-inserted:
      
      a) The speaker-enable GPIO is hosted by the WM8903 chip. This GPIO must
         be freed before snd_soc_unregister_card() is called, because that
         triggers wm8903.c:wm8903_remove(), which calls gpiochip_remove(), which
         then fails if any of the GPIOs are in use. To solve this, free all GPIOs
         first, so the code doesn't care where they come from.
      
      b) We need to call snd_soc_jack_free_gpios() to match the call to
         snd_soc_jack_add_gpios() during initialization. Without this, the
         call to snd_soc_jack_add_gpios() fails during any subsequent modprobe
         and initialization, since the GPIO and IRQ are already registered. In
         turn, this causes the headphone state not to be monitored, so the
         headphone is assumed not to be plugged in, and the audio path to it is
         never enabled.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Cc: stable@kernel.org
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      29591ed4
  16. 27 5月, 2011 1 次提交
  17. 20 4月, 2011 5 次提交
  18. 19 4月, 2011 5 次提交
  19. 06 4月, 2011 1 次提交
  20. 14 2月, 2011 4 次提交
  21. 10 2月, 2011 1 次提交