Lines Matching +full:dma +full:- +full:queues

1 /*-
2 * Copyright 2016-2023 Microchip Technology, Inc. and/or its subsidiaries.
39 ob_queue_t *ob_q = &softs->admin_ob_queue; in pqisrc_submit_admin_req()
40 ib_queue_t *ib_q = &softs->admin_ib_queue; in pqisrc_submit_admin_req()
45 req->header.iu_type = in pqisrc_submit_admin_req()
47 req->header.comp_feature = 0x00; in pqisrc_submit_admin_req()
48 req->header.iu_length = PQI_STANDARD_IU_LENGTH; in pqisrc_submit_admin_req()
49 req->res1 = 0; in pqisrc_submit_admin_req()
50 req->work = 0; in pqisrc_submit_admin_req()
53 req->req_id = pqisrc_get_tag(&softs->taglist); in pqisrc_submit_admin_req()
54 if (INVALID_ELEM == req->req_id) { in pqisrc_submit_admin_req()
55 DBG_ERR("Tag not available0x%x\n",(uint16_t)req->req_id); in pqisrc_submit_admin_req()
59 softs->rcb[req->req_id].tag = req->req_id; in pqisrc_submit_admin_req()
69 COND_WAIT((*(ob_q->pi_virt_addr) != ob_q->ci_local), tmo); in pqisrc_submit_admin_req()
79 memcpy(resp, ob_q->array_virt_addr + (ob_q->ci_local * ob_q->elem_size), in pqisrc_submit_admin_req()
83 ob_q->ci_local = (ob_q->ci_local + 1 ) % ob_q->num_elem; in pqisrc_submit_admin_req()
84 PCI_MEM_PUT32(softs, ob_q->ci_register_abs, in pqisrc_submit_admin_req()
85 ob_q->ci_register_offset, LE_32(ob_q->ci_local)); in pqisrc_submit_admin_req()
88 ASSERT(req->fn_code == resp->fn_code); in pqisrc_submit_admin_req()
89 ASSERT(resp->header.iu_type == PQI_IU_TYPE_GENERAL_ADMIN_RESPONSE); in pqisrc_submit_admin_req()
90 ret = resp->status; in pqisrc_submit_admin_req()
94 os_reset_rcb(&softs->rcb[req->req_id]); in pqisrc_submit_admin_req()
95 pqisrc_put_tag(&softs->taglist,req->req_id); in pqisrc_submit_admin_req()
99 os_reset_rcb(&softs->rcb[req->req_id]); in pqisrc_submit_admin_req()
100 pqisrc_put_tag(&softs->taglist,req->req_id); in pqisrc_submit_admin_req()
115 val = LE_64(PCI_MEM_GET64(softs, &softs->pqi_reg->pqi_dev_adminq_cap, PQI_ADMINQ_CAP)); in pqisrc_get_admin_queue_config()
118 softs->admin_ib_queue.num_elem = val & 0xFF; in pqisrc_get_admin_queue_config()
119 softs->admin_ob_queue.num_elem = (val & 0xFF00) >> 8; in pqisrc_get_admin_queue_config()
121 softs->admin_ib_queue.elem_size = ((val & 0xFF0000) >> 16) * 16; in pqisrc_get_admin_queue_config()
122 softs->admin_ob_queue.elem_size = ((val & 0xFF000000) >> 24) * 16; in pqisrc_get_admin_queue_config()
125 softs->admin_ib_queue.num_elem, softs->admin_ib_queue.elem_size); in pqisrc_get_admin_queue_config()
127 softs->admin_ob_queue.num_elem, softs->admin_ob_queue.elem_size); in pqisrc_get_admin_queue_config()
131 * Decide the no of elements in admin ib and ob queues.
137 softs->admin_ib_queue.num_elem = MIN(softs->admin_ib_queue.num_elem, in pqisrc_decide_admin_queue_config()
141 softs->admin_ob_queue.num_elem = MIN(softs->admin_ob_queue.num_elem, in pqisrc_decide_admin_queue_config()
146 * Allocate DMA memory for inbound queue and initialize.
151 struct dma_mem *dma_mem = &ib_q->alloc_dma; in pqisrc_allocate_and_init_inbound_q()
158 ib_array_size = ib_q->num_elem * ib_q->elem_size; in pqisrc_allocate_and_init_inbound_q()
165 os_strlcpy(dma_mem->tag, tag, sizeof(dma_mem->tag)); in pqisrc_allocate_and_init_inbound_q()
166 dma_mem->size = alloc_size; in pqisrc_allocate_and_init_inbound_q()
167 dma_mem->align = PQI_ADDR_ALIGN; in pqisrc_allocate_and_init_inbound_q()
168 ret = os_dma_mem_alloc(softs, &ib_q->alloc_dma); in pqisrc_allocate_and_init_inbound_q()
170 DBG_ERR("Failed to Allocate Q tag=%s ret=%d\n", dma_mem->tag, ret); in pqisrc_allocate_and_init_inbound_q()
175 dma_mem->tag, dma_mem->size, dma_mem->align, dma_mem->virt_addr, (void*)dma_mem->dma_addr); in pqisrc_allocate_and_init_inbound_q()
178 virt_addr = dma_mem->virt_addr; in pqisrc_allocate_and_init_inbound_q()
179 dma_addr = dma_mem->dma_addr; in pqisrc_allocate_and_init_inbound_q()
185 ib_q->array_virt_addr = virt_addr; in pqisrc_allocate_and_init_inbound_q()
186 ib_q->array_dma_addr = dma_addr; in pqisrc_allocate_and_init_inbound_q()
187 ib_q->pi_local = 0; in pqisrc_allocate_and_init_inbound_q()
195 ib_q->ci_virt_addr = (uint32_t*)virt_addr; in pqisrc_allocate_and_init_inbound_q()
196 ib_q->ci_dma_addr = dma_addr; in pqisrc_allocate_and_init_inbound_q()
202 ib_q->array_virt_addr, (void*)ib_q->ci_dma_addr, ib_q->num_elem, ib_array_size); in pqisrc_allocate_and_init_inbound_q()
205 ASSERT(virt_addr <= ((char*)dma_mem->virt_addr + alloc_size)); in pqisrc_allocate_and_init_inbound_q()
217 * Allocate DMA memory for outbound queue and initialize.
223 struct dma_mem *dma_mem = &ob_q->alloc_dma; in pqisrc_allocate_and_init_outbound_q()
230 ob_array_size = ob_q->num_elem * ob_q->elem_size; in pqisrc_allocate_and_init_outbound_q()
237 os_strlcpy(dma_mem->tag, tag, sizeof(dma_mem->tag)); in pqisrc_allocate_and_init_outbound_q()
238 dma_mem->size = alloc_size; in pqisrc_allocate_and_init_outbound_q()
239 dma_mem->align = PQI_ADDR_ALIGN; in pqisrc_allocate_and_init_outbound_q()
240 ret = os_dma_mem_alloc(softs, &ob_q->alloc_dma); in pqisrc_allocate_and_init_outbound_q()
242 DBG_ERR("Failed to Allocate Q tag=%s ret=%d\n", dma_mem->tag, ret); in pqisrc_allocate_and_init_outbound_q()
247 dma_mem->tag, dma_mem->size, dma_mem->align, dma_mem->virt_addr, (void*)dma_mem->dma_addr); in pqisrc_allocate_and_init_outbound_q()
250 virt_addr = dma_mem->virt_addr; in pqisrc_allocate_and_init_outbound_q()
251 dma_addr = dma_mem->dma_addr; in pqisrc_allocate_and_init_outbound_q()
255 ob_q->array_virt_addr = virt_addr; in pqisrc_allocate_and_init_outbound_q()
256 ob_q->array_dma_addr = dma_addr; in pqisrc_allocate_and_init_outbound_q()
257 ob_q->ci_local = 0; in pqisrc_allocate_and_init_outbound_q()
265 ob_q->pi_virt_addr = (uint32_t*)virt_addr; in pqisrc_allocate_and_init_outbound_q()
266 ob_q->pi_dma_addr = dma_addr; in pqisrc_allocate_and_init_outbound_q()
272 ob_q->array_virt_addr, (void*)ob_q->pi_dma_addr, ob_q->num_elem, ob_array_size); in pqisrc_allocate_and_init_outbound_q()
275 ASSERT(virt_addr <= ((char*)dma_mem->virt_addr + alloc_size)); in pqisrc_allocate_and_init_outbound_q()
286 * Allocate DMA memory for admin queue and initialize.
291 ib_queue_t *admin_ib_q = &softs->admin_ib_queue; in pqisrc_allocate_and_init_adminq()
292 ob_queue_t *admin_ob_q = &softs->admin_ob_queue; in pqisrc_allocate_and_init_adminq()
296 admin_ib_q->q_id = PQI_ADMIN_IB_QUEUE_ID; in pqisrc_allocate_and_init_adminq()
299 admin_ob_q->q_id = PQI_ADMIN_OB_QUEUE_ID; in pqisrc_allocate_and_init_adminq()
301 if(softs->admin_ib_queue.lockcreated==true) { in pqisrc_allocate_and_init_adminq()
302 OS_UNINIT_PQILOCK(&softs->admin_ib_queue.lock); in pqisrc_allocate_and_init_adminq()
303 softs->admin_ib_queue.lockcreated = false; in pqisrc_allocate_and_init_adminq()
305 if (softs->admin_ib_queue.alloc_dma.virt_addr) in pqisrc_allocate_and_init_adminq()
306 os_dma_mem_free(softs, &softs->admin_ib_queue.alloc_dma); in pqisrc_allocate_and_init_adminq()
326 PCI_MEM_PUT64(softs, &softs->pqi_reg->admin_q_config, PQI_ADMINQ_CONFIG, LE_64(cmd)); in pqisrc_create_delete_adminq()
334 COND_WAIT((PCI_MEM_GET64(softs, &softs->pqi_reg->admin_q_config, PQI_ADMINQ_CONFIG) == in pqisrc_create_delete_adminq()
351 DBG_INFO(" softs->admin_ib_queue.array_dma_addr : %p\n", in pqisrc_print_adminq_config()
352 (void*)softs->admin_ib_queue.array_dma_addr); in pqisrc_print_adminq_config()
353 DBG_INFO(" softs->admin_ib_queue.array_virt_addr : %p\n", in pqisrc_print_adminq_config()
354 (void*)softs->admin_ib_queue.array_virt_addr); in pqisrc_print_adminq_config()
355 DBG_INFO(" softs->admin_ib_queue.num_elem : %u\n", in pqisrc_print_adminq_config()
356 softs->admin_ib_queue.num_elem); in pqisrc_print_adminq_config()
357 DBG_INFO(" softs->admin_ib_queue.elem_size : %u\n", in pqisrc_print_adminq_config()
358 softs->admin_ib_queue.elem_size); in pqisrc_print_adminq_config()
359 DBG_INFO(" softs->admin_ob_queue.array_dma_addr : %p\n", in pqisrc_print_adminq_config()
360 (void*)softs->admin_ob_queue.array_dma_addr); in pqisrc_print_adminq_config()
361 DBG_INFO(" softs->admin_ob_queue.array_virt_addr : %p\n", in pqisrc_print_adminq_config()
362 (void*)softs->admin_ob_queue.array_virt_addr); in pqisrc_print_adminq_config()
363 DBG_INFO(" softs->admin_ob_queue.num_elem : %u\n", in pqisrc_print_adminq_config()
364 softs->admin_ob_queue.num_elem); in pqisrc_print_adminq_config()
365 DBG_INFO(" softs->admin_ob_queue.elem_size : %u\n", in pqisrc_print_adminq_config()
366 softs->admin_ob_queue.elem_size); in pqisrc_print_adminq_config()
367 DBG_INFO(" softs->admin_ib_queue.pi_register_abs : %p\n", in pqisrc_print_adminq_config()
368 (void*)softs->admin_ib_queue.pi_register_abs); in pqisrc_print_adminq_config()
369 DBG_INFO(" softs->admin_ob_queue.ci_register_abs : %p\n", in pqisrc_print_adminq_config()
370 (void*)softs->admin_ob_queue.ci_register_abs); in pqisrc_print_adminq_config()
385 /* Get admin queue details - pqi2-r00a - table 24 */ in pqisrc_create_admin_queue()
399 PCI_MEM_PUT64(softs, &softs->pqi_reg->admin_ibq_elem_array_addr, in pqisrc_create_admin_queue()
400 PQI_ADMIN_IBQ_ELEM_ARRAY_ADDR, LE_64(softs->admin_ib_queue.array_dma_addr)); in pqisrc_create_admin_queue()
403 PCI_MEM_PUT64(softs, &softs->pqi_reg->admin_obq_elem_array_addr, in pqisrc_create_admin_queue()
404 PQI_ADMIN_OBQ_ELEM_ARRAY_ADDR, LE_64(softs->admin_ob_queue.array_dma_addr)); in pqisrc_create_admin_queue()
407 PCI_MEM_PUT64(softs, &softs->pqi_reg->admin_ibq_ci_addr, in pqisrc_create_admin_queue()
408 PQI_ADMIN_IBQ_CI_ADDR, LE_64(softs->admin_ib_queue.ci_dma_addr)); in pqisrc_create_admin_queue()
411 PCI_MEM_PUT64(softs, &softs->pqi_reg->admin_obq_pi_addr, in pqisrc_create_admin_queue()
412 PQI_ADMIN_OBQ_PI_ADDR, LE_64(softs->admin_ob_queue.pi_dma_addr)); in pqisrc_create_admin_queue()
415 /* Write Admin Q params pqi-r200a table 36 */ in pqisrc_create_admin_queue()
417 admin_q_param = softs->admin_ib_queue.num_elem | in pqisrc_create_admin_queue()
418 (softs->admin_ob_queue.num_elem << 8)| in pqisrc_create_admin_queue()
421 PCI_MEM_PUT32(softs, &softs->pqi_reg->admin_q_param, in pqisrc_create_admin_queue()
433 softs->admin_ib_queue.pi_register_offset =(PQISRC_PQI_REG_OFFSET + in pqisrc_create_admin_queue()
434 PCI_MEM_GET64(softs, &softs->pqi_reg->admin_ibq_pi_offset, PQI_ADMIN_IBQ_PI_OFFSET)); in pqisrc_create_admin_queue()
436 softs->admin_ib_queue.pi_register_abs =(uint32_t *)(softs->pci_mem_base_vaddr + in pqisrc_create_admin_queue()
437 softs->admin_ib_queue.pi_register_offset); in pqisrc_create_admin_queue()
439 softs->admin_ob_queue.ci_register_offset = (PQISRC_PQI_REG_OFFSET + in pqisrc_create_admin_queue()
440 PCI_MEM_GET64(softs, &softs->pqi_reg->admin_obq_ci_offset, PQI_ADMIN_OBQ_CI_OFFSET)); in pqisrc_create_admin_queue()
442 softs->admin_ob_queue.ci_register_abs = (uint32_t *)(softs->pci_mem_base_vaddr + in pqisrc_create_admin_queue()
443 softs->admin_ob_queue.ci_register_offset); in pqisrc_create_admin_queue()
445 os_strlcpy(softs->admin_ib_queue.lockname, "admin_ibqlock", LOCKNAME_SIZE); in pqisrc_create_admin_queue()
447 ret =OS_INIT_PQILOCK(softs, &softs->admin_ib_queue.lock, in pqisrc_create_admin_queue()
448 softs->admin_ib_queue.lockname); in pqisrc_create_admin_queue()
451 softs->admin_ib_queue.lockcreated = false; in pqisrc_create_admin_queue()
454 softs->admin_ib_queue.lockcreated = true; in pqisrc_create_admin_queue()
516 if (softs->event_q.created == true) { in pqisrc_destroy_event_queue()
518 ret = pqisrc_delete_op_queue(softs, softs->event_q.q_id, false); in pqisrc_destroy_event_queue()
520 DBG_ERR("Failed to Delete Event Q %u\n", softs->event_q.q_id); in pqisrc_destroy_event_queue()
522 softs->event_q.created = false; in pqisrc_destroy_event_queue()
526 if (softs->event_q.alloc_dma.virt_addr) in pqisrc_destroy_event_queue()
527 os_dma_mem_free(softs, &softs->event_q.alloc_dma); in pqisrc_destroy_event_queue()
533 * Function used to destroy operational ib queues.
540 uint32_t total_op_ibq = softs->num_op_raid_ibq; in pqisrc_destroy_op_ib_queues()
548 op_ib_q = &softs->op_raid_ib_q[i]; in pqisrc_destroy_op_ib_queues()
550 if (op_ib_q->created == true) { in pqisrc_destroy_op_ib_queues()
551 ret = pqisrc_delete_op_queue(softs, op_ib_q->q_id, in pqisrc_destroy_op_ib_queues()
555 op_ib_q->q_id); in pqisrc_destroy_op_ib_queues()
557 op_ib_q->created = false; in pqisrc_destroy_op_ib_queues()
560 if (op_ib_q->lockcreated == true) { in pqisrc_destroy_op_ib_queues()
561 OS_UNINIT_PQILOCK(&op_ib_q->lock); in pqisrc_destroy_op_ib_queues()
562 op_ib_q->lockcreated = false; in pqisrc_destroy_op_ib_queues()
566 if (op_ib_q->alloc_dma.virt_addr) in pqisrc_destroy_op_ib_queues()
567 os_dma_mem_free(softs, &op_ib_q->alloc_dma); in pqisrc_destroy_op_ib_queues()
571 op_ib_q = &softs->op_aio_ib_q[i]; in pqisrc_destroy_op_ib_queues()
580 * Function used to destroy operational ob queues.
591 for (i = 0; i < softs->num_op_obq; i++) { in pqisrc_destroy_op_ob_queues()
592 op_ob_q = &softs->op_ob_q[i]; in pqisrc_destroy_op_ob_queues()
594 if (op_ob_q->created == true) { in pqisrc_destroy_op_ob_queues()
595 ret = pqisrc_delete_op_queue(softs, op_ob_q->q_id, false); in pqisrc_destroy_op_ob_queues()
597 DBG_ERR("Failed to Delete OB Q %u\n",op_ob_q->q_id); in pqisrc_destroy_op_ob_queues()
599 op_ob_q->created = false; in pqisrc_destroy_op_ob_queues()
603 if (op_ob_q->alloc_dma.virt_addr) in pqisrc_destroy_op_ob_queues()
604 os_dma_mem_free(softs, &op_ob_q->alloc_dma); in pqisrc_destroy_op_ob_queues()
621 if(softs->admin_ib_queue.lockcreated==true) { in pqisrc_destroy_admin_queue()
622 OS_UNINIT_PQILOCK(&softs->admin_ib_queue.lock); in pqisrc_destroy_admin_queue()
623 softs->admin_ib_queue.lockcreated = false; in pqisrc_destroy_admin_queue()
631 if (softs->admin_ib_queue.alloc_dma.virt_addr) in pqisrc_destroy_admin_queue()
632 os_dma_mem_free(softs, &softs->admin_ib_queue.alloc_dma); in pqisrc_destroy_admin_queue()
634 if (softs->admin_ob_queue.alloc_dma.virt_addr) in pqisrc_destroy_admin_queue()
635 os_dma_mem_free(softs, &softs->admin_ob_queue.alloc_dma); in pqisrc_destroy_admin_queue()
658 admin_req.req_type.change_op_iq_prop.qid = op_ib_q->q_id; in pqisrc_change_op_ibq_queue_prop()
684 admin_req.req_type.create_op_oq.qid = op_ob_q->q_id; in pqisrc_create_op_obq()
685 admin_req.req_type.create_op_oq.intr_msg_num = op_ob_q->intr_msg_num; in pqisrc_create_op_obq()
686 admin_req.req_type.create_op_oq.elem_arr_addr = op_ob_q->array_dma_addr; in pqisrc_create_op_obq()
687 admin_req.req_type.create_op_oq.ob_pi_addr = op_ob_q->pi_dma_addr; in pqisrc_create_op_obq()
688 admin_req.req_type.create_op_oq.num_elem = op_ob_q->num_elem; in pqisrc_create_op_obq()
689 admin_req.req_type.create_op_oq.elem_len = op_ob_q->elem_size / 16; in pqisrc_create_op_obq()
696 op_ob_q->ci_register_offset = (PQISRC_PQI_REG_OFFSET + in pqisrc_create_op_obq()
698 op_ob_q->ci_register_abs = (uint32_t *)(softs->pci_mem_base_vaddr + in pqisrc_create_op_obq()
699 op_ob_q->ci_register_offset); in pqisrc_create_op_obq()
729 admin_req.req_type.create_op_iq.qid = op_ib_q->q_id; in pqisrc_create_op_ibq()
730 admin_req.req_type.create_op_iq.elem_arr_addr = op_ib_q->array_dma_addr; in pqisrc_create_op_ibq()
731 admin_req.req_type.create_op_iq.iq_ci_addr = op_ib_q->ci_dma_addr; in pqisrc_create_op_ibq()
732 admin_req.req_type.create_op_iq.num_elem = op_ib_q->num_elem; in pqisrc_create_op_ibq()
733 admin_req.req_type.create_op_iq.elem_len = op_ib_q->elem_size / 16; in pqisrc_create_op_ibq()
738 op_ib_q->pi_register_offset =(PQISRC_PQI_REG_OFFSET + in pqisrc_create_op_ibq()
741 op_ib_q->pi_register_abs =(uint32_t *)(softs->pci_mem_base_vaddr + in pqisrc_create_op_ibq()
742 op_ib_q->pi_register_offset); in pqisrc_create_op_ibq()
799 ob_queue_t *event_q = &softs->event_q; in pqisrc_alloc_and_create_event_queue()
812 num_elem = MIN(softs->num_elem_per_op_obq, PQISRC_MAX_EVENT_QUEUE_ELEM_NUM); in pqisrc_alloc_and_create_event_queue()
817 event_q->num_elem = num_elem; in pqisrc_alloc_and_create_event_queue()
818 event_q->elem_size = PQISRC_EVENT_Q_ELEM_SIZE_BYTES; in pqisrc_alloc_and_create_event_queue()
826 event_q->q_id = PQI_OP_EVENT_QUEUE_ID; in pqisrc_alloc_and_create_event_queue()
827 event_q->intr_msg_num = 0; /* vector zero for event */ in pqisrc_alloc_and_create_event_queue()
831 DBG_ERR("Failed to Create EventQ %u\n",event_q->q_id); in pqisrc_alloc_and_create_event_queue()
834 event_q->created = true; in pqisrc_alloc_and_create_event_queue()
847 * Allocate DMA memory and create operational ib queues.
855 uint32_t total_op_ibq = softs->num_op_raid_ibq + softs->num_op_aio_ibq; in pqisrc_alloc_and_create_ib_queues()
861 ASSERT(softs->num_op_raid_ibq == softs->num_op_aio_ibq); in pqisrc_alloc_and_create_ib_queues()
868 op_ib_q = &softs->op_raid_ib_q[i/2]; in pqisrc_alloc_and_create_ib_queues()
873 op_ib_q = &softs->op_aio_ib_q[i/2]; in pqisrc_alloc_and_create_ib_queues()
877 /* Allocate memory for IB queues */ in pqisrc_alloc_and_create_ib_queues()
878 op_ib_q->num_elem = softs->num_elem_per_op_ibq; in pqisrc_alloc_and_create_ib_queues()
879 op_ib_q->elem_size = softs->max_ibq_elem_size; in pqisrc_alloc_and_create_ib_queues()
887 op_ib_q->q_id = ibq_id++; in pqisrc_alloc_and_create_ib_queues()
889 snprintf(op_ib_q->lockname, LOCKNAME_SIZE, "%s_ibqlock_%d", string, i); in pqisrc_alloc_and_create_ib_queues()
890 ret = OS_INIT_PQILOCK(softs, &op_ib_q->lock, op_ib_q->lockname); in pqisrc_alloc_and_create_ib_queues()
894 op_ib_q->lockcreated = false; in pqisrc_alloc_and_create_ib_queues()
897 op_ib_q->lockcreated = true; in pqisrc_alloc_and_create_ib_queues()
905 string, op_ib_q->q_id); in pqisrc_alloc_and_create_ib_queues()
908 op_ib_q->created = true; in pqisrc_alloc_and_create_ib_queues()
923 * Allocate DMA memory and create operational ob queues.
942 ALIGN_BOUNDARY(softs->num_elem_per_op_obq, 4); in pqisrc_alloc_and_create_ob_queues()
944 …DBG_INIT("softs->num_op_obq %u max_obq_elem_size=%u\n",softs->num_op_obq, softs->max_obq_elem_size… in pqisrc_alloc_and_create_ob_queues()
946 for (i = 0; i < softs->num_op_obq; i++) { in pqisrc_alloc_and_create_ob_queues()
947 op_ob_q = &softs->op_ob_q[i]; in pqisrc_alloc_and_create_ob_queues()
949 /* Allocate memory for OB queues */ in pqisrc_alloc_and_create_ob_queues()
950 op_ob_q->num_elem = softs->num_elem_per_op_obq; in pqisrc_alloc_and_create_ob_queues()
951 op_ob_q->elem_size = PQISRC_OP_OBQ_ELEM_SIZE_BYTES; in pqisrc_alloc_and_create_ob_queues()
958 op_ob_q->q_id = obq_id++; in pqisrc_alloc_and_create_ob_queues()
959 if(softs->share_opq_and_eventq == true) in pqisrc_alloc_and_create_ob_queues()
960 op_ob_q->intr_msg_num = i; in pqisrc_alloc_and_create_ob_queues()
962 op_ob_q->intr_msg_num = i + 1; /* msg num zero for event */ in pqisrc_alloc_and_create_ob_queues()
966 DBG_ERR("Failed to Create OP OBQ %u\n",op_ob_q->q_id); in pqisrc_alloc_and_create_ob_queues()
969 op_ob_q->created = true; in pqisrc_alloc_and_create_ob_queues()
983 * Function used to create operational queues for the adapter.
992 /* Create Operational IB queues */ in pqisrc_create_op_queues()
996 /* Create Operational OB queues */ in pqisrc_create_op_queues()