Lines Matching refs:cfi

11  * 	  (see include/linux/mtd/cfi.h for selection)
33 #include <linux/mtd/cfi.h>
109 * addresses passed back in cfi are valid as long as the use count of
115 struct cfi_private *cfi = map->fldrv_priv;
118 if (cfi->cfi_mode) {
124 __u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR;
151 cfi->cmdset_priv = extp;
154 for (i=0; i< cfi->numchips; i++) {
155 cfi->chips[i].word_write_time = 128;
156 cfi->chips[i].buffer_write_time = 128;
157 cfi->chips[i].erase_time = 1024;
158 cfi->chips[i].ref_point_counter = 0;
159 init_waitqueue_head(&(cfi->chips[i].wq));
168 struct cfi_private *cfi = map->fldrv_priv;
172 unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave;
175 //printk(KERN_DEBUG "number of CFI chips: %d\n", cfi->numchips);
178 kfree(cfi->cmdset_priv);
184 mtd->size = devsize * cfi->numchips;
186 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
191 kfree(cfi->cmdset_priv);
196 for (i=0; i<cfi->cfiq->NumEraseRegions; i++) {
198 ersize = ((cfi->cfiq->EraseRegionInfo[i] >> 8) & ~0xff) * cfi->interleave;
199 ernum = (cfi->cfiq->EraseRegionInfo[i] & 0xffff) + 1;
204 for (j=0; j<cfi->numchips; j++) {
205 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].offset = (j*devsize)+offset;
206 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].erasesize = ersize;
207 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].numblocks = ernum;
216 kfree(cfi->cmdset_priv);
240 mtd->writebufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize;
255 struct cfi_private *cfi = map->fldrv_priv;
274 if (!(((struct cfi_pri_intelext *)cfi->cmdset_priv)->FeatureSupport & 2))
386 struct cfi_private *cfi = map->fldrv_priv;
392 chipnum = (from >> cfi->chipshift);
393 ofs = from - (chipnum << cfi->chipshift);
398 if (chipnum >= cfi->numchips)
401 if ((len + ofs -1) >> cfi->chipshift)
402 thislen = (1<<cfi->chipshift) - ofs;
406 ret = do_read_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf);
423 struct cfi_private *cfi = map->fldrv_priv;
433 wbufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize;
610 struct cfi_private *cfi = map->fldrv_priv;
611 int wbufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize;
616 chipnum = to >> cfi->chipshift;
617 ofs = to - (chipnum << cfi->chipshift);
633 ret = do_write_buffer(map, &cfi->chips[chipnum],
643 if (ofs >> cfi->chipshift) {
646 if (chipnum == cfi->numchips)
734 struct cfi_private *cfi = map->fldrv_priv;
851 for (i = 0; i<cfi_interleave(cfi); i++) {
852 chipstatus |= status.x[w] >> (cfi->device_type * 8);
893 struct cfi_private *cfi = map->fldrv_priv;
942 chipnum = instr->addr >> cfi->chipshift;
943 adr = instr->addr - (chipnum << cfi->chipshift);
949 ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr);
957 if (adr % (1<< cfi->chipshift) == (((unsigned long)regions[i].offset + (regions[i].erasesize * regions[i].numblocks)) %( 1<< cfi->chipshift)))
960 if (adr >> cfi->chipshift) {
964 if (chipnum >= cfi->numchips)
975 struct cfi_private *cfi = map->fldrv_priv;
981 for (i=0; !ret && i<cfi->numchips; i++) {
982 chip = &cfi->chips[i];
1019 chip = &cfi->chips[i];
1033 struct cfi_private *cfi = map->fldrv_priv;
1129 struct cfi_private *cfi = map->fldrv_priv;
1133 int ofs_factor = cfi->interleave * cfi->device_type;
1142 chipnum = ofs >> cfi->chipshift;
1143 adr = ofs - (chipnum << cfi->chipshift);
1148 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1150 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1153 ret = do_lock_oneblock(map, &cfi->chips[chipnum], adr);
1156 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1158 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1167 if (adr >> cfi->chipshift) {
1171 if (chipnum >= cfi->numchips)
1179 struct cfi_private *cfi = map->fldrv_priv;
1275 struct cfi_private *cfi = map->fldrv_priv;
1279 int ofs_factor = cfi->interleave * cfi->device_type;
1282 chipnum = ofs >> cfi->chipshift;
1283 adr = ofs - (chipnum << cfi->chipshift);
1290 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1296 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1300 ret = do_unlock_oneblock(map, &cfi->chips[chipnum], adr);
1303 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1305 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1314 struct cfi_private *cfi = map->fldrv_priv;
1319 for (i=0; !ret && i<cfi->numchips; i++) {
1320 chip = &cfi->chips[i];
1349 chip = &cfi->chips[i];
1370 struct cfi_private *cfi = map->fldrv_priv;
1374 for (i=0; i<cfi->numchips; i++) {
1376 chip = &cfi->chips[i];
1394 struct cfi_private *cfi = map->fldrv_priv;
1395 kfree(cfi->cmdset_priv);
1396 kfree(cfi);