| 276 | } |
| 277 | |
| 278 | void |
| 279 | ionic_dev_cmd_adminq_init(struct ionic_dev *idev, struct ionic_qcq *qcq) |
| 280 | { |
| 281 | struct ionic_queue *q = &qcq->q; |
| 282 | struct ionic_cq *cq = &qcq->cq; |
| 283 | |
| 284 | union ionic_dev_cmd cmd = { |
| 285 | .q_init.opcode = IONIC_CMD_Q_INIT, |
| 286 | .q_init.type = q->type, |
| 287 | .q_init.ver = qcq->lif->qtype_info[q->type].version, |
| 288 | .q_init.index = rte_cpu_to_le_32(q->index), |
| 289 | .q_init.flags = rte_cpu_to_le_16(IONIC_QINIT_F_ENA), |
| 290 | .q_init.intr_index = rte_cpu_to_le_16(IONIC_INTR_NONE), |
| 291 | .q_init.ring_size = rte_log2_u32(q->num_descs), |
| 292 | .q_init.ring_base = rte_cpu_to_le_64(q->base_pa), |
| 293 | .q_init.cq_ring_base = rte_cpu_to_le_64(cq->base_pa), |
| 294 | }; |
| 295 | |
| 296 | IONIC_PRINT(DEBUG, "adminq.q_init.ver %u", cmd.q_init.ver); |
| 297 | |
| 298 | ionic_dev_cmd_go(idev, &cmd); |
| 299 | } |
| 300 | |
| 301 | int |
| 302 | ionic_cq_init(struct ionic_cq *cq, uint16_t num_descs) |
no test coverage detected