Lines Matching refs:cmd_q
51 ret = rte_atomic64_read(&dev->cmd_q[dev->qidx].free_slots); in ccp_allot_queue()
53 return &dev->cmd_q[dev->qidx]; in ccp_allot_queue()
58 ret = rte_atomic64_read(&dev->cmd_q[dev->qidx].free_slots); in ccp_allot_queue()
60 return &dev->cmd_q[dev->qidx]; in ccp_allot_queue()
279 ccp_lsb_alloc(struct ccp_queue *cmd_q, unsigned int count) in ccp_lsb_alloc() argument
285 if (cmd_q->lsb >= 0) { in ccp_lsb_alloc()
286 start = (uint32_t)ccp_bitmap_find_next_zero_area(cmd_q->lsbmap, in ccp_lsb_alloc()
290 ccp_bitmap_set(cmd_q->lsbmap, start, count); in ccp_lsb_alloc()
291 return start + cmd_q->lsb * LSB_SIZE; in ccp_lsb_alloc()
296 ccp = cmd_q->dev; in ccp_lsb_alloc()
316 ccp_lsb_free(struct ccp_queue *cmd_q, in ccp_lsb_free() argument
325 if (cmd_q->lsb == lsbno) { in ccp_lsb_free()
327 ccp_bitmap_clear(cmd_q->lsbmap, start % LSB_SIZE, count); in ccp_lsb_free()
330 struct ccp_device *ccp = cmd_q->dev; in ccp_lsb_free()
339 ccp_find_lsb_regions(struct ccp_queue *cmd_q, uint64_t status) in ccp_find_lsb_regions() argument
341 int q_mask = 1 << cmd_q->id; in ccp_find_lsb_regions()
351 cmd_q->lsbmask = 0; in ccp_find_lsb_regions()
355 ccp_set_bit(&cmd_q->lsbmask, j); in ccp_find_lsb_regions()
361 if (ccp_get_bit(&cmd_q->lsbmask, j)) in ccp_find_lsb_regions()
365 (int)cmd_q->id, weight, cmd_q->lsbmask); in ccp_find_lsb_regions()
391 struct ccp_queue *cmd_q = &ccp->cmd_q[i]; in ccp_find_and_assign_lsb_to_q() local
395 if (ccp_get_bit(&cmd_q->lsbmask, j)) in ccp_find_and_assign_lsb_to_q()
399 qlsb = cmd_q->lsbmask; in ccp_find_and_assign_lsb_to_q()
407 cmd_q->lsb = bitno; in ccp_find_and_assign_lsb_to_q()
442 lsb_pub |= ccp->cmd_q[i].lsbmask; in ccp_assign_lsbs()
488 struct ccp_queue *cmd_q; in ccp_add_device() local
530 cmd_q = &dev->cmd_q[dev->cmd_q_count++]; in ccp_add_device()
531 cmd_q->dev = dev; in ccp_add_device()
532 cmd_q->id = i; in ccp_add_device()
533 cmd_q->qidx = 0; in ccp_add_device()
534 cmd_q->qsize = Q_SIZE(Q_DESC_SIZE); in ccp_add_device()
536 cmd_q->reg_base = (uint8_t *)vaddr + in ccp_add_device()
540 snprintf(cmd_q->memz_name, sizeof(cmd_q->memz_name), in ccp_add_device()
544 (int)cmd_q->id, "mem"); in ccp_add_device()
545 q_mz = ccp_queue_dma_zone_reserve(cmd_q->memz_name, in ccp_add_device()
546 cmd_q->qsize, SOCKET_ID_ANY); in ccp_add_device()
547 cmd_q->qbase_addr = (void *)q_mz->addr; in ccp_add_device()
548 cmd_q->qbase_desc = (void *)q_mz->addr; in ccp_add_device()
549 cmd_q->qbase_phys_addr = q_mz->iova; in ccp_add_device()
551 cmd_q->qcontrol = 0; in ccp_add_device()
553 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_CONTROL_BASE, in ccp_add_device()
554 cmd_q->qcontrol); in ccp_add_device()
557 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_INT_ENABLE_BASE, 0x00); in ccp_add_device()
558 CCP_READ_REG(cmd_q->reg_base, CMD_Q_INT_STATUS_BASE); in ccp_add_device()
559 CCP_READ_REG(cmd_q->reg_base, CMD_Q_STATUS_BASE); in ccp_add_device()
562 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_INTERRUPT_STATUS_BASE, in ccp_add_device()
566 cmd_q->qcontrol &= ~(CMD_Q_SIZE << CMD_Q_SHIFT); in ccp_add_device()
567 cmd_q->qcontrol |= QUEUE_SIZE_VAL << CMD_Q_SHIFT; in ccp_add_device()
569 dma_addr_lo = low32_value(cmd_q->qbase_phys_addr); in ccp_add_device()
570 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_TAIL_LO_BASE, in ccp_add_device()
572 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_HEAD_LO_BASE, in ccp_add_device()
575 dma_addr_hi = high32_value(cmd_q->qbase_phys_addr); in ccp_add_device()
576 cmd_q->qcontrol |= (dma_addr_hi << 16); in ccp_add_device()
577 CCP_WRITE_REG(cmd_q->reg_base, CMD_Q_CONTROL_BASE, in ccp_add_device()
578 cmd_q->qcontrol); in ccp_add_device()
581 if (ccp_find_lsb_regions(cmd_q, status)) in ccp_add_device()
583 cmd_q->lsb = -1; in ccp_add_device()
585 rte_atomic64_init(&cmd_q->free_slots); in ccp_add_device()
586 rte_atomic64_set(&cmd_q->free_slots, (COMMANDS_PER_QUEUE - 1)); in ccp_add_device()
595 dev->cmd_q[i].sb_key = in ccp_add_device()
596 ccp_lsb_alloc(&dev->cmd_q[i], 1); in ccp_add_device()
597 dev->cmd_q[i].sb_iv = in ccp_add_device()
598 ccp_lsb_alloc(&dev->cmd_q[i], 1); in ccp_add_device()
599 dev->cmd_q[i].sb_sha = in ccp_add_device()
600 ccp_lsb_alloc(&dev->cmd_q[i], 2); in ccp_add_device()
601 dev->cmd_q[i].sb_hmac = in ccp_add_device()
602 ccp_lsb_alloc(&dev->cmd_q[i], 2); in ccp_add_device()