Lines Matching defs:rcd

71 				  struct qib_ctxtdata *rcd);
2670 static void qib_update_rhdrq_dca(struct qib_ctxtdata *rcd, int cpu)
2672 struct qib_devdata *dd = rcd->dd;
2677 if (cspec->rhdr_cpu[rcd->ctxt] != cpu) {
2680 cspec->rhdr_cpu[rcd->ctxt] = cpu;
2681 rmp = &dca_rcvhdr_reg_map[rcd->ctxt];
2686 "Ctxt %d cpu %d dca %llx\n", rcd->ctxt, cpu,
2772 struct qib_ctxtdata *rcd = (struct qib_ctxtdata *)n->arg;
2774 qib_update_rhdrq_dca(rcd, cpu);
2789 struct qib_ctxtdata *rcd = (struct qib_ctxtdata *)n->arg;
2791 dd = rcd->dd;
3006 if (istat & INT_MASK_P(Err, 0) && dd->rcd[0])
3007 handle_7322_p_errors(dd->rcd[0]->ppd);
3008 if (istat & INT_MASK_P(Err, 1) && dd->rcd[1])
3009 handle_7322_p_errors(dd->rcd[1]->ppd);
3016 static void adjust_rcv_timeout(struct qib_ctxtdata *rcd, int npkts)
3018 struct qib_devdata *dd = rcd->dd;
3019 u32 timeout = dd->cspec->rcvavail_timeout[rcd->ctxt];
3032 dd->cspec->rcvavail_timeout[rcd->ctxt] = timeout;
3033 qib_write_kreg(dd, kr_rcvavailtimeout + rcd->ctxt, timeout);
3110 if (dd->rcd[i])
3111 qib_kreceive(dd->rcd[i], NULL, &npkts);
3138 struct qib_ctxtdata *rcd = data;
3139 struct qib_devdata *dd = rcd->dd;
3155 (1ULL << QIB_I_RCVURG_LSB)) << rcd->ctxt);
3157 qib_kreceive(rcd, NULL, &npkts);
3447 arg = dd->rcd[ctxt];
3777 * @rcd: the ctxt
3783 struct qib_ctxtdata *rcd)
3790 if (!dd->kregbase || !rcd)
3793 ctxt = rcd->ctxt;
3808 rcd->rcvegr_tid_base * sizeof(*tidbase));
3810 for (i = 0; i < rcd->rcvegrcnt; i++)
3841 * @rcd: the qlogic_ib ctxt
3848 static int qib_7322_get_base_info(struct qib_ctxtdata *rcd,
3854 if (rcd->dd->cspec->r1)
3856 if (rcd->dd->flags & QIB_USE_SPCL_TRIG)
4407 static void qib_update_7322_usrhead(struct qib_ctxtdata *rcd, u64 hd,
4415 adjust_rcv_timeout(rcd, npkts);
4417 qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
4418 qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
4419 qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
4422 static u32 qib_7322_hdrqempty(struct qib_ctxtdata *rcd)
4426 head = qib_read_ureg32(rcd->dd, ur_rcvhdrhead, rcd->ctxt);
4427 if (rcd->rcvhdrtail_kvaddr)
4428 tail = qib_get_rcvhdrtail(rcd);
4430 tail = qib_read_ureg32(rcd->dd, ur_rcvhdrtail, rcd->ctxt);
4461 struct qib_ctxtdata *rcd;
4481 rcd = NULL;
4484 rcd = dd->rcd[ctxt];
4486 if ((op & QIB_RCVCTRL_CTXT_ENB) && rcd) {
4495 rcd->rcvhdrqtailaddr_phys);
4497 rcd->rcvhdrq_phys);
4498 rcd->seq_cnt = 1;
4520 if ((op & QIB_RCVCTRL_CTXT_ENB) && dd->rcd[ctxt]) {
4533 dd->rcd[ctxt]->head = val;
4539 dd->rcd[ctxt] && dd->rhdrhead_intr_off) {
4541 val = dd->rcd[ctxt]->head | dd->rhdrhead_intr_off;
4768 for (i = 0; dd->rcd && i < dd->first_user_ctxt; i++) {
4769 struct qib_ctxtdata *rcd = dd->rcd[i];
4771 if (!rcd || rcd->ppd != ppd)
6976 static void qib_7322_init_ctxt(struct qib_ctxtdata *rcd)
6978 if (rcd->ctxt < NUM_IB_PORTS) {
6979 if (rcd->dd->num_pports > 1) {
6980 rcd->rcvegrcnt = KCTXT0_EGRCNT / 2;
6981 rcd->rcvegr_tid_base = rcd->ctxt ? rcd->rcvegrcnt : 0;
6983 rcd->rcvegrcnt = KCTXT0_EGRCNT;
6984 rcd->rcvegr_tid_base = 0;
6987 rcd->rcvegrcnt = rcd->dd->cspec->rcvegrcnt;
6988 rcd->rcvegr_tid_base = KCTXT0_EGRCNT +
6989 (rcd->ctxt - NUM_IB_PORTS) * rcd->rcvegrcnt;
6995 u32 len, u32 which, struct qib_ctxtdata *rcd)
7001 int wait = rcd != NULL;
7074 if (dd->rcd[i] && dd->rcd[i]->subctxt_cnt &&
7075 ((dd->rcd[i]->piocnt / dd->rcd[i]->subctxt_cnt) - 1)
7098 if (rcd && rcd->subctxt_cnt && ((rcd->piocnt
7099 / rcd->subctxt_cnt) - 1) < dd->cspec->updthresh) {
7100 dd->cspec->updthresh = (rcd->piocnt /
7101 rcd->subctxt_cnt) - 1;
7254 dd->rcd[i - ARRAY_SIZE(irq_table)]))