ALSA: Clean up SG-buffer helper functions and macros
Clean up SG-buffer helper functions and macros. Helpers take substream as arguments now. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
committed by
Jaroslav Kysela
parent
46480b3a5f
commit
77a23f2695
@@ -490,7 +490,6 @@ static int init_engine(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct echoaudio *chip;
|
||||
int err, per, rest, page, edge, offs;
|
||||
struct snd_sg_buf *sgbuf;
|
||||
struct audiopipe *pipe;
|
||||
|
||||
chip = snd_pcm_substream_chip(substream);
|
||||
@@ -531,10 +530,6 @@ static int init_engine(struct snd_pcm_substream *substream,
|
||||
return err;
|
||||
}
|
||||
|
||||
sgbuf = snd_pcm_substream_sgbuf(substream);
|
||||
|
||||
DE_HWP(("pcm_hw_params table size=%d pages=%d\n",
|
||||
sgbuf->size, sgbuf->pages));
|
||||
sglist_init(chip, pipe);
|
||||
edge = PAGE_SIZE;
|
||||
for (offs = page = per = 0; offs < params_buffer_bytes(hw_params);
|
||||
@@ -543,16 +538,15 @@ static int init_engine(struct snd_pcm_substream *substream,
|
||||
if (offs + rest > params_buffer_bytes(hw_params))
|
||||
rest = params_buffer_bytes(hw_params) - offs;
|
||||
while (rest) {
|
||||
dma_addr_t addr;
|
||||
addr = snd_pcm_sgbuf_get_addr(substream, offs);
|
||||
if (rest <= edge - offs) {
|
||||
sglist_add_mapping(chip, pipe,
|
||||
snd_sgbuf_get_addr(sgbuf, offs),
|
||||
rest);
|
||||
sglist_add_mapping(chip, pipe, addr, rest);
|
||||
sglist_add_irq(chip, pipe);
|
||||
offs += rest;
|
||||
rest = 0;
|
||||
} else {
|
||||
sglist_add_mapping(chip, pipe,
|
||||
snd_sgbuf_get_addr(sgbuf, offs),
|
||||
sglist_add_mapping(chip, pipe, addr,
|
||||
edge - offs);
|
||||
rest -= edge - offs;
|
||||
offs = edge;
|
||||
|
Reference in New Issue
Block a user