Lines Matching refs:mic_dma_dev
438 static void mic_dma_unregister_dma_device(struct mic_dma_device *mic_dma_dev) in mic_dma_unregister_dma_device() argument
440 dma_async_device_unregister(&mic_dma_dev->dma_dev); in mic_dma_unregister_dma_device()
515 static int mic_dma_init(struct mic_dma_device *mic_dma_dev, in mic_dma_init() argument
518 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_init()
524 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_init()
542 static void mic_dma_uninit(struct mic_dma_device *mic_dma_dev) in mic_dma_uninit() argument
544 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_uninit()
548 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_uninit()
569 static int mic_dma_register_dma_device(struct mic_dma_device *mic_dma_dev, in mic_dma_register_dma_device() argument
572 int i, first_chan = mic_dma_dev->start_ch; in mic_dma_register_dma_device()
574 dma_cap_zero(mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
579 dma_cap_set(DMA_MEMCPY, mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
582 dma_cap_set(DMA_PRIVATE, mic_dma_dev->dma_dev.cap_mask); in mic_dma_register_dma_device()
583 mic_dma_dev->dma_dev.device_alloc_chan_resources = in mic_dma_register_dma_device()
585 mic_dma_dev->dma_dev.device_free_chan_resources = in mic_dma_register_dma_device()
587 mic_dma_dev->dma_dev.device_tx_status = mic_dma_tx_status; in mic_dma_register_dma_device()
588 mic_dma_dev->dma_dev.device_prep_dma_memcpy = mic_dma_prep_memcpy_lock; in mic_dma_register_dma_device()
589 mic_dma_dev->dma_dev.device_prep_dma_interrupt = in mic_dma_register_dma_device()
591 mic_dma_dev->dma_dev.device_issue_pending = mic_dma_issue_pending; in mic_dma_register_dma_device()
592 mic_dma_dev->dma_dev.copy_align = MIC_DMA_ALIGN_SHIFT; in mic_dma_register_dma_device()
593 INIT_LIST_HEAD(&mic_dma_dev->dma_dev.channels); in mic_dma_register_dma_device()
595 mic_dma_dev->mic_ch[i].api_ch.device = &mic_dma_dev->dma_dev; in mic_dma_register_dma_device()
596 dma_cookie_init(&mic_dma_dev->mic_ch[i].api_ch); in mic_dma_register_dma_device()
597 list_add_tail(&mic_dma_dev->mic_ch[i].api_ch.device_node, in mic_dma_register_dma_device()
598 &mic_dma_dev->dma_dev.channels); in mic_dma_register_dma_device()
600 return dma_async_device_register(&mic_dma_dev->dma_dev); in mic_dma_register_dma_device()
610 struct mic_dma_device *mic_dma_dev; in mic_dma_dev_reg() local
614 mic_dma_dev = kzalloc(sizeof(*mic_dma_dev), GFP_KERNEL); in mic_dma_dev_reg()
615 if (!mic_dma_dev) { in mic_dma_dev_reg()
619 mic_dma_dev->mbdev = mbdev; in mic_dma_dev_reg()
620 mic_dma_dev->dma_dev.dev = dev; in mic_dma_dev_reg()
621 mic_dma_dev->mmio = mbdev->mmio_va; in mic_dma_dev_reg()
623 mic_dma_dev->start_ch = 0; in mic_dma_dev_reg()
624 mic_dma_dev->max_xfer_size = MIC_DMA_MAX_XFER_SIZE_HOST; in mic_dma_dev_reg()
626 mic_dma_dev->start_ch = 4; in mic_dma_dev_reg()
627 mic_dma_dev->max_xfer_size = MIC_DMA_MAX_XFER_SIZE_CARD; in mic_dma_dev_reg()
629 ret = mic_dma_init(mic_dma_dev, owner); in mic_dma_dev_reg()
632 ret = mic_dma_register_dma_device(mic_dma_dev, owner); in mic_dma_dev_reg()
635 return mic_dma_dev; in mic_dma_dev_reg()
637 mic_dma_uninit(mic_dma_dev); in mic_dma_dev_reg()
639 kfree(mic_dma_dev); in mic_dma_dev_reg()
640 mic_dma_dev = NULL; in mic_dma_dev_reg()
643 return mic_dma_dev; in mic_dma_dev_reg()
646 static void mic_dma_dev_unreg(struct mic_dma_device *mic_dma_dev) in mic_dma_dev_unreg() argument
648 mic_dma_unregister_dma_device(mic_dma_dev); in mic_dma_dev_unreg()
649 mic_dma_uninit(mic_dma_dev); in mic_dma_dev_unreg()
650 kfree(mic_dma_dev); in mic_dma_dev_unreg()
656 struct mic_dma_device *mic_dma_dev = s->private; in mic_dma_reg_seq_show() local
657 int i, chan_num, first_chan = mic_dma_dev->start_ch; in mic_dma_reg_seq_show()
661 mic_dma_mmio_read(&mic_dma_dev->mic_ch[first_chan], in mic_dma_reg_seq_show()
668 ch = &mic_dma_dev->mic_ch[i]; in mic_dma_reg_seq_show()
708 struct mic_dma_device *mic_dma_dev; in mic_dma_driver_probe() local
716 mic_dma_dev = mic_dma_dev_reg(mbdev, owner); in mic_dma_driver_probe()
717 dev_set_drvdata(&mbdev->dev, mic_dma_dev); in mic_dma_driver_probe()
720 mic_dma_dev->dbg_dir = debugfs_create_dir(dev_name(&mbdev->dev), in mic_dma_driver_probe()
722 if (mic_dma_dev->dbg_dir) in mic_dma_driver_probe()
724 mic_dma_dev->dbg_dir, mic_dma_dev, in mic_dma_driver_probe()
732 struct mic_dma_device *mic_dma_dev; in mic_dma_driver_remove() local
734 mic_dma_dev = dev_get_drvdata(&mbdev->dev); in mic_dma_driver_remove()
735 debugfs_remove_recursive(mic_dma_dev->dbg_dir); in mic_dma_driver_remove()
736 mic_dma_dev_unreg(mic_dma_dev); in mic_dma_driver_remove()