Lines Matching refs:cmd_q
52 ret = rte_atomic64_read(&dev->cmd_q[dev->qidx].free_slots); in ccp_allot_queue()
54 return &dev->cmd_q[dev->qidx]; in ccp_allot_queue()
59 ret = rte_atomic64_read(&dev->cmd_q[dev->qidx].free_slots); in ccp_allot_queue()
61 return &dev->cmd_q[dev->qidx]; in ccp_allot_queue()
280 ccp_lsb_alloc(struct ccp_queue *cmd_q, unsigned int count) in ccp_lsb_alloc() argument
286 if (cmd_q->lsb >= 0) { in ccp_lsb_alloc()
287 start = (uint32_t)ccp_bitmap_find_next_zero_area(cmd_q->lsbmap, in ccp_lsb_alloc()
291 ccp_bitmap_set(cmd_q->lsbmap, start, count); in ccp_lsb_alloc()
292 return start + cmd_q->lsb * LSB_SIZE; in ccp_lsb_alloc()
297 ccp = cmd_q->dev; in ccp_lsb_alloc()
317 ccp_lsb_free(struct ccp_queue *cmd_q, in ccp_lsb_free() argument
326 if (cmd_q->lsb == lsbno) { in ccp_lsb_free()
328 ccp_bitmap_clear(cmd_q->lsbmap, start % LSB_SIZE, count); in ccp_lsb_free()
331 struct ccp_device *ccp = cmd_q->dev; in ccp_lsb_free()
340 ccp_find_lsb_regions(struct ccp_queue *cmd_q, uint64_t status) in ccp_find_lsb_regions() argument
342 int q_mask = 1 << cmd_q->id; in ccp_find_lsb_regions()
352 cmd_q->lsbmask = 0; in ccp_find_lsb_regions()
356 ccp_set_bit(&cmd_q->lsbmask, j); in ccp_find_lsb_regions()
362 if (ccp_get_bit(&cmd_q->lsbmask, j)) in ccp_find_lsb_regions()
366 (int)cmd_q->id, weight, cmd_q->lsbmask); in ccp_find_lsb_regions()
392 struct ccp_queue *cmd_q = &ccp->cmd_q[i]; in ccp_find_and_assign_lsb_to_q() local
396 if (ccp_get_bit(&cmd_q->lsbmask, j)) in ccp_find_and_assign_lsb_to_q()
400 qlsb = cmd_q->lsbmask; in ccp_find_and_assign_lsb_to_q()
408 cmd_q->lsb = bitno; in ccp_find_and_assign_lsb_to_q()
443 lsb_pub |= ccp->cmd_q[i].lsbmask; in ccp_assign_lsbs()
489 struct ccp_queue *cmd_q; in ccp_add_device() local
531 cmd_q = &dev->cmd_q[dev->cmd_q_count++]; in ccp_add_device()
532 cmd_q->dev = dev; in ccp_add_device()
533 cmd_q->id = i; in ccp_add_device()
534 cmd_q->qidx = 0; in ccp_add_device()
535 cmd_q->qsize = Q_SIZE(Q_DESC_SIZE); in ccp_add_device()
537 cmd_q->reg_base = (uint8_t *)vaddr + in ccp_add_device()
541 snprintf(cmd_q->memz_name, sizeof(cmd_q->memz_name), in ccp_add_device()
545 (int)cmd_q->id, "mem"); in ccp_add_device()
546 q_mz = ccp_queue_dma_zone_reserve(cmd_q->memz_name, in ccp_add_device()
547 cmd_q->qsize, SOCKET_ID_ANY); in ccp_add_device()
548 cmd_q->qbase_addr = (void *)q_mz->addr; in ccp_add_device()
549 cmd_q->qbase_desc = (void *)q_mz->addr; in ccp_add_device()
550 cmd_q->qbase_phys_addr = q_mz->iova; in ccp_add_device()
552 cmd_q->qcontrol = 0; in ccp_add_device()
554 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_CONTROL_BASE, in ccp_add_device()
555 cmd_q->qcontrol); in ccp_add_device()
558 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_INT_ENABLE_BASE, 0x00); in ccp_add_device()
559 CCP_READ_REG(cmd_q->reg_base, CMD_Q_INT_STATUS_BASE); in ccp_add_device()
560 CCP_READ_REG(cmd_q->reg_base, CMD_Q_STATUS_BASE); in ccp_add_device()
563 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_INTERRUPT_STATUS_BASE, in ccp_add_device()
567 cmd_q->qcontrol &= ~(CMD_Q_SIZE << CMD_Q_SHIFT); in ccp_add_device()
568 cmd_q->qcontrol |= QUEUE_SIZE_VAL << CMD_Q_SHIFT; in ccp_add_device()
570 dma_addr_lo = low32_value(cmd_q->qbase_phys_addr); in ccp_add_device()
571 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_TAIL_LO_BASE, in ccp_add_device()
573 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_HEAD_LO_BASE, in ccp_add_device()
576 dma_addr_hi = high32_value(cmd_q->qbase_phys_addr); in ccp_add_device()
577 cmd_q->qcontrol |= (dma_addr_hi << 16); in ccp_add_device()
578 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_CONTROL_BASE, in ccp_add_device()
579 cmd_q->qcontrol); in ccp_add_device()
582 if (ccp_find_lsb_regions(cmd_q, status)) in ccp_add_device()
584 cmd_q->lsb = -1; in ccp_add_device()
586 rte_atomic64_init(&cmd_q->free_slots); in ccp_add_device()
587 rte_atomic64_set(&cmd_q->free_slots, (COMMANDS_PER_QUEUE - 1)); in ccp_add_device()
596 dev->cmd_q[i].sb_key = in ccp_add_device()
597 ccp_lsb_alloc(&dev->cmd_q[i], 1); in ccp_add_device()
598 dev->cmd_q[i].sb_iv = in ccp_add_device()
599 ccp_lsb_alloc(&dev->cmd_q[i], 1); in ccp_add_device()
600 dev->cmd_q[i].sb_sha = in ccp_add_device()
601 ccp_lsb_alloc(&dev->cmd_q[i], 2); in ccp_add_device()
602 dev->cmd_q[i].sb_hmac = in ccp_add_device()
603 ccp_lsb_alloc(&dev->cmd_q[i], 2); in ccp_add_device()