--- drivers/mtd/nand/plat_nand.c | 13 ++++++++++++- include/linux/mtd/nand.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -851,6 +851,7 @@ struct platform_nand_chip { unsigned int options; unsigned int bbt_options; const char **part_probe_types; + int (*chip_fixup)(struct mtd_info *mtd); }; /* Keep gcc happy */ --- a/drivers/mtd/nand/plat_nand.c +++ b/drivers/mtd/nand/plat_nand.c @@ -90,7 +90,18 @@ static int plat_nand_probe(struct platfo } /* Scan to find existence of the device */ - if (nand_scan(&data->mtd, pdata->chip.nr_chips)) { + if (nand_scan_ident(&data->mtd, pdata->chip.nr_chips, NULL)) { + err = -ENXIO; + goto out; + } + + if (pdata->chip.chip_fixup) { + err = pdata->chip.chip_fixup(&data->mtd); + if (err) + goto out; + } + + if (nand_scan_tail(&data->mtd)) { err = -ENXIO; goto out; } hod='get'> upstream openwrtJames
aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.18/142-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch
blob: 9073f795e2e356c172996b24037396e8861a236e (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92