Lines Matching refs:rdev

51 c4iw_release_dev_ucontext(struct c4iw_rdev *rdev,  in c4iw_release_dev_ucontext()  argument
61 if (!(entry->qid & rdev->qpmask)) { in c4iw_release_dev_ucontext()
62 c4iw_put_resource(&rdev->resource.qid_table, in c4iw_release_dev_ucontext()
64 mutex_lock(&rdev->stats.lock); in c4iw_release_dev_ucontext()
65 rdev->stats.qid.cur -= rdev->qpmask + 1; in c4iw_release_dev_ucontext()
66 mutex_unlock(&rdev->stats.lock); in c4iw_release_dev_ucontext()
80 c4iw_init_dev_ucontext(struct c4iw_rdev *rdev, struct c4iw_dev_ucontext *uctx) in c4iw_init_dev_ucontext() argument
89 c4iw_rdev_open(struct c4iw_rdev *rdev) in c4iw_rdev_open() argument
91 struct adapter *sc = rdev->adap; in c4iw_rdev_open()
98 c4iw_init_dev_ucontext(rdev, &rdev->uctx); in c4iw_rdev_open()
121 rdev->qpshift = PAGE_SHIFT - sp->eq_s_qpp; in c4iw_rdev_open()
122 rdev->qpmask = udb_density - 1; in c4iw_rdev_open()
123 rdev->cqshift = PAGE_SHIFT - sp->iq_s_qpp; in c4iw_rdev_open()
124 rdev->cqmask = ucq_density - 1; in c4iw_rdev_open()
126 if (c4iw_num_stags(rdev) == 0) { in c4iw_rdev_open()
131 rdev->stats.pd.total = T4_MAX_NUM_PD; in c4iw_rdev_open()
132 rdev->stats.stag.total = sc->vres.stag.size; in c4iw_rdev_open()
133 rdev->stats.pbl.total = sc->vres.pbl.size; in c4iw_rdev_open()
134 rdev->stats.rqt.total = sc->vres.rq.size; in c4iw_rdev_open()
135 rdev->stats.qid.total = sc->vres.qp.size; in c4iw_rdev_open()
137 rc = c4iw_init_resource(rdev, c4iw_num_stags(rdev), T4_MAX_NUM_PD); in c4iw_rdev_open()
142 rc = c4iw_pblpool_create(rdev); in c4iw_rdev_open()
147 rc = c4iw_rqtpool_create(rdev); in c4iw_rdev_open()
152 rdev->status_page = (struct t4_dev_status_page *) in c4iw_rdev_open()
154 if (!rdev->status_page) { in c4iw_rdev_open()
158 rdev->status_page->qp_start = sc->vres.qp.start; in c4iw_rdev_open()
159 rdev->status_page->qp_size = sc->vres.qp.size; in c4iw_rdev_open()
160 rdev->status_page->cq_start = sc->vres.cq.start; in c4iw_rdev_open()
161 rdev->status_page->cq_size = sc->vres.cq.size; in c4iw_rdev_open()
166 rdev->status_page->db_off = 0; in c4iw_rdev_open()
168 rdev->status_page->wc_supported = rdev->adap->iwt.wc_en; in c4iw_rdev_open()
170 rdev->free_workq = create_singlethread_workqueue("iw_cxgb4_free"); in c4iw_rdev_open()
171 if (!rdev->free_workq) { in c4iw_rdev_open()
177 free_page((unsigned long)rdev->status_page); in c4iw_rdev_open()
179 c4iw_rqtpool_destroy(rdev); in c4iw_rdev_open()
181 c4iw_pblpool_destroy(rdev); in c4iw_rdev_open()
183 c4iw_destroy_resource(&rdev->resource); in c4iw_rdev_open()
188 static void c4iw_rdev_close(struct c4iw_rdev *rdev) in c4iw_rdev_close() argument
190 free_page((unsigned long)rdev->status_page); in c4iw_rdev_close()
191 c4iw_pblpool_destroy(rdev); in c4iw_rdev_close()
192 c4iw_rqtpool_destroy(rdev); in c4iw_rdev_close()
193 c4iw_destroy_resource(&rdev->resource); in c4iw_rdev_close()
200 c4iw_rdev_close(&iwsc->rdev); in c4iw_dealloc()
218 iwsc->rdev.adap = sc; in c4iw_alloc()
221 iwsc->rdev.hw_queue.t4_eq_status_entries = in c4iw_alloc()
223 iwsc->rdev.hw_queue.t4_max_eq_size = 65520; in c4iw_alloc()
224 iwsc->rdev.hw_queue.t4_max_iq_size = 65520; in c4iw_alloc()
225 iwsc->rdev.hw_queue.t4_max_rq_size = 8192 - in c4iw_alloc()
226 iwsc->rdev.hw_queue.t4_eq_status_entries - 1; in c4iw_alloc()
227 iwsc->rdev.hw_queue.t4_max_sq_size = in c4iw_alloc()
228 iwsc->rdev.hw_queue.t4_max_eq_size - in c4iw_alloc()
229 iwsc->rdev.hw_queue.t4_eq_status_entries - 1; in c4iw_alloc()
230 iwsc->rdev.hw_queue.t4_max_qp_depth = in c4iw_alloc()
231 iwsc->rdev.hw_queue.t4_max_rq_size; in c4iw_alloc()
232 iwsc->rdev.hw_queue.t4_max_cq_depth = in c4iw_alloc()
233 iwsc->rdev.hw_queue.t4_max_iq_size - 2; in c4iw_alloc()
234 iwsc->rdev.hw_queue.t4_stat_len = iwsc->rdev.adap->params.sge.spg_len; in c4iw_alloc()
239 iwsc->rdev.bar2_kva = (void __iomem *)((u64)iwsc->rdev.adap->udbs_base); in c4iw_alloc()
240 iwsc->rdev.bar2_pa = vtophys(iwsc->rdev.adap->udbs_base); in c4iw_alloc()
241 iwsc->rdev.bar2_len = rman_get_size(iwsc->rdev.adap->udbs_res); in c4iw_alloc()
243 rc = c4iw_rdev_open(&iwsc->rdev); in c4iw_alloc()
254 mutex_init(&iwsc->rdev.stats.lock); in c4iw_alloc()
255 iwsc->avail_ird = iwsc->rdev.adap->params.max_ird_adapter; in c4iw_alloc()
341 iwsc->rdev.flags |= T4_FATAL_ERROR; in c4iw_async_event()