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 */ member
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.
768 /* Initialize pipes */ in dbri_initialize()
770 dbri->pipes[n].desc = dbri->pipes[n].first_desc = -1; in dbri_initialize()
804 main data path takes the form of data pipes, which can be short (command
806 provide a rudimentary means of setting up and managing the DBRI's pipes,
807 but the calling functions have to make sure they respect the pipes' linked
814 return ((pipe >= 0) && (dbri->pipes[pipe].desc != -1)); in pipe_active()
834 sdp = dbri->pipes[pipe].sdp; in reset_pipe()
847 desc = dbri->pipes[pipe].first_desc; in reset_pipe()
853 } while (desc != -1 && desc != dbri->pipes[pipe].first_desc); in reset_pipe()
855 dbri->pipes[pipe].desc = -1; in reset_pipe()
856 dbri->pipes[pipe].first_desc = -1; in reset_pipe()
883 dbri->pipes[pipe].sdp = sdp; in setup_pipe()
884 dbri->pipes[pipe].desc = -1; in setup_pipe()
885 dbri->pipes[pipe].first_desc = -1; in setup_pipe()
908 if (dbri->pipes[pipe].sdp == 0 in link_time_slot()
909 || dbri->pipes[prevpipe].sdp == 0 in link_time_slot()
910 || dbri->pipes[nextpipe].sdp == 0) { in link_time_slot()
916 dbri->pipes[prevpipe].nextpipe = pipe; in link_time_slot()
917 dbri->pipes[pipe].nextpipe = nextpipe; in link_time_slot()
918 dbri->pipes[pipe].length = length; in link_time_slot()
922 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) { in link_time_slot()
990 * The DBRI only interrupts us when the data changes (receive pipes),
991 * or only changes the data when this function is called (transmit pipes).
992 * Only short pipes (numbers 16-31) can be used in fixed data mode.
1012 if (D_SDP_MODE(dbri->pipes[pipe].sdp) == 0) { in xmit_fixed()
1018 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) { in xmit_fixed()
1023 if (!(dbri->pipes[pipe].sdp & D_SDP_TO_SER)) { in xmit_fixed()
1029 /* DBRI short pipes always transmit LSB first */ in xmit_fixed()
1031 if (dbri->pipes[pipe].sdp & D_SDP_MSB) in xmit_fixed()
1032 data = reverse_bytes(data, dbri->pipes[pipe].length); in xmit_fixed()
1055 if (D_SDP_MODE(dbri->pipes[pipe].sdp) != D_SDP_FIXED) { in recv_fixed()
1061 if (dbri->pipes[pipe].sdp & D_SDP_TO_SER) { in recv_fixed()
1067 dbri->pipes[pipe].recv_fixed_ptr = ptr; in recv_fixed()
1101 if (dbri->pipes[info->pipe].sdp == 0) { in setup_descs()
1111 if (!(dbri->pipes[info->pipe].sdp & D_SDP_TO_SER)) { in setup_descs()
1117 if (dbri->pipes[info->pipe].sdp & D_SDP_TO_SER) { in setup_descs()
1137 desc = dbri->pipes[info->pipe].first_desc; in setup_descs()
1144 desc != dbri->pipes[info->pipe].first_desc); in setup_descs()
1146 dbri->pipes[info->pipe].desc = -1; in setup_descs()
1147 dbri->pipes[info->pipe].first_desc = -1; in setup_descs()
1207 dbri->pipes[info->pipe].first_desc = first_desc; in setup_descs()
1208 dbri->pipes[info->pipe].desc = first_desc; in setup_descs()
1259 dbri->pipes[16].sdp = 1; in reset_chi()
1260 dbri->pipes[16].nextpipe = 16; in reset_chi()
1723 first_td = dbri->pipes[info->pipe].first_desc; in xmit_descs()
1731 dbri->pipes[info->pipe].sdp in xmit_descs()
1738 dbri->pipes[info->pipe].desc = first_td; in xmit_descs()
1745 first_td = dbri->pipes[info->pipe].first_desc; in xmit_descs()
1753 dbri->pipes[info->pipe].sdp in xmit_descs()
1760 dbri->pipes[info->pipe].desc = first_td; in xmit_descs()
1784 int td = dbri->pipes[pipe].desc; in transmission_complete_intr()
1803 dbri->pipes[pipe].desc = td; in transmission_complete_intr()
1815 int rd = dbri->pipes[pipe].desc; in reception_complete_intr()
1823 dbri->pipes[pipe].desc = dbri->next_desc[rd]; in reception_complete_intr()
1881 int td = dbri->pipes[pipe].desc; in dbri_process_one_interrupt()
1886 dbri->pipes[pipe].sdp in dbri_process_one_interrupt()
1895 if (dbri->pipes[channel].sdp & D_SDP_MSB) in dbri_process_one_interrupt()
1896 val = reverse_bytes(val, dbri->pipes[channel].length); in dbri_process_one_interrupt()
1898 if (dbri->pipes[channel].recv_fixed_ptr) in dbri_process_one_interrupt()
1899 *(dbri->pipes[channel].recv_fixed_ptr) = val; in dbri_process_one_interrupt()
2491 struct dbri_pipe *pptr = &dbri->pipes[pipe]; in dbri_debug_read()