• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/mtd/chips/

Lines Matching defs:cfi

11  * 	  (see include/linux/mtd/cfi.h for selection)
34 #include <linux/mtd/cfi.h>
110 * addresses passed back in cfi are valid as long as the use count of
116 struct cfi_private *cfi = map->fldrv_priv;
119 if (cfi->cfi_mode) {
125 __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);
179 kfree(cfi->cmdset_priv);
185 mtd->size = devsize * cfi->numchips;
187 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
192 kfree(cfi->cmdset_priv);
197 for (i=0; i<cfi->cfiq->NumEraseRegions; i++) {
199 ersize = ((cfi->cfiq->EraseRegionInfo[i] >> 8) & ~0xff) * cfi->interleave;
200 ernum = (cfi->cfiq->EraseRegionInfo[i] & 0xffff) + 1;
205 for (j=0; j<cfi->numchips; j++) {
206 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].offset = (j*devsize)+offset;
207 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].erasesize = ersize;
208 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].numblocks = ernum;
217 kfree(cfi->cmdset_priv);
255 struct cfi_private *cfi = map->fldrv_priv;
274 if (!(((struct cfi_pri_intelext *)cfi->cmdset_priv)->FeatureSupport & 2))
381 struct cfi_private *cfi = map->fldrv_priv;
387 chipnum = (from >> cfi->chipshift);
388 ofs = from - (chipnum << cfi->chipshift);
395 if (chipnum >= cfi->numchips)
398 if ((len + ofs -1) >> cfi->chipshift)
399 thislen = (1<<cfi->chipshift) - ofs;
403 ret = do_read_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf);
420 struct cfi_private *cfi = map->fldrv_priv;
430 wbufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize;
607 struct cfi_private *cfi = map->fldrv_priv;
608 int wbufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize;
617 chipnum = to >> cfi->chipshift;
618 ofs = to - (chipnum << cfi->chipshift);
634 ret = do_write_buffer(map, &cfi->chips[chipnum],
644 if (ofs >> cfi->chipshift) {
647 if (chipnum == cfi->numchips)
728 struct cfi_private *cfi = map->fldrv_priv;
844 for (i = 0; i<cfi_interleave(cfi); i++) {
845 chipstatus |= status.x[w] >> (cfi->device_type * 8);
886 struct cfi_private *cfi = map->fldrv_priv;
941 chipnum = instr->addr >> cfi->chipshift;
942 adr = instr->addr - (chipnum << cfi->chipshift);
948 ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr);
956 if (adr % (1<< cfi->chipshift) == (((unsigned long)regions[i].offset + (regions[i].erasesize * regions[i].numblocks)) %( 1<< cfi->chipshift)))
959 if (adr >> cfi->chipshift) {
963 if (chipnum >= cfi->numchips)
977 struct cfi_private *cfi = map->fldrv_priv;
983 for (i=0; !ret && i<cfi->numchips; i++) {
984 chip = &cfi->chips[i];
1020 chip = &cfi->chips[i];
1034 struct cfi_private *cfi = map->fldrv_priv;
1129 struct cfi_private *cfi = map->fldrv_priv;
1133 int ofs_factor = cfi->interleave * cfi->device_type;
1145 chipnum = ofs >> cfi->chipshift;
1146 adr = ofs - (chipnum << cfi->chipshift);
1151 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1153 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1156 ret = do_lock_oneblock(map, &cfi->chips[chipnum], adr);
1159 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1161 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1170 if (adr >> cfi->chipshift) {
1174 if (chipnum >= cfi->numchips)
1182 struct cfi_private *cfi = map->fldrv_priv;
1277 struct cfi_private *cfi = map->fldrv_priv;
1281 int ofs_factor = cfi->interleave * cfi->device_type;
1284 chipnum = ofs >> cfi->chipshift;
1285 adr = ofs - (chipnum << cfi->chipshift);
1292 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1298 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1302 ret = do_unlock_oneblock(map, &cfi->chips[chipnum], adr);
1305 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1307 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1316 struct cfi_private *cfi = map->fldrv_priv;
1321 for (i=0; !ret && i<cfi->numchips; i++) {
1322 chip = &cfi->chips[i];
1351 chip = &cfi->chips[i];
1372 struct cfi_private *cfi = map->fldrv_priv;
1376 for (i=0; i<cfi->numchips; i++) {
1378 chip = &cfi->chips[i];
1396 struct cfi_private *cfi = map->fldrv_priv;
1397 kfree(cfi->cmdset_priv);
1398 kfree(cfi);