Lines Matching refs:lf

11 static void cptlf_do_set_done_time_wait(struct otx2_cptlf_info *lf,
16 done_wait.u = otx2_cpt_read64(lf->lfs->reg_base, lf->lfs->blkaddr,
17 lf->slot, OTX2_CPT_LF_DONE_WAIT);
19 otx2_cpt_write64(lf->lfs->reg_base, lf->lfs->blkaddr, lf->slot,
23 static void cptlf_do_set_done_num_wait(struct otx2_cptlf_info *lf, int num_wait)
27 done_wait.u = otx2_cpt_read64(lf->lfs->reg_base, lf->lfs->blkaddr,
28 lf->slot, OTX2_CPT_LF_DONE_WAIT);
30 otx2_cpt_write64(lf->lfs->reg_base, lf->lfs->blkaddr, lf->slot,
40 cptlf_do_set_done_time_wait(&lfs->lf[slot], time_wait);
48 cptlf_do_set_done_num_wait(&lfs->lf[slot], num_wait);
51 static int cptlf_set_pri(struct otx2_cptlf_info *lf, int pri)
53 struct otx2_cptlfs_info *lfs = lf->lfs;
58 CPT_AF_LFX_CTL(lf->slot),
66 CPT_AF_LFX_CTL(lf->slot),
71 static int cptlf_set_eng_grps_mask(struct otx2_cptlf_info *lf,
74 struct otx2_cptlfs_info *lfs = lf->lfs;
79 CPT_AF_LFX_CTL(lf->slot),
87 CPT_AF_LFX_CTL(lf->slot),
98 ret = cptlf_set_pri(&lfs->lf[slot], pri);
102 ret = cptlf_set_eng_grps_mask(&lfs->lf[slot], eng_grp_mask);
176 static inline int cptlf_read_done_cnt(struct otx2_cptlf_info *lf)
180 irq_cnt.u = otx2_cpt_read64(lf->lfs->reg_base, lf->lfs->blkaddr, lf->slot,
188 struct otx2_cptlf_info *lf = arg;
191 dev = &lf->lfs->pdev->dev;
192 irq_misc.u = otx2_cpt_read64(lf->lfs->reg_base, lf->lfs->blkaddr,
193 lf->slot, OTX2_CPT_LF_MISC_INT);
198 lf->slot);
203 lf->slot);
208 lf->slot);
220 dev_err(dev, "Unhandled interrupt in CPT LF %d\n", lf->slot);
225 otx2_cpt_write64(lf->lfs->reg_base, lf->lfs->blkaddr, lf->slot,
234 struct otx2_cptlf_info *lf = arg;
238 irq_cnt = cptlf_read_done_cnt(lf);
240 done_wait.u = otx2_cpt_read64(lf->lfs->reg_base, lf->lfs->blkaddr,
241 lf->slot, OTX2_CPT_LF_DONE_WAIT);
243 otx2_cpt_write64(lf->lfs->reg_base, lf->lfs->blkaddr, lf->slot,
246 otx2_cpt_write64(lf->lfs->reg_base, lf->lfs->blkaddr, lf->slot,
248 if (unlikely(!lf->wqe)) {
249 dev_err(&lf->lfs->pdev->dev, "No work for LF %d\n",
250 lf->slot);
255 tasklet_hi_schedule(&lf->wqe->work);
266 if (!lfs->lf[i].is_irq_reg[offs])
270 lfs->lf[i].msix_offset + offs);
271 free_irq(vector, &lfs->lf[i]);
272 lfs->lf[i].is_irq_reg[offs] = false;
286 vector = pci_irq_vector(lfs->pdev, lfs->lf[lf_num].msix_offset +
289 lfs->lf[lf_num].irq_name[irq_offset],
290 &lfs->lf[lf_num]);
294 lfs->lf[lf_num].is_irq_reg[irq_offset] = true;
305 snprintf(lfs->lf[i].irq_name[irq_offs], 32, "CPTLF Misc%d", i);
312 snprintf(lfs->lf[i].irq_name[irq_offs], 32, "OTX2_CPTLF Done%d",
335 lfs->lf[slot].msix_offset +
337 free_cpumask_var(lfs->lf[slot].affinity_mask);
344 struct otx2_cptlf_info *lf = lfs->lf;
348 if (!zalloc_cpumask_var(&lf[slot].affinity_mask, GFP_KERNEL)) {
357 lf[slot].affinity_mask);
361 lf[slot].msix_offset + offs),
362 lf[slot].affinity_mask);
385 lfs->lf[slot].lfs = lfs;
386 lfs->lf[slot].slot = slot;
388 lfs->lf[slot].lmtline = lfs->lmt_base +
391 lfs->lf[slot].lmtline = lfs->reg_base +
395 lfs->lf[slot].ioreg = lfs->reg_base +