/* While DBRI control functions use the command and interrupt buffers, the main data path takes the form of data pipes, which can be short (command and interrupt driven), or long (attached to DMA buffers). These functions provide a rudimentary means of setting up and managing the DBRI's pipes, but the calling functions have to make sure they respect the pipes' linked list ordering, among other things. The transmit and receive functions here interface closely with the transmit and receive interrupt code.  */
static int pipe_active(struct snd_dbri *dbri, int pipe)
/* While DBRI control functions use the command and interrupt buffers, the main data path takes the form of data pipes, which can be short (command and interrupt driven), or long (attached to DMA buffers). These functions provide a rudimentary means of setting up and managing the DBRI's pipes, but the calling functions have to make sure they respect the pipes' linked list ordering, among other things. The transmit and receive functions here interface closely with the transmit and receive interrupt code.  */
static int pipe_active(struct snd_dbri *dbri, int pipe)
{
	return ((pipe >= 0) && (dbri->pipes[pipe].desc != -1));
}