Lines Matching refs:pdsp
1446 struct knav_pdsp_info *pdsp; in knav_queue_init_pdsps() local
1450 pdsp = devm_kzalloc(dev, sizeof(*pdsp), GFP_KERNEL); in knav_queue_init_pdsps()
1451 if (!pdsp) { in knav_queue_init_pdsps()
1455 pdsp->name = knav_queue_find_name(child); in knav_queue_init_pdsps()
1456 pdsp->iram = in knav_queue_init_pdsps()
1459 pdsp->regs = in knav_queue_init_pdsps()
1462 pdsp->intd = in knav_queue_init_pdsps()
1465 pdsp->command = in knav_queue_init_pdsps()
1469 if (IS_ERR(pdsp->command) || IS_ERR(pdsp->iram) || in knav_queue_init_pdsps()
1470 IS_ERR(pdsp->regs) || IS_ERR(pdsp->intd)) { in knav_queue_init_pdsps()
1472 pdsp->name); in knav_queue_init_pdsps()
1473 if (!IS_ERR(pdsp->command)) in knav_queue_init_pdsps()
1474 devm_iounmap(dev, pdsp->command); in knav_queue_init_pdsps()
1475 if (!IS_ERR(pdsp->iram)) in knav_queue_init_pdsps()
1476 devm_iounmap(dev, pdsp->iram); in knav_queue_init_pdsps()
1477 if (!IS_ERR(pdsp->regs)) in knav_queue_init_pdsps()
1478 devm_iounmap(dev, pdsp->regs); in knav_queue_init_pdsps()
1479 if (!IS_ERR(pdsp->intd)) in knav_queue_init_pdsps()
1480 devm_iounmap(dev, pdsp->intd); in knav_queue_init_pdsps()
1481 devm_kfree(dev, pdsp); in knav_queue_init_pdsps()
1484 of_property_read_u32(child, "id", &pdsp->id); in knav_queue_init_pdsps()
1485 list_add_tail(&pdsp->list, &kdev->pdsps); in knav_queue_init_pdsps()
1487 pdsp->name, pdsp->command, pdsp->iram, pdsp->regs, in knav_queue_init_pdsps()
1488 pdsp->intd); in knav_queue_init_pdsps()
1494 struct knav_pdsp_info *pdsp) in knav_queue_stop_pdsp() argument
1499 val = readl_relaxed(&pdsp->regs->control) & ~PDSP_CTRL_ENABLE; in knav_queue_stop_pdsp()
1500 writel_relaxed(val, &pdsp->regs->control); in knav_queue_stop_pdsp()
1501 ret = knav_queue_pdsp_wait(&pdsp->regs->control, timeout, in knav_queue_stop_pdsp()
1504 dev_err(kdev->dev, "timed out on pdsp %s stop\n", pdsp->name); in knav_queue_stop_pdsp()
1507 pdsp->loaded = false; in knav_queue_stop_pdsp()
1508 pdsp->started = false; in knav_queue_stop_pdsp()
1513 struct knav_pdsp_info *pdsp) in knav_queue_load_pdsp() argument
1540 writel_relaxed(pdsp->id + 1, pdsp->command + 0x18); in knav_queue_load_pdsp()
1545 writel_relaxed(be32_to_cpu(fwdata[i]), pdsp->iram + i); in knav_queue_load_pdsp()
1552 struct knav_pdsp_info *pdsp) in knav_queue_start_pdsp() argument
1558 writel_relaxed(0xffffffff, pdsp->command); in knav_queue_start_pdsp()
1559 while (readl_relaxed(pdsp->command) != 0xffffffff) in knav_queue_start_pdsp()
1563 val = readl_relaxed(&pdsp->regs->control); in knav_queue_start_pdsp()
1565 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1568 val = readl_relaxed(&pdsp->regs->control) | PDSP_CTRL_ENABLE; in knav_queue_start_pdsp()
1569 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1572 ret = knav_queue_pdsp_wait(pdsp->command, timeout, 0); in knav_queue_start_pdsp()
1576 pdsp->name); in knav_queue_start_pdsp()
1584 struct knav_pdsp_info *pdsp; in knav_queue_stop_pdsps() local
1587 for_each_pdsp(kdev, pdsp) in knav_queue_stop_pdsps()
1588 knav_queue_stop_pdsp(kdev, pdsp); in knav_queue_stop_pdsps()
1593 struct knav_pdsp_info *pdsp; in knav_queue_start_pdsps() local
1603 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1604 ret = knav_queue_load_pdsp(kdev, pdsp); in knav_queue_start_pdsps()
1606 pdsp->loaded = true; in knav_queue_start_pdsps()
1609 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1610 if (pdsp->loaded) { in knav_queue_start_pdsps()
1611 ret = knav_queue_start_pdsp(kdev, pdsp); in knav_queue_start_pdsps()
1613 pdsp->started = true; in knav_queue_start_pdsps()