Lines Matching refs:cfi
115 struct cfi_private *cfi = map->fldrv_priv; in cfi_cmdset_0020() local
118 if (cfi->cfi_mode) { in cfi_cmdset_0020()
124 __u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR; in cfi_cmdset_0020()
151 cfi->cmdset_priv = extp; in cfi_cmdset_0020()
154 for (i=0; i< cfi->numchips; i++) { in cfi_cmdset_0020()
155 cfi->chips[i].word_write_time = 128; in cfi_cmdset_0020()
156 cfi->chips[i].buffer_write_time = 128; in cfi_cmdset_0020()
157 cfi->chips[i].erase_time = 1024; in cfi_cmdset_0020()
158 cfi->chips[i].ref_point_counter = 0; in cfi_cmdset_0020()
159 init_waitqueue_head(&(cfi->chips[i].wq)); in cfi_cmdset_0020()
168 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_setup() local
172 unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave; in cfi_staa_setup()
178 kfree(cfi->cmdset_priv); in cfi_staa_setup()
184 mtd->size = devsize * cfi->numchips; in cfi_staa_setup()
186 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips; in cfi_staa_setup()
191 kfree(cfi->cmdset_priv); in cfi_staa_setup()
196 for (i=0; i<cfi->cfiq->NumEraseRegions; i++) { in cfi_staa_setup()
198 ersize = ((cfi->cfiq->EraseRegionInfo[i] >> 8) & ~0xff) * cfi->interleave; in cfi_staa_setup()
199 ernum = (cfi->cfiq->EraseRegionInfo[i] & 0xffff) + 1; in cfi_staa_setup()
204 for (j=0; j<cfi->numchips; j++) { in cfi_staa_setup()
205 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].offset = (j*devsize)+offset; in cfi_staa_setup()
206 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].erasesize = ersize; in cfi_staa_setup()
207 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].numblocks = ernum; in cfi_staa_setup()
216 kfree(cfi->cmdset_priv); in cfi_staa_setup()
240 mtd->writebufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize; in cfi_staa_setup()
255 struct cfi_private *cfi = map->fldrv_priv; in do_read_onechip() local
274 if (!(((struct cfi_pri_intelext *)cfi->cmdset_priv)->FeatureSupport & 2)) in do_read_onechip()
387 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_read() local
393 chipnum = (from >> cfi->chipshift); in cfi_staa_read()
394 ofs = from - (chipnum << cfi->chipshift); in cfi_staa_read()
399 if (chipnum >= cfi->numchips) in cfi_staa_read()
402 if ((len + ofs -1) >> cfi->chipshift) in cfi_staa_read()
403 thislen = (1<<cfi->chipshift) - ofs; in cfi_staa_read()
407 ret = do_read_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf); in cfi_staa_read()
424 struct cfi_private *cfi = map->fldrv_priv; in do_write_buffer() local
434 wbufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize; in do_write_buffer()
612 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_write_buffers() local
613 int wbufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize; in cfi_staa_write_buffers()
618 chipnum = to >> cfi->chipshift; in cfi_staa_write_buffers()
619 ofs = to - (chipnum << cfi->chipshift); in cfi_staa_write_buffers()
635 ret = do_write_buffer(map, &cfi->chips[chipnum], in cfi_staa_write_buffers()
645 if (ofs >> cfi->chipshift) { in cfi_staa_write_buffers()
648 if (chipnum == cfi->numchips) in cfi_staa_write_buffers()
736 struct cfi_private *cfi = map->fldrv_priv; in do_erase_oneblock() local
854 for (i = 0; i<cfi_interleave(cfi); i++) { in do_erase_oneblock()
855 chipstatus |= status.x[w] >> (cfi->device_type * 8); in do_erase_oneblock()
896 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_erase_varsize() local
945 chipnum = instr->addr >> cfi->chipshift; in cfi_staa_erase_varsize()
946 adr = instr->addr - (chipnum << cfi->chipshift); in cfi_staa_erase_varsize()
952 ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr); in cfi_staa_erase_varsize()
960 …if (adr % (1<< cfi->chipshift) == (((unsigned long)regions[i].offset + (regions[i].erasesize * reg… in cfi_staa_erase_varsize()
963 if (adr >> cfi->chipshift) { in cfi_staa_erase_varsize()
967 if (chipnum >= cfi->numchips) in cfi_staa_erase_varsize()
978 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_sync() local
984 for (i=0; !ret && i<cfi->numchips; i++) { in cfi_staa_sync()
985 chip = &cfi->chips[i]; in cfi_staa_sync()
1022 chip = &cfi->chips[i]; in cfi_staa_sync()
1036 struct cfi_private *cfi = map->fldrv_priv; in do_lock_oneblock() local
1133 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_lock() local
1137 int ofs_factor = cfi->interleave * cfi->device_type; in cfi_staa_lock()
1146 chipnum = ofs >> cfi->chipshift; in cfi_staa_lock()
1147 adr = ofs - (chipnum << cfi->chipshift); in cfi_staa_lock()
1152 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1154 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1157 ret = do_lock_oneblock(map, &cfi->chips[chipnum], adr); in cfi_staa_lock()
1160 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1162 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1171 if (adr >> cfi->chipshift) { in cfi_staa_lock()
1175 if (chipnum >= cfi->numchips) in cfi_staa_lock()
1183 struct cfi_private *cfi = map->fldrv_priv; in do_unlock_oneblock() local
1280 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_unlock() local
1284 int ofs_factor = cfi->interleave * cfi->device_type; in cfi_staa_unlock()
1287 chipnum = ofs >> cfi->chipshift; in cfi_staa_unlock()
1288 adr = ofs - (chipnum << cfi->chipshift); in cfi_staa_unlock()
1295 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1301 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1305 ret = do_unlock_oneblock(map, &cfi->chips[chipnum], adr); in cfi_staa_unlock()
1308 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1310 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1319 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_suspend() local
1324 for (i=0; !ret && i<cfi->numchips; i++) { in cfi_staa_suspend()
1325 chip = &cfi->chips[i]; in cfi_staa_suspend()
1354 chip = &cfi->chips[i]; in cfi_staa_suspend()
1375 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_resume() local
1379 for (i=0; i<cfi->numchips; i++) { in cfi_staa_resume()
1381 chip = &cfi->chips[i]; in cfi_staa_resume()
1399 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_destroy() local
1400 kfree(cfi->cmdset_priv); in cfi_staa_destroy()
1401 kfree(cfi); in cfi_staa_destroy()