• 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/lpddr/

Lines Matching defs:map

43 static int get_chip(struct map_info *map, struct flchip *chip, int mode);
44 static int chip_ready(struct map_info *map, struct flchip *chip, int mode);
45 static void put_chip(struct map_info *map, struct flchip *chip);
47 struct mtd_info *lpddr_cmdset(struct map_info *map)
49 struct lpddr_private *lpddr = map->fldrv_priv;
61 mtd->priv = map;
79 if (map_is_linear(map)) {
119 static int wait_for_ready(struct map_info *map, struct flchip *chip,
135 dsr = CMDVAL(map_read(map, map->pfow_base + PFOW_DSR));
140 map->name, chip_state);
182 map_write(map, CMD(~(DSR_ERR)), map->pfow_base + PFOW_DSR);
184 map->name, dsr);
192 static int get_chip(struct map_info *map, struct flchip *chip, int mode)
237 ret = chip_ready(map, contender, mode);
253 put_chip(map, contender);
281 ret = chip_ready(map, chip, mode);
288 static int chip_ready(struct map_info *map, struct flchip *chip, int mode)
290 struct lpddr_private *lpddr = map->fldrv_priv;
308 map_write(map, CMD(LPDDR_SUSPEND),
309 map->pfow_base + PFOW_PROGRAM_ERASE_SUSPEND);
312 ret = wait_for_ready(map, chip, 0);
316 map_write(map, CMD(LPDDR_RESUME),
317 map->pfow_base + PFOW_COMMAND_CODE);
318 map_write(map, CMD(LPDDR_START_EXECUTION),
319 map->pfow_base + PFOW_COMMAND_EXECUTE);
323 "State may be wrong \n", map->name);
347 static void put_chip(struct map_info *map, struct flchip *chip)
361 put_chip(map, loaner);
387 map_write(map, CMD(LPDDR_RESUME),
388 map->pfow_base + PFOW_COMMAND_CODE);
389 map_write(map, CMD(LPDDR_START_EXECUTION),
390 map->pfow_base + PFOW_COMMAND_EXECUTE);
398 map->name, chip->oldstate);
403 int do_write_buffer(struct map_info *map, struct flchip *chip,
407 struct lpddr_private *lpddr = map->fldrv_priv;
417 ret = get_chip(map, chip, FL_WRITING);
423 word_gap = (-adr & (map_bankwidth(map)-1));
424 words = (len - word_gap + map_bankwidth(map) - 1) / map_bankwidth(map);
428 word_gap = map_bankwidth(map) - word_gap;
430 datum = map_word_ff(map);
434 prog_buf_ofs = map->pfow_base + CMDVAL(map_read(map,
435 map->pfow_base + PFOW_PROGRAM_BUFFER_OFFSET));
439 int n = map_bankwidth(map) - word_gap;
446 if (!word_gap && (len < map_bankwidth(map)))
447 datum = map_word_ff(map);
449 datum = map_word_load_partial(map, datum,
454 if (!len || word_gap == map_bankwidth(map)) {
455 map_write(map, datum, prog_buf_ofs);
456 prog_buf_ofs += map_bankwidth(map);
470 send_pfow_command(map, LPDDR_BUFF_PROGRAM, adr, wbufsize, NULL);
472 ret = wait_for_ready(map, chip, (1<<lpddr->qinfo->ProgBufferTime));
475 map->name, ret, adr);
479 out: put_chip(map, chip);
486 struct map_info *map = mtd->priv;
487 struct lpddr_private *lpddr = map->fldrv_priv;
493 ret = get_chip(map, chip, FL_ERASING);
498 send_pfow_command(map, LPDDR_BLOCK_ERASE, adr, 0, NULL);
500 ret = wait_for_ready(map, chip, (1<<lpddr->qinfo->BlockEraseTime)*1000);
503 map->name, ret, adr);
506 out: put_chip(map, chip);
514 struct map_info *map = mtd->priv;
515 struct lpddr_private *lpddr = map->fldrv_priv;
521 ret = get_chip(map, chip, FL_READY);
527 map_copy_from(map, buf, adr, len);
530 put_chip(map, chip);
538 struct map_info *map = mtd->priv;
539 struct lpddr_private *lpddr = map->fldrv_priv;
545 if (!map->virt || (adr + len > mtd->size))
551 *mtdbuf = (void *)map->virt + chip->start + ofs;
572 ret = get_chip(map, chip, FL_POINT);
592 struct map_info *map = mtd->priv;
593 struct lpddr_private *lpddr = map->fldrv_priv;
620 "pointed region\n", map->name);
622 put_chip(map, chip);
646 struct map_info *map = mtd->priv;
647 struct lpddr_private *lpddr = map->fldrv_priv;
674 ret = do_write_buffer(map, &lpddr->chips[chipnum],
696 struct map_info *map = mtd->priv;
697 struct lpddr_private *lpddr = map->fldrv_priv;
724 struct map_info *map = mtd->priv;
725 struct lpddr_private *lpddr = map->fldrv_priv;
730 ret = get_chip(map, chip, FL_LOCKING);
737 send_pfow_command(map, LPDDR_LOCK_BLOCK, adr, adr + len, NULL);
740 send_pfow_command(map, LPDDR_UNLOCK_BLOCK, adr, adr + len, NULL);
745 ret = wait_for_ready(map, chip, 1);
748 map->name, ret);
751 out: put_chip(map, chip);
766 int word_program(struct map_info *map, loff_t adr, uint32_t curval)
769 struct lpddr_private *lpddr = map->fldrv_priv;
774 ret = get_chip(map, chip, FL_WRITING);
780 send_pfow_command(map, LPDDR_WORD_PROGRAM, adr, 0x00, (map_word *)&curval);
782 ret = wait_for_ready(map, chip, (1<<lpddr->qinfo->SingleWordProgTime));
785 map->name, adr, curval);
789 out: put_chip(map, chip);