• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/mtd/chips/

Lines Matching refs:cfi

13  * 	  (see include/linux/mtd/cfi.h for selection)
36 #include <linux/mtd/cfi.h>
113 * addresses passed back in cfi are valid as long as the use count of
119 struct cfi_private *cfi = map->fldrv_priv;
122 if (cfi->cfi_mode) {
128 __u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR;
154 cfi->cmdset_priv = extp;
157 for (i=0; i< cfi->numchips; i++) {
158 cfi->chips[i].word_write_time = 128;
159 cfi->chips[i].buffer_write_time = 128;
160 cfi->chips[i].erase_time = 1024;
161 cfi->chips[i].ref_point_counter = 0;
162 init_waitqueue_head(&(cfi->chips[i].wq));
171 struct cfi_private *cfi = map->fldrv_priv;
175 unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave;
178 //printk(KERN_DEBUG "number of CFI chips: %d\n", cfi->numchips);
182 kfree(cfi->cmdset_priv);
188 mtd->size = devsize * cfi->numchips;
190 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
195 kfree(cfi->cmdset_priv);
200 for (i=0; i<cfi->cfiq->NumEraseRegions; i++) {
202 ersize = ((cfi->cfiq->EraseRegionInfo[i] >> 8) & ~0xff) * cfi->interleave;
203 ernum = (cfi->cfiq->EraseRegionInfo[i] & 0xffff) + 1;
208 for (j=0; j<cfi->numchips; j++) {
209 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].offset = (j*devsize)+offset;
210 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].erasesize = ersize;
211 mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].numblocks = ernum;
220 kfree(cfi->cmdset_priv);
258 struct cfi_private *cfi = map->fldrv_priv;
277 if (!(((struct cfi_pri_intelext *)cfi->cmdset_priv)->FeatureSupport & 2))
384 struct cfi_private *cfi = map->fldrv_priv;
390 chipnum = (from >> cfi->chipshift);
391 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;
620 chipnum = to >> cfi->chipshift;
621 ofs = to - (chipnum << cfi->chipshift);
637 ret = do_write_buffer(map, &cfi->chips[chipnum],
647 if (ofs >> cfi->chipshift) {
650 if (chipnum == cfi->numchips)
731 struct cfi_private *cfi = map->fldrv_priv;
847 for (i = 0; i<cfi_interleave(cfi); i++) {
848 chipstatus |= status.x[w] >> (cfi->device_type * 8);
888 struct cfi_private *cfi = map->fldrv_priv;
943 chipnum = instr->addr >> cfi->chipshift;
944 adr = instr->addr - (chipnum << cfi->chipshift);
950 ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr);
958 if (adr % (1<< cfi->chipshift) == ((regions[i].offset + (regions[i].erasesize * regions[i].numblocks)) %( 1<< cfi->chipshift)))
961 if (adr >> cfi->chipshift) {
965 if (chipnum >= cfi->numchips)
979 struct cfi_private *cfi = map->fldrv_priv;
985 for (i=0; !ret && i<cfi->numchips; i++) {
986 chip = &cfi->chips[i];
1021 chip = &cfi->chips[i];
1035 struct cfi_private *cfi = map->fldrv_priv;
1130 struct cfi_private *cfi = map->fldrv_priv;
1134 int ofs_factor = cfi->interleave * cfi->device_type;
1146 chipnum = ofs >> cfi->chipshift;
1147 adr = ofs - (chipnum << cfi->chipshift);
1152 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1154 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1157 ret = do_lock_oneblock(map, &cfi->chips[chipnum], adr);
1160 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1162 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1171 if (adr >> cfi->chipshift) {
1175 if (chipnum >= cfi->numchips)
1183 struct cfi_private *cfi = map->fldrv_priv;
1278 struct cfi_private *cfi = map->fldrv_priv;
1282 int ofs_factor = cfi->interleave * cfi->device_type;
1285 chipnum = ofs >> cfi->chipshift;
1286 adr = ofs - (chipnum << cfi->chipshift);
1293 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1299 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1303 ret = do_unlock_oneblock(map, &cfi->chips[chipnum], adr);
1306 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
1308 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
1317 struct cfi_private *cfi = map->fldrv_priv;
1322 for (i=0; !ret && i<cfi->numchips; i++) {
1323 chip = &cfi->chips[i];
1352 chip = &cfi->chips[i];
1373 struct cfi_private *cfi = map->fldrv_priv;
1377 for (i=0; i<cfi->numchips; i++) {
1379 chip = &cfi->chips[i];
1397 struct cfi_private *cfi = map->fldrv_priv;
1398 kfree(cfi->cmdset_priv);
1399 kfree(cfi);