Lines Matching defs:rdev

49 c4iw_release_dev_ucontext(struct c4iw_rdev *rdev,
59 if (!(entry->qid & rdev->qpmask)) {
60 c4iw_put_resource(&rdev->resource.qid_table,
62 mutex_lock(&rdev->stats.lock);
63 rdev->stats.qid.cur -= rdev->qpmask + 1;
64 mutex_unlock(&rdev->stats.lock);
78 c4iw_init_dev_ucontext(struct c4iw_rdev *rdev, struct c4iw_dev_ucontext *uctx)
87 c4iw_rdev_open(struct c4iw_rdev *rdev)
89 struct adapter *sc = rdev->adap;
96 c4iw_init_dev_ucontext(rdev, &rdev->uctx);
119 rdev->qpshift = PAGE_SHIFT - sp->eq_s_qpp;
120 rdev->qpmask = udb_density - 1;
121 rdev->cqshift = PAGE_SHIFT - sp->iq_s_qpp;
122 rdev->cqmask = ucq_density - 1;
124 if (c4iw_num_stags(rdev) == 0) {
129 rdev->stats.pd.total = T4_MAX_NUM_PD;
130 rdev->stats.stag.total = sc->vres.stag.size;
131 rdev->stats.pbl.total = sc->vres.pbl.size;
132 rdev->stats.rqt.total = sc->vres.rq.size;
133 rdev->stats.qid.total = sc->vres.qp.size;
135 rc = c4iw_init_resource(rdev, c4iw_num_stags(rdev), T4_MAX_NUM_PD);
140 rc = c4iw_pblpool_create(rdev);
145 rc = c4iw_rqtpool_create(rdev);
150 rdev->status_page = (struct t4_dev_status_page *)
152 if (!rdev->status_page) {
156 rdev->status_page->qp_start = sc->vres.qp.start;
157 rdev->status_page->qp_size = sc->vres.qp.size;
158 rdev->status_page->cq_start = sc->vres.cq.start;
159 rdev->status_page->cq_size = sc->vres.cq.size;
164 rdev->status_page->db_off = 0;
166 rdev->status_page->wc_supported = rdev->adap->iwt.wc_en;
168 rdev->free_workq = create_singlethread_workqueue("iw_cxgb4_free");
169 if (!rdev->free_workq) {
175 free_page((unsigned long)rdev->status_page);
177 c4iw_rqtpool_destroy(rdev);
179 c4iw_pblpool_destroy(rdev);
181 c4iw_destroy_resource(&rdev->resource);
186 static void c4iw_rdev_close(struct c4iw_rdev *rdev)
188 free_page((unsigned long)rdev->status_page);
189 c4iw_pblpool_destroy(rdev);
190 c4iw_rqtpool_destroy(rdev);
191 c4iw_destroy_resource(&rdev->resource);
198 c4iw_rdev_close(&iwsc->rdev);
216 iwsc->rdev.adap = sc;
219 iwsc->rdev.hw_queue.t4_eq_status_entries =
221 iwsc->rdev.hw_queue.t4_max_eq_size = 65520;
222 iwsc->rdev.hw_queue.t4_max_iq_size = 65520;
223 iwsc->rdev.hw_queue.t4_max_rq_size = 8192 -
224 iwsc->rdev.hw_queue.t4_eq_status_entries - 1;
225 iwsc->rdev.hw_queue.t4_max_sq_size =
226 iwsc->rdev.hw_queue.t4_max_eq_size -
227 iwsc->rdev.hw_queue.t4_eq_status_entries - 1;
228 iwsc->rdev.hw_queue.t4_max_qp_depth =
229 iwsc->rdev.hw_queue.t4_max_rq_size;
230 iwsc->rdev.hw_queue.t4_max_cq_depth =
231 iwsc->rdev.hw_queue.t4_max_iq_size - 2;
232 iwsc->rdev.hw_queue.t4_stat_len = iwsc->rdev.adap->params.sge.spg_len;
237 iwsc->rdev.bar2_kva = (void __iomem *)((u64)iwsc->rdev.adap->udbs_base);
238 iwsc->rdev.bar2_pa = vtophys(iwsc->rdev.adap->udbs_base);
239 iwsc->rdev.bar2_len = rman_get_size(iwsc->rdev.adap->udbs_res);
241 rc = c4iw_rdev_open(&iwsc->rdev);
243 device_printf(sc->dev, "Unable to open CXIO rdev (%d)\n", rc);
252 mutex_init(&iwsc->rdev.stats.lock);
253 iwsc->avail_ird = iwsc->rdev.adap->params.max_ird_adapter;