Lines Matching refs:eeq
1154 static void efa_com_arm_eq(struct efa_com_dev *edev, struct efa_com_eq *eeq) in efa_com_arm_eq() argument
1158 EFA_SET(&val, EFA_REGS_EQ_DB_EQN, eeq->eqn); in efa_com_arm_eq()
1165 struct efa_com_eq *eeq) in efa_com_eq_comp_intr_handler() argument
1172 ci = eeq->cc & (eeq->depth - 1); in efa_com_eq_comp_intr_handler()
1173 phase = eeq->phase; in efa_com_eq_comp_intr_handler()
1174 eqe = &eeq->eqes[ci]; in efa_com_eq_comp_intr_handler()
1184 eeq->cb(eeq, eqe); in efa_com_eq_comp_intr_handler()
1190 if (ci == eeq->depth) { in efa_com_eq_comp_intr_handler()
1195 eqe = &eeq->eqes[ci]; in efa_com_eq_comp_intr_handler()
1198 eeq->cc += processed; in efa_com_eq_comp_intr_handler()
1199 eeq->phase = phase; in efa_com_eq_comp_intr_handler()
1200 efa_com_arm_eq(eeq->edev, eeq); in efa_com_eq_comp_intr_handler()
1203 void efa_com_eq_destroy(struct efa_com_dev *edev, struct efa_com_eq *eeq) in efa_com_eq_destroy() argument
1206 .eqn = eeq->eqn, in efa_com_eq_destroy()
1210 dma_free_coherent(edev->dmadev, eeq->depth * sizeof(*eeq->eqes), in efa_com_eq_destroy()
1211 eeq->eqes, eeq->dma_addr); in efa_com_eq_destroy()
1214 int efa_com_eq_init(struct efa_com_dev *edev, struct efa_com_eq *eeq, in efa_com_eq_init() argument
1222 params.entry_size_in_bytes = sizeof(*eeq->eqes); in efa_com_eq_init()
1227 eeq->eqes = dma_alloc_coherent(edev->dmadev, in efa_com_eq_init()
1228 params.depth * sizeof(*eeq->eqes), in efa_com_eq_init()
1230 if (!eeq->eqes) in efa_com_eq_init()
1237 eeq->eqn = result.eqn; in efa_com_eq_init()
1238 eeq->edev = edev; in efa_com_eq_init()
1239 eeq->dma_addr = params.dma_addr; in efa_com_eq_init()
1240 eeq->phase = 1; in efa_com_eq_init()
1241 eeq->depth = params.depth; in efa_com_eq_init()
1242 eeq->cb = cb; in efa_com_eq_init()
1243 efa_com_arm_eq(edev, eeq); in efa_com_eq_init()
1248 dma_free_coherent(edev->dmadev, params.depth * sizeof(*eeq->eqes), in efa_com_eq_init()
1249 eeq->eqes, params.dma_addr); in efa_com_eq_init()