forked from Minki/linux
ALSA: hda - Add Kconfig for the default buffer size
Add a Kconfig entry to specify the default buffer size. Distros using PulseAudio can choose a larger value here. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
30b4503378
commit
acfa634f7e
@ -14,6 +14,19 @@ menuconfig SND_HDA_INTEL
|
|||||||
|
|
||||||
if SND_HDA_INTEL
|
if SND_HDA_INTEL
|
||||||
|
|
||||||
|
config SND_HDA_PREALLOC_SIZE
|
||||||
|
int "Pre-allocated buffer size for HD-audio driver"
|
||||||
|
range 0 32768
|
||||||
|
default 64
|
||||||
|
help
|
||||||
|
Speficies the default pre-allocated buffer-size in kB for
|
||||||
|
HD-audio driver. A larger buffer (e.g. 2048) is preferred
|
||||||
|
for systems with PulseAudio. The default 64 is chosen just
|
||||||
|
from the compatibility reason.
|
||||||
|
|
||||||
|
Note that the pre-allocation size can be changed dynamically
|
||||||
|
via a proc file (/proc/asound/card*/pcm*/sub*/prealloc), too.
|
||||||
|
|
||||||
config SND_HDA_HWDEP
|
config SND_HDA_HWDEP
|
||||||
bool "Build hwdep interface for HD-audio driver"
|
bool "Build hwdep interface for HD-audio driver"
|
||||||
select SND_HWDEP
|
select SND_HWDEP
|
||||||
|
@ -2075,6 +2075,8 @@ static void azx_pcm_free(struct snd_pcm *pcm)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define MAX_PREALLOC_SIZE (32 * 1024 * 1024)
|
||||||
|
|
||||||
static int
|
static int
|
||||||
azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
|
azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
|
||||||
struct hda_pcm *cpcm)
|
struct hda_pcm *cpcm)
|
||||||
@ -2083,6 +2085,7 @@ azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
|
|||||||
struct snd_pcm *pcm;
|
struct snd_pcm *pcm;
|
||||||
struct azx_pcm *apcm;
|
struct azx_pcm *apcm;
|
||||||
int pcm_dev = cpcm->device;
|
int pcm_dev = cpcm->device;
|
||||||
|
unsigned int size;
|
||||||
int s, err;
|
int s, err;
|
||||||
|
|
||||||
if (pcm_dev >= HDA_MAX_PCMS) {
|
if (pcm_dev >= HDA_MAX_PCMS) {
|
||||||
@ -2118,9 +2121,12 @@ azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
|
|||||||
snd_pcm_set_ops(pcm, s, &azx_pcm_ops);
|
snd_pcm_set_ops(pcm, s, &azx_pcm_ops);
|
||||||
}
|
}
|
||||||
/* buffer pre-allocation */
|
/* buffer pre-allocation */
|
||||||
|
size = CONFIG_SND_HDA_PREALLOC_SIZE * 1024;
|
||||||
|
if (size > MAX_PREALLOC_SIZE)
|
||||||
|
size = MAX_PREALLOC_SIZE;
|
||||||
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG,
|
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG,
|
||||||
snd_dma_pci_data(chip->pci),
|
snd_dma_pci_data(chip->pci),
|
||||||
1024 * 64, 32 * 1024 * 1024);
|
size, MAX_PREALLOC_SIZE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user