Lines Matching refs: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
312 struct dbri_pipe pipes[DBRI_NO_PIPES]; /* DBRI's 32 data pipes */
363 #define D_PAUSE 0x1 /* Flush long pipes */
420 #define D_TS_ANCHOR (7<<10) /* Starting short pipes */
574 * Short data pipes transmit LSB first. The CS4215 receives MSB first. Grrr.
767 /* Initialize pipes */
769 dbri->pipes[n].desc = dbri->pipes[n].first_desc = -1;
803 main data path takes the form of data pipes, which can be short (command
805 provide a rudimentary means of setting up and managing the DBRI's pipes,
806 but the calling functions have to make sure they respect the pipes' linked
813 return ((pipe >= 0) && (dbri->pipes[pipe].desc != -1));
833 sdp = dbri->pipes[pipe].sdp;
846 desc = dbri->pipes[pipe].first_desc;
852 } while (desc != -1 && desc != dbri->pipes[pipe].first_desc);
854 dbri->pipes[pipe].desc = -1;
855 dbri->pipes[pipe].first_desc = -1;
882 dbri->pipes[pipe].sdp = sdp;
883 dbri->pipes[pipe].desc = -1;
884 dbri->pipes[pipe].first_desc = -1;
907 if (dbri->pipes[pipe].sdp == 0
908 || dbri->pipes[prevpipe].sdp == 0
909 || dbri->pipes[nextpipe].sdp == 0) {
915 dbri->pipes[prevpipe].nextpipe = pipe;
916 dbri->pipes[pipe].nextpipe = nextpipe;
917 dbri->pipes[pipe].length = length;
921 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) {
989 * The DBRI only interrupts us when the data changes (receive pipes),
990 * or only changes the data when this function is called (transmit pipes).
991 * Only short pipes (numbers 16-31) can be used in fixed data mode.
1011 if (D_SDP_MODE(dbri->pipes[pipe].sdp) == 0) {
1017 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) {
1022 if (!(dbri->pipes[pipe].sdp & D_SDP_TO_SER)) {
1028 /* DBRI short pipes always transmit LSB first */
1030 if (dbri->pipes[pipe].sdp & D_SDP_MSB)
1031 data = reverse_bytes(data, dbri->pipes[pipe].length);
1054 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) {
1060 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) {
1066 dbri->pipes[pipe].recv_fixed_ptr = ptr;
1100 if (dbri->pipes[info->pipe].sdp == 0) {
1110 if (!(dbri->pipes[info->pipe].sdp & D_SDP_TO_SER)) {
1116 if (dbri->pipes[info->pipe].sdp & D_SDP_TO_SER) {
1136 desc = dbri->pipes[info->pipe].first_desc;
1143 desc != dbri->pipes[info->pipe].first_desc);
1145 dbri->pipes[info->pipe].desc = -1;
1146 dbri->pipes[info->pipe].first_desc = -1;
1206 dbri->pipes[info->pipe].first_desc = first_desc;
1207 dbri->pipes[info->pipe].desc = first_desc;
1258 dbri->pipes[16].sdp = 1;
1259 dbri->pipes[16].nextpipe = 16;
1722 first_td = dbri->pipes[info->pipe].first_desc;
1730 dbri->pipes[info->pipe].sdp
1737 dbri->pipes[info->pipe].desc = first_td;
1744 first_td = dbri->pipes[info->pipe].first_desc;
1752 dbri->pipes[info->pipe].sdp
1759 dbri->pipes[info->pipe].desc = first_td;
1783 int td = dbri->pipes[pipe].desc;
1802 dbri->pipes[pipe].desc = td;
1814 int rd = dbri->pipes[pipe].desc;
1822 dbri->pipes[pipe].desc = dbri->next_desc[rd];
1880 int td = dbri->pipes[pipe].desc;
1885 dbri->pipes[pipe].sdp
1894 if (dbri->pipes[channel].sdp & D_SDP_MSB)
1895 val = reverse_bytes(val, dbri->pipes[channel].length);
1897 if (dbri->pipes[channel].recv_fixed_ptr)
1898 *(dbri->pipes[channel].recv_fixed_ptr) = val;
2490 struct dbri_pipe *pptr = &dbri->pipes[pipe];