Lines Matching refs:geo

198 	struct bch_geometry *geo = &this->bch_geometry;
226 geo->gf_len,
227 geo->ecc_strength,
228 geo->page_size,
229 geo->metadata_size,
230 geo->ecc_chunk_size,
231 geo->ecc_chunk_count,
232 geo->payload_size,
233 geo->auxiliary_size,
234 geo->auxiliary_status_offset,
235 geo->block_mark_byte_offset,
236 geo->block_mark_bit_offset);
241 struct bch_geometry *geo = &this->bch_geometry;
246 if (geo->gf_len == 14)
249 return geo->ecc_strength <= this->devdata->bch_max_ecc_strength;
262 struct bch_geometry *geo = &this->bch_geometry;
269 geo->gf_len = 13;
272 geo->gf_len = 14;
281 geo->ecc_chunk_size = ecc_step;
282 geo->ecc_strength = round_up(ecc_strength, 2);
287 if (geo->ecc_chunk_size < mtd->oobsize) {
295 geo->metadata_size = 10;
297 geo->ecc_chunk_count = mtd->writesize / geo->ecc_chunk_size;
347 geo->page_size = mtd->writesize + geo->metadata_size +
348 (geo->gf_len * geo->ecc_strength * geo->ecc_chunk_count) / 8;
350 geo->payload_size = mtd->writesize;
352 geo->auxiliary_status_offset = ALIGN(geo->metadata_size, 4);
353 geo->auxiliary_size = ALIGN(geo->metadata_size, 4)
354 + ALIGN(geo->ecc_chunk_count, 4);
361 (geo->ecc_strength * geo->gf_len * (geo->ecc_chunk_count - 1)
362 + geo->metadata_size * 8);
364 geo->block_mark_byte_offset = block_mark_bit_offset / 8;
365 geo->block_mark_bit_offset = block_mark_bit_offset % 8;
389 struct bch_geometry *geo = &this->bch_geometry;
393 ecc_strength = ((mtd->oobsize - geo->metadata_size) * 8)
394 / (geo->gf_len * geo->ecc_chunk_count);
402 struct bch_geometry *geo = &this->bch_geometry;
413 geo->metadata_size = 10;
416 geo->gf_len = 13;
419 geo->ecc_chunk_size = 512;
420 while (geo->ecc_chunk_size < mtd->oobsize) {
421 geo->ecc_chunk_size *= 2; /* keep C >= O */
422 geo->gf_len = 14;
425 geo->ecc_chunk_count = mtd->writesize / geo->ecc_chunk_size;
428 geo->ecc_strength = get_ecc_strength(this);
433 geo->ecc_strength,
438 geo->page_size = mtd->writesize + geo->metadata_size +
439 (geo->gf_len * geo->ecc_strength * geo->ecc_chunk_count) / 8;
440 geo->payload_size = mtd->writesize;
448 metadata_size = ALIGN(geo->metadata_size, 4);
449 status_size = ALIGN(geo->ecc_chunk_count, 4);
451 geo->auxiliary_size = metadata_size + status_size;
452 geo->auxiliary_status_offset = metadata_size;
504 (geo->ecc_strength * geo->gf_len * (geo->ecc_chunk_count - 1)
505 + geo->metadata_size * 8);
507 geo->block_mark_byte_offset = block_mark_bit_offset / 8;
508 geo->block_mark_bit_offset = block_mark_bit_offset % 8;
885 struct bch_geometry *geo = &this->bch_geometry;
891 oobregion->length = geo->page_size - mtd->writesize;
901 struct bch_geometry *geo = &this->bch_geometry;
907 if (geo->page_size < mtd->writesize + mtd->oobsize) {
908 oobregion->offset = geo->page_size - mtd->writesize;
1106 struct bch_geometry *geo = &this->bch_geometry;
1109 dma_free_coherent(dev, geo->auxiliary_size,
1122 struct bch_geometry *geo = &this->bch_geometry;
1139 this->auxiliary_virt = dma_alloc_coherent(dev, geo->auxiliary_size,
1301 struct bch_geometry *geo = &this->bch_geometry;
1302 unsigned int ecc_strength = geo->ecc_strength >> 1;
1303 unsigned int gf_len = geo->gf_len;
1304 unsigned int block_size = geo->ecc_chunk_size;
1307 BF_BCH_FLASH0LAYOUT0_NBLOCKS(geo->ecc_chunk_count - 1) |
1308 BF_BCH_FLASH0LAYOUT0_META_SIZE(geo->metadata_size) |
1314 BF_BCH_FLASH0LAYOUT1_PAGE_SIZE(geo->page_size) |
1325 struct bch_geometry *geo = &this->bch_geometry;
1332 ret = nand_read_page_op(chip, page, 0, buf, geo->page_size);
1337 geo->ecc_chunk_count,
1338 geo->auxiliary_status_offset);
1366 struct bch_geometry *geo = &this->bch_geometry;
1377 ecc_parity_size = geo->gf_len * geo->ecc_strength / 8;
1391 marker_pos = geo->block_mark_byte_offset / size;
1400 meta = geo->metadata_size;
1407 ecc_parity_size = geo->gf_len * geo->ecc_strength / 8;
1411 ecc_strength = geo->ecc_strength >> 1;
1416 BF_BCH_FLASH0LAYOUT0_GF(geo->gf_len, this) |
1417 BF_BCH_FLASH0LAYOUT0_DATA0_SIZE(geo->ecc_chunk_size, this);
1421 BF_BCH_FLASH0LAYOUT1_GF(geo->gf_len, this) |
1422 BF_BCH_FLASH0LAYOUT1_DATAN_SIZE(geo->ecc_chunk_size, this);