Lines Matching full:pipes

31  * memory and a serial device (long pipes, no. 0-15) or between two serial
32 * devices (short pipes, no. 16-31), or simply send a fixed data to a serial
33 * device (short pipes).
36 * each serial device (NT,TE,CHI). A timeslot is associated to 1 or 2 pipes
313 struct dbri_pipe pipes[DBRI_NO_PIPES]; /* DBRI's 32 data pipes */
364 #define D_PAUSE 0x1 /* Flush long pipes */
421 #define D_TS_ANCHOR (7<<10) /* Starting short pipes */
575 * Short data pipes transmit LSB first. The CS4215 receives MSB first. Grrr.
766 /* Initialize pipes */
768 dbri->pipes[n].desc = dbri->pipes[n].first_desc = -1;
802 main data path takes the form of data pipes, which can be short (command
804 provide a rudimentary means of setting up and managing the DBRI's pipes,
805 but the calling functions have to make sure they respect the pipes' linked
812 return ((pipe >= 0) && (dbri->pipes[pipe].desc != -1));
832 sdp = dbri->pipes[pipe].sdp;
845 desc = dbri->pipes[pipe].first_desc;
851 } while (desc != -1 && desc != dbri->pipes[pipe].first_desc);
853 dbri->pipes[pipe].desc = -1;
854 dbri->pipes[pipe].first_desc = -1;
881 dbri->pipes[pipe].sdp = sdp;
882 dbri->pipes[pipe].desc = -1;
883 dbri->pipes[pipe].first_desc = -1;
906 if (dbri->pipes[pipe].sdp == 0
907 || dbri->pipes[prevpipe].sdp == 0
908 || dbri->pipes[nextpipe].sdp == 0) {
914 dbri->pipes[prevpipe].nextpipe = pipe;
915 dbri->pipes[pipe].nextpipe = nextpipe;
916 dbri->pipes[pipe].length = length;
920 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) {
988 * The DBRI only interrupts us when the data changes (receive pipes),
989 * or only changes the data when this function is called (transmit pipes).
990 * Only short pipes (numbers 16-31) can be used in fixed data mode.
1009 if (D_SDP_MODE(dbri->pipes[pipe].sdp) == 0) {
1015 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) {
1020 if (!(dbri->pipes[pipe].sdp & D_SDP_TO_SER)) {
1026 /* DBRI short pipes always transmit LSB first */
1028 if (dbri->pipes[pipe].sdp & D_SDP_MSB)
1029 data = reverse_bytes(data, dbri->pipes[pipe].length);
1053 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) {
1059 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) {
1065 dbri->pipes[pipe].recv_fixed_ptr = ptr;
1099 if (dbri->pipes[info->pipe].sdp == 0) {
1109 if (!(dbri->pipes[info->pipe].sdp & D_SDP_TO_SER)) {
1115 if (dbri->pipes[info->pipe].sdp & D_SDP_TO_SER) {
1135 desc = dbri->pipes[info->pipe].first_desc;
1142 desc != dbri->pipes[info->pipe].first_desc);
1144 dbri->pipes[info->pipe].desc = -1;
1145 dbri->pipes[info->pipe].first_desc = -1;
1205 dbri->pipes[info->pipe].first_desc = first_desc;
1206 dbri->pipes[info->pipe].desc = first_desc;
1257 dbri->pipes[16].sdp = 1;
1258 dbri->pipes[16].nextpipe = 16;
1716 first_td = dbri->pipes[info->pipe].first_desc;
1724 dbri->pipes[info->pipe].sdp
1731 dbri->pipes[info->pipe].desc = first_td;
1738 first_td = dbri->pipes[info->pipe].first_desc;
1746 dbri->pipes[info->pipe].sdp
1753 dbri->pipes[info->pipe].desc = first_td;
1775 int td = dbri->pipes[pipe].desc;
1794 dbri->pipes[pipe].desc = td;
1806 int rd = dbri->pipes[pipe].desc;
1814 dbri->pipes[pipe].desc = dbri->next_desc[rd];
1872 int td = dbri->pipes[pipe].desc;
1877 dbri->pipes[pipe].sdp
1886 if (dbri->pipes[channel].sdp & D_SDP_MSB)
1887 val = reverse_bytes(val, dbri->pipes[channel].length);
1889 if (dbri->pipes[channel].recv_fixed_ptr)
1890 *(dbri->pipes[channel].recv_fixed_ptr) = val;
2477 struct dbri_pipe *pptr = &dbri->pipes[pipe];