Lines Matching refs:cmdq
23 static int cmdq_common_init(struct nitrox_cmdq *cmdq) in cmdq_common_init() argument
25 struct nitrox_device *ndev = cmdq->ndev; in cmdq_common_init()
28 qsize = (ndev->qlen) * cmdq->instr_size; in cmdq_common_init()
29 cmdq->head_unaligned = dma_zalloc_coherent(DEV(ndev), in cmdq_common_init()
31 &cmdq->dma_unaligned, in cmdq_common_init()
33 if (!cmdq->head_unaligned) in cmdq_common_init()
36 cmdq->head = PTR_ALIGN(cmdq->head_unaligned, PKT_IN_ALIGN); in cmdq_common_init()
37 cmdq->dma = PTR_ALIGN(cmdq->dma_unaligned, PKT_IN_ALIGN); in cmdq_common_init()
38 cmdq->qsize = (qsize + PKT_IN_ALIGN); in cmdq_common_init()
39 cmdq->write_idx = 0; in cmdq_common_init()
41 spin_lock_init(&cmdq->response_lock); in cmdq_common_init()
42 spin_lock_init(&cmdq->cmdq_lock); in cmdq_common_init()
43 spin_lock_init(&cmdq->backlog_lock); in cmdq_common_init()
45 INIT_LIST_HEAD(&cmdq->response_head); in cmdq_common_init()
46 INIT_LIST_HEAD(&cmdq->backlog_head); in cmdq_common_init()
47 INIT_WORK(&cmdq->backlog_qflush, backlog_qflush_work); in cmdq_common_init()
49 atomic_set(&cmdq->pending_count, 0); in cmdq_common_init()
50 atomic_set(&cmdq->backlog_count, 0); in cmdq_common_init()
54 static void cmdq_common_cleanup(struct nitrox_cmdq *cmdq) in cmdq_common_cleanup() argument
56 struct nitrox_device *ndev = cmdq->ndev; in cmdq_common_cleanup()
58 cancel_work_sync(&cmdq->backlog_qflush); in cmdq_common_cleanup()
60 dma_free_coherent(DEV(ndev), cmdq->qsize, in cmdq_common_cleanup()
61 cmdq->head_unaligned, cmdq->dma_unaligned); in cmdq_common_cleanup()
63 atomic_set(&cmdq->pending_count, 0); in cmdq_common_cleanup()
64 atomic_set(&cmdq->backlog_count, 0); in cmdq_common_cleanup()
66 cmdq->dbell_csr_addr = NULL; in cmdq_common_cleanup()
67 cmdq->head = NULL; in cmdq_common_cleanup()
68 cmdq->dma = 0; in cmdq_common_cleanup()
69 cmdq->qsize = 0; in cmdq_common_cleanup()
70 cmdq->instr_size = 0; in cmdq_common_cleanup()
78 struct nitrox_cmdq *cmdq = &ndev->pkt_cmdqs[i]; in nitrox_cleanup_pkt_cmdqs() local
80 cmdq_common_cleanup(cmdq); in nitrox_cleanup_pkt_cmdqs()
96 struct nitrox_cmdq *cmdq; in nitrox_init_pkt_cmdqs() local
99 cmdq = &ndev->pkt_cmdqs[i]; in nitrox_init_pkt_cmdqs()
100 cmdq->ndev = ndev; in nitrox_init_pkt_cmdqs()
101 cmdq->qno = i; in nitrox_init_pkt_cmdqs()
102 cmdq->instr_size = sizeof(struct nps_pkt_instr); in nitrox_init_pkt_cmdqs()
106 cmdq->dbell_csr_addr = NITROX_CSR_ADDR(ndev, offset); in nitrox_init_pkt_cmdqs()
108 err = cmdq_common_init(cmdq); in nitrox_init_pkt_cmdqs()