| 1 | --- a/drivers/mtd/nand/ar934x_nfc.c |
| 2 | +++ b/drivers/mtd/nand/ar934x_nfc.c |
| 3 | @@ -786,6 +786,18 @@ ar934x_nfc_read_buf(struct mtd_info *mtd |
| 4 | nfc->buf_index = buf_index; |
| 5 | } |
| 6 | |
| 7 | +static int |
| 8 | +ar934x_nfc_verify_buf(struct mtd_info *mtd, const u_char *buf, int len) |
| 9 | +{ |
| 10 | + int i; |
| 11 | + |
| 12 | + for (i = 0; i < len; i++) |
| 13 | + if (buf[i] != ar934x_nfc_read_byte(mtd)) |
| 14 | + return -EFAULT; |
| 15 | + |
| 16 | + return 0; |
| 17 | +} |
| 18 | + |
| 19 | static void |
| 20 | ar934x_nfc_hw_init(struct ar934x_nfc *nfc) |
| 21 | { |
| 22 | @@ -1072,6 +1084,7 @@ ar934x_nfc_probe(struct platform_device |
| 23 | nand->read_byte = ar934x_nfc_read_byte; |
| 24 | nand->write_buf = ar934x_nfc_write_buf; |
| 25 | nand->read_buf = ar934x_nfc_read_buf; |
| 26 | + nand->verify_buf = ar934x_nfc_verify_buf; |
| 27 | nand->select_chip = ar934x_nfc_select_chip; |
| 28 | |
| 29 | ret = ar934x_nfc_alloc_buf(nfc, AR934X_NFC_ID_BUF_SIZE); |
| 30 | |