Lines Matching refs:afe

547 	struct q6afe *afe;  member
834 struct q6afe *afe; in q6afe_port_free() local
838 afe = port->afe; in q6afe_port_free()
839 spin_lock_irqsave(&afe->port_list_lock, flags); in q6afe_port_free()
841 spin_unlock_irqrestore(&afe->port_list_lock, flags); in q6afe_port_free()
846 static struct q6afe_port *q6afe_find_port(struct q6afe *afe, int token) in q6afe_find_port() argument
852 spin_lock_irqsave(&afe->port_list_lock, flags); in q6afe_find_port()
853 list_for_each_entry(p, &afe->port_list, node) in q6afe_find_port()
860 spin_unlock_irqrestore(&afe->port_list_lock, flags); in q6afe_find_port()
866 struct q6afe *afe = dev_get_drvdata(&adev->dev); in q6afe_callback() local
878 dev_err(afe->dev, "cmd = 0x%x returned error = 0x%x\n", in q6afe_callback()
886 port = q6afe_find_port(afe, hdr->token); in q6afe_callback()
892 afe->result = *res; in q6afe_callback()
893 wake_up(&afe->wait); in q6afe_callback()
897 dev_err(afe->dev, "Unknown cmd 0x%x\n", res->opcode); in q6afe_callback()
903 afe->result.opcode = hdr->opcode; in q6afe_callback()
904 afe->result.status = res->status; in q6afe_callback()
905 wake_up(&afe->wait); in q6afe_callback()
930 static int afe_apr_send_pkt(struct q6afe *afe, struct apr_pkt *pkt, in afe_apr_send_pkt() argument
937 mutex_lock(&afe->lock); in afe_apr_send_pkt()
942 result = &afe->result; in afe_apr_send_pkt()
943 wait = &afe->wait; in afe_apr_send_pkt()
949 ret = apr_send_pkt(afe->apr, pkt); in afe_apr_send_pkt()
951 dev_err(afe->dev, "packet not transmitted (%d)\n", ret); in afe_apr_send_pkt()
961 dev_err(afe->dev, "DSP returned error[%x]\n", in afe_apr_send_pkt()
969 mutex_unlock(&afe->lock); in afe_apr_send_pkt()
974 static int q6afe_set_param(struct q6afe *afe, struct q6afe_port *port, in q6afe_set_param() argument
1012 ret = afe_apr_send_pkt(afe, pkt, port, AFE_SVC_CMD_SET_PARAM); in q6afe_set_param()
1014 dev_err(afe->dev, "AFE set params failed %d\n", ret); in q6afe_set_param()
1023 return q6afe_set_param(port->afe, port, data, param_id, module_id, in q6afe_port_set_param()
1032 struct q6afe *afe = port->afe; in q6afe_port_set_param_v2() local
1067 ret = afe_apr_send_pkt(afe, pkt, port, AFE_PORT_CMD_SET_PARAM_V2); in q6afe_port_set_param_v2()
1069 dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n", in q6afe_port_set_param_v2()
1104 struct q6afe *afe = dev_get_drvdata(dev->parent); in q6afe_set_lpass_clock() local
1114 return q6afe_set_param(afe, NULL, &cset, AFE_PARAM_ID_CLOCK_SET, in q6afe_set_lpass_clock()
1184 struct q6afe *afe = port->afe; in q6afe_port_stop() local
1194 dev_err(afe->dev, "AFE port index[%d] invalid!\n", index); in q6afe_port_stop()
1217 ret = afe_apr_send_pkt(afe, pkt, port, AFE_PORT_CMD_DEVICE_STOP); in q6afe_port_stop()
1219 dev_err(afe->dev, "AFE close failed %d\n", ret); in q6afe_port_stop()
1318 struct device *dev = port->afe->dev; in q6afe_i2s_port_prepare()
1483 struct q6afe *afe = port->afe; in q6afe_port_start() local
1494 dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n", in q6afe_port_start()
1504 dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n", in q6afe_port_start()
1529 ret = afe_apr_send_pkt(afe, pkt, port, AFE_PORT_CMD_DEVICE_START); in q6afe_port_start()
1531 dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n", in q6afe_port_start()
1551 struct q6afe *afe = dev_get_drvdata(dev->parent); in q6afe_port_get_from_id() local
1562 port = q6afe_find_port(afe, id); in q6afe_port_get_from_id()
1621 port->afe = afe; in q6afe_port_get_from_id()
1625 spin_lock_irqsave(&afe->port_list_lock, flags); in q6afe_port_get_from_id()
1626 list_add_tail(&port->node, &afe->port_list); in q6afe_port_get_from_id()
1627 spin_unlock_irqrestore(&afe->port_list_lock, flags); in q6afe_port_get_from_id()
1648 struct q6afe *afe = dev_get_drvdata(dev->parent); in q6afe_unvote_lpass_core_hw() local
1674 ret = apr_send_pkt(afe->apr, pkt); in q6afe_unvote_lpass_core_hw()
1676 dev_err(afe->dev, "AFE failed to unvote (%d)\n", hw_block_id); in q6afe_unvote_lpass_core_hw()
1686 struct q6afe *afe = dev_get_drvdata(dev->parent); in q6afe_vote_lpass_core_hw() local
1713 ret = afe_apr_send_pkt(afe, pkt, NULL, in q6afe_vote_lpass_core_hw()
1716 dev_err(afe->dev, "AFE failed to vote (%d)\n", hw_block_id); in q6afe_vote_lpass_core_hw()
1726 struct q6afe *afe; in q6afe_probe() local
1729 afe = devm_kzalloc(dev, sizeof(*afe), GFP_KERNEL); in q6afe_probe()
1730 if (!afe) in q6afe_probe()
1733 q6core_get_svc_api_info(adev->svc_id, &afe->ainfo); in q6afe_probe()
1734 afe->apr = adev; in q6afe_probe()
1735 mutex_init(&afe->lock); in q6afe_probe()
1736 init_waitqueue_head(&afe->wait); in q6afe_probe()
1737 afe->dev = dev; in q6afe_probe()
1738 INIT_LIST_HEAD(&afe->port_list); in q6afe_probe()
1739 spin_lock_init(&afe->port_list_lock); in q6afe_probe()
1741 dev_set_drvdata(dev, afe); in q6afe_probe()