Lines Matching refs:pdsp

1505 	struct knav_pdsp_info *pdsp;  in knav_queue_init_pdsps()  local
1509 pdsp = devm_kzalloc(dev, sizeof(*pdsp), GFP_KERNEL); in knav_queue_init_pdsps()
1510 if (!pdsp) { in knav_queue_init_pdsps()
1515 pdsp->name = knav_queue_find_name(child); in knav_queue_init_pdsps()
1516 pdsp->iram = in knav_queue_init_pdsps()
1519 pdsp->regs = in knav_queue_init_pdsps()
1522 pdsp->intd = in knav_queue_init_pdsps()
1525 pdsp->command = in knav_queue_init_pdsps()
1529 if (IS_ERR(pdsp->command) || IS_ERR(pdsp->iram) || in knav_queue_init_pdsps()
1530 IS_ERR(pdsp->regs) || IS_ERR(pdsp->intd)) { in knav_queue_init_pdsps()
1532 pdsp->name); in knav_queue_init_pdsps()
1533 if (!IS_ERR(pdsp->command)) in knav_queue_init_pdsps()
1534 devm_iounmap(dev, pdsp->command); in knav_queue_init_pdsps()
1535 if (!IS_ERR(pdsp->iram)) in knav_queue_init_pdsps()
1536 devm_iounmap(dev, pdsp->iram); in knav_queue_init_pdsps()
1537 if (!IS_ERR(pdsp->regs)) in knav_queue_init_pdsps()
1538 devm_iounmap(dev, pdsp->regs); in knav_queue_init_pdsps()
1539 if (!IS_ERR(pdsp->intd)) in knav_queue_init_pdsps()
1540 devm_iounmap(dev, pdsp->intd); in knav_queue_init_pdsps()
1541 devm_kfree(dev, pdsp); in knav_queue_init_pdsps()
1544 of_property_read_u32(child, "id", &pdsp->id); in knav_queue_init_pdsps()
1545 list_add_tail(&pdsp->list, &kdev->pdsps); in knav_queue_init_pdsps()
1547 pdsp->name, pdsp->command, pdsp->iram, pdsp->regs, in knav_queue_init_pdsps()
1548 pdsp->intd); in knav_queue_init_pdsps()
1554 struct knav_pdsp_info *pdsp) in knav_queue_stop_pdsp() argument
1559 val = readl_relaxed(&pdsp->regs->control) & ~PDSP_CTRL_ENABLE; in knav_queue_stop_pdsp()
1560 writel_relaxed(val, &pdsp->regs->control); in knav_queue_stop_pdsp()
1561 ret = knav_queue_pdsp_wait(&pdsp->regs->control, timeout, in knav_queue_stop_pdsp()
1564 dev_err(kdev->dev, "timed out on pdsp %s stop\n", pdsp->name); in knav_queue_stop_pdsp()
1567 pdsp->loaded = false; in knav_queue_stop_pdsp()
1568 pdsp->started = false; in knav_queue_stop_pdsp()
1573 struct knav_pdsp_info *pdsp) in knav_queue_load_pdsp() argument
1600 writel_relaxed(pdsp->id + 1, pdsp->command + 0x18); in knav_queue_load_pdsp()
1605 writel_relaxed(be32_to_cpu(fwdata[i]), pdsp->iram + i); in knav_queue_load_pdsp()
1612 struct knav_pdsp_info *pdsp) in knav_queue_start_pdsp() argument
1618 writel_relaxed(0xffffffff, pdsp->command); in knav_queue_start_pdsp()
1619 while (readl_relaxed(pdsp->command) != 0xffffffff) in knav_queue_start_pdsp()
1623 val = readl_relaxed(&pdsp->regs->control); in knav_queue_start_pdsp()
1625 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1628 val = readl_relaxed(&pdsp->regs->control) | PDSP_CTRL_ENABLE; in knav_queue_start_pdsp()
1629 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1632 ret = knav_queue_pdsp_wait(pdsp->command, timeout, 0); in knav_queue_start_pdsp()
1636 pdsp->name); in knav_queue_start_pdsp()
1644 struct knav_pdsp_info *pdsp; in knav_queue_stop_pdsps() local
1647 for_each_pdsp(kdev, pdsp) in knav_queue_stop_pdsps()
1648 knav_queue_stop_pdsp(kdev, pdsp); in knav_queue_stop_pdsps()
1653 struct knav_pdsp_info *pdsp; in knav_queue_start_pdsps() local
1663 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1664 ret = knav_queue_load_pdsp(kdev, pdsp); in knav_queue_start_pdsps()
1666 pdsp->loaded = true; in knav_queue_start_pdsps()
1669 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1670 if (pdsp->loaded) { in knav_queue_start_pdsps()
1671 ret = knav_queue_start_pdsp(kdev, pdsp); in knav_queue_start_pdsps()
1673 pdsp->started = true; in knav_queue_start_pdsps()