Lines Matching refs:eeq
1150 static void efa_com_arm_eq(struct efa_com_dev *edev, struct efa_com_eq *eeq)
1154 EFA_SET(&val, EFA_REGS_EQ_DB_EQN, eeq->eqn);
1161 struct efa_com_eq *eeq)
1168 ci = eeq->cc & (eeq->depth - 1);
1169 phase = eeq->phase;
1170 eqe = &eeq->eqes[ci];
1180 eeq->cb(eeq, eqe);
1186 if (ci == eeq->depth) {
1191 eqe = &eeq->eqes[ci];
1194 eeq->cc += processed;
1195 eeq->phase = phase;
1196 efa_com_arm_eq(eeq->edev, eeq);
1199 void efa_com_eq_destroy(struct efa_com_dev *edev, struct efa_com_eq *eeq)
1202 .eqn = eeq->eqn,
1206 dma_free_coherent(edev->dmadev, eeq->depth * sizeof(*eeq->eqes),
1207 eeq->eqes, eeq->dma_addr);
1210 int efa_com_eq_init(struct efa_com_dev *edev, struct efa_com_eq *eeq,
1218 params.entry_size_in_bytes = sizeof(*eeq->eqes);
1223 eeq->eqes = dma_alloc_coherent(edev->dmadev,
1224 params.depth * sizeof(*eeq->eqes),
1226 if (!eeq->eqes)
1233 eeq->eqn = result.eqn;
1234 eeq->edev = edev;
1235 eeq->dma_addr = params.dma_addr;
1236 eeq->phase = 1;
1237 eeq->depth = params.depth;
1238 eeq->cb = cb;
1239 efa_com_arm_eq(edev, eeq);
1244 dma_free_coherent(edev->dmadev, params.depth * sizeof(*eeq->eqes),
1245 eeq->eqes, params.dma_addr);