• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/qib/

Lines Matching refs:rcd

62 				  struct qib_ctxtdata *rcd);
2680 if (istat & INT_MASK_P(Err, 0) && dd->rcd[0])
2681 handle_7322_p_errors(dd->rcd[0]->ppd);
2682 if (istat & INT_MASK_P(Err, 1) && dd->rcd[1])
2683 handle_7322_p_errors(dd->rcd[1]->ppd);
2690 static void adjust_rcv_timeout(struct qib_ctxtdata *rcd, int npkts)
2692 struct qib_devdata *dd = rcd->dd;
2693 u32 timeout = dd->cspec->rcvavail_timeout[rcd->ctxt];
2706 dd->cspec->rcvavail_timeout[rcd->ctxt] = timeout;
2707 qib_write_kreg(dd, kr_rcvavailtimeout + rcd->ctxt, timeout);
2786 if (dd->rcd[i]) {
2787 qib_kreceive(dd->rcd[i], NULL, &npkts);
2788 adjust_rcv_timeout(dd->rcd[i], npkts);
2816 struct qib_ctxtdata *rcd = data;
2817 struct qib_devdata *dd = rcd->dd;
2835 (1ULL << QIB_I_RCVURG_LSB)) << rcd->ctxt);
2837 qib_kreceive(rcd, NULL, &npkts);
2838 adjust_rcv_timeout(rcd, npkts);
3077 arg = dd->rcd[ctxt];
3379 struct qib_ctxtdata *rcd)
3386 if (!dd->kregbase || !rcd)
3389 ctxt = rcd->ctxt;
3404 rcd->rcvegr_tid_base * sizeof(*tidbase));
3406 for (i = 0; i < rcd->rcvegrcnt; i++)
3437 * @rcd: the qlogic_ib ctxt
3444 static int qib_7322_get_base_info(struct qib_ctxtdata *rcd,
3450 if (rcd->dd->cspec->r1)
3452 if (rcd->dd->flags & QIB_USE_SPCL_TRIG)
4004 static void qib_update_7322_usrhead(struct qib_ctxtdata *rcd, u64 hd,
4007 qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
4008 qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
4010 qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
4013 static u32 qib_7322_hdrqempty(struct qib_ctxtdata *rcd)
4017 head = qib_read_ureg32(rcd->dd, ur_rcvhdrhead, rcd->ctxt);
4018 if (rcd->rcvhdrtail_kvaddr)
4019 tail = qib_get_rcvhdrtail(rcd);
4021 tail = qib_read_ureg32(rcd->dd, ur_rcvhdrtail, rcd->ctxt);
4052 struct qib_ctxtdata *rcd;
4072 rcd = NULL;
4075 rcd = dd->rcd[ctxt];
4077 if ((op & QIB_RCVCTRL_CTXT_ENB) && rcd) {
4086 rcd->rcvhdrqtailaddr_phys);
4088 rcd->rcvhdrq_phys);
4089 rcd->seq_cnt = 1;
4111 if ((op & QIB_RCVCTRL_CTXT_ENB) && dd->rcd[ctxt]) {
4124 dd->rcd[ctxt]->head = val;
4130 dd->rcd[ctxt] && dd->rhdrhead_intr_off) {
4132 val = dd->rcd[ctxt]->head | dd->rhdrhead_intr_off;
4359 for (i = 0; dd->rcd && i < dd->first_user_ctxt; i++) {
4360 struct qib_ctxtdata *rcd = dd->rcd[i];
4362 if (!rcd || rcd->ppd != ppd)
6436 static void qib_7322_init_ctxt(struct qib_ctxtdata *rcd)
6438 if (rcd->ctxt < NUM_IB_PORTS) {
6439 if (rcd->dd->num_pports > 1) {
6440 rcd->rcvegrcnt = KCTXT0_EGRCNT / 2;
6441 rcd->rcvegr_tid_base = rcd->ctxt ? rcd->rcvegrcnt : 0;
6443 rcd->rcvegrcnt = KCTXT0_EGRCNT;
6444 rcd->rcvegr_tid_base = 0;
6447 rcd->rcvegrcnt = rcd->dd->cspec->rcvegrcnt;
6448 rcd->rcvegr_tid_base = KCTXT0_EGRCNT +
6449 (rcd->ctxt - NUM_IB_PORTS) * rcd->rcvegrcnt;
6455 u32 len, u32 which, struct qib_ctxtdata *rcd)
6461 int wait = rcd != NULL;
6534 if (dd->rcd[i] && dd->rcd[i]->subctxt_cnt &&
6535 ((dd->rcd[i]->piocnt / dd->rcd[i]->subctxt_cnt) - 1)
6558 if (rcd && rcd->subctxt_cnt && ((rcd->piocnt
6559 / rcd->subctxt_cnt) - 1) < dd->cspec->updthresh) {
6560 dd->cspec->updthresh = (rcd->piocnt /
6561 rcd->subctxt_cnt) - 1;
6711 dd->rcd[i - ARRAY_SIZE(irq_table)]))