Lines Matching refs:dev
64 s64 mthca_make_profile(struct mthca_dev *dev,
96 profile[MTHCA_RES_MTT].size = dev->limits.mtt_seg_size;
118 if (mthca_is_memfree(dev))
122 if (mthca_is_memfree(dev)) {
126 mem_base = dev->ddr_start;
127 mem_avail = dev->fw.tavor.fw_start - dev->ddr_start;
148 mthca_err(dev, "Profile requires 0x%llx bytes; "
157 mthca_dbg(dev, "profile[%2d]--%2d/%2d @ 0x%16llx "
164 if (mthca_is_memfree(dev))
165 mthca_dbg(dev, "HCA context memory: reserving %d KB\n",
168 mthca_dbg(dev, "HCA memory: allocated %d KB/%d KB (%d KB free)\n",
175 dev->limits.num_qps = profile[i].num;
180 dev->limits.num_eecs = profile[i].num;
185 dev->limits.num_srqs = profile[i].num;
190 dev->limits.num_cqs = profile[i].num;
201 dev->limits.num_eqs = profile[i].num;
206 for (dev->qp_table.rdb_shift = 0;
207 request->num_qp << dev->qp_table.rdb_shift < profile[i].num;
208 ++dev->qp_table.rdb_shift)
210 dev->qp_table.rdb_base = (u32) profile[i].start;
214 dev->limits.num_mgms = profile[i].num >> 1;
215 dev->limits.num_amgms = profile[i].num >> 1;
222 dev->limits.num_mpts = profile[i].num;
223 dev->mr_table.mpt_base = profile[i].start;
228 dev->limits.num_mtt_segs = profile[i].num;
229 dev->mr_table.mtt_base = profile[i].start;
231 init_hca->mtt_seg_sz = ffs(dev->limits.mtt_seg_size) - 7;
234 dev->limits.num_uars = profile[i].num;
238 dev->av_table.ddr_av_base = profile[i].start;
239 dev->av_table.num_ddr_avs = profile[i].num;
242 dev->uar_table.uarc_size = request->uarc_size;
243 dev->uar_table.uarc_base = profile[i].start;
257 dev->limits.num_pds = MTHCA_NUM_PDS;
259 if (dev->mthca_flags & MTHCA_FLAG_SINAI_OPT &&
261 mthca_warn(dev, "MPT table too large (requested size 2^%d >= 2^24)\n",
263 mthca_warn(dev, "Disabling memory key throughput optimization.\n");
264 dev->mthca_flags &= ~MTHCA_FLAG_SINAI_OPT;
274 if (mthca_is_memfree(dev) || BITS_PER_LONG == 64)
275 dev->limits.fmr_reserved_mtts = 0;
277 dev->limits.fmr_reserved_mtts = request->fmr_reserved_mtts;