ar71xx: make ar934x_nfc driver compatible with 3.7

Also add compatibility patches for the currently
supported kernels.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 34278
master
Gabor Juhos 12 years ago
parent 4468fd7ae4
commit 8194237789
  1. 13
      target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c
  2. 2
      target/linux/ar71xx/patches-3.3/a02-ar934x_nfc-add-NO_AUTOINCR-flag.patch
  3. 29
      target/linux/ar71xx/patches-3.3/a05-ar934x_nfc-add-buffer-verification.patch
  4. 29
      target/linux/ar71xx/patches-3.6/a05-ar934x_nfc-add-buffer-verification.patch

@ -762,18 +762,6 @@ ar934x_nfc_read_buf(struct mtd_info *mtd, u8 *buf, int len)
nfc->buf_index = buf_index;
}
static int
ar934x_nfc_verify_buf(struct mtd_info *mtd, const u_char *buf, int len)
{
int i;
for (i = 0; i < len; i++)
if (buf[i] != ar934x_nfc_read_byte(mtd))
return -EFAULT;
return 0;
}
static void
ar934x_nfc_hw_init(struct ar934x_nfc *nfc)
{
@ -1059,7 +1047,6 @@ ar934x_nfc_probe(struct platform_device *pdev)
nand->read_byte = ar934x_nfc_read_byte;
nand->write_buf = ar934x_nfc_write_buf;
nand->read_buf = ar934x_nfc_read_buf;
nand->verify_buf = ar934x_nfc_verify_buf;
nand->select_chip = ar934x_nfc_select_chip;
ret = ar934x_nfc_alloc_buf(nfc, AR934X_NFC_ID_BUF_SIZE);

@ -1,7 +1,7 @@
reverted:
--- a/drivers/mtd/nand/ar934x_nfc.c
+++ b/drivers/mtd/nand/ar934x_nfc.c
@@ -1051,6 +1051,7 @@ ar934x_nfc_probe(struct platform_device
@@ -1039,6 +1039,7 @@ ar934x_nfc_probe(struct platform_device
else
mtd->name = dev_name(&pdev->dev);

@ -0,0 +1,29 @@
--- a/drivers/mtd/nand/ar934x_nfc.c
+++ b/drivers/mtd/nand/ar934x_nfc.c
@@ -762,6 +762,18 @@ ar934x_nfc_read_buf(struct mtd_info *mtd
nfc->buf_index = buf_index;
}
+static int
+ar934x_nfc_verify_buf(struct mtd_info *mtd, const u_char *buf, int len)
+{
+ int i;
+
+ for (i = 0; i < len; i++)
+ if (buf[i] != ar934x_nfc_read_byte(mtd))
+ return -EFAULT;
+
+ return 0;
+}
+
static void
ar934x_nfc_hw_init(struct ar934x_nfc *nfc)
{
@@ -1048,6 +1060,7 @@ ar934x_nfc_probe(struct platform_device
nand->read_byte = ar934x_nfc_read_byte;
nand->write_buf = ar934x_nfc_write_buf;
nand->read_buf = ar934x_nfc_read_buf;
+ nand->verify_buf = ar934x_nfc_verify_buf;
nand->select_chip = ar934x_nfc_select_chip;
ret = ar934x_nfc_alloc_buf(nfc, AR934X_NFC_ID_BUF_SIZE);

@ -0,0 +1,29 @@
--- a/drivers/mtd/nand/ar934x_nfc.c
+++ b/drivers/mtd/nand/ar934x_nfc.c
@@ -762,6 +762,18 @@ ar934x_nfc_read_buf(struct mtd_info *mtd
nfc->buf_index = buf_index;
}
+static int
+ar934x_nfc_verify_buf(struct mtd_info *mtd, const u_char *buf, int len)
+{
+ int i;
+
+ for (i = 0; i < len; i++)
+ if (buf[i] != ar934x_nfc_read_byte(mtd))
+ return -EFAULT;
+
+ return 0;
+}
+
static void
ar934x_nfc_hw_init(struct ar934x_nfc *nfc)
{
@@ -1048,6 +1060,7 @@ ar934x_nfc_probe(struct platform_device
nand->read_byte = ar934x_nfc_read_byte;
nand->write_buf = ar934x_nfc_write_buf;
nand->read_buf = ar934x_nfc_read_buf;
+ nand->verify_buf = ar934x_nfc_verify_buf;
nand->select_chip = ar934x_nfc_select_chip;
ret = ar934x_nfc_alloc_buf(nfc, AR934X_NFC_ID_BUF_SIZE);
Loading…
Cancel
Save