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