1. 24 5月, 2011 3 次提交
  2. 20 5月, 2011 2 次提交
    • D
      ASoC: soc-cache: Cache a pointer to the last accessed rbnode · 7e146b55
      Dimitris Papastamos 提交于
      Whenever we are doing a read or a write through the rbtree code, we'll
      cache a pointer to the rbnode.  To avoid looking up the register
      everytime we do a read or a write, we first check if it can be found in
      the cached register block, otherwise we traverse the rbtree and finally
      cache the rbnode for future use.
      Signed-off-by: NDimitris Papastamos <dp@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      7e146b55
    • D
      ASoC: soc-cache: Block based rbtree compression · 0944cc39
      Dimitris Papastamos 提交于
      This patch prepares the ground for the actual rbtree optimization patch
      which will save a pointer to the last accessed rbnode that was used
      in either the read() or write() functions.
      
      Each rbnode manages a variable length block of registers.  There can be no
      two nodes with overlapping blocks.  Each block has a base register and a
      currently top register, all the other registers, if any, lie in between these
      two and in ascending order.
      
      The reasoning behind the construction of this rbtree is simple.  In the
      snd_soc_rbtree_cache_init() function, we iterate over the register defaults
      provided by the driver.  For each register value that is non-zero we
      insert it in the rbtree.  In order to determine in which rbnode we need
      to add the register, we first look if there is another register already
      added that is adjacent to the one we are about to add.  If that is the case
      we append it in that rbnode block, otherwise we create a new rbnode
      with a single register in its block and add it to the tree.
      
      In the next patch, where a cached rbnode is used by both the write() and the
      read() functions, we also check if the register we are about to add is in the
      cached rbnode (the least recently accessed one) and if so we append it in that
      rbnode block.
      Signed-off-by: NDimitris Papastamos <dp@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      0944cc39
  3. 10 5月, 2011 4 次提交
  4. 09 5月, 2011 6 次提交
  5. 08 5月, 2011 11 次提交
  6. 04 5月, 2011 14 次提交