Lines Matching refs:geo

185 	struct nvm_geo *geo = &dev->geo;
189 threshold = geo->mw_cunits * geo->all_luns;
190 pgs_in_buffer = (max(geo->mw_cunits, geo->ws_opt) + geo->ws_opt)
191 * geo->all_luns;
198 return pblk_rb_init(&pblk->rwb, buffer_size, threshold, geo->csecs);
201 static int pblk_set_addrf_12(struct pblk *pblk, struct nvm_geo *geo,
204 struct nvm_addrf_12 *src = (struct nvm_addrf_12 *)&geo->addrf;
208 power_len = get_count_order(geo->num_ch);
209 if (1 << power_len != geo->num_ch) {
215 power_len = get_count_order(geo->num_lun);
216 if (1 << power_len != geo->num_lun) {
244 static int pblk_set_addrf_20(struct nvm_geo *geo, struct nvm_addrf *adst,
247 struct nvm_addrf *src = &geo->addrf;
249 adst->ch_len = get_count_order(geo->num_ch);
250 adst->lun_len = get_count_order(geo->num_lun);
264 udst->sec_stripe = geo->ws_opt;
265 udst->ch_stripe = geo->num_ch;
266 udst->lun_stripe = geo->num_lun;
277 struct nvm_geo *geo = &dev->geo;
280 switch (geo->version) {
282 div_u64_rem(geo->clba, pblk->min_write_pgs, &mod);
288 pblk->addrf_len = pblk_set_addrf_12(pblk, geo,
292 pblk->addrf_len = pblk_set_addrf_20(geo, (void *)&pblk->addrf,
297 geo->version);
379 struct nvm_geo *geo = &dev->geo;
392 pblk->min_write_pgs = geo->ws_opt;
394 max_write_ppas = pblk->min_write_pgs * geo->all_luns;
397 queue_max_hw_sectors(dev->q) / (geo->csecs >> SECTOR_SHIFT));
400 pblk->oob_meta_size = geo->sos;
450 ret = mempool_init_slab_pool(&pblk->rec_pool, geo->all_luns,
455 ret = mempool_init_slab_pool(&pblk->r_rq_pool, geo->all_luns,
460 ret = mempool_init_slab_pool(&pblk->e_rq_pool, geo->all_luns,
465 ret = mempool_init_slab_pool(&pblk->w_rq_pool, geo->all_luns,
594 struct nvm_geo *geo = &dev->geo;
599 if (geo->num_lun < 0) {
604 pblk->luns = kcalloc(geo->all_luns, sizeof(struct pblk_lun),
609 for (i = 0; i < geo->all_luns; i++) {
611 int ch = i % geo->num_ch;
612 int lun_raw = i / geo->num_ch;
613 int lunid = lun_raw + ch * geo->num_lun;
630 struct nvm_geo *geo = &dev->geo;
635 sizeof(struct wa_counters), geo->csecs);
636 lm->emeta_len[1] = lm->emeta_sec[1] * geo->csecs;
641 geo->csecs);
642 lm->emeta_len[2] = lm->emeta_sec[2] * geo->csecs;
645 geo->csecs);
646 lm->emeta_len[3] = lm->emeta_sec[3] * geo->csecs;
658 struct nvm_geo *geo = &dev->geo;
663 if (geo->op == NVM_TARGET_DEFAULT_OP)
666 pblk->op = geo->op;
674 if (geo->op != NVM_TARGET_DEFAULT_OP) {
698 blk_meta = DIV_ROUND_UP(sec_meta, geo->clba);
700 clba = (geo->clba / pblk->min_write_pgs) * pblk->min_write_pgs_data;
713 struct nvm_geo *geo = &dev->geo;
725 pos = pblk_ppa_to_pos(geo, ppa);
824 struct nvm_geo *geo = &dev->geo;
829 l_mg->nr_lines = geo->num_chk;
911 bb_distance = (geo->all_luns) * geo->ws_opt;
913 bitmap_set(l_mg->bb_template, i, geo->ws_opt);
941 struct nvm_geo *geo = &dev->geo;
946 lm->sec_per_line = geo->clba * geo->all_luns;
947 lm->blk_per_line = geo->all_luns;
948 lm->blk_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long);
950 lm->lun_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long);
953 lm->meta_distance = (geo->all_luns / 2) * pblk->min_write_pgs;
960 lm->smeta_sec = i * geo->ws_opt;
961 lm->smeta_len = lm->smeta_sec * geo->csecs;
974 lm->emeta_sec[0] = i * geo->ws_opt;
975 lm->emeta_len[0] = lm->emeta_sec[0] * geo->csecs;
983 lm->emeta_bb = geo->all_luns > i ? geo->all_luns - i : 0;
986 if (geo->all_luns > 1)
988 lm->emeta_sec[0], geo->clba);
1152 struct nvm_geo *geo = &dev->geo;
1168 if (!(geo->version == NVM_OCSSD_SPEC_12 ||
1169 geo->version == NVM_OCSSD_SPEC_20)) {
1171 geo->version);
1176 if (geo->ext) {
1252 tqueue->limits.discard_granularity = geo->clba * geo->csecs;
1258 geo->all_luns, pblk->l_mg.nr_lines,