Lines Matching refs:adr
97 static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr, int mode);
98 static void put_chip(struct map_info *map, struct flchip *chip, unsigned long adr);
130 unsigned long adr)
140 status = map_read(map, adr);
558 unsigned long adr)
563 map_write(map, CMD(0xF0), adr);
639 __u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR;
642 extp = (struct cfi_pri_amdstd*)cfi_read_pri(map, adr, sizeof(*extp), "Amd/Fujitsu");
874 static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr, int mode)
888 if (chip_ready(map, chip, adr, NULL))
915 if ((adr & chip->in_progress_block_mask) ==
927 if (chip_ready(map, chip, adr, NULL))
936 put_chip(map, chip, adr);
980 static void put_chip(struct map_info *map, struct flchip *chip, unsigned long adr)
1022 unsigned long adr)
1025 (void) map_read(map, adr); /* ensure mmu mapping is up to date */
1030 unsigned long adr)
1035 map_write(map, CMD(0xf0), adr);
1038 (void) map_read(map, adr);
1057 unsigned long adr, int usec)
1080 map_write(map, CMD(0xb0), adr);
1093 status = map_read(map, adr);
1102 map_write(map, CMD(0xf0), adr);
1103 (void) map_read(map, adr);
1130 cfi_fixup_m29ew_erase_suspend(map, adr);
1132 map_write(map, cfi->sector_erase_cmd, adr);
1143 status = map_read(map, adr);
1148 #define UDELAY(map, chip, adr, usec) xip_udelay(map, chip, adr, usec)
1160 #define INVALIDATE_CACHE_UDELAY(map, chip, adr, len, usec) \
1161 UDELAY(map, chip, adr, usec)
1182 #define xip_disable(map, chip, adr)
1183 #define xip_enable(map, chip, adr)
1186 #define UDELAY(map, chip, adr, usec) \
1193 #define INVALIDATE_CACHE_UDELAY(map, chip, adr, len, usec) \
1196 INVALIDATE_CACHED_RANGE(map, adr, len); \
1203 static inline int do_read_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf)
1209 adr += chip->start;
1212 cmd_addr = adr & ~(map_bankwidth(map)-1);
1226 map_copy_from(map, buf, adr, len);
1273 loff_t adr, size_t len, u_char *buf, size_t grouplen);
1276 loff_t adr, size_t len)
1287 INVALIDATE_CACHED_RANGE(map, chip->start + adr, len);
1291 loff_t adr, size_t len)
1304 INVALIDATE_CACHED_RANGE(map, chip->start + adr, len);
1308 struct flchip *chip, loff_t adr,
1329 adr += chip->start;
1333 otp_enter(map, chip, adr, len);
1334 map_copy_from(map, buf, adr, len);
1335 otp_exit(map, chip, adr, len);
1383 unsigned long adr, map_word datum,
1386 static int do_otp_write(struct map_info *map, struct flchip *chip, loff_t adr,
1391 unsigned long bus_ofs = adr & ~(map_bankwidth(map)-1);
1392 int gap = adr - bus_ofs;
1408 adr += n;
1416 static int do_otp_lock(struct map_info *map, struct flchip *chip, loff_t adr,
1425 if ((adr != 0) || (len != grouplen))
1458 if (chip_ready(map, chip, adr, NULL))
1646 unsigned long adr, map_word datum,
1665 map_write(map, datum, adr);
1669 adr, map_bankwidth(map),
1694 !chip_good(map, chip, adr, &datum)) {
1695 xip_enable(map, chip, adr);
1697 xip_disable(map, chip, adr);
1702 if (chip_good(map, chip, adr, &datum)) {
1703 if (cfi_check_err_status(map, chip, adr))
1709 UDELAY(map, chip, adr, 1);
1717 unsigned long adr, int mode)
1723 ret = get_chip(map, chip, adr, mode);
1730 otp_enter(map, chip, adr, map_bankwidth(map));
1737 unsigned long adr, int mode)
1740 otp_exit(map, chip, adr, map_bankwidth(map));
1744 put_chip(map, chip, adr);
1751 unsigned long adr, map_word datum,
1765 oldd = map_read(map, adr);
1771 XIP_INVAL_CACHED_RANGE(map, adr, map_bankwidth(map));
1773 xip_disable(map, chip, adr);
1776 ret = do_write_oneword_once(map, chip, adr, datum, mode, cfi);
1787 xip_enable(map, chip, adr);
1793 unsigned long adr, map_word datum,
1798 adr += chip->start;
1800 pr_debug("MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", __func__, adr,
1803 ret = do_write_oneword_start(map, chip, adr, mode);
1807 ret = do_write_oneword_retry(map, chip, adr, datum, mode);
1809 do_write_oneword_done(map, chip, adr, mode);
1940 struct flchip *chip, unsigned long adr,
1974 !chip_good(map, chip, adr, &datum)) {
1976 __func__, adr);
1981 if (chip_good(map, chip, adr, &datum)) {
1982 if (cfi_check_err_status(map, chip, adr))
1988 UDELAY(map, chip, adr, 1);
2020 unsigned long adr, const u_char *buf,
2029 adr += chip->start;
2030 cmd_adr = adr;
2033 ret = get_chip(map, chip, adr, FL_WRITING);
2042 __func__, adr, datum.x[0]);
2044 XIP_INVAL_CACHED_RANGE(map, adr, len);
2063 map_write(map, datum, adr + z);
2070 adr += z;
2077 adr, map_bankwidth(map),
2080 ret = do_write_buffer_wait(map, chip, adr, datum);
2084 xip_enable(map, chip, adr);
2088 put_chip(map, chip, adr);
2180 unsigned long adr)
2190 if (chip->state == FL_READY && chip_ready(map, chip, adr, NULL))
2207 if (chip_ready(map, chip, adr, NULL))
2232 unsigned long adr, map_word datum)
2241 adr += chip->start;
2243 ret = cfi_amdstd_panic_wait(map, chip, adr);
2248 __func__, adr, datum.x[0]);
2256 oldd = map_read(map, adr);
2268 map_write(map, datum, adr);
2271 if (chip_ready(map, chip, adr, NULL))
2277 if (!chip_ready(map, chip, adr, &datum) ||
2278 cfi_check_err_status(map, chip, adr)) {
2415 unsigned long int adr;
2421 adr = cfi->addr_unlock1;
2424 ret = get_chip(map, chip, adr, FL_ERASING);
2433 XIP_INVAL_CACHED_RANGE(map, adr, map->size);
2435 xip_disable(map, chip, adr);
2447 chip->in_progress_block_addr = adr;
2451 adr, map->size,
2474 if (chip_ready(map, chip, adr, &datum)) {
2475 if (cfi_check_err_status(map, chip, adr))
2488 UDELAY(map, chip, adr, 1000000/HZ);
2503 xip_enable(map, chip, adr);
2505 put_chip(map, chip, adr);
2512 static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr, int len, void *thunk)
2521 adr += chip->start;
2524 ret = get_chip(map, chip, adr, FL_ERASING);
2531 __func__, adr);
2533 XIP_INVAL_CACHED_RANGE(map, adr, len);
2535 xip_disable(map, chip, adr);
2543 map_write(map, cfi->sector_erase_cmd, adr);
2547 chip->in_progress_block_addr = adr;
2551 adr, len,
2574 if (chip_ready(map, chip, adr, &datum)) {
2575 if (cfi_check_err_status(map, chip, adr))
2588 UDELAY(map, chip, adr, 1000000/HZ);
2603 xip_enable(map, chip, adr);
2605 put_chip(map, chip, adr);
2633 unsigned long adr, int len, void *thunk)
2639 ret = get_chip(map, chip, adr + chip->start, FL_LOCKING);
2644 pr_debug("MTD %s(): LOCK 0x%08lx len %d\n", __func__, adr, len);
2656 map_write(map, CMD(0x40), chip->start + adr);
2659 put_chip(map, chip, adr + chip->start);
2668 unsigned long adr, int len, void *thunk)
2674 ret = get_chip(map, chip, adr + chip->start, FL_UNLOCKING);
2679 pr_debug("MTD %s(): LOCK 0x%08lx len %d\n", __func__, adr, len);
2683 map_write(map, CMD(0x70), adr);
2686 put_chip(map, chip, adr + chip->start);
2710 unsigned long adr;
2720 unsigned long adr, int len, void *thunk)
2726 adr += chip->start;
2728 ret = get_chip(map, chip, adr, FL_LOCKING);
2734 pr_debug("MTD %s(): XXLOCK 0x%08lx len %d\n", __func__, adr, len);
2746 map_write(map, CMD(0xA0), adr);
2747 map_write(map, CMD(0x00), adr);
2759 ret = !cfi_read_query(map, adr);
2768 if (chip_ready(map, chip, adr, NULL))
2777 UDELAY(map, chip, adr, 1);
2785 put_chip(map, chip, adr);
2805 unsigned long adr;
2834 adr = 0;
2849 sect[sectors].adr = adr;
2851 map, &cfi->chips[chipnum], adr, 0,
2855 adr += size;
2862 if (adr >> cfi->chipshift) {
2865 adr = 0;
2895 do_ppb_xxlock(map, sect[i].chip, sect[i].adr, 0,