Lines Matching refs:dd
111 void qib_set_ctxtcnt(struct qib_devdata *dd) in qib_set_ctxtcnt() argument
114 dd->cfgctxts = dd->first_user_ctxt + num_online_cpus(); in qib_set_ctxtcnt()
115 if (dd->cfgctxts > dd->ctxtcnt) in qib_set_ctxtcnt()
116 dd->cfgctxts = dd->ctxtcnt; in qib_set_ctxtcnt()
117 } else if (qib_cfgctxts < dd->num_pports) in qib_set_ctxtcnt()
118 dd->cfgctxts = dd->ctxtcnt; in qib_set_ctxtcnt()
119 else if (qib_cfgctxts <= dd->ctxtcnt) in qib_set_ctxtcnt()
120 dd->cfgctxts = qib_cfgctxts; in qib_set_ctxtcnt()
122 dd->cfgctxts = dd->ctxtcnt; in qib_set_ctxtcnt()
123 dd->freectxts = (dd->first_user_ctxt > dd->cfgctxts) ? 0 : in qib_set_ctxtcnt()
124 dd->cfgctxts - dd->first_user_ctxt; in qib_set_ctxtcnt()
130 int qib_create_ctxts(struct qib_devdata *dd) in qib_create_ctxts() argument
133 int local_node_id = pcibus_to_node(dd->pcidev->bus); in qib_create_ctxts()
137 dd->assigned_node_id = local_node_id; in qib_create_ctxts()
143 dd->rcd = kzalloc(sizeof(*dd->rcd) * dd->ctxtcnt, GFP_KERNEL); in qib_create_ctxts()
144 if (!dd->rcd) { in qib_create_ctxts()
145 qib_dev_err(dd, in qib_create_ctxts()
151 for (i = 0; i < dd->first_user_ctxt; ++i) { in qib_create_ctxts()
155 if (dd->skip_kctxt_mask & (1 << i)) in qib_create_ctxts()
158 ppd = dd->pport + (i % dd->num_pports); in qib_create_ctxts()
160 rcd = qib_create_ctxtdata(ppd, i, dd->assigned_node_id); in qib_create_ctxts()
162 qib_dev_err(dd, in qib_create_ctxts()
164 kfree(dd->rcd); in qib_create_ctxts()
165 dd->rcd = NULL; in qib_create_ctxts()
180 struct qib_devdata *dd = ppd->dd; in qib_create_ctxtdata() local
188 rcd->dd = dd; in qib_create_ctxtdata()
191 dd->rcd[ctxt] = rcd; in qib_create_ctxtdata()
193 if (ctxt < dd->first_user_ctxt) { /* N/A for PSM contexts */ in qib_create_ctxtdata()
198 qib_dev_err(dd, in qib_create_ctxtdata()
204 dd->f_init_ctxt(rcd); in qib_create_ctxtdata()
219 rcd->rcvegrbuf_size / dd->rcvegrbufsize; in qib_create_ctxtdata()
233 int qib_init_pportdata(struct qib_pportdata *ppd, struct qib_devdata *dd, in qib_init_pportdata() argument
237 ppd->dd = dd; in qib_init_pportdata()
269 qib_dev_err(dd, in qib_init_pportdata()
278 qib_dev_err(dd, in qib_init_pportdata()
287 qib_dev_err(dd, in qib_init_pportdata()
296 qib_dev_err(dd, in qib_init_pportdata()
320 qib_dev_err(dd, in qib_init_pportdata()
325 qib_dev_err(dd, "Congestion Control Agent disabled for port %d\n", in qib_init_pportdata()
330 static int init_pioavailregs(struct qib_devdata *dd) in init_pioavailregs() argument
335 dd->pioavailregs_dma = dma_alloc_coherent( in init_pioavailregs()
336 &dd->pcidev->dev, PAGE_SIZE, &dd->pioavailregs_phys, in init_pioavailregs()
338 if (!dd->pioavailregs_dma) { in init_pioavailregs()
339 qib_dev_err(dd, in init_pioavailregs()
350 ((char *) dd->pioavailregs_dma + in init_pioavailregs()
352 dd->pioavregs * sizeof(u64)) & ~L1_CACHE_BYTES)); in init_pioavailregs()
354 dd->devstatusp = status_page; in init_pioavailregs()
356 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in init_pioavailregs()
357 dd->pport[pidx].statusp = status_page; in init_pioavailregs()
365 dd->freezemsg = (char *) status_page; in init_pioavailregs()
366 *dd->freezemsg = 0; in init_pioavailregs()
368 ret = (char *) status_page - (char *) dd->pioavailregs_dma; in init_pioavailregs()
369 dd->freezelen = PAGE_SIZE - ret; in init_pioavailregs()
388 static void init_shadow_tids(struct qib_devdata *dd) in init_shadow_tids() argument
393 pages = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(struct page *)); in init_shadow_tids()
395 qib_dev_err(dd, in init_shadow_tids()
400 addrs = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(dma_addr_t)); in init_shadow_tids()
402 qib_dev_err(dd, in init_shadow_tids()
407 dd->pageshadow = pages; in init_shadow_tids()
408 dd->physshadow = addrs; in init_shadow_tids()
414 dd->pageshadow = NULL; in init_shadow_tids()
421 static int loadtime_init(struct qib_devdata *dd) in loadtime_init() argument
425 if (((dd->revision >> QLOGIC_IB_R_SOFTWARE_SHIFT) & in loadtime_init()
427 qib_dev_err(dd, in loadtime_init()
430 (int)(dd->revision >> in loadtime_init()
433 (unsigned long long) dd->revision); in loadtime_init()
438 if (dd->revision & QLOGIC_IB_R_EMULATOR_MASK) in loadtime_init()
439 qib_devinfo(dd->pcidev, "%s", dd->boardversion); in loadtime_init()
441 spin_lock_init(&dd->pioavail_lock); in loadtime_init()
442 spin_lock_init(&dd->sendctrl_lock); in loadtime_init()
443 spin_lock_init(&dd->uctxt_lock); in loadtime_init()
444 spin_lock_init(&dd->qib_diag_trans_lock); in loadtime_init()
445 spin_lock_init(&dd->eep_st_lock); in loadtime_init()
446 mutex_init(&dd->eep_lock); in loadtime_init()
451 ret = init_pioavailregs(dd); in loadtime_init()
452 init_shadow_tids(dd); in loadtime_init()
454 qib_get_eeprom_info(dd); in loadtime_init()
457 init_timer(&dd->intrchk_timer); in loadtime_init()
458 dd->intrchk_timer.function = verify_interrupt; in loadtime_init()
459 dd->intrchk_timer.data = (unsigned long) dd; in loadtime_init()
461 ret = qib_cq_init(dd); in loadtime_init()
474 static int init_after_reset(struct qib_devdata *dd) in init_after_reset() argument
483 for (i = 0; i < dd->num_pports; ++i) { in init_after_reset()
488 dd->f_rcvctrl(dd->pport + i, QIB_RCVCTRL_CTXT_DIS | in init_after_reset()
492 dd->f_sendctrl(dd->pport + i, QIB_SENDCTRL_SEND_DIS | in init_after_reset()
499 static void enable_chip(struct qib_devdata *dd) in enable_chip() argument
507 for (i = 0; i < dd->num_pports; ++i) in enable_chip()
508 dd->f_sendctrl(dd->pport + i, QIB_SENDCTRL_SEND_ENB | in enable_chip()
515 rcvmask |= (dd->flags & QIB_NODMA_RTAIL) ? in enable_chip()
517 for (i = 0; dd->rcd && i < dd->first_user_ctxt; ++i) { in enable_chip()
518 struct qib_ctxtdata *rcd = dd->rcd[i]; in enable_chip()
521 dd->f_rcvctrl(rcd->ppd, rcvmask, i); in enable_chip()
527 struct qib_devdata *dd = (struct qib_devdata *) opaque; in verify_interrupt() local
530 if (!dd) in verify_interrupt()
537 int_counter = qib_int_counter(dd) - dd->z_int_counter; in verify_interrupt()
539 if (!dd->f_intr_fallback(dd)) in verify_interrupt()
540 dev_err(&dd->pcidev->dev, in verify_interrupt()
543 mod_timer(&dd->intrchk_timer, jiffies + HZ/2); in verify_interrupt()
547 static void init_piobuf_state(struct qib_devdata *dd) in init_piobuf_state() argument
560 dd->f_sendctrl(dd->pport, QIB_SENDCTRL_DISARM_ALL); in init_piobuf_state()
561 for (pidx = 0; pidx < dd->num_pports; ++pidx) in init_piobuf_state()
562 dd->f_sendctrl(dd->pport + pidx, QIB_SENDCTRL_FLUSH); in init_piobuf_state()
570 uctxts = dd->cfgctxts - dd->first_user_ctxt; in init_piobuf_state()
571 dd->ctxts_extrabuf = dd->pbufsctxt ? in init_piobuf_state()
572 dd->lastctxt_piobuf - (dd->pbufsctxt * uctxts) : 0; in init_piobuf_state()
583 for (i = 0; i < dd->pioavregs; i++) { in init_piobuf_state()
586 tmp = dd->pioavailregs_dma[i]; in init_piobuf_state()
592 dd->pioavailshadow[i] = le64_to_cpu(tmp); in init_piobuf_state()
594 while (i < ARRAY_SIZE(dd->pioavailshadow)) in init_piobuf_state()
595 dd->pioavailshadow[i++] = 0; /* for debugging sanity */ in init_piobuf_state()
598 qib_chg_pioavailkernel(dd, 0, dd->piobcnt2k + dd->piobcnt4k, in init_piobuf_state()
600 dd->f_initvl15_bufs(dd); in init_piobuf_state()
607 static int qib_create_workqueues(struct qib_devdata *dd) in qib_create_workqueues() argument
612 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_create_workqueues()
613 ppd = dd->pport + pidx; in qib_create_workqueues()
617 dd->unit, pidx); in qib_create_workqueues()
628 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_create_workqueues()
629 ppd = dd->pport + pidx; in qib_create_workqueues()
659 int qib_init(struct qib_devdata *dd, int reinit) in qib_init() argument
669 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_init()
670 ppd = dd->pport + pidx; in qib_init()
679 ret = init_after_reset(dd); in qib_init()
681 ret = loadtime_init(dd); in qib_init()
689 ret = dd->f_late_initreg(dd); in qib_init()
694 for (i = 0; dd->rcd && i < dd->first_user_ctxt; ++i) { in qib_init()
701 rcd = dd->rcd[i]; in qib_init()
705 lastfail = qib_create_rcvhdrq(dd, rcd); in qib_init()
709 qib_dev_err(dd, in qib_init()
715 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_init()
719 ppd = dd->pport + pidx; in qib_init()
727 dd->piosize4k : dd->piosize2k, in qib_init()
728 dd->rcvegrbufsize + in qib_init()
729 (dd->rcvhdrentsize << 2)); in qib_init()
741 lastfail = dd->f_bringup_serdes(ppd); in qib_init()
743 qib_devinfo(dd->pcidev, in qib_init()
761 enable_chip(dd); in qib_init()
763 init_piobuf_state(dd); in qib_init()
768 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_init()
769 ppd = dd->pport + pidx; in qib_init()
778 if (dd->flags & QIB_HAS_SEND_DMA) in qib_init()
787 dd->f_set_intr_state(dd, 1); in qib_init()
793 mod_timer(&dd->intrchk_timer, jiffies + HZ/2); in qib_init()
795 mod_timer(&dd->stats_timer, jiffies + HZ * ACTIVITY_TIMER); in qib_init()
808 int __attribute__((weak)) qib_enable_wc(struct qib_devdata *dd) in qib_enable_wc() argument
813 void __attribute__((weak)) qib_disable_wc(struct qib_devdata *dd) in qib_disable_wc() argument
824 struct qib_devdata *dd; in qib_lookup() local
828 dd = __qib_lookup(unit); in qib_lookup()
831 return dd; in qib_lookup()
838 static void qib_stop_timers(struct qib_devdata *dd) in qib_stop_timers() argument
843 if (dd->stats_timer.data) { in qib_stop_timers()
844 del_timer_sync(&dd->stats_timer); in qib_stop_timers()
845 dd->stats_timer.data = 0; in qib_stop_timers()
847 if (dd->intrchk_timer.data) { in qib_stop_timers()
848 del_timer_sync(&dd->intrchk_timer); in qib_stop_timers()
849 dd->intrchk_timer.data = 0; in qib_stop_timers()
851 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_stop_timers()
852 ppd = dd->pport + pidx; in qib_stop_timers()
873 static void qib_shutdown_device(struct qib_devdata *dd) in qib_shutdown_device() argument
878 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_shutdown_device()
879 ppd = dd->pport + pidx; in qib_shutdown_device()
888 dd->flags &= ~QIB_INITTED; in qib_shutdown_device()
891 dd->f_set_intr_state(dd, 0); in qib_shutdown_device()
893 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_shutdown_device()
894 ppd = dd->pport + pidx; in qib_shutdown_device()
895 dd->f_rcvctrl(ppd, QIB_RCVCTRL_TAILUPD_DIS | in qib_shutdown_device()
903 dd->f_sendctrl(ppd, QIB_SENDCTRL_CLEAR); in qib_shutdown_device()
912 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_shutdown_device()
913 ppd = dd->pport + pidx; in qib_shutdown_device()
914 dd->f_setextled(ppd, 0); /* make sure LEDs are off */ in qib_shutdown_device()
916 if (dd->flags & QIB_HAS_SEND_DMA) in qib_shutdown_device()
919 dd->f_sendctrl(ppd, QIB_SENDCTRL_AVAIL_DIS | in qib_shutdown_device()
925 dd->f_quiet_serdes(ppd); in qib_shutdown_device()
947 void qib_free_ctxtdata(struct qib_devdata *dd, struct qib_ctxtdata *rcd) in qib_free_ctxtdata() argument
953 dma_free_coherent(&dd->pcidev->dev, rcd->rcvhdrq_size, in qib_free_ctxtdata()
957 dma_free_coherent(&dd->pcidev->dev, PAGE_SIZE, in qib_free_ctxtdata()
970 dma_free_coherent(&dd->pcidev->dev, size, in qib_free_ctxtdata()
1005 static void qib_verify_pioperf(struct qib_devdata *dd) in qib_verify_pioperf() argument
1012 piobuf = dd->f_getsendbuf(dd->pport, 0ULL, &pbnum); in qib_verify_pioperf()
1014 qib_devinfo(dd->pcidev, in qib_verify_pioperf()
1027 qib_devinfo(dd->pcidev, in qib_verify_pioperf()
1042 dd->f_set_armlaunch(dd, 0); in qib_verify_pioperf()
1063 qib_dev_err(dd, in qib_verify_pioperf()
1073 dd->f_sendctrl(dd->pport, QIB_SENDCTRL_DISARM_BUF(pbnum)); in qib_verify_pioperf()
1074 qib_sendbuf_done(dd, pbnum); in qib_verify_pioperf()
1075 dd->f_set_armlaunch(dd, 1); in qib_verify_pioperf()
1078 void qib_free_devdata(struct qib_devdata *dd) in qib_free_devdata() argument
1083 idr_remove(&qib_unit_table, dd->unit); in qib_free_devdata()
1084 list_del(&dd->list); in qib_free_devdata()
1088 qib_dbg_ibdev_exit(&dd->verbs_dev); in qib_free_devdata()
1090 free_percpu(dd->int_counter); in qib_free_devdata()
1091 ib_dealloc_device(&dd->verbs_dev.ibdev); in qib_free_devdata()
1094 u64 qib_int_counter(struct qib_devdata *dd) in qib_int_counter() argument
1100 int_counter += *per_cpu_ptr(dd->int_counter, cpu); in qib_int_counter()
1107 struct qib_devdata *dd; in qib_sps_ints() local
1111 list_for_each_entry(dd, &qib_dev_list, list) { in qib_sps_ints()
1112 sps_ints += qib_int_counter(dd); in qib_sps_ints()
1129 struct qib_devdata *dd; in qib_alloc_devdata() local
1132 dd = (struct qib_devdata *) ib_alloc_device(sizeof(*dd) + extra); in qib_alloc_devdata()
1133 if (!dd) in qib_alloc_devdata()
1136 INIT_LIST_HEAD(&dd->list); in qib_alloc_devdata()
1141 ret = idr_alloc(&qib_unit_table, dd, 0, 0, GFP_NOWAIT); in qib_alloc_devdata()
1143 dd->unit = ret; in qib_alloc_devdata()
1144 list_add(&dd->list, &qib_dev_list); in qib_alloc_devdata()
1155 dd->int_counter = alloc_percpu(u64); in qib_alloc_devdata()
1156 if (!dd->int_counter) { in qib_alloc_devdata()
1174 qib_dbg_ibdev_init(&dd->verbs_dev); in qib_alloc_devdata()
1176 return dd; in qib_alloc_devdata()
1178 if (!list_empty(&dd->list)) in qib_alloc_devdata()
1179 list_del_init(&dd->list); in qib_alloc_devdata()
1180 ib_dealloc_device(&dd->verbs_dev.ibdev); in qib_alloc_devdata()
1189 void qib_disable_after_error(struct qib_devdata *dd) in qib_disable_after_error() argument
1191 if (dd->flags & QIB_INITTED) { in qib_disable_after_error()
1194 dd->flags &= ~QIB_INITTED; in qib_disable_after_error()
1195 if (dd->pport) in qib_disable_after_error()
1196 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in qib_disable_after_error()
1199 ppd = dd->pport + pidx; in qib_disable_after_error()
1200 if (dd->flags & QIB_PRESENT) { in qib_disable_after_error()
1203 dd->f_setextled(ppd, 0); in qib_disable_after_error()
1214 if (dd->devstatusp) in qib_disable_after_error()
1215 *dd->devstatusp |= QIB_STATUS_HWERROR; in qib_disable_after_error()
1252 struct qib_devdata *dd = dev_get_drvdata(device); in qib_notify_dca_device() local
1255 return dd->f_notify_dca(dd, event); in qib_notify_dca_device()
1351 static void cleanup_device_data(struct qib_devdata *dd) in cleanup_device_data() argument
1359 for (pidx = 0; pidx < dd->num_pports; ++pidx) { in cleanup_device_data()
1360 if (dd->pport[pidx].statusp) in cleanup_device_data()
1361 *dd->pport[pidx].statusp &= ~QIB_STATUS_CHIP_PRESENT; in cleanup_device_data()
1363 spin_lock(&dd->pport[pidx].cc_shadow_lock); in cleanup_device_data()
1365 kfree(dd->pport[pidx].congestion_entries); in cleanup_device_data()
1366 dd->pport[pidx].congestion_entries = NULL; in cleanup_device_data()
1367 kfree(dd->pport[pidx].ccti_entries); in cleanup_device_data()
1368 dd->pport[pidx].ccti_entries = NULL; in cleanup_device_data()
1369 kfree(dd->pport[pidx].ccti_entries_shadow); in cleanup_device_data()
1370 dd->pport[pidx].ccti_entries_shadow = NULL; in cleanup_device_data()
1371 kfree(dd->pport[pidx].congestion_entries_shadow); in cleanup_device_data()
1372 dd->pport[pidx].congestion_entries_shadow = NULL; in cleanup_device_data()
1374 spin_unlock(&dd->pport[pidx].cc_shadow_lock); in cleanup_device_data()
1378 qib_disable_wc(dd); in cleanup_device_data()
1380 if (dd->pioavailregs_dma) { in cleanup_device_data()
1381 dma_free_coherent(&dd->pcidev->dev, PAGE_SIZE, in cleanup_device_data()
1382 (void *) dd->pioavailregs_dma, in cleanup_device_data()
1383 dd->pioavailregs_phys); in cleanup_device_data()
1384 dd->pioavailregs_dma = NULL; in cleanup_device_data()
1387 if (dd->pageshadow) { in cleanup_device_data()
1388 struct page **tmpp = dd->pageshadow; in cleanup_device_data()
1389 dma_addr_t *tmpd = dd->physshadow; in cleanup_device_data()
1392 for (ctxt = 0; ctxt < dd->cfgctxts; ctxt++) { in cleanup_device_data()
1393 int ctxt_tidbase = ctxt * dd->rcvtidcnt; in cleanup_device_data()
1394 int maxtid = ctxt_tidbase + dd->rcvtidcnt; in cleanup_device_data()
1399 pci_unmap_page(dd->pcidev, tmpd[i], in cleanup_device_data()
1406 dd->pageshadow = NULL; in cleanup_device_data()
1408 dd->physshadow = NULL; in cleanup_device_data()
1419 spin_lock_irqsave(&dd->uctxt_lock, flags); in cleanup_device_data()
1420 tmp = dd->rcd; in cleanup_device_data()
1421 dd->rcd = NULL; in cleanup_device_data()
1422 spin_unlock_irqrestore(&dd->uctxt_lock, flags); in cleanup_device_data()
1423 for (ctxt = 0; tmp && ctxt < dd->ctxtcnt; ctxt++) { in cleanup_device_data()
1427 qib_free_ctxtdata(dd, rcd); in cleanup_device_data()
1430 kfree(dd->boardname); in cleanup_device_data()
1431 qib_cq_exit(dd); in cleanup_device_data()
1438 static void qib_postinit_cleanup(struct qib_devdata *dd) in qib_postinit_cleanup() argument
1447 if (dd->f_cleanup) in qib_postinit_cleanup()
1448 dd->f_cleanup(dd); in qib_postinit_cleanup()
1450 qib_pcie_ddcleanup(dd); in qib_postinit_cleanup()
1452 cleanup_device_data(dd); in qib_postinit_cleanup()
1454 qib_free_devdata(dd); in qib_postinit_cleanup()
1460 struct qib_devdata *dd = NULL; in qib_init_one() local
1473 dd = qib_init_iba6120_funcs(pdev, ent); in qib_init_one()
1478 dd = ERR_PTR(-ENODEV); in qib_init_one()
1483 dd = qib_init_iba7220_funcs(pdev, ent); in qib_init_one()
1487 dd = qib_init_iba7322_funcs(pdev, ent); in qib_init_one()
1497 if (IS_ERR(dd)) in qib_init_one()
1498 ret = PTR_ERR(dd); in qib_init_one()
1502 ret = qib_create_workqueues(dd); in qib_init_one()
1507 initfail = qib_init(dd, 0); in qib_init_one()
1509 ret = qib_register_ib_device(dd); in qib_init_one()
1518 dd->flags |= QIB_INITTED; in qib_init_one()
1520 j = qib_device_create(dd); in qib_init_one()
1522 qib_dev_err(dd, "Failed to create /dev devices: %d\n", -j); in qib_init_one()
1523 j = qibfs_add(dd); in qib_init_one()
1525 qib_dev_err(dd, "Failed filesystem setup for counters: %d\n", in qib_init_one()
1529 qib_stop_timers(dd); in qib_init_one()
1531 for (pidx = 0; pidx < dd->num_pports; ++pidx) in qib_init_one()
1532 dd->f_quiet_serdes(dd->pport + pidx); in qib_init_one()
1536 (void) qibfs_remove(dd); in qib_init_one()
1537 qib_device_remove(dd); in qib_init_one()
1540 qib_unregister_ib_device(dd); in qib_init_one()
1541 qib_postinit_cleanup(dd); in qib_init_one()
1548 ret = qib_enable_wc(dd); in qib_init_one()
1550 qib_dev_err(dd, in qib_init_one()
1557 qib_verify_pioperf(dd); in qib_init_one()
1564 struct qib_devdata *dd = pci_get_drvdata(pdev); in qib_remove_one() local
1568 qib_unregister_ib_device(dd); in qib_remove_one()
1575 qib_shutdown_device(dd); in qib_remove_one()
1577 qib_stop_timers(dd); in qib_remove_one()
1582 ret = qibfs_remove(dd); in qib_remove_one()
1584 qib_dev_err(dd, "Failed counters filesystem cleanup: %d\n", in qib_remove_one()
1587 qib_device_remove(dd); in qib_remove_one()
1589 qib_postinit_cleanup(dd); in qib_remove_one()
1601 int qib_create_rcvhdrq(struct qib_devdata *dd, struct qib_ctxtdata *rcd) in qib_create_rcvhdrq() argument
1610 amt = ALIGN(dd->rcvhdrcnt * dd->rcvhdrentsize * in qib_create_rcvhdrq()
1612 gfp_flags = (rcd->ctxt >= dd->first_user_ctxt) ? in qib_create_rcvhdrq()
1615 old_node_id = dev_to_node(&dd->pcidev->dev); in qib_create_rcvhdrq()
1616 set_dev_node(&dd->pcidev->dev, rcd->node_id); in qib_create_rcvhdrq()
1618 &dd->pcidev->dev, amt, &rcd->rcvhdrq_phys, in qib_create_rcvhdrq()
1620 set_dev_node(&dd->pcidev->dev, old_node_id); in qib_create_rcvhdrq()
1623 qib_dev_err(dd, in qib_create_rcvhdrq()
1629 if (rcd->ctxt >= dd->first_user_ctxt) { in qib_create_rcvhdrq()
1635 if (!(dd->flags & QIB_NODMA_RTAIL)) { in qib_create_rcvhdrq()
1636 set_dev_node(&dd->pcidev->dev, rcd->node_id); in qib_create_rcvhdrq()
1638 &dd->pcidev->dev, PAGE_SIZE, &phys_hdrqtail, in qib_create_rcvhdrq()
1640 set_dev_node(&dd->pcidev->dev, old_node_id); in qib_create_rcvhdrq()
1656 qib_dev_err(dd, in qib_create_rcvhdrq()
1662 dma_free_coherent(&dd->pcidev->dev, amt, rcd->rcvhdrq, in qib_create_rcvhdrq()
1680 struct qib_devdata *dd = rcd->dd; in qib_setup_eagerbufs() local
1696 egrsize = dd->rcvegrbufsize; in qib_setup_eagerbufs()
1719 old_node_id = dev_to_node(&dd->pcidev->dev); in qib_setup_eagerbufs()
1720 set_dev_node(&dd->pcidev->dev, rcd->node_id); in qib_setup_eagerbufs()
1722 dma_alloc_coherent(&dd->pcidev->dev, size, in qib_setup_eagerbufs()
1725 set_dev_node(&dd->pcidev->dev, old_node_id); in qib_setup_eagerbufs()
1740 dd->f_put_tid(dd, e + egroff + in qib_setup_eagerbufs()
1743 dd->kregbase + in qib_setup_eagerbufs()
1744 dd->rcvegrbase), in qib_setup_eagerbufs()
1755 dma_free_coherent(&dd->pcidev->dev, size, in qib_setup_eagerbufs()
1772 int init_chip_wc_pat(struct qib_devdata *dd, u32 vl15buflen) in init_chip_wc_pat() argument
1778 u64 qib_pio2koffset = dd->piobufbase & 0xffffffff; in init_chip_wc_pat()
1779 u64 qib_pio4koffset = dd->piobufbase >> 32; in init_chip_wc_pat()
1780 u64 qib_pio2klen = dd->piobcnt2k * dd->palign; in init_chip_wc_pat()
1781 u64 qib_pio4klen = dd->piobcnt4k * dd->align4k; in init_chip_wc_pat()
1782 u64 qib_physaddr = dd->physaddr; in init_chip_wc_pat()
1791 iounmap(dd->kregbase); in init_chip_wc_pat()
1792 dd->kregbase = NULL; in init_chip_wc_pat()
1803 if (dd->piobcnt4k == 0) { in init_chip_wc_pat()
1815 if (dd->uregbase > qib_kreglen) in init_chip_wc_pat()
1816 qib_userlen = dd->ureg_align * dd->cfgctxts; in init_chip_wc_pat()
1828 qib_userbase = ioremap_nocache(qib_physaddr + dd->uregbase, in init_chip_wc_pat()
1834 dd->kregbase = qib_kregbase; in init_chip_wc_pat()
1835 dd->kregend = (u64 __iomem *) in init_chip_wc_pat()
1837 dd->piobase = qib_piobase; in init_chip_wc_pat()
1838 dd->pio2kbase = (void __iomem *) in init_chip_wc_pat()
1839 (((char __iomem *) dd->piobase) + in init_chip_wc_pat()
1841 if (dd->piobcnt4k) in init_chip_wc_pat()
1842 dd->pio4kbase = (void __iomem *) in init_chip_wc_pat()
1843 (((char __iomem *) dd->piobase) + in init_chip_wc_pat()
1847 dd->userbase = qib_userbase; in init_chip_wc_pat()