Lines Matching refs:pdsp

1502 	struct knav_pdsp_info *pdsp;  in knav_queue_init_pdsps()  local
1506 pdsp = devm_kzalloc(dev, sizeof(*pdsp), GFP_KERNEL); in knav_queue_init_pdsps()
1507 if (!pdsp) { in knav_queue_init_pdsps()
1511 pdsp->name = knav_queue_find_name(child); in knav_queue_init_pdsps()
1512 pdsp->iram = in knav_queue_init_pdsps()
1515 pdsp->regs = in knav_queue_init_pdsps()
1518 pdsp->intd = in knav_queue_init_pdsps()
1521 pdsp->command = in knav_queue_init_pdsps()
1525 if (IS_ERR(pdsp->command) || IS_ERR(pdsp->iram) || in knav_queue_init_pdsps()
1526 IS_ERR(pdsp->regs) || IS_ERR(pdsp->intd)) { in knav_queue_init_pdsps()
1528 pdsp->name); in knav_queue_init_pdsps()
1529 if (!IS_ERR(pdsp->command)) in knav_queue_init_pdsps()
1530 devm_iounmap(dev, pdsp->command); in knav_queue_init_pdsps()
1531 if (!IS_ERR(pdsp->iram)) in knav_queue_init_pdsps()
1532 devm_iounmap(dev, pdsp->iram); in knav_queue_init_pdsps()
1533 if (!IS_ERR(pdsp->regs)) in knav_queue_init_pdsps()
1534 devm_iounmap(dev, pdsp->regs); in knav_queue_init_pdsps()
1535 if (!IS_ERR(pdsp->intd)) in knav_queue_init_pdsps()
1536 devm_iounmap(dev, pdsp->intd); in knav_queue_init_pdsps()
1537 devm_kfree(dev, pdsp); in knav_queue_init_pdsps()
1540 of_property_read_u32(child, "id", &pdsp->id); in knav_queue_init_pdsps()
1541 list_add_tail(&pdsp->list, &kdev->pdsps); in knav_queue_init_pdsps()
1543 pdsp->name, pdsp->command, pdsp->iram, pdsp->regs, in knav_queue_init_pdsps()
1544 pdsp->intd); in knav_queue_init_pdsps()
1550 struct knav_pdsp_info *pdsp) in knav_queue_stop_pdsp() argument
1555 val = readl_relaxed(&pdsp->regs->control) & ~PDSP_CTRL_ENABLE; in knav_queue_stop_pdsp()
1556 writel_relaxed(val, &pdsp->regs->control); in knav_queue_stop_pdsp()
1557 ret = knav_queue_pdsp_wait(&pdsp->regs->control, timeout, in knav_queue_stop_pdsp()
1560 dev_err(kdev->dev, "timed out on pdsp %s stop\n", pdsp->name); in knav_queue_stop_pdsp()
1563 pdsp->loaded = false; in knav_queue_stop_pdsp()
1564 pdsp->started = false; in knav_queue_stop_pdsp()
1569 struct knav_pdsp_info *pdsp) in knav_queue_load_pdsp() argument
1596 writel_relaxed(pdsp->id + 1, pdsp->command + 0x18); in knav_queue_load_pdsp()
1601 writel_relaxed(be32_to_cpu(fwdata[i]), pdsp->iram + i); in knav_queue_load_pdsp()
1608 struct knav_pdsp_info *pdsp) in knav_queue_start_pdsp() argument
1614 writel_relaxed(0xffffffff, pdsp->command); in knav_queue_start_pdsp()
1615 while (readl_relaxed(pdsp->command) != 0xffffffff) in knav_queue_start_pdsp()
1619 val = readl_relaxed(&pdsp->regs->control); in knav_queue_start_pdsp()
1621 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1624 val = readl_relaxed(&pdsp->regs->control) | PDSP_CTRL_ENABLE; in knav_queue_start_pdsp()
1625 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1628 ret = knav_queue_pdsp_wait(pdsp->command, timeout, 0); in knav_queue_start_pdsp()
1632 pdsp->name); in knav_queue_start_pdsp()
1640 struct knav_pdsp_info *pdsp; in knav_queue_stop_pdsps() local
1643 for_each_pdsp(kdev, pdsp) in knav_queue_stop_pdsps()
1644 knav_queue_stop_pdsp(kdev, pdsp); in knav_queue_stop_pdsps()
1649 struct knav_pdsp_info *pdsp; in knav_queue_start_pdsps() local
1659 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1660 ret = knav_queue_load_pdsp(kdev, pdsp); in knav_queue_start_pdsps()
1662 pdsp->loaded = true; in knav_queue_start_pdsps()
1665 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1666 if (pdsp->loaded) { in knav_queue_start_pdsps()
1667 ret = knav_queue_start_pdsp(kdev, pdsp); in knav_queue_start_pdsps()
1669 pdsp->started = true; in knav_queue_start_pdsps()