diff options
| author | Takashi Iwai <tiwai@suse.de> | 2008-08-21 07:00:13 -0400 |
|---|---|---|
| committer | Jaroslav Kysela <perex@perex.cz> | 2008-08-25 03:57:18 -0400 |
| commit | 77a23f2695bb2de0cd74599400dc55109c531b72 (patch) | |
| tree | 4960195e04016928dea83deb85e0f3bf97024a8a /sound/pci/echoaudio | |
| parent | 46480b3a5f88f20dbf25d95fe74d7b4798d5bc86 (diff) | |
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>
Diffstat (limited to 'sound/pci/echoaudio')
| -rw-r--r-- | sound/pci/echoaudio/echoaudio.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c index 160d47054922..8dbc5c4ba421 100644 --- a/sound/pci/echoaudio/echoaudio.c +++ b/sound/pci/echoaudio/echoaudio.c | |||
| @@ -490,7 +490,6 @@ static int init_engine(struct snd_pcm_substream *substream, | |||
| 490 | { | 490 | { |
| 491 | struct echoaudio *chip; | 491 | struct echoaudio *chip; |
| 492 | int err, per, rest, page, edge, offs; | 492 | int err, per, rest, page, edge, offs; |
| 493 | struct snd_sg_buf *sgbuf; | ||
| 494 | struct audiopipe *pipe; | 493 | struct audiopipe *pipe; |
| 495 | 494 | ||
| 496 | chip = snd_pcm_substream_chip(substream); | 495 | chip = snd_pcm_substream_chip(substream); |
| @@ -531,10 +530,6 @@ static int init_engine(struct snd_pcm_substream *substream, | |||
| 531 | return err; | 530 | return err; |
| 532 | } | 531 | } |
| 533 | 532 | ||
| 534 | sgbuf = snd_pcm_substream_sgbuf(substream); | ||
| 535 | |||
| 536 | DE_HWP(("pcm_hw_params table size=%d pages=%d\n", | ||
| 537 | sgbuf->size, sgbuf->pages)); | ||
| 538 | sglist_init(chip, pipe); | 533 | sglist_init(chip, pipe); |
| 539 | edge = PAGE_SIZE; | 534 | edge = PAGE_SIZE; |
| 540 | for (offs = page = per = 0; offs < params_buffer_bytes(hw_params); | 535 | for (offs = page = per = 0; offs < params_buffer_bytes(hw_params); |
| @@ -543,16 +538,15 @@ static int init_engine(struct snd_pcm_substream *substream, | |||
| 543 | if (offs + rest > params_buffer_bytes(hw_params)) | 538 | if (offs + rest > params_buffer_bytes(hw_params)) |
| 544 | rest = params_buffer_bytes(hw_params) - offs; | 539 | rest = params_buffer_bytes(hw_params) - offs; |
| 545 | while (rest) { | 540 | while (rest) { |
| 541 | dma_addr_t addr; | ||
| 542 | addr = snd_pcm_sgbuf_get_addr(substream, offs); | ||
| 546 | if (rest <= edge - offs) { | 543 | if (rest <= edge - offs) { |
| 547 | sglist_add_mapping(chip, pipe, | 544 | sglist_add_mapping(chip, pipe, addr, rest); |
| 548 | snd_sgbuf_get_addr(sgbuf, offs), | ||
| 549 | rest); | ||
| 550 | sglist_add_irq(chip, pipe); | 545 | sglist_add_irq(chip, pipe); |
| 551 | offs += rest; | 546 | offs += rest; |
| 552 | rest = 0; | 547 | rest = 0; |
| 553 | } else { | 548 | } else { |
| 554 | sglist_add_mapping(chip, pipe, | 549 | sglist_add_mapping(chip, pipe, addr, |
| 555 | snd_sgbuf_get_addr(sgbuf, offs), | ||
| 556 | edge - offs); | 550 | edge - offs); |
| 557 | rest -= edge - offs; | 551 | rest -= edge - offs; |
| 558 | offs = edge; | 552 | offs = edge; |
