1. 18 11月, 2010 3 次提交
    • M
      Merge branch 'for-2.6.37' into for-2.6.38 · 3df94756
      Mark Brown 提交于
      3df94756
    • C
      ASoC: davinci: fixes for multi-component · bedad0ca
      Chris Paulson-Ellis 提交于
      Multi-component commit f0fba2ad broke a few things which this patch should
      fix. Tested on the DM355 EVM. I've been as careful as I can, but it would be
      good if those with access to other Davinci boards could test.
      
      --
      
      The multi-component commit put the initialisation of
      snd_soc_dai.[capture|playback]_dma_data into snd_soc_dai_ops.hw_params of the
      McBSP, McASP & VCIF drivers (davinci-i2s.c, davinci-mcasp.c & davinci-vcif.c).
      The initialisation had to be moved from the probe function in these drivers
      because davinci_*_dai changed from snd_soc_dai to snd_soc_dai_driver.
      
      Unfortunately, the DMA params pointer is needed by davinci_pcm_open (in
      davinci-pcm.c) before hw_params is called. I have moved the initialisation to
      a new snd_soc_dai_ops.startup function in each of these drivers. This fix
      indicates that all platforms that use davinci-pcm must have been broken and
      need to test with this fix.
      
      --
      
      The multi-component commit also changed the McBSP driver name from
      "davinci-asp" to "davinci-i2s" in davinci-i2s.c without updating the board
      level references to the driver name. This change is understandable, as there
      is a similarly named "davinci-mcasp" driver in davinci-mcasp.c.
      
      There is probably no 'correct' name for this driver. The DM6446 datasheet
      calls it the "ASP" and describes it as a "specialised McBSP". The DM355
      datasheet calls it the "ASP" and describes it as a "specialised ASP". The
      DM365 datasheet calls it the "McBSP". Rather than fix this problem by
      reverting to "davinci-asp", I've elected to avoid future confusion with the
      "davinci-mcasp" driver by changing it to "davinci-mcbsp", which is also
      consistent with the names of the functions in the driver. There are other
      fixes required, so it was never going to be as simple as a revert anyway.
      
      --
      
      The DM365 only has one McBSP port (of the McBSP platforms, only the DM355 has
      2 ports), so I've changed the the id of the platform_device from 0 to -1.
      
      --
      
      In davinci-evm.c, the DM6446 EVM can no longer share a snd_soc_dai_link
      structure with the DM355 EVM as they use different cpu DAI names (the DM355
      has 2 ports and the EVM uses the second port, but the DM6446 only has 1 port).
      This also means that the 2 boards need different snd_soc_card structures.
      
      --
      
      The codec_name entries in davinci-evm.c didn't match the i2c ids in the board
      files. I have only checked and fixed the details of the names used for the
      McBSP based platforms. Someone with a McASP based platform (eg DA8xx) should
      check the others.
      Signed-off-by: NChris Paulson-Ellis <chris@edesix.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      bedad0ca
    • M
      ASoC: Fix register cache setup WM8994 for multi-component · 11e713a0
      Mark Brown 提交于
      During the multi-component conversion the WM8994 register cache init
      got lost.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      11e713a0
  2. 16 11月, 2010 7 次提交
  3. 15 11月, 2010 6 次提交
  4. 12 11月, 2010 2 次提交
  5. 11 11月, 2010 7 次提交
    • D
      ASoC: soc-cache: Add support for rbtree based register caching · a7f387d5
      Dimitris Papastamos 提交于
      This patch adds support for rbtree compression when storing the
      register cache.  It does this by not adding any uninitialized registers
      (those whose value is 0).  If any of those registers is written
      with a nonzero value they get added into the rbtree.
      
      Consider a sample device with a large sparse register map.  The
      register indices are between [0, 0x31ff].  An array of 12800 registers
      is thus created each of which is 2 bytes.  This results in a 25kB
      region.  This array normally lives outside soc-core, normally in the
      driver itself.  The original soc-core code would kmemdup this region
      resulting in 50kB total memory.  When using the rbtree compression
      technique and __devinitconst on the original array the figures are
      as follows.  For this typical device, you might have 100 initialized
      registers, that is registers that are nonzero by default.  We build
      an rbtree with 100 nodes, each of which is 24 bytes.  This results
      in ~2kB of memory.  Assuming that the target arch can freeup the
      memory used by the initial __devinitconst array, we end up using
      about ~2kB bytes of actual memory.  The memory footprint will increase
      as uninitialized registers get written and thus new nodes created in
      the rbtree.  In practice, most of those registers are never changed.
      If the target arch can't freeup the __devinitconst array, we end up
      using a total of ~27kB.  The difference between the rbtree and the LZO
      caching techniques, is that if using the LZO technique the size of
      the cache will increase slower as more uninitialized registers get
      changed.
      Signed-off-by: NDimitris Papastamos <dp@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      a7f387d5
    • D
      ASoC: soc-cache: Add support for LZO register caching · cc28fb8e
      Dimitris Papastamos 提交于
      This patch adds support for LZO compression when storing the register
      cache.  The initial register defaults cache is marked as __devinitconst
      and the only change required for a driver to use LZO compression is
      to set the compress_type member in codec->driver to SND_SOC_LZO_COMPRESSION.
      
      For a typical device whose register map would normally occupy 25kB or 50kB
      by using the LZO compression technique, one can get down to ~5-7kB.  There
      might be a performance penalty associated with each individual read/write
      due to decompressing/compressing the underlying cache, however that should not
      be noticeable.  These memory benefits depend on whether the target architecture
      can get rid of the memory occupied by the original register defaults cache
      which is marked as __devinitconst.  Nevertheless there will be some memory
      gain even if the target architecture can't get rid of the original register
      map, this should be around ~30-32kB instead of 50kB.
      Signed-off-by: NDimitris Papastamos <dp@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      cc28fb8e
    • D
      ASoC: soc-cache: Add support for flat register caching · 7a30a3db
      Dimitris Papastamos 提交于
      This patch introduces the new caching API and migrates the
      old caching interface into the new one.  The flat register caching
      technique does not use compression at all and it is equivalent to
      the old caching technique.  One can still access codec->reg_cache
      directly but this is not advised as that will not be portable
      across different caching strategies.
      
      None of the existing drivers need to be changed to adapt to this
      caching technique.  There should be no noticeable overhead associated
      with using the new caching API.
      Signed-off-by: NDimitris Papastamos <dp@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      7a30a3db
    • M
      ASoC: Add DAPM trace events · 84e90930
      Mark Brown 提交于
      Trace events for DAPM allow us to monitor the performance and behaviour
      of DAPM with logging which can be built into the kernel permanantly, is
      more suited to automated analysis and display and less likely to suffer
      interference from other logging activity.
      
      Currently trace events are generated for:
      
      - Start and stop of DAPM processing
      - Start and stop of bias level changes
      - Power decisions for widgets
      - Widget event execution start and stop
      
      giving some view as to what is happening and where latencies occur.
      
      Actual changes in widget power can be seen via the register write trace in
      soc-core.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      84e90930
    • M
      ASoC: Add trace events for ASoC register read/write · a8b1d34f
      Mark Brown 提交于
      The trace subsystem provides a convenient way of instrumenting the kernel
      which can be left on all the time with extremely low impact on the system
      unlike prints to the kernel log which can be very spammy. Begin adding
      support for instrumenting ASoC via this interface by adding trace for the
      register access primitives.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      a8b1d34f
    • M
      ASoC: Factor out boiler plate for DAPM event generation · 68f89ad8
      Mark Brown 提交于
      Make the DAPM sequence execution look a bit nicer by factoring out the
      code to invoke an event into a single function since it's all the same
      pretty much.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      68f89ad8
    • R
      Fix Atmel soc audio boards Kconfig dependency · bbde7814
      Ryan Mallon 提交于
      Add Kconfig dependency on AT91_PROGRAMMABLE_CLOCKS for the Atmel SoC
      audio SAM9G20-EK and PlayPaq boards. Fixes link errors on missing
      clk_set_parent and clk_set_rate when building without
      AT91_PROGRAMMABLE_CLOCKS.
      Signed-off-by: NRyan Mallon <ryan@bluewatersys.com>
      Acked-by: NGeoffrey Wossum <gwossum@acm.org>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      bbde7814
  6. 10 11月, 2010 6 次提交
  7. 09 11月, 2010 5 次提交
  8. 06 11月, 2010 4 次提交