예제 #1
0
static int sps_dma_device_enable(struct bamdma_device *dev)
{
	if (dev->enabled)
		return 0;

	if (dev->local)
		dma_write_reg(dev->virt_addr, DMA_ENBL, 1);

	
	if (sps_bam_enable(dev->bam)) {
		SPS_ERR("sps:Failed to enable BAM DMA's BAM: %x",
			dev->phys_addr);
		return SPS_ERROR;
	}

	dev->enabled = true;

	return 0;
}
/**
 * BAM DMA device enable
 *
 * This function enables a BAM DMA device and the associated BAM.
 *
 * @dev - pointer to BAM DMA device context
 *
 * @return 0 on success, negative value on error
 *
 */
static int sps_dma_device_enable(struct bamdma_device *dev)
{
	if (dev->enabled)
		return 0;

	/*
	 *  If the BAM-DMA device is locally controlled then enable BAM-DMA
	 *  device
	 */
	if (dev->local)
		dma_write_reg(dev->virt_addr, DMA_ENBL, 1);

	/* Enable BAM device */
	if (sps_bam_enable(dev->bam)) {
		SPS_ERR("Failed to enable BAM DMA's BAM: %x", dev->phys_addr);
		return SPS_ERROR;
	}

	dev->enabled = true;

	return 0;
}