diff options
Diffstat (limited to 'drivers/mtd/chips/cfi_util.c')
-rw-r--r-- | drivers/mtd/chips/cfi_util.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/drivers/mtd/chips/cfi_util.c b/drivers/mtd/chips/cfi_util.c index 2b2ede2bfcca..d8e7a026ba5a 100644 --- a/drivers/mtd/chips/cfi_util.c +++ b/drivers/mtd/chips/cfi_util.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * | 7 | * |
8 | * This code is covered by the GPL. | 8 | * This code is covered by the GPL. |
9 | * | 9 | * |
10 | * $Id: cfi_util.c,v 1.8 2004/12/14 19:55:56 nico Exp $ | 10 | * $Id: cfi_util.c,v 1.10 2005/11/07 11:14:23 gleixner Exp $ |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
@@ -56,7 +56,7 @@ __xipram cfi_read_pri(struct map_info *map, __u16 adr, __u16 size, const char* n | |||
56 | 56 | ||
57 | /* Read in the Extended Query Table */ | 57 | /* Read in the Extended Query Table */ |
58 | for (i=0; i<size; i++) { | 58 | for (i=0; i<size; i++) { |
59 | ((unsigned char *)extp)[i] = | 59 | ((unsigned char *)extp)[i] = |
60 | cfi_read_query(map, base+((adr+i)*ofs_factor)); | 60 | cfi_read_query(map, base+((adr+i)*ofs_factor)); |
61 | } | 61 | } |
62 | 62 | ||
@@ -70,15 +70,6 @@ __xipram cfi_read_pri(struct map_info *map, __u16 adr, __u16 size, const char* n | |||
70 | local_irq_enable(); | 70 | local_irq_enable(); |
71 | #endif | 71 | #endif |
72 | 72 | ||
73 | if (extp->MajorVersion != '1' || | ||
74 | (extp->MinorVersion < '0' || extp->MinorVersion > '3')) { | ||
75 | printk(KERN_WARNING " Unknown %s Extended Query " | ||
76 | "version %c.%c.\n", name, extp->MajorVersion, | ||
77 | extp->MinorVersion); | ||
78 | kfree(extp); | ||
79 | extp = NULL; | ||
80 | } | ||
81 | |||
82 | out: return extp; | 73 | out: return extp; |
83 | } | 74 | } |
84 | 75 | ||
@@ -122,17 +113,17 @@ int cfi_varsize_frob(struct mtd_info *mtd, varsize_frob_t frob, | |||
122 | 113 | ||
123 | i = 0; | 114 | i = 0; |
124 | 115 | ||
125 | /* Skip all erase regions which are ended before the start of | 116 | /* Skip all erase regions which are ended before the start of |
126 | the requested erase. Actually, to save on the calculations, | 117 | the requested erase. Actually, to save on the calculations, |
127 | we skip to the first erase region which starts after the | 118 | we skip to the first erase region which starts after the |
128 | start of the requested erase, and then go back one. | 119 | start of the requested erase, and then go back one. |
129 | */ | 120 | */ |
130 | 121 | ||
131 | while (i < mtd->numeraseregions && ofs >= regions[i].offset) | 122 | while (i < mtd->numeraseregions && ofs >= regions[i].offset) |
132 | i++; | 123 | i++; |
133 | i--; | 124 | i--; |
134 | 125 | ||
135 | /* OK, now i is pointing at the erase region in which this | 126 | /* OK, now i is pointing at the erase region in which this |
136 | erase request starts. Check the start of the requested | 127 | erase request starts. Check the start of the requested |
137 | erase range is aligned with the erase size which is in | 128 | erase range is aligned with the erase size which is in |
138 | effect here. | 129 | effect here. |
@@ -155,7 +146,7 @@ int cfi_varsize_frob(struct mtd_info *mtd, varsize_frob_t frob, | |||
155 | the address actually falls | 146 | the address actually falls |
156 | */ | 147 | */ |
157 | i--; | 148 | i--; |
158 | 149 | ||
159 | if ((ofs + len) & (regions[i].erasesize-1)) | 150 | if ((ofs + len) & (regions[i].erasesize-1)) |
160 | return -EINVAL; | 151 | return -EINVAL; |
161 | 152 | ||
@@ -168,7 +159,7 @@ int cfi_varsize_frob(struct mtd_info *mtd, varsize_frob_t frob, | |||
168 | int size = regions[i].erasesize; | 159 | int size = regions[i].erasesize; |
169 | 160 | ||
170 | ret = (*frob)(map, &cfi->chips[chipnum], adr, size, thunk); | 161 | ret = (*frob)(map, &cfi->chips[chipnum], adr, size, thunk); |
171 | 162 | ||
172 | if (ret) | 163 | if (ret) |
173 | return ret; | 164 | return ret; |
174 | 165 | ||
@@ -182,7 +173,7 @@ int cfi_varsize_frob(struct mtd_info *mtd, varsize_frob_t frob, | |||
182 | if (adr >> cfi->chipshift) { | 173 | if (adr >> cfi->chipshift) { |
183 | adr = 0; | 174 | adr = 0; |
184 | chipnum++; | 175 | chipnum++; |
185 | 176 | ||
186 | if (chipnum >= cfi->numchips) | 177 | if (chipnum >= cfi->numchips) |
187 | break; | 178 | break; |
188 | } | 179 | } |