summaryrefslogtreecommitdiff
path: root/target/linux/ramips/patches/111-nand-controller-busy.patch
blob: c87bbb50e034e9c3f81fa37a554552ab004fdcfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Index: linux-3.10.14/drivers/mtd/ralink/ralink_nand.c
===================================================================
--- linux-3.10.14.orig/drivers/mtd/ralink/ralink_nand.c
+++ linux-3.10.14/drivers/mtd/ralink/ralink_nand.c
@@ -377,7 +377,10 @@ static int nfc_check_wp(void)
 	int ret;
 
 	ret = _nfc_read_status(&result);
-	//FIXME, if ret < 0
+	if (ret) {
+		printk(KERN_WARNING "unable to tell WP. default FALSE.\n");
+		return 0;
+	}
 
 	return !(result & NAND_STATUS_WP);
 #endif
@@ -1332,10 +1335,9 @@ nand_get_device(struct ra_nand_chip *ra,
 	int ret = 0;
 
 #if !defined (__UBOOT__)
-	ret = mutex_lock(ra->controller);
+	mutex_lock(ra->controller);
 #endif ///
-	if (!ret) 
-		ra->state = new_state;
+	ra->state = new_state;
 
 	return ret;
 
@@ -1596,6 +1598,7 @@ int nand_erase_nand(struct ra_nand_chip
 
 #ifdef SKIP_BAD_BLOCK
 		do {
+			int newpage = page_remap(ra, page);
 #if defined (CONFIG_SUPPORT_OPENWRT)
 			if (((page << ra->page_shift) >= (int)rootfs_offset) && ((page << ra->page_shift) < (int)rootfs_data_offset))
 			{
@@ -1606,8 +1609,6 @@ int nand_erase_nand(struct ra_nand_chip
 				}
 			}
 #endif
-			int newpage = page_remap(ra, page);
-
 			if (newpage < 0)
 			{
 				// printk("page_remap failed, page = 0x%x\n", page);
@@ -2881,7 +2882,7 @@ static int ramtd_nand_writeoob(struct mt
 
 	ra_dbg("%s: \n", __func__);
 
-	nand_get_device(ra, FL_READING);
+	nand_get_device(ra, FL_WRITING);
 
 	ret = nand_do_write_ops(ra, to, ops);