kernel-ark/sound
Takashi Iwai 51e9f2e665 ALSA: Allocate larger pages in sgbuf
Most hardwares have limited buffer-descriptor table length.  This
also restricts the max buffer size of the sound driver.
For example, snd-hda-intel has 1MB buffer size limit, and this is
because it can have at most 256 BDL entries.  For supporting larger
buffers, we need to allocate larger pages even for sg-buffers.

This patch changes the sgbuf allocation code to try to allocate
larger pages first.  At each head of the allocated pages, the
number of allocated pages is stored in the lowest bits of the
corresponding entry of the table addr field.  This change isn't
visible as long as the driver uses snd_sgbuf_get_addr() helper.

Also, the patch adds a new function, snd_pcm_sgbuf_get_chunk_size().
This returns the size of the chunk on continuous pages starting at
the given position offset.  If the chunk reaches to a non-continuous
page, it returns the size to the boundary.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-25 09:57:38 +02:00
..
aoa ALSA: aoa - Remove duplicate assignment of SNDRV_PCM_FMTBIT_S{16,24}_BE bits 2008-08-25 09:57:14 +02:00
arm ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
core ALSA: Allocate larger pages in sgbuf 2008-08-25 09:57:38 +02:00
drivers ALSA: dummy driver - do not use assignment in if condition 2008-08-15 12:59:02 +02:00
i2c ALSA: revo51: add headphone output 2008-08-25 09:57:17 +02:00
isa ALSA: opl3sa2: replace nd_opl3sa2_info_xxx() with snd_wss_info_xxx() 2008-08-25 09:57:13 +02:00
mips ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
oss sound: oss: remove driver for SGI HAL2 audio device 2008-08-25 09:57:08 +02:00
parisc ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
pci ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
pcmcia ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
ppc ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
sh ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
soc ALSA: ASoC - fix DMA channel selection in Freescale MPC8610 sound drivers 2008-08-13 11:46:22 +02:00
sparc ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
spi sound: Convert to menuconfig 2008-05-27 15:56:20 +02:00
synth ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
usb ALSA: usb-audio - Add ignore_ctl_error parameter 2008-08-15 11:48:01 +02:00
ac97_bus.c [ALSA] ac97_bus power management 2007-02-09 09:03:54 +01:00
Kconfig Fix CONFIG_AC97_BUS dependency 2008-09-06 11:43:41 +02:00
last.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
Makefile [ALSA] Add SPI devices to ALSA Kconfig and Makefile 2007-10-16 15:57:47 +02:00
sound_core.c device create: sound: convert device_create to device_create_drvdata 2008-07-21 21:54:44 -07:00
sound_firmware.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00