alistair23-linux/sound
Takashi Iwai e1b239f371 ALSA: x86: Refactor PCM process engine
This is again a big rewrite of the driver; now it touches the code to
process PCM stream transfers.

The most fundamental change is that the driver may support more than
four periods.  Instead of keeping the same index between both the ring
buffer (with the fixed four buffer descriptors) and the PCM buffer
periods, we keep difference indices for both (bd_head and pcm_head
fields).  In addition, when the periods are more than four, we need to
track both head and next indices.  That is, we now have three indices:
bd_head, pcm_head and pcm_filled.

Also, the driver works better for periods < 4, too: the remaining BDs
out of four are marked as invalid, so that the hardware skips those
BDs in its loop.

By this flexibility, we can use even ALSA-lib dmix plugin, which
requires 16 periods as default.

The buffer size could be up to 20bit, so the max buffer size was
increased accordingly.  However, the buffer pre-allocation is kept as
the old value (600kB) as default.  The reason is the limited number of
BDs: since it doesn't suffice for the useful SG page management that
can fit with the usual page allocator like some other drivers, we have
to still allocate continuous pages, hence we shouldn't take too big
memories there.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-06 12:21:10 +01:00
..
aoa
arm
atmel
core ALSA: seq: Constify snd_rawmidi_ops 2017-01-12 12:49:55 +01:00
drivers ALSA: drivers: Constify snd_rawmidi_ops 2017-01-12 12:50:06 +01:00
firewire Merge branch 'topic/intel-lpe-audio' into for-next 2017-01-25 22:11:17 +01:00
hda clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
i2c
isa ALSA: isa: Constify snd_rawmidi_ops 2017-01-12 12:50:16 +01:00
mips ALSA: mips: avoid potential uninitialized variable use 2017-01-16 14:33:42 +01:00
oss sound: oss/ad1848: remove some dead code 2017-01-31 21:41:19 +01:00
parisc
pci ALSA: cs46xx: constify snd_pcm_ops structures 2017-01-26 17:01:48 +01:00
pcmcia ALSA: vx: Fix possible transfer overflow 2017-01-04 18:01:35 +01:00
ppc
sh ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
soc Merge remote-tracking branches 'asoc/fix/nau8825', 'asoc/fix/rt5645', 'asoc/fix/tlv320aic3x' and 'asoc/fix/topology' into asoc-linus 2017-01-10 10:47:54 +00:00
sparc dbri: move dereference after check for NULL 2016-12-06 12:18:22 -05:00
spi
synth ALSA: synth: use designated initializers 2016-12-28 16:06:16 +01:00
usb Merge branch 'topic/intel-lpe-audio' into for-next 2017-01-25 22:11:17 +01:00
x86 ALSA: x86: Refactor PCM process engine 2017-02-06 12:21:10 +01:00
ac97_bus.c
Kconfig ALSA: add Intel HDMI LPE audio driver for BYT/CHT-T 2017-01-25 14:23:46 +01:00
last.c
Makefile ALSA: add Intel HDMI LPE audio driver for BYT/CHT-T 2017-01-25 14:23:46 +01:00
sound_core.c