Lines Matching defs:cmdq

25 static int nitrox_cmdq_init(struct nitrox_cmdq *cmdq, int align_bytes)
27 struct nitrox_device *ndev = cmdq->ndev;
29 cmdq->qsize = (ndev->qlen * cmdq->instr_size) + align_bytes;
30 cmdq->unalign_base = dma_alloc_coherent(DEV(ndev), cmdq->qsize,
31 &cmdq->unalign_dma,
33 if (!cmdq->unalign_base)
36 cmdq->dma = PTR_ALIGN(cmdq->unalign_dma, align_bytes);
37 cmdq->base = cmdq->unalign_base + (cmdq->dma - cmdq->unalign_dma);
38 cmdq->write_idx = 0;
40 spin_lock_init(&cmdq->cmd_qlock);
41 spin_lock_init(&cmdq->resp_qlock);
42 spin_lock_init(&cmdq->backlog_qlock);
44 INIT_LIST_HEAD(&cmdq->response_head);
45 INIT_LIST_HEAD(&cmdq->backlog_head);
46 INIT_WORK(&cmdq->backlog_qflush, backlog_qflush_work);
48 atomic_set(&cmdq->pending_count, 0);
49 atomic_set(&cmdq->backlog_count, 0);
53 static void nitrox_cmdq_reset(struct nitrox_cmdq *cmdq)
55 cmdq->write_idx = 0;
56 atomic_set(&cmdq->pending_count, 0);
57 atomic_set(&cmdq->backlog_count, 0);
60 static void nitrox_cmdq_cleanup(struct nitrox_cmdq *cmdq)
64 if (!cmdq)
67 if (!cmdq->unalign_base)
70 ndev = cmdq->ndev;
71 cancel_work_sync(&cmdq->backlog_qflush);
73 dma_free_coherent(DEV(ndev), cmdq->qsize,
74 cmdq->unalign_base, cmdq->unalign_dma);
75 nitrox_cmdq_reset(cmdq);
77 cmdq->dbell_csr_addr = NULL;
78 cmdq->compl_cnt_csr_addr = NULL;
79 cmdq->unalign_base = NULL;
80 cmdq->base = NULL;
81 cmdq->unalign_dma = 0;
82 cmdq->dma = 0;
83 cmdq->qsize = 0;
84 cmdq->instr_size = 0;
103 struct nitrox_cmdq *cmdq;
106 cmdq = kzalloc_node(sizeof(*cmdq), GFP_KERNEL, ndev->node);
107 if (!cmdq) {
112 cmdq->ndev = ndev;
113 cmdq->qno = i;
114 cmdq->instr_size = sizeof(struct aqmq_command_s);
118 cmdq->dbell_csr_addr = NITROX_CSR_ADDR(ndev, offset);
121 cmdq->compl_cnt_csr_addr = NITROX_CSR_ADDR(ndev, offset);
123 err = nitrox_cmdq_init(cmdq, AQM_Q_ALIGN_BYTES);
125 kfree_sensitive(cmdq);
128 ndev->aqmq[i] = cmdq;
143 struct nitrox_cmdq *cmdq = &ndev->pkt_inq[i];
145 nitrox_cmdq_cleanup(cmdq);
162 struct nitrox_cmdq *cmdq;
165 cmdq = &ndev->pkt_inq[i];
166 cmdq->ndev = ndev;
167 cmdq->qno = i;
168 cmdq->instr_size = sizeof(struct nps_pkt_instr);
172 cmdq->dbell_csr_addr = NITROX_CSR_ADDR(ndev, offset);
175 cmdq->compl_cnt_csr_addr = NITROX_CSR_ADDR(ndev, offset);
177 err = nitrox_cmdq_init(cmdq, PKTIN_Q_ALIGN_BYTES);