Lines Matching defs:bcom_eng
40 struct bcom_engine *bcom_eng = NULL;
41 EXPORT_SYMBOL_GPL(bcom_eng); /* needed for inline functions */
56 if (!bcom_eng)
60 spin_lock(&bcom_eng->lock);
63 if (!bcom_eng->tdt[i].stop) { /* we use stop as a marker */
64 bcom_eng->tdt[i].stop = 0xfffffffful; /* dummy addr */
69 spin_unlock(&bcom_eng->lock);
84 tsk->irq = irq_of_parse_and_map(bcom_eng->ofnode, tsk->tasknum);
115 bcom_eng->tdt[tasknum].stop = 0;
128 bcom_eng->tdt[tsk->tasknum].start = 0;
129 bcom_eng->tdt[tsk->tasknum].stop = 0;
161 tdt = &bcom_eng->tdt[task];
289 bcom_eng->tdt = bcom_sram_alloc(tdt_size, sizeof(u32), &tdt_pa);
290 bcom_eng->ctx = bcom_sram_alloc(ctx_size, BCOM_CTX_ALIGN, &ctx_pa);
291 bcom_eng->var = bcom_sram_alloc(var_size, BCOM_VAR_ALIGN, &var_pa);
292 bcom_eng->fdt = bcom_sram_alloc(fdt_size, BCOM_FDT_ALIGN, &fdt_pa);
294 if (!bcom_eng->tdt || !bcom_eng->ctx || !bcom_eng->var || !bcom_eng->fdt) {
297 bcom_sram_free(bcom_eng->tdt);
298 bcom_sram_free(bcom_eng->ctx);
299 bcom_sram_free(bcom_eng->var);
300 bcom_sram_free(bcom_eng->fdt);
305 memset_io(bcom_eng->tdt, 0x00, tdt_size);
306 memset_io(bcom_eng->ctx, 0x00, ctx_size);
307 memset_io(bcom_eng->var, 0x00, var_size);
308 memset_io(bcom_eng->fdt, 0x00, fdt_size);
311 memcpy_toio(&bcom_eng->fdt[48], fdt_ops, sizeof(fdt_ops));
316 out_be16(&bcom_eng->regs->tcr[task], 0);
317 out_8(&bcom_eng->regs->ipr[task], 0);
319 bcom_eng->tdt[task].context = ctx_pa;
320 bcom_eng->tdt[task].var = var_pa;
321 bcom_eng->tdt[task].fdt = fdt_pa;
327 out_be32(&bcom_eng->regs->taskBar, tdt_pa);
330 out_8(&bcom_eng->regs->ipr[BCOM_INITIATOR_ALWAYS], BCOM_IPR_ALWAYS);
337 spin_lock_init(&bcom_eng->lock);
350 out_be16(&bcom_eng->regs->tcr[task], 0);
351 out_8(&bcom_eng->regs->ipr[task], 0);
354 out_be32(&bcom_eng->regs->taskBar, 0ul);
357 bcom_sram_free(bcom_eng->tdt);
358 bcom_sram_free(bcom_eng->ctx);
359 bcom_sram_free(bcom_eng->var);
360 bcom_sram_free(bcom_eng->fdt);
399 bcom_eng = kzalloc(sizeof(struct bcom_engine), GFP_KERNEL);
400 if (!bcom_eng) {
406 bcom_eng->ofnode = op->dev.of_node;
424 bcom_eng->regs_base = res_bcom.start;
425 bcom_eng->regs = ioremap(res_bcom.start, sizeof(struct mpc52xx_sdma));
426 if (!bcom_eng->regs) {
440 (long)bcom_eng->regs_base);
446 iounmap(bcom_eng->regs);
450 kfree(bcom_eng);
470 iounmap(bcom_eng->regs);
471 release_mem_region(bcom_eng->regs_base, sizeof(struct mpc52xx_sdma));
474 of_node_put(bcom_eng->ofnode);
477 kfree(bcom_eng);
478 bcom_eng = NULL;