linux/sound
Dimitris Papastamos 0944cc392e ASoC: soc-cache: Block based rbtree compression
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: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-05-20 11:21:53 +01:00
..
aoa Fix common misspellings 2011-03-31 11:26:23 -03:00
arm Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.39 2011-04-03 19:28:29 +09:00
atmel ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture 2011-01-25 18:07:10 +01:00
core Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
drivers Fix common misspellings 2011-03-31 11:26:23 -03:00
firewire ALSA: firewire-speakers: fix hang when unplugging a running device 2011-03-30 08:56:57 +02:00
i2c sound: don't use flush_scheduled_work() 2010-12-13 09:22:44 +01:00
isa Fix common misspellings 2011-03-31 11:26:23 -03:00
mips sound: Add missing spin_unlock 2010-05-27 09:47:02 +02:00
oss Fix common misspellings 2011-03-31 11:26:23 -03:00
parisc
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 2011-04-10 09:56:10 -07:00
pcmcia ALSA: use linux/io.h to fix compile warnings 2011-02-02 17:49:53 +01:00
ppc Fix common misspellings 2011-03-31 11:26:23 -03:00
sh sound: sh: ctrl_in/outX to __raw_read/writeX conversion. 2010-10-27 15:53:50 +09:00
soc ASoC: soc-cache: Block based rbtree compression 2011-05-20 11:21:53 +01:00
sparc dt/sound: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:44 -07:00
spi ALSA: AT73C213: Rectify misleading comment. 2010-11-11 02:03:29 +01:00
synth ALSA: emux: Add trivial compat ioctl handler 2010-09-14 16:18:11 +02:00
usb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 2011-04-10 09:56:10 -07:00
ac97_bus.c sound: Fixed line limit issue in sound/ac97_bus.c 2010-12-06 16:09:49 +01:00
Kconfig ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
last.c
Makefile ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
sound_core.c sound: Use sound_register_*() for additional OSS minor devices 2011-03-09 20:10:37 +01:00
sound_firmware.c sound: read i_size with i_size_read() 2011-03-18 15:14:57 +01:00