Lines Matching refs:pdsp

1440 	struct knav_pdsp_info *pdsp;  in knav_queue_init_pdsps()  local
1445 pdsp = devm_kzalloc(dev, sizeof(*pdsp), GFP_KERNEL); in knav_queue_init_pdsps()
1446 if (!pdsp) { in knav_queue_init_pdsps()
1450 pdsp->name = knav_queue_find_name(child); in knav_queue_init_pdsps()
1452 &pdsp->firmware); in knav_queue_init_pdsps()
1453 if (ret < 0 || !pdsp->firmware) { in knav_queue_init_pdsps()
1455 pdsp->name); in knav_queue_init_pdsps()
1456 devm_kfree(dev, pdsp); in knav_queue_init_pdsps()
1459 dev_dbg(dev, "pdsp name %s fw name :%s\n", pdsp->name, in knav_queue_init_pdsps()
1460 pdsp->firmware); in knav_queue_init_pdsps()
1462 pdsp->iram = in knav_queue_init_pdsps()
1465 pdsp->regs = in knav_queue_init_pdsps()
1468 pdsp->intd = in knav_queue_init_pdsps()
1471 pdsp->command = in knav_queue_init_pdsps()
1475 if (IS_ERR(pdsp->command) || IS_ERR(pdsp->iram) || in knav_queue_init_pdsps()
1476 IS_ERR(pdsp->regs) || IS_ERR(pdsp->intd)) { in knav_queue_init_pdsps()
1478 pdsp->name); in knav_queue_init_pdsps()
1479 if (!IS_ERR(pdsp->command)) in knav_queue_init_pdsps()
1480 devm_iounmap(dev, pdsp->command); in knav_queue_init_pdsps()
1481 if (!IS_ERR(pdsp->iram)) in knav_queue_init_pdsps()
1482 devm_iounmap(dev, pdsp->iram); in knav_queue_init_pdsps()
1483 if (!IS_ERR(pdsp->regs)) in knav_queue_init_pdsps()
1484 devm_iounmap(dev, pdsp->regs); in knav_queue_init_pdsps()
1485 if (!IS_ERR(pdsp->intd)) in knav_queue_init_pdsps()
1486 devm_iounmap(dev, pdsp->intd); in knav_queue_init_pdsps()
1487 devm_kfree(dev, pdsp); in knav_queue_init_pdsps()
1490 of_property_read_u32(child, "id", &pdsp->id); in knav_queue_init_pdsps()
1491 list_add_tail(&pdsp->list, &kdev->pdsps); in knav_queue_init_pdsps()
1493 pdsp->name, pdsp->command, pdsp->iram, pdsp->regs, in knav_queue_init_pdsps()
1494 pdsp->intd, pdsp->firmware); in knav_queue_init_pdsps()
1500 struct knav_pdsp_info *pdsp) in knav_queue_stop_pdsp() argument
1505 val = readl_relaxed(&pdsp->regs->control) & ~PDSP_CTRL_ENABLE; in knav_queue_stop_pdsp()
1506 writel_relaxed(val, &pdsp->regs->control); in knav_queue_stop_pdsp()
1507 ret = knav_queue_pdsp_wait(&pdsp->regs->control, timeout, in knav_queue_stop_pdsp()
1510 dev_err(kdev->dev, "timed out on pdsp %s stop\n", pdsp->name); in knav_queue_stop_pdsp()
1517 struct knav_pdsp_info *pdsp) in knav_queue_load_pdsp() argument
1523 ret = request_firmware(&fw, pdsp->firmware, kdev->dev); in knav_queue_load_pdsp()
1526 pdsp->firmware, pdsp->name); in knav_queue_load_pdsp()
1529 writel_relaxed(pdsp->id + 1, pdsp->command + 0x18); in knav_queue_load_pdsp()
1534 writel_relaxed(be32_to_cpu(fwdata[i]), pdsp->iram + i); in knav_queue_load_pdsp()
1541 struct knav_pdsp_info *pdsp) in knav_queue_start_pdsp() argument
1547 writel_relaxed(0xffffffff, pdsp->command); in knav_queue_start_pdsp()
1548 while (readl_relaxed(pdsp->command) != 0xffffffff) in knav_queue_start_pdsp()
1552 val = readl_relaxed(&pdsp->regs->control); in knav_queue_start_pdsp()
1554 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1557 val = readl_relaxed(&pdsp->regs->control) | PDSP_CTRL_ENABLE; in knav_queue_start_pdsp()
1558 writel_relaxed(val, &pdsp->regs->control); in knav_queue_start_pdsp()
1561 ret = knav_queue_pdsp_wait(pdsp->command, timeout, 0); in knav_queue_start_pdsp()
1565 pdsp->name); in knav_queue_start_pdsp()
1573 struct knav_pdsp_info *pdsp; in knav_queue_stop_pdsps() local
1576 for_each_pdsp(kdev, pdsp) in knav_queue_stop_pdsps()
1577 knav_queue_stop_pdsp(kdev, pdsp); in knav_queue_stop_pdsps()
1582 struct knav_pdsp_info *pdsp; in knav_queue_start_pdsps() local
1587 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1588 ret = knav_queue_load_pdsp(kdev, pdsp); in knav_queue_start_pdsps()
1593 for_each_pdsp(kdev, pdsp) { in knav_queue_start_pdsps()
1594 ret = knav_queue_start_pdsp(kdev, pdsp); in knav_queue_start_pdsps()