Lines Matching refs:mic_dma_dev
474 static void mic_dma_unregister_dma_device(struct mic_dma_device *mic_dma_dev) in mic_dma_unregister_dma_device() argument
476 dma_async_device_unregister(&mic_dma_dev->dma_dev); in mic_dma_unregister_dma_device()
551 static int mic_dma_init(struct mic_dma_device *mic_dma_dev, in mic_dma_init() argument
554 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_init()
560 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_init()
578 static void mic_dma_uninit(struct mic_dma_device *mic_dma_dev) in mic_dma_uninit() argument
580 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_uninit()
584 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_uninit()
605 static int mic_dma_register_dma_device(struct mic_dma_device *mic_dma_dev, in mic_dma_register_dma_device() argument
608 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_register_dma_device()
610 dma_cap_zero(mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
615 dma_cap_set(DMA_MEMCPY, mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
618 dma_cap_set(DMA_PRIVATE, mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
619 mic_dma_dev->dma_dev.device_alloc_chan_resources = in mic_dma_register_dma_device()
621 mic_dma_dev->dma_dev.device_free_chan_resources = in mic_dma_register_dma_device()
623 mic_dma_dev->dma_dev.device_tx_status = mic_dma_tx_status; in mic_dma_register_dma_device()
624 mic_dma_dev->dma_dev.device_prep_dma_memcpy = mic_dma_prep_memcpy_lock; in mic_dma_register_dma_device()
625 mic_dma_dev->dma_dev.device_prep_dma_imm_data = in mic_dma_register_dma_device()
627 mic_dma_dev->dma_dev.device_prep_dma_interrupt = in mic_dma_register_dma_device()
629 mic_dma_dev->dma_dev.device_issue_pending = mic_dma_issue_pending; in mic_dma_register_dma_device()
630 mic_dma_dev->dma_dev.copy_align = MIC_DMA_ALIGN_SHIFT; in mic_dma_register_dma_device()
631 INIT_LIST_HEAD(&mic_dma_dev->dma_dev.channels); in mic_dma_register_dma_device()
633 mic_dma_dev->mic_ch[i].api_ch.device = &mic_dma_dev->dma_dev; in mic_dma_register_dma_device()
634 dma_cookie_init(&mic_dma_dev->mic_ch[i].api_ch); in mic_dma_register_dma_device()
635 list_add_tail(&mic_dma_dev->mic_ch[i].api_ch.device_node, in mic_dma_register_dma_device()
636 &mic_dma_dev->dma_dev.channels); in mic_dma_register_dma_device()
638 return dma_async_device_register(&mic_dma_dev->dma_dev); in mic_dma_register_dma_device()
648 struct mic_dma_device *mic_dma_dev; in mic_dma_dev_reg() local
652 mic_dma_dev = kzalloc(sizeof(*mic_dma_dev), GFP_KERNEL); in mic_dma_dev_reg()
653 if (!mic_dma_dev) { in mic_dma_dev_reg()
657 mic_dma_dev->mbdev = mbdev; in mic_dma_dev_reg()
658 mic_dma_dev->dma_dev.dev = dev; in mic_dma_dev_reg()
659 mic_dma_dev->mmio = mbdev->mmio_va; in mic_dma_dev_reg()
661 mic_dma_dev->start_ch = 0; in mic_dma_dev_reg()
662 mic_dma_dev->max_xfer_size = MIC_DMA_MAX_XFER_SIZE_HOST; in mic_dma_dev_reg()
664 mic_dma_dev->start_ch = 4; in mic_dma_dev_reg()
665 mic_dma_dev->max_xfer_size = MIC_DMA_MAX_XFER_SIZE_CARD; in mic_dma_dev_reg()
667 ret = mic_dma_init(mic_dma_dev, owner); in mic_dma_dev_reg()
670 ret = mic_dma_register_dma_device(mic_dma_dev, owner); in mic_dma_dev_reg()
673 return mic_dma_dev; in mic_dma_dev_reg()
675 mic_dma_uninit(mic_dma_dev); in mic_dma_dev_reg()
677 kfree(mic_dma_dev); in mic_dma_dev_reg()
678 mic_dma_dev = NULL; in mic_dma_dev_reg()
681 return mic_dma_dev; in mic_dma_dev_reg()
684 static void mic_dma_dev_unreg(struct mic_dma_device *mic_dma_dev) in mic_dma_dev_unreg() argument
686 mic_dma_unregister_dma_device(mic_dma_dev); in mic_dma_dev_unreg()
687 mic_dma_uninit(mic_dma_dev); in mic_dma_dev_unreg()
688 kfree(mic_dma_dev); in mic_dma_dev_unreg()
694 struct mic_dma_device *mic_dma_dev = s->private; in mic_dma_reg_seq_show() local
695 int i, chan_num, first_chan = mic_dma_dev->start_ch; in mic_dma_reg_seq_show()
699 mic_dma_mmio_read(&mic_dma_dev->mic_ch[first_chan], in mic_dma_reg_seq_show()
706 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_reg_seq_show()
746 struct mic_dma_device *mic_dma_dev; in mic_dma_driver_probe() local
754 mic_dma_dev = mic_dma_dev_reg(mbdev, owner); in mic_dma_driver_probe()
755 dev_set_drvdata(&mbdev->dev, mic_dma_dev); in mic_dma_driver_probe()
758 mic_dma_dev->dbg_dir = debugfs_create_dir(dev_name(&mbdev->dev), in mic_dma_driver_probe()
760 if (mic_dma_dev->dbg_dir) in mic_dma_driver_probe()
762 mic_dma_dev->dbg_dir, mic_dma_dev, in mic_dma_driver_probe()
770 struct mic_dma_device *mic_dma_dev; in mic_dma_driver_remove() local
772 mic_dma_dev = dev_get_drvdata(&mbdev->dev); in mic_dma_driver_remove()
773 debugfs_remove_recursive(mic_dma_dev->dbg_dir); in mic_dma_driver_remove()
774 mic_dma_dev_unreg(mic_dma_dev); in mic_dma_driver_remove()