channel.c (56253) | channel.c (57973) |
---|---|
1/* 2 * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk> 3 * Portions Copyright by Luigi Rizzo - 1997-99 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * | 1/* 2 * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk> 3 * Portions Copyright by Luigi Rizzo - 1997-99 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/sys/dev/sound/pcm/channel.c 56253 2000-01-18 18:59:03Z cg $ | 27 * $FreeBSD: head/sys/dev/sound/pcm/channel.c 57973 2000-03-13 10:19:32Z phk $ |
28 */ 29 30#include <dev/sound/pcm/sound.h> 31 32#define MIN_CHUNK_SIZE 256 /* for uiomove etc. */ 33#define DMA_ALIGN_THRESHOLD 4 34#define DMA_ALIGN_MASK (~(DMA_ALIGN_THRESHOLD - 1)) 35 --- 799 unchanged lines hidden (view full) --- 835 836void 837buf_isadma(snd_dbuf *b, int go) 838{ 839 if (ISA_DMA(b)) { 840 switch (go) { 841 case PCMTRIG_START: 842 DEB(printf("buf 0x%p ISA DMA started\n", b)); | 28 */ 29 30#include <dev/sound/pcm/sound.h> 31 32#define MIN_CHUNK_SIZE 256 /* for uiomove etc. */ 33#define DMA_ALIGN_THRESHOLD 4 34#define DMA_ALIGN_MASK (~(DMA_ALIGN_THRESHOLD - 1)) 35 --- 799 unchanged lines hidden (view full) --- 835 836void 837buf_isadma(snd_dbuf *b, int go) 838{ 839 if (ISA_DMA(b)) { 840 switch (go) { 841 case PCMTRIG_START: 842 DEB(printf("buf 0x%p ISA DMA started\n", b)); |
843 isa_dmastart(b->dir | B_RAW, b->buf, | 843 isa_dmastart(b->dir | ISADMA_RAW, b->buf, |
844 b->bufsize, b->chan); 845 break; 846 case PCMTRIG_STOP: 847 case PCMTRIG_ABORT: 848 DEB(printf("buf 0x%p ISA DMA stopped\n", b)); 849 isa_dmastop(b->chan); | 844 b->bufsize, b->chan); 845 break; 846 case PCMTRIG_STOP: 847 case PCMTRIG_ABORT: 848 DEB(printf("buf 0x%p ISA DMA stopped\n", b)); 849 isa_dmastop(b->chan); |
850 isa_dmadone(b->dir | B_RAW, b->buf, b->bufsize, | 850 isa_dmadone(b->dir | ISADMA_RAW, b->buf, b->bufsize, |
851 b->chan); 852 break; 853 } 854 } else KASSERT(1, ("buf_isadma called on invalid channel")); 855} 856 857int 858buf_isadmaptr(snd_dbuf *b) --- 186 unchanged lines hidden (view full) --- 1045int 1046chn_setdir(pcm_channel *c, int dir) 1047{ 1048 int r; 1049 1050 c->direction = dir; 1051 r = c->setdir(c->devinfo, c->direction); 1052 if (!r && ISA_DMA(&c->buffer)) | 851 b->chan); 852 break; 853 } 854 } else KASSERT(1, ("buf_isadma called on invalid channel")); 855} 856 857int 858buf_isadmaptr(snd_dbuf *b) --- 186 unchanged lines hidden (view full) --- 1045int 1046chn_setdir(pcm_channel *c, int dir) 1047{ 1048 int r; 1049 1050 c->direction = dir; 1051 r = c->setdir(c->devinfo, c->direction); 1052 if (!r && ISA_DMA(&c->buffer)) |
1053 c->buffer.dir = (dir == PCMDIR_PLAY)? B_WRITE : B_READ; | 1053 c->buffer.dir = (dir == PCMDIR_PLAY)? ISADMA_WRITE : ISADMA_READ; |
1054 return r; 1055} 1056 1057int 1058chn_setvolume(pcm_channel *c, int left, int right) 1059{ 1060 /* could add a feeder for volume changing if channel returns -1 */ 1061 if (CANCHANGE(c)) { --- 118 unchanged lines hidden --- | 1054 return r; 1055} 1056 1057int 1058chn_setvolume(pcm_channel *c, int left, int right) 1059{ 1060 /* could add a feeder for volume changing if channel returns -1 */ 1061 if (CANCHANGE(c)) { --- 118 unchanged lines hidden --- |