Lines Matching refs:vdoa
19 #include "imx-vdoa.h"
21 #define VDOA_NAME "imx-vdoa"
93 struct vdoa_data *vdoa;
102 struct vdoa_data *vdoa = data;
107 writel(0, vdoa->regs + VDOAIE);
109 curr_ctx = vdoa->curr_ctx;
111 dev_warn(vdoa->dev,
116 val = readl(vdoa->regs + VDOAIST);
117 writel(val, vdoa->regs + VDOAIST);
119 val = readl(vdoa->regs + VDOASR) & VDOASR_ERRW;
120 dev_err(vdoa->dev, "AXI %s error\n", val ? "write" : "read");
122 dev_warn(vdoa->dev, "Spurious interrupt\n");
132 struct vdoa_data *vdoa = ctx->vdoa;
139 dev_err(vdoa->dev,
151 struct vdoa_data *vdoa = ctx->vdoa;
154 if (vdoa->curr_ctx)
155 vdoa_wait_for_completion(vdoa->curr_ctx);
157 vdoa->curr_ctx = ctx;
170 writel(val, vdoa->regs + VDOAC);
173 vdoa->regs + VDOAFP);
176 writel(val, vdoa->regs + VDOAIEBA00);
179 vdoa->regs + VDOASL);
186 writel(val, vdoa->regs + VDOAIUBO);
189 writel(val, vdoa->regs + VDOAVEBA0);
191 writel(val, vdoa->regs + VDOAVUBO);
194 writel(VDOAIE_EITERR | VDOAIE_EIEOT, vdoa->regs + VDOAIE);
195 writel(VDOASRR_START, vdoa->regs + VDOASRR);
199 struct vdoa_ctx *vdoa_context_create(struct vdoa_data *vdoa)
208 err = clk_prepare_enable(vdoa->vdoa_clk);
215 ctx->vdoa = vdoa;
223 struct vdoa_data *vdoa = ctx->vdoa;
225 if (vdoa->curr_ctx == ctx) {
226 vdoa_wait_for_completion(vdoa->curr_ctx);
227 vdoa->curr_ctx = NULL;
230 clk_disable_unprepare(vdoa->vdoa_clk);
286 struct vdoa_data *vdoa;
296 vdoa = devm_kzalloc(&pdev->dev, sizeof(*vdoa), GFP_KERNEL);
297 if (!vdoa)
300 vdoa->dev = &pdev->dev;
302 vdoa->vdoa_clk = devm_clk_get(vdoa->dev, NULL);
303 if (IS_ERR(vdoa->vdoa_clk)) {
304 dev_err(vdoa->dev, "Failed to get clock\n");
305 return PTR_ERR(vdoa->vdoa_clk);
309 vdoa->regs = devm_ioremap_resource(vdoa->dev, res);
310 if (IS_ERR(vdoa->regs))
311 return PTR_ERR(vdoa->regs);
318 "vdoa", vdoa);
320 dev_err(vdoa->dev, "Failed to get irq\n");
324 platform_set_drvdata(pdev, vdoa);
335 { .compatible = "fsl,imx6q-vdoa" },
353 MODULE_ALIAS("platform:imx-vdoa");