Lines Matching refs:mic_dma_dev
543 static int mic_dma_init(struct mic_dma_device *mic_dma_dev, in mic_dma_init() argument
546 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_init()
551 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_init()
568 static void mic_dma_uninit(struct mic_dma_device *mic_dma_dev) in mic_dma_uninit() argument
570 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_uninit()
574 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_uninit()
595 static int mic_dma_register_dma_device(struct mic_dma_device *mic_dma_dev, in mic_dma_register_dma_device() argument
598 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_register_dma_device()
600 dma_cap_zero(mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
605 dma_cap_set(DMA_MEMCPY, mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
608 dma_cap_set(DMA_PRIVATE, mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
609 mic_dma_dev->dma_dev.device_alloc_chan_resources = in mic_dma_register_dma_device()
611 mic_dma_dev->dma_dev.device_free_chan_resources = in mic_dma_register_dma_device()
613 mic_dma_dev->dma_dev.device_tx_status = mic_dma_tx_status; in mic_dma_register_dma_device()
614 mic_dma_dev->dma_dev.device_prep_dma_memcpy = mic_dma_prep_memcpy_lock; in mic_dma_register_dma_device()
615 mic_dma_dev->dma_dev.device_prep_dma_imm_data = in mic_dma_register_dma_device()
617 mic_dma_dev->dma_dev.device_prep_dma_interrupt = in mic_dma_register_dma_device()
619 mic_dma_dev->dma_dev.device_issue_pending = mic_dma_issue_pending; in mic_dma_register_dma_device()
620 mic_dma_dev->dma_dev.copy_align = MIC_DMA_ALIGN_SHIFT; in mic_dma_register_dma_device()
621 INIT_LIST_HEAD(&mic_dma_dev->dma_dev.channels); in mic_dma_register_dma_device()
623 mic_dma_dev->mic_ch[i].api_ch.device = &mic_dma_dev->dma_dev; in mic_dma_register_dma_device()
624 dma_cookie_init(&mic_dma_dev->mic_ch[i].api_ch); in mic_dma_register_dma_device()
625 list_add_tail(&mic_dma_dev->mic_ch[i].api_ch.device_node, in mic_dma_register_dma_device()
626 &mic_dma_dev->dma_dev.channels); in mic_dma_register_dma_device()
628 return dmaenginem_async_device_register(&mic_dma_dev->dma_dev); in mic_dma_register_dma_device()
638 struct mic_dma_device *mic_dma_dev; in mic_dma_dev_reg() local
642 mic_dma_dev = devm_kzalloc(dev, sizeof(*mic_dma_dev), GFP_KERNEL); in mic_dma_dev_reg()
643 if (!mic_dma_dev) { in mic_dma_dev_reg()
647 mic_dma_dev->mbdev = mbdev; in mic_dma_dev_reg()
648 mic_dma_dev->dma_dev.dev = dev; in mic_dma_dev_reg()
649 mic_dma_dev->mmio = mbdev->mmio_va; in mic_dma_dev_reg()
651 mic_dma_dev->start_ch = 0; in mic_dma_dev_reg()
652 mic_dma_dev->max_xfer_size = MIC_DMA_MAX_XFER_SIZE_HOST; in mic_dma_dev_reg()
654 mic_dma_dev->start_ch = 4; in mic_dma_dev_reg()
655 mic_dma_dev->max_xfer_size = MIC_DMA_MAX_XFER_SIZE_CARD; in mic_dma_dev_reg()
657 ret = mic_dma_init(mic_dma_dev, owner); in mic_dma_dev_reg()
660 ret = mic_dma_register_dma_device(mic_dma_dev, owner); in mic_dma_dev_reg()
663 return mic_dma_dev; in mic_dma_dev_reg()
665 mic_dma_uninit(mic_dma_dev); in mic_dma_dev_reg()
667 mic_dma_dev = NULL; in mic_dma_dev_reg()
670 return mic_dma_dev; in mic_dma_dev_reg()
673 static void mic_dma_dev_unreg(struct mic_dma_device *mic_dma_dev) in mic_dma_dev_unreg() argument
675 mic_dma_uninit(mic_dma_dev); in mic_dma_dev_unreg()
681 struct mic_dma_device *mic_dma_dev = s->private; in mic_dma_reg_seq_show() local
682 int i, chan_num, first_chan = mic_dma_dev->start_ch; in mic_dma_reg_seq_show()
686 mic_dma_mmio_read(&mic_dma_dev->mic_ch[first_chan], in mic_dma_reg_seq_show()
693 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_reg_seq_show()
733 struct mic_dma_device *mic_dma_dev; in mic_dma_driver_probe() local
741 mic_dma_dev = mic_dma_dev_reg(mbdev, owner); in mic_dma_driver_probe()
742 dev_set_drvdata(&mbdev->dev, mic_dma_dev); in mic_dma_driver_probe()
745 mic_dma_dev->dbg_dir = debugfs_create_dir(dev_name(&mbdev->dev), in mic_dma_driver_probe()
747 if (mic_dma_dev->dbg_dir) in mic_dma_driver_probe()
749 mic_dma_dev->dbg_dir, mic_dma_dev, in mic_dma_driver_probe()
757 struct mic_dma_device *mic_dma_dev; in mic_dma_driver_remove() local
759 mic_dma_dev = dev_get_drvdata(&mbdev->dev); in mic_dma_driver_remove()
760 debugfs_remove_recursive(mic_dma_dev->dbg_dir); in mic_dma_driver_remove()
761 mic_dma_dev_unreg(mic_dma_dev); in mic_dma_driver_remove()