Lines Matching refs:bcom_eng

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