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; }