/* Note, if channel = -1, multi-channel receive is enabled.  */
struct hpsb_iso* hpsb_iso_recv_init(struct hpsb_host *host, unsigned int data_buf_size, unsigned int buf_packets, int channel, int dma_mode, int irq_interval, void(*callback)(struct hpsb_iso *))
/* Note, if channel = -1, multi-channel receive is enabled.  */
struct hpsb_iso* hpsb_iso_recv_init(struct hpsb_host *host, unsigned int data_buf_size, unsigned int buf_packets, int channel, int dma_mode, int irq_interval, void(*callback)(struct hpsb_iso *))
{
	struct hpsb_iso *iso = hpsb_iso_common_init(host, HPSB_ISO_RECV,
						    data_buf_size, buf_packets,
						    channel, dma_mode,
						    irq_interval, callback);
	if (!iso)
		return NULL;
	if (host->driver->isoctl(iso, RECV_INIT, 0))
		goto err;
	iso->flags |= HPSB_ISO_DRIVER_INIT;
	return iso;
      err:
	hpsb_iso_shutdown(iso);
	return NULL;
}