cqdma             164 drivers/dma/mediatek/mtk-cqdma.c static struct device *cqdma2dev(struct mtk_cqdma_device *cqdma)
cqdma             166 drivers/dma/mediatek/mtk-cqdma.c 	return cqdma->ddev.dev;
cqdma             388 drivers/dma/mediatek/mtk-cqdma.c 	struct mtk_cqdma_device *cqdma = devid;
cqdma             394 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_channels; ++i, schedule_tasklet = false) {
cqdma             395 drivers/dma/mediatek/mtk-cqdma.c 		spin_lock(&cqdma->pc[i]->lock);
cqdma             396 drivers/dma/mediatek/mtk-cqdma.c 		if (mtk_dma_read(cqdma->pc[i],
cqdma             399 drivers/dma/mediatek/mtk-cqdma.c 			mtk_dma_clr(cqdma->pc[i], MTK_CQDMA_INT_FLAG,
cqdma             405 drivers/dma/mediatek/mtk-cqdma.c 		spin_unlock(&cqdma->pc[i]->lock);
cqdma             409 drivers/dma/mediatek/mtk-cqdma.c 			disable_irq_nosync(cqdma->pc[i]->irq);
cqdma             412 drivers/dma/mediatek/mtk-cqdma.c 			tasklet_schedule(&cqdma->pc[i]->tasklet);
cqdma             615 drivers/dma/mediatek/mtk-cqdma.c 	struct mtk_cqdma_device *cqdma = to_cqdma_dev(c);
cqdma             622 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_channels; ++i) {
cqdma             623 drivers/dma/mediatek/mtk-cqdma.c 		refcnt = refcount_read(&cqdma->pc[i]->refcnt);
cqdma             625 drivers/dma/mediatek/mtk-cqdma.c 			pc = cqdma->pc[i];
cqdma             689 drivers/dma/mediatek/mtk-cqdma.c static int mtk_cqdma_hw_init(struct mtk_cqdma_device *cqdma)
cqdma             695 drivers/dma/mediatek/mtk-cqdma.c 	pm_runtime_enable(cqdma2dev(cqdma));
cqdma             696 drivers/dma/mediatek/mtk-cqdma.c 	pm_runtime_get_sync(cqdma2dev(cqdma));
cqdma             698 drivers/dma/mediatek/mtk-cqdma.c 	err = clk_prepare_enable(cqdma->clk);
cqdma             701 drivers/dma/mediatek/mtk-cqdma.c 		pm_runtime_put_sync(cqdma2dev(cqdma));
cqdma             702 drivers/dma/mediatek/mtk-cqdma.c 		pm_runtime_disable(cqdma2dev(cqdma));
cqdma             707 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_channels; ++i) {
cqdma             708 drivers/dma/mediatek/mtk-cqdma.c 		spin_lock_irqsave(&cqdma->pc[i]->lock, flags);
cqdma             709 drivers/dma/mediatek/mtk-cqdma.c 		if (mtk_cqdma_hard_reset(cqdma->pc[i]) < 0) {
cqdma             710 drivers/dma/mediatek/mtk-cqdma.c 			dev_err(cqdma2dev(cqdma), "cqdma hard reset timeout\n");
cqdma             711 drivers/dma/mediatek/mtk-cqdma.c 			spin_unlock_irqrestore(&cqdma->pc[i]->lock, flags);
cqdma             713 drivers/dma/mediatek/mtk-cqdma.c 			clk_disable_unprepare(cqdma->clk);
cqdma             714 drivers/dma/mediatek/mtk-cqdma.c 			pm_runtime_put_sync(cqdma2dev(cqdma));
cqdma             715 drivers/dma/mediatek/mtk-cqdma.c 			pm_runtime_disable(cqdma2dev(cqdma));
cqdma             718 drivers/dma/mediatek/mtk-cqdma.c 		spin_unlock_irqrestore(&cqdma->pc[i]->lock, flags);
cqdma             724 drivers/dma/mediatek/mtk-cqdma.c static void mtk_cqdma_hw_deinit(struct mtk_cqdma_device *cqdma)
cqdma             730 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_channels; ++i) {
cqdma             731 drivers/dma/mediatek/mtk-cqdma.c 		spin_lock_irqsave(&cqdma->pc[i]->lock, flags);
cqdma             732 drivers/dma/mediatek/mtk-cqdma.c 		if (mtk_cqdma_hard_reset(cqdma->pc[i]) < 0)
cqdma             733 drivers/dma/mediatek/mtk-cqdma.c 			dev_err(cqdma2dev(cqdma), "cqdma hard reset timeout\n");
cqdma             734 drivers/dma/mediatek/mtk-cqdma.c 		spin_unlock_irqrestore(&cqdma->pc[i]->lock, flags);
cqdma             737 drivers/dma/mediatek/mtk-cqdma.c 	clk_disable_unprepare(cqdma->clk);
cqdma             739 drivers/dma/mediatek/mtk-cqdma.c 	pm_runtime_put_sync(cqdma2dev(cqdma));
cqdma             740 drivers/dma/mediatek/mtk-cqdma.c 	pm_runtime_disable(cqdma2dev(cqdma));
cqdma             751 drivers/dma/mediatek/mtk-cqdma.c 	struct mtk_cqdma_device *cqdma;
cqdma             758 drivers/dma/mediatek/mtk-cqdma.c 	cqdma = devm_kzalloc(&pdev->dev, sizeof(*cqdma), GFP_KERNEL);
cqdma             759 drivers/dma/mediatek/mtk-cqdma.c 	if (!cqdma)
cqdma             762 drivers/dma/mediatek/mtk-cqdma.c 	dd = &cqdma->ddev;
cqdma             764 drivers/dma/mediatek/mtk-cqdma.c 	cqdma->clk = devm_clk_get(&pdev->dev, "cqdma");
cqdma             765 drivers/dma/mediatek/mtk-cqdma.c 	if (IS_ERR(cqdma->clk)) {
cqdma             768 drivers/dma/mediatek/mtk-cqdma.c 		return PTR_ERR(cqdma->clk);
cqdma             789 drivers/dma/mediatek/mtk-cqdma.c 						      &cqdma->dma_requests)) {
cqdma             794 drivers/dma/mediatek/mtk-cqdma.c 		cqdma->dma_requests = MTK_CQDMA_NR_VCHANS;
cqdma             799 drivers/dma/mediatek/mtk-cqdma.c 						      &cqdma->dma_channels)) {
cqdma             804 drivers/dma/mediatek/mtk-cqdma.c 		cqdma->dma_channels = MTK_CQDMA_NR_PCHANS;
cqdma             807 drivers/dma/mediatek/mtk-cqdma.c 	cqdma->pc = devm_kcalloc(&pdev->dev, cqdma->dma_channels,
cqdma             808 drivers/dma/mediatek/mtk-cqdma.c 				 sizeof(*cqdma->pc), GFP_KERNEL);
cqdma             809 drivers/dma/mediatek/mtk-cqdma.c 	if (!cqdma->pc)
cqdma             813 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_channels; ++i) {
cqdma             814 drivers/dma/mediatek/mtk-cqdma.c 		cqdma->pc[i] = devm_kcalloc(&pdev->dev, 1,
cqdma             815 drivers/dma/mediatek/mtk-cqdma.c 					    sizeof(**cqdma->pc), GFP_KERNEL);
cqdma             816 drivers/dma/mediatek/mtk-cqdma.c 		if (!cqdma->pc[i])
cqdma             819 drivers/dma/mediatek/mtk-cqdma.c 		INIT_LIST_HEAD(&cqdma->pc[i]->queue);
cqdma             820 drivers/dma/mediatek/mtk-cqdma.c 		spin_lock_init(&cqdma->pc[i]->lock);
cqdma             821 drivers/dma/mediatek/mtk-cqdma.c 		refcount_set(&cqdma->pc[i]->refcnt, 0);
cqdma             830 drivers/dma/mediatek/mtk-cqdma.c 		cqdma->pc[i]->base = devm_ioremap_resource(&pdev->dev, res);
cqdma             831 drivers/dma/mediatek/mtk-cqdma.c 		if (IS_ERR(cqdma->pc[i]->base))
cqdma             832 drivers/dma/mediatek/mtk-cqdma.c 			return PTR_ERR(cqdma->pc[i]->base);
cqdma             841 drivers/dma/mediatek/mtk-cqdma.c 		cqdma->pc[i]->irq = res->start;
cqdma             843 drivers/dma/mediatek/mtk-cqdma.c 		err = devm_request_irq(&pdev->dev, cqdma->pc[i]->irq,
cqdma             845 drivers/dma/mediatek/mtk-cqdma.c 				       cqdma);
cqdma             854 drivers/dma/mediatek/mtk-cqdma.c 	cqdma->vc = devm_kcalloc(&pdev->dev, cqdma->dma_requests,
cqdma             855 drivers/dma/mediatek/mtk-cqdma.c 				 sizeof(*cqdma->vc), GFP_KERNEL);
cqdma             856 drivers/dma/mediatek/mtk-cqdma.c 	if (!cqdma->vc)
cqdma             859 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_requests; i++) {
cqdma             860 drivers/dma/mediatek/mtk-cqdma.c 		vc = &cqdma->vc[i];
cqdma             871 drivers/dma/mediatek/mtk-cqdma.c 					 of_dma_xlate_by_chan_id, cqdma);
cqdma             878 drivers/dma/mediatek/mtk-cqdma.c 	err = mtk_cqdma_hw_init(cqdma);
cqdma             885 drivers/dma/mediatek/mtk-cqdma.c 	platform_set_drvdata(pdev, cqdma);
cqdma             888 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_channels; ++i)
cqdma             889 drivers/dma/mediatek/mtk-cqdma.c 		tasklet_init(&cqdma->pc[i]->tasklet, mtk_cqdma_tasklet_cb,
cqdma             890 drivers/dma/mediatek/mtk-cqdma.c 			     (unsigned long)cqdma->pc[i]);
cqdma             904 drivers/dma/mediatek/mtk-cqdma.c 	struct mtk_cqdma_device *cqdma = platform_get_drvdata(pdev);
cqdma             910 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_requests; i++) {
cqdma             911 drivers/dma/mediatek/mtk-cqdma.c 		vc = &cqdma->vc[i];
cqdma             918 drivers/dma/mediatek/mtk-cqdma.c 	for (i = 0; i < cqdma->dma_channels; i++) {
cqdma             919 drivers/dma/mediatek/mtk-cqdma.c 		spin_lock_irqsave(&cqdma->pc[i]->lock, flags);
cqdma             920 drivers/dma/mediatek/mtk-cqdma.c 		mtk_dma_clr(cqdma->pc[i], MTK_CQDMA_INT_EN,
cqdma             922 drivers/dma/mediatek/mtk-cqdma.c 		spin_unlock_irqrestore(&cqdma->pc[i]->lock, flags);
cqdma             925 drivers/dma/mediatek/mtk-cqdma.c 		synchronize_irq(cqdma->pc[i]->irq);
cqdma             927 drivers/dma/mediatek/mtk-cqdma.c 		tasklet_kill(&cqdma->pc[i]->tasklet);
cqdma             931 drivers/dma/mediatek/mtk-cqdma.c 	mtk_cqdma_hw_deinit(cqdma);
cqdma             933 drivers/dma/mediatek/mtk-cqdma.c 	dma_async_device_unregister(&cqdma->ddev);