1. 03 6月, 2012 3 次提交
    • 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+alc5632: unconditionally free jack GPIOs in remove · 9f6328d9
      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. 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>
      9f6328d9
    • S
      ASoC: tegra+alc5632: move all GPIO setup into probe · aef9a37c
      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>
      aef9a37c
  2. 01 4月, 2012 3 次提交
  3. 07 3月, 2012 1 次提交
  4. 14 2月, 2012 1 次提交
  5. 03 2月, 2012 2 次提交
  6. 01 2月, 2012 1 次提交
  7. 23 12月, 2011 1 次提交
  8. 20 12月, 2011 1 次提交