Lines Matching refs:pipe
295 int pipe; /* Data pipe used */ member
803 static inline int pipe_active(struct snd_dbri *dbri, int pipe) in pipe_active() argument
805 return ((pipe >= 0) && (dbri->pipes[pipe].desc != -1)); in pipe_active()
813 static void reset_pipe(struct snd_dbri *dbri, int pipe) in reset_pipe() argument
819 if (pipe < 0 || pipe > DBRI_MAX_PIPE) { in reset_pipe()
825 sdp = dbri->pipes[pipe].sdp; in reset_pipe()
838 desc = dbri->pipes[pipe].first_desc; in reset_pipe()
844 } while (desc != -1 && desc != dbri->pipes[pipe].first_desc); in reset_pipe()
846 dbri->pipes[pipe].desc = -1; in reset_pipe()
847 dbri->pipes[pipe].first_desc = -1; in reset_pipe()
853 static void setup_pipe(struct snd_dbri *dbri, int pipe, int sdp) in setup_pipe() argument
855 if (pipe < 0 || pipe > DBRI_MAX_PIPE) { in setup_pipe()
873 sdp |= D_PIPE(pipe); in setup_pipe()
874 dbri->pipes[pipe].sdp = sdp; in setup_pipe()
875 dbri->pipes[pipe].desc = -1; in setup_pipe()
876 dbri->pipes[pipe].first_desc = -1; in setup_pipe()
878 reset_pipe(dbri, pipe); in setup_pipe()
884 static void link_time_slot(struct snd_dbri *dbri, int pipe, in link_time_slot() argument
891 if (pipe < 0 || pipe > DBRI_MAX_PIPE in link_time_slot()
899 if (dbri->pipes[pipe].sdp == 0 in link_time_slot()
907 dbri->pipes[prevpipe].nextpipe = pipe; in link_time_slot()
908 dbri->pipes[pipe].nextpipe = nextpipe; in link_time_slot()
909 dbri->pipes[pipe].length = length; in link_time_slot()
913 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) { in link_time_slot()
922 val = D_DTS_VO | D_DTS_INS | D_DTS_PRVOUT(prevpipe) | pipe; in link_time_slot()
928 val = D_DTS_VI | D_DTS_INS | D_DTS_PRVIN(prevpipe) | pipe; in link_time_slot()
943 static void unlink_time_slot(struct snd_dbri *dbri, int pipe,
950 if (pipe < 0 || pipe > DBRI_MAX_PIPE
961 val = D_DTS_VI | D_DTS_DEL | D_DTS_PRVIN(prevpipe) | pipe;
966 val = D_DTS_VO | D_DTS_DEL | D_DTS_PRVOUT(prevpipe) | pipe;
993 static void xmit_fixed(struct snd_dbri *dbri, int pipe, unsigned int data) in xmit_fixed() argument
998 if (pipe < 16 || pipe > DBRI_MAX_PIPE) { in xmit_fixed()
1003 if (D_SDP_MODE(dbri->pipes[pipe].sdp) == 0) { in xmit_fixed()
1005 "Uninitialized pipe %d\n", pipe); in xmit_fixed()
1009 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) { in xmit_fixed()
1010 printk(KERN_ERR "DBRI: xmit_fixed: Non-fixed pipe %d\n", pipe); in xmit_fixed()
1014 if (!(dbri->pipes[pipe].sdp & D_SDP_TO_SER)) { in xmit_fixed()
1016 pipe); in xmit_fixed()
1022 if (dbri->pipes[pipe].sdp & D_SDP_MSB) in xmit_fixed()
1023 data = reverse_bytes(data, dbri->pipes[pipe].length); in xmit_fixed()
1027 *(cmd++) = DBRI_CMD(D_SSP, 0, pipe); in xmit_fixed()
1038 static void recv_fixed(struct snd_dbri *dbri, int pipe, volatile __u32 *ptr) in recv_fixed() argument
1040 if (pipe < 16 || pipe > DBRI_MAX_PIPE) { in recv_fixed()
1046 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) { in recv_fixed()
1048 "non-fixed pipe %d\n", pipe); in recv_fixed()
1052 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) { in recv_fixed()
1054 "transmit pipe %d\n", pipe); in recv_fixed()
1058 dbri->pipes[pipe].recv_fixed_ptr = ptr; in recv_fixed()
1086 if (info->pipe < 0 || info->pipe > 15) { in setup_descs()
1091 if (dbri->pipes[info->pipe].sdp == 0) { in setup_descs()
1093 info->pipe); in setup_descs()
1101 if (!(dbri->pipes[info->pipe].sdp & D_SDP_TO_SER)) { in setup_descs()
1103 "Called on receive pipe %d\n", info->pipe); in setup_descs()
1107 if (dbri->pipes[info->pipe].sdp & D_SDP_TO_SER) { in setup_descs()
1110 info->pipe); in setup_descs()
1116 if (pipe_active(dbri, info->pipe)) { in setup_descs()
1118 "Called on active pipe %d\n", info->pipe); in setup_descs()
1127 desc = dbri->pipes[info->pipe].first_desc; in setup_descs()
1134 desc != dbri->pipes[info->pipe].first_desc); in setup_descs()
1136 dbri->pipes[info->pipe].desc = -1; in setup_descs()
1137 dbri->pipes[info->pipe].first_desc = -1; in setup_descs()
1197 dbri->pipes[info->pipe].first_desc = first_desc; in setup_descs()
1198 dbri->pipes[info->pipe].desc = first_desc; in setup_descs()
1710 if (info->pipe >= 0) { in xmit_descs()
1711 first_td = dbri->pipes[info->pipe].first_desc; in xmit_descs()
1719 dbri->pipes[info->pipe].sdp in xmit_descs()
1726 dbri->pipes[info->pipe].desc = first_td; in xmit_descs()
1732 if (info->pipe >= 0) { in xmit_descs()
1733 first_td = dbri->pipes[info->pipe].first_desc; in xmit_descs()
1741 dbri->pipes[info->pipe].sdp in xmit_descs()
1748 dbri->pipes[info->pipe].desc = first_td; in xmit_descs()
1769 static void transmission_complete_intr(struct snd_dbri *dbri, int pipe) in transmission_complete_intr() argument
1772 int td = dbri->pipes[pipe].desc; in transmission_complete_intr()
1777 printk(KERN_ERR "DBRI: invalid td on pipe %d\n", pipe); in transmission_complete_intr()
1791 dbri->pipes[pipe].desc = td; in transmission_complete_intr()
1800 static void reception_complete_intr(struct snd_dbri *dbri, int pipe) in reception_complete_intr() argument
1803 int rd = dbri->pipes[pipe].desc; in reception_complete_intr()
1807 printk(KERN_ERR "DBRI: invalid rd on pipe %d\n", pipe); in reception_complete_intr()
1811 dbri->pipes[pipe].desc = dbri->next_desc[rd]; in reception_complete_intr()
1868 int pipe = channel; in dbri_process_one_interrupt()
1869 int td = dbri->pipes[pipe].desc; in dbri_process_one_interrupt()
1874 dbri->pipes[pipe].sdp in dbri_process_one_interrupt()
2046 info->pipe = -1; in snd_dbri_open()
2137 if (info->pipe != -1) { in snd_dbri_hw_free()
2138 reset_pipe(dbri, info->pipe); in snd_dbri_hw_free()
2139 info->pipe = -1; in snd_dbri_hw_free()
2153 info->pipe = 4; /* Send pipe */ in snd_dbri_prepare()
2155 info->pipe = 6; /* Receive pipe */ in snd_dbri_prepare()
2187 reset_pipe(dbri, info->pipe); in snd_dbri_trigger()
2484 int pipe; in dbri_debug_read() local
2487 for (pipe = 0; pipe < 32; pipe++) { in dbri_debug_read()
2488 if (pipe_active(dbri, pipe)) { in dbri_debug_read()
2489 struct dbri_pipe *pptr = &dbri->pipes[pipe]; in dbri_debug_read()
2493 pipe, in dbri_debug_read()