Lines Matching refs:pipe
249 DSPPipe pipe[1]; in DSPi_PipeCallbackToConsole() local
250 (void)DSP_LoadPipe(pipe, port, peer); in DSPi_PipeCallbackToConsole()
252 u16 max = DSP_GetPipeReadableSize(pipe); in DSPi_PipeCallbackToConsole()
259 DSP_ReadPipe(pipe, buffer, length); in DSPi_PipeCallbackToConsole()
302 DSPPipe pipe[1]; in DSPi_PipeCallbackForDMA() local
303 (void)DSP_LoadPipe(pipe, port, peer); in DSPi_PipeCallbackForDMA()
305 u16 max = DSP_GetPipeReadableSize(pipe); in DSPi_PipeCallbackForDMA()
312 DSP_ReadPipe(pipe, buffer, length); in DSPi_PipeCallbackForDMA()
348 static void DSPi_WaitForPipe(DSPPipe *pipe) in DSPi_WaitForPipe() argument
351 (void)DSP_SyncPipe(pipe); in DSPi_WaitForPipe()
406 DSPPipe* DSP_LoadPipe(DSPPipe *pipe, int port, int peer) in DSP_LoadPipe() argument
419 DSPPipe *target = &monitor->pipe[port][peer]; in DSP_LoadPipe()
420 if (!pipe) in DSP_LoadPipe()
422 pipe = &DSPiDefaultPipe[port][peer]; in DSP_LoadPipe()
424 DSP_LoadData((DSPAddrInARM)target, pipe, sizeof(*pipe)); in DSP_LoadPipe()
426 return pipe; in DSP_LoadPipe()
438 void DSP_SyncPipe(DSPPipe *pipe) in DSP_SyncPipe() argument
440 (void)DSP_LoadPipe(pipe, in DSP_SyncPipe()
441 ((pipe->flags & DSP_PIPE_FLAG_PORTMASK) >> 1), in DSP_SyncPipe()
442 (pipe->flags & 1)); in DSP_SyncPipe()
456 void DSP_FlushPipe(DSPPipe *pipe) in DSP_FlushPipe() argument
459 int port = ((pipe->flags & DSP_PIPE_FLAG_PORTMASK) >> 1); in DSP_FlushPipe()
460 int peer = (pipe->flags & 1); in DSP_FlushPipe()
462 DSPPipe *target = &monitor->pipe[port][peer]; in DSP_FlushPipe()
465 DSP_StoreData((DSPAddrInARM)&target->rpos, &pipe->rpos, sizeof(target->rpos)); in DSP_FlushPipe()
469 DSP_StoreData((DSPAddrInARM)&target->wpos, &pipe->wpos, sizeof(target->wpos)); in DSP_FlushPipe()
474 DSP_SendData(DSP_PIPE_COMMAND_REGISTER, (u16)(pipe->flags & DSP_PIPE_FLAG_PORTMASK)); in DSP_FlushPipe()
486 u16 DSP_GetPipeReadableSize(const DSPPipe *pipe) in DSP_GetPipeReadableSize() argument
488 return DSP_BYTE_TO_UNIT(((pipe->wpos - pipe->rpos) + in DSP_GetPipeReadableSize()
489 (((pipe->rpos ^ pipe->wpos) < 0x8000) ? 0 : pipe->length)) & ~0x8000); in DSP_GetPipeReadableSize()
501 u16 DSP_GetPipeWritableSize(const DSPPipe *pipe) in DSP_GetPipeWritableSize() argument
503 return DSP_BYTE_TO_UNIT(((pipe->rpos - pipe->wpos) + in DSP_GetPipeWritableSize()
504 (((pipe->wpos ^ pipe->rpos) < 0x8000) ? 0 : pipe->length)) & ~0x8000); in DSP_GetPipeWritableSize()
519 void DSP_ReadPipe(DSPPipe *pipe, void *buffer, u16 length) in DSP_ReadPipe() argument
525 DSP_SyncPipe(pipe); in DSP_ReadPipe()
528 u16 rpos = pipe->rpos; in DSP_ReadPipe()
529 u16 wpos = pipe->wpos; in DSP_ReadPipe()
536 DSP_FlushPipe(pipe); in DSP_ReadPipe()
539 DSPi_WaitForPipe(pipe); in DSP_ReadPipe()
545 u16 end = (u16)((phase < 0x8000) ? (wpos & ~0x8000) : pipe->length); in DSP_ReadPipe()
548 DSP_LoadData(DSP_ADDR_TO_ARM(pipe->address) + pos, dst, len); in DSP_ReadPipe()
551 pipe->rpos = (u16)((pos + len < pipe->length) ? (rpos + len) : (~rpos & 0x8000)); in DSP_ReadPipe()
558 DSP_FlushPipe(pipe); in DSP_ReadPipe()
576 void DSP_WritePipe(DSPPipe *pipe, const void *buffer, u16 length) in DSP_WritePipe() argument
582 DSP_SyncPipe(pipe); in DSP_WritePipe()
585 u16 rpos = pipe->rpos; in DSP_WritePipe()
586 u16 wpos = pipe->wpos; in DSP_WritePipe()
593 DSP_FlushPipe(pipe); in DSP_WritePipe()
596 DSPi_WaitForPipe(pipe); in DSP_WritePipe()
602 u16 end = (u16)((phase < 0x8000) ? pipe->length : (rpos & ~0x8000)); in DSP_WritePipe()
605 DSP_StoreData(DSP_ADDR_TO_ARM(pipe->address) + pos, src, len); in DSP_WritePipe()
608 pipe->wpos = (u16)((pos + len < pipe->length) ? (wpos + len) : (~wpos & 0x8000)); in DSP_WritePipe()
615 DSP_FlushPipe(pipe); in DSP_WritePipe()
660 DSPPipe pipe[1]; in DSP_HookPipeNotification() local
661 (void)DSP_LoadPipe(pipe, port, peer); in DSP_HookPipeNotification()
663 if ((peer == DSP_PIPE_INPUT) && ((pipe->flags & DSP_PIPE_FLAG_BOUND) != 0)) in DSP_HookPipeNotification()