Lines Matching refs:bcom_eng

37 struct bcom_engine *bcom_eng = NULL;
38 EXPORT_SYMBOL_GPL(bcom_eng); /* needed for inline functions */
53 if (!bcom_eng)
57 spin_lock(&bcom_eng->lock);
60 if (!bcom_eng->tdt[i].stop) { /* we use stop as a marker */
61 bcom_eng->tdt[i].stop = 0xfffffffful; /* dummy addr */
66 spin_unlock(&bcom_eng->lock);
81 tsk->irq = irq_of_parse_and_map(bcom_eng->ofnode, tsk->tasknum);
112 bcom_eng->tdt[tasknum].stop = 0;
125 bcom_eng->tdt[tsk->tasknum].start = 0;
126 bcom_eng->tdt[tsk->tasknum].stop = 0;
158 tdt = &bcom_eng->tdt[task];
286 bcom_eng->tdt = bcom_sram_alloc(tdt_size, sizeof(u32), &tdt_pa);
287 bcom_eng->ctx = bcom_sram_alloc(ctx_size, BCOM_CTX_ALIGN, &ctx_pa);
288 bcom_eng->var = bcom_sram_alloc(var_size, BCOM_VAR_ALIGN, &var_pa);
289 bcom_eng->fdt = bcom_sram_alloc(fdt_size, BCOM_FDT_ALIGN, &fdt_pa);
291 if (!bcom_eng->tdt || !bcom_eng->ctx || !bcom_eng->var || !bcom_eng->fdt) {
294 bcom_sram_free(bcom_eng->tdt);
295 bcom_sram_free(bcom_eng->ctx);
296 bcom_sram_free(bcom_eng->var);
297 bcom_sram_free(bcom_eng->fdt);
302 memset_io(bcom_eng->tdt, 0x00, tdt_size);
303 memset_io(bcom_eng->ctx, 0x00, ctx_size);
304 memset_io(bcom_eng->var, 0x00, var_size);
305 memset_io(bcom_eng->fdt, 0x00, fdt_size);
308 memcpy_toio(&bcom_eng->fdt[48], fdt_ops, sizeof(fdt_ops));
313 out_be16(&bcom_eng->regs->tcr[task], 0);
314 out_8(&bcom_eng->regs->ipr[task], 0);
316 bcom_eng->tdt[task].context = ctx_pa;
317 bcom_eng->tdt[task].var = var_pa;
318 bcom_eng->tdt[task].fdt = fdt_pa;
324 out_be32(&bcom_eng->regs->taskBar, tdt_pa);
327 out_8(&bcom_eng->regs->ipr[BCOM_INITIATOR_ALWAYS], BCOM_IPR_ALWAYS);
334 spin_lock_init(&bcom_eng->lock);
347 out_be16(&bcom_eng->regs->tcr[task], 0);
348 out_8(&bcom_eng->regs->ipr[task], 0);
351 out_be32(&bcom_eng->regs->taskBar, 0ul);
354 bcom_sram_free(bcom_eng->tdt);
355 bcom_sram_free(bcom_eng->ctx);
356 bcom_sram_free(bcom_eng->var);
357 bcom_sram_free(bcom_eng->fdt);
396 bcom_eng = kzalloc(sizeof(struct bcom_engine), GFP_KERNEL);
397 if (!bcom_eng) {
403 bcom_eng->ofnode = op->dev.of_node;
421 bcom_eng->regs_base = res_bcom.start;
422 bcom_eng->regs = ioremap(res_bcom.start, sizeof(struct mpc52xx_sdma));
423 if (!bcom_eng->regs) {
437 (long)bcom_eng->regs_base);
443 iounmap(bcom_eng->regs);
447 kfree(bcom_eng);
467 iounmap(bcom_eng->regs);
468 release_mem_region(bcom_eng->regs_base, sizeof(struct mpc52xx_sdma));
471 of_node_put(bcom_eng->ofnode);
474 kfree(bcom_eng);
475 bcom_eng = NULL;