projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'zynq' of git://www.denx.de/git/u-boot-microblaze
[oweals/u-boot.git]
/
include
/
linux
/
mtd
/
omap_elm.h
diff --git
a/include/linux/mtd/omap_elm.h
b/include/linux/mtd/omap_elm.h
index 45454eaf0f18ffd15566c2969cf64df94da26c1c..b8096b02e37319039059e857ce04fe50f075c72b 100644
(file)
--- a/
include/linux/mtd/omap_elm.h
+++ b/
include/linux/mtd/omap_elm.h
@@
-24,6
+24,9
@@
#define ELM_LOCATION_STATUS_ECC_CORRECTABLE_MASK (0x100)
#define ELM_LOCATION_STATUS_ECC_NB_ERRORS_MASK (0x1F)
#define ELM_LOCATION_STATUS_ECC_CORRECTABLE_MASK (0x100)
#define ELM_LOCATION_STATUS_ECC_NB_ERRORS_MASK (0x1F)
+#define ELM_MAX_CHANNELS 8
+#define ELM_MAX_ERROR_COUNT 16
+
#ifndef __ASSEMBLY__
enum bch_level {
#ifndef __ASSEMBLY__
enum bch_level {
@@
-43,7
+46,7
@@
struct syndrome {
struct location {
u32 location_status; /* 0x800 */
u8 res1[124]; /* 0x804 */
struct location {
u32 location_status; /* 0x800 */
u8 res1[124]; /* 0x804 */
- u32 error_location_x[
16]; /* 0x880..
.. */
+ u32 error_location_x[
ELM_MAX_ERROR_COUNT]; /* 0x880, 0x980,
.. */
u8 res2[64]; /* 0x8c0 */
};
u8 res2[64]; /* 0x8c0 */
};
@@
-63,12
+66,12
@@
struct elm {
u8 res2[92]; /* 0x024 */
u32 page_ctrl; /* 0x080 */
u8 res3[892]; /* 0x084 */
u8 res2[92]; /* 0x024 */
u32 page_ctrl; /* 0x080 */
u8 res3[892]; /* 0x084 */
- struct syndrome syndrome_fragments[
8]; /* 0x40
0 */
+ struct syndrome syndrome_fragments[
ELM_MAX_CHANNELS]; /* 0x400,0x42
0 */
u8 res4[512]; /* 0x600 */
u8 res4[512]; /* 0x600 */
- struct location error_location[
8]; /* 0x800
*/
+ struct location error_location[
ELM_MAX_CHANNELS]; /* 0x800,0x900 ...
*/
};
};
-int elm_check_error(u8 *syndrome,
u32 nibbles
, u32 *error_count,
+int elm_check_error(u8 *syndrome,
enum bch_level bch_type
, u32 *error_count,
u32 *error_locations);
int elm_config(enum bch_level level);
void elm_reset(void);
u32 *error_locations);
int elm_config(enum bch_level level);
void elm_reset(void);