Lines Matching refs:qinst

153 				 struct ti_queue_inst *qinst)  in ti_msgmgr_queue_get_num_messages()  argument
162 val = readl(qinst->queue_state) & status_cnt_mask; in ti_msgmgr_queue_get_num_messages()
176 struct ti_queue_inst *qinst) in ti_msgmgr_queue_is_error() argument
188 val = readl(qinst->queue_state) & d->status_err_mask; in ti_msgmgr_queue_is_error()
207 struct ti_queue_inst *qinst = chan->con_priv; in ti_msgmgr_queue_rx_interrupt() local
220 if (qinst->is_tx) { in ti_msgmgr_queue_rx_interrupt()
222 qinst->name); in ti_msgmgr_queue_rx_interrupt()
227 if (ti_msgmgr_queue_is_error(desc, qinst)) { in ti_msgmgr_queue_rx_interrupt()
228 dev_err(dev, "Error on Rx channel %s\n", qinst->name); in ti_msgmgr_queue_rx_interrupt()
233 msg_count = ti_msgmgr_queue_get_num_messages(desc, qinst); in ti_msgmgr_queue_rx_interrupt()
247 message.buf = (u8 *)qinst->rx_buff; in ti_msgmgr_queue_rx_interrupt()
263 for (data_reg = qinst->queue_buff_start, word_data = qinst->rx_buff, in ti_msgmgr_queue_rx_interrupt()
287 struct ti_queue_inst *qinst = chan->con_priv; in ti_msgmgr_queue_peek_data() local
293 if (qinst->is_tx) in ti_msgmgr_queue_peek_data()
296 if (ti_msgmgr_queue_is_error(desc, qinst)) { in ti_msgmgr_queue_peek_data()
297 dev_err(dev, "Error on channel %s\n", qinst->name); in ti_msgmgr_queue_peek_data()
301 msg_count = ti_msgmgr_queue_get_num_messages(desc, qinst); in ti_msgmgr_queue_peek_data()
314 struct ti_queue_inst *qinst = chan->con_priv; in ti_msgmgr_last_tx_done() local
320 if (!qinst->is_tx) in ti_msgmgr_last_tx_done()
323 if (ti_msgmgr_queue_is_error(desc, qinst)) { in ti_msgmgr_last_tx_done()
324 dev_err(dev, "Error on channel %s\n", qinst->name); in ti_msgmgr_last_tx_done()
328 msg_count = ti_msgmgr_queue_get_num_messages(desc, qinst); in ti_msgmgr_last_tx_done()
351 struct ti_queue_inst *qinst = chan->con_priv; in ti_msgmgr_send_data() local
363 if (ti_msgmgr_queue_is_error(desc, qinst)) { in ti_msgmgr_send_data()
364 dev_err(dev, "Error on channel %s\n", qinst->name); in ti_msgmgr_send_data()
370 qinst->name, message->len, desc->max_message_size); in ti_msgmgr_send_data()
375 for (data_reg = qinst->queue_buff_start, in ti_msgmgr_send_data()
394 if (data_reg <= qinst->queue_buff_end) in ti_msgmgr_send_data()
395 writel(0, qinst->queue_buff_end); in ti_msgmgr_send_data()
409 struct ti_queue_inst *qinst, in ti_msgmgr_queue_rx_irq_req() argument
417 "rx_%03d", d->is_sproxy ? qinst->proxy_id : qinst->queue_id); in ti_msgmgr_queue_rx_irq_req()
420 if (qinst->irq < 0) { in ti_msgmgr_queue_rx_irq_req()
424 qinst->irq = of_irq_get_byname(np, of_rx_irq_name); in ti_msgmgr_queue_rx_irq_req()
427 if (qinst->irq < 0) { in ti_msgmgr_queue_rx_irq_req()
430 qinst->queue_id, qinst->proxy_id, in ti_msgmgr_queue_rx_irq_req()
431 of_rx_irq_name, qinst->irq); in ti_msgmgr_queue_rx_irq_req()
432 return qinst->irq; in ti_msgmgr_queue_rx_irq_req()
437 ret = request_irq(qinst->irq, ti_msgmgr_queue_rx_interrupt, in ti_msgmgr_queue_rx_irq_req()
438 IRQF_SHARED, qinst->name, chan); in ti_msgmgr_queue_rx_irq_req()
441 qinst->irq, qinst->name, ret); in ti_msgmgr_queue_rx_irq_req()
457 struct ti_queue_inst *qinst = chan->con_priv; in ti_msgmgr_queue_startup() local
467 qinst->is_tx = (readl(qinst->queue_ctrl) & in ti_msgmgr_queue_startup()
470 msg_count = ti_msgmgr_queue_get_num_messages(d, qinst); in ti_msgmgr_queue_startup()
472 if (!msg_count && qinst->is_tx) { in ti_msgmgr_queue_startup()
474 qinst->name); in ti_msgmgr_queue_startup()
479 if (!qinst->is_tx) { in ti_msgmgr_queue_startup()
481 qinst->rx_buff = kzalloc(d->max_message_size, GFP_KERNEL); in ti_msgmgr_queue_startup()
482 if (!qinst->rx_buff) in ti_msgmgr_queue_startup()
485 ret = ti_msgmgr_queue_rx_irq_req(dev, d, qinst, chan); in ti_msgmgr_queue_startup()
487 kfree(qinst->rx_buff); in ti_msgmgr_queue_startup()
501 struct ti_queue_inst *qinst = chan->con_priv; in ti_msgmgr_queue_shutdown() local
503 if (!qinst->is_tx) { in ti_msgmgr_queue_shutdown()
504 free_irq(qinst->irq, chan); in ti_msgmgr_queue_shutdown()
505 kfree(qinst->rx_buff); in ti_msgmgr_queue_shutdown()
522 struct ti_queue_inst *qinst; in ti_msgmgr_of_xlate() local
552 qinst = &inst->qinsts[req_pid]; in ti_msgmgr_of_xlate()
553 return qinst->chan; in ti_msgmgr_of_xlate()
556 for (qinst = inst->qinsts, i = 0; i < inst->num_valid_queues; in ti_msgmgr_of_xlate()
557 i++, qinst++) { in ti_msgmgr_of_xlate()
558 if (req_qid == qinst->queue_id && req_pid == qinst->proxy_id) in ti_msgmgr_of_xlate()
559 return qinst->chan; in ti_msgmgr_of_xlate()
586 struct ti_queue_inst *qinst, in ti_msgmgr_queue_setup() argument
591 qinst->proxy_id = qd->proxy_id; in ti_msgmgr_queue_setup()
592 qinst->queue_id = qd->queue_id; in ti_msgmgr_queue_setup()
594 if (qinst->queue_id > d->queue_count) { in ti_msgmgr_queue_setup()
596 idx, qinst->queue_id, d->queue_count); in ti_msgmgr_queue_setup()
601 qinst->queue_buff_start = inst->queue_proxy_region + in ti_msgmgr_queue_setup()
602 SPROXY_THREAD_DATA_OFFSET(qinst->proxy_id, in ti_msgmgr_queue_setup()
604 qinst->queue_buff_end = inst->queue_proxy_region + in ti_msgmgr_queue_setup()
605 SPROXY_THREAD_DATA_OFFSET(qinst->proxy_id, in ti_msgmgr_queue_setup()
607 qinst->queue_state = inst->queue_state_debug_region + in ti_msgmgr_queue_setup()
608 SPROXY_THREAD_STATUS_OFFSET(qinst->proxy_id); in ti_msgmgr_queue_setup()
609 qinst->queue_ctrl = inst->queue_ctrl_region + in ti_msgmgr_queue_setup()
610 SPROXY_THREAD_CTRL_OFFSET(qinst->proxy_id); in ti_msgmgr_queue_setup()
614 snprintf(qinst->name, sizeof(qinst->name), "%s %s_%03d", in ti_msgmgr_queue_setup()
615 dev_name(dev), dir, qinst->proxy_id); in ti_msgmgr_queue_setup()
617 qinst->queue_buff_start = inst->queue_proxy_region + in ti_msgmgr_queue_setup()
618 Q_DATA_OFFSET(qinst->proxy_id, qinst->queue_id, in ti_msgmgr_queue_setup()
620 qinst->queue_buff_end = inst->queue_proxy_region + in ti_msgmgr_queue_setup()
621 Q_DATA_OFFSET(qinst->proxy_id, qinst->queue_id, in ti_msgmgr_queue_setup()
623 qinst->queue_state = in ti_msgmgr_queue_setup()
625 Q_STATE_OFFSET(qinst->queue_id); in ti_msgmgr_queue_setup()
626 qinst->is_tx = qd->is_tx; in ti_msgmgr_queue_setup()
627 dir = qinst->is_tx ? "tx" : "rx"; in ti_msgmgr_queue_setup()
628 snprintf(qinst->name, sizeof(qinst->name), "%s %s_%03d_%03d", in ti_msgmgr_queue_setup()
629 dev_name(dev), dir, qinst->queue_id, qinst->proxy_id); in ti_msgmgr_queue_setup()
632 qinst->chan = chan; in ti_msgmgr_queue_setup()
635 qinst->irq = -EINVAL; in ti_msgmgr_queue_setup()
637 chan->con_priv = qinst; in ti_msgmgr_queue_setup()
640 idx, qinst->queue_id, qinst->proxy_id, qinst->irq, in ti_msgmgr_queue_setup()
641 qinst->queue_buff_start, qinst->queue_buff_end); in ti_msgmgr_queue_setup()
714 struct ti_queue_inst *qinst; in ti_msgmgr_probe() local
773 qinst = devm_kcalloc(dev, queue_count, sizeof(*qinst), GFP_KERNEL); in ti_msgmgr_probe()
774 if (!qinst) in ti_msgmgr_probe()
776 inst->qinsts = qinst; in ti_msgmgr_probe()
787 for (i = 0; i < queue_count; i++, qinst++, chans++) { in ti_msgmgr_probe()
791 desc, &sproxy_desc, qinst, in ti_msgmgr_probe()
799 i < queue_count; i++, qinst++, chans++, queue_desc++) { in ti_msgmgr_probe()
801 desc, queue_desc, qinst, in ti_msgmgr_probe()