linux/include/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
..
ac97_codec.h [ALSA] ac97 - Fix ASUS A9T laptop output 2008-05-30 16:20:42 +02:00
ad1816a.h
ad1843.h ALSA: ALSA driver for SGI O2 audio board 2008-07-14 09:01:02 +02:00
ad1848.h ALSA: wss_lib: use wss detection code instead of ad1848 one 2008-08-06 15:40:02 +02:00
ak4xxx-adda.h [ALSA] some fixes and cleanup for ICE1724 cards 2008-04-24 12:00:25 +02:00
ak4114.h [ALSA] some fixes and cleanup for ICE1724 cards 2008-04-24 12:00:25 +02:00
ak4117.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
ak4531_codec.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
asequencer.h [ALSA] Remove sequencer instrument layer 2008-01-31 17:29:13 +01:00
asound.h ALSA: Add USB US122L driver 2008-08-01 13:37:12 +02:00
asound_fm.h [ALSA] opl3 - Use hwdep for patch loading 2008-01-31 17:29:13 +01:00
asoundef.h ALSA: IEC958 definition for consumer status channel update 2008-08-01 13:13:13 +02:00
control.h ALSA: make snd_ctl_elem_read() and snd_ctl_elem_write() static 2008-06-13 16:48:49 +02:00
core.h ALSA: Clean up snd_BUG() 2008-08-13 11:46:43 +02:00
cs46xx.h [ALSA] sound: remove dead config symbol from sound code 2008-01-31 17:29:21 +01:00
cs46xx_dsp_scb_types.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
cs46xx_dsp_spos.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
cs46xx_dsp_task_types.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
cs4231-regs.h ALSA: opti93x: add support for Opti93x codec in cs4231-lib 2008-06-13 16:47:33 +02:00
cs8403.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
cs8427.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
driver.h [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
emu10k1.h [ALSA] emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 2008-06-02 11:45:53 +02:00
emu10k1_synth.h
emu8000.h
emu8000_reg.h
emux_legacy.h
emux_synth.h
es1688.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
gus.h [ALSA] Remove sequencer instrument layer 2008-01-31 17:29:13 +01:00
hda_hwdep.h [ALSA] hda-intel - Add hwdep interface 2007-10-16 15:58:10 +02:00
hdsp.h
hdspm.h [ALSA] hdspm - Coding style fixes 2007-10-16 15:58:10 +02:00
hwdep.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
i2c.h
info.h [ALSA] info_oss: move prototype of snd_card_info_read_oss to info.h 2008-01-31 17:29:35 +01:00
initval.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
jack.h ALSA: Add jack reporting API 2008-07-29 21:32:03 +02:00
Kbuild
memalloc.h ALSA: Allocate larger pages in sgbuf 2008-08-25 09:57:38 +02:00
minors.h ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE 2008-08-01 13:37:15 +02:00
mixer_oss.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
mpu401.h [ALSA] Add MPU401_INFO_NO_ACK bitflag 2008-04-29 19:01:56 +02:00
opl3.h [ALSA] opl3 - Fix compilation without sequencer support 2008-02-22 14:20:08 -08:00
opl4.h
pcm-indirect.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
pcm.h ALSA: Allocate larger pages in sgbuf 2008-08-25 09:57:38 +02:00
pcm_oss.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
pcm_params.h
pt2258.h
rawmidi.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
sb.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
sb16_csp.h
seq_device.h
seq_kernel.h ALSA: remove CONFIG_KMOD from sound 2008-07-10 09:32:58 +02:00
seq_midi_emul.h
seq_midi_event.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
seq_oss.h
seq_oss_legacy.h
seq_virmidi.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
sfnt_info.h
snd_wavefront.h ALSA: wss_lib: rename cs4231.h into wss.h 2008-08-06 15:39:47 +02:00
soc-dapm.h ALSA: ASoC: Export dapm_reg_event() fully 2008-07-29 16:00:33 +02:00
soc-of-simple.h ALSA: ASoC: Make OpenFirmware helper include file conditional 2008-07-29 21:32:22 +02:00
soc.h ALSA: ASoC: convert use of uint to unsigned int 2008-07-29 21:32:29 +02:00
soundfont.h
sscape_ioctl.h
tea575x-tuner.h [ALSA] fm801 - Add mute support for FM-only card with FM801 PCI to tuner bridge 2008-01-31 17:30:14 +01:00
tea6330t.h
timer.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
tlv.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00
trident.h [ALSA] Remove sequencer instrument layer 2008-01-31 17:29:13 +01:00
uda1341.h [ALSA] remove CVS keywords 2008-05-27 15:56:20 +02:00
util_mem.h
version.h ALSA: release v1.0.18rc1 2008-08-15 13:33:10 +02:00
vx_core.h ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
wavefront.h
wss.h ALSA: wss_lib: use wss pcm code instead of ad1848 one 2008-08-06 15:39:56 +02:00
ymfpci.h [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-16 16:51:18 +02:00