forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-16 50a212ec906f7524620675f0c57357691c26c81f
kernel/drivers/mtd/nand/raw/omap_elm.c
....@@ -1,18 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Error Location Module
34 *
4
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
5
- *
6
- * This program is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License as published by
8
- * the Free Software Foundation; either version 2 of the License, or
9
- * (at your option) any later version.
10
- *
11
- * This program is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- * GNU General Public License for more details.
15
- *
5
+ * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
166 */
177
188 #define DRIVER_NAME "omap-elm"
....@@ -184,17 +174,17 @@
184174 switch (info->bch_type) {
185175 case BCH8_ECC:
186176 /* syndrome fragment 0 = ecc[9-12B] */
187
- val = cpu_to_be32(*(u32 *) &ecc[9]);
177
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[9]);
188178 elm_write_reg(info, offset, val);
189179
190180 /* syndrome fragment 1 = ecc[5-8B] */
191181 offset += 4;
192
- val = cpu_to_be32(*(u32 *) &ecc[5]);
182
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[5]);
193183 elm_write_reg(info, offset, val);
194184
195185 /* syndrome fragment 2 = ecc[1-4B] */
196186 offset += 4;
197
- val = cpu_to_be32(*(u32 *) &ecc[1]);
187
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[1]);
198188 elm_write_reg(info, offset, val);
199189
200190 /* syndrome fragment 3 = ecc[0B] */
....@@ -204,35 +194,35 @@
204194 break;
205195 case BCH4_ECC:
206196 /* syndrome fragment 0 = ecc[20-52b] bits */
207
- val = (cpu_to_be32(*(u32 *) &ecc[3]) >> 4) |
197
+ val = ((__force u32)cpu_to_be32(*(u32 *)&ecc[3]) >> 4) |
208198 ((ecc[2] & 0xf) << 28);
209199 elm_write_reg(info, offset, val);
210200
211201 /* syndrome fragment 1 = ecc[0-20b] bits */
212202 offset += 4;
213
- val = cpu_to_be32(*(u32 *) &ecc[0]) >> 12;
203
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[0]) >> 12;
214204 elm_write_reg(info, offset, val);
215205 break;
216206 case BCH16_ECC:
217
- val = cpu_to_be32(*(u32 *) &ecc[22]);
207
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[22]);
218208 elm_write_reg(info, offset, val);
219209 offset += 4;
220
- val = cpu_to_be32(*(u32 *) &ecc[18]);
210
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[18]);
221211 elm_write_reg(info, offset, val);
222212 offset += 4;
223
- val = cpu_to_be32(*(u32 *) &ecc[14]);
213
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[14]);
224214 elm_write_reg(info, offset, val);
225215 offset += 4;
226
- val = cpu_to_be32(*(u32 *) &ecc[10]);
216
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[10]);
227217 elm_write_reg(info, offset, val);
228218 offset += 4;
229
- val = cpu_to_be32(*(u32 *) &ecc[6]);
219
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[6]);
230220 elm_write_reg(info, offset, val);
231221 offset += 4;
232
- val = cpu_to_be32(*(u32 *) &ecc[2]);
222
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[2]);
233223 elm_write_reg(info, offset, val);
234224 offset += 4;
235
- val = cpu_to_be32(*(u32 *) &ecc[0]) >> 16;
225
+ val = (__force u32)cpu_to_be32(*(u32 *)&ecc[0]) >> 16;
236226 elm_write_reg(info, offset, val);
237227 break;
238228 default:
....@@ -466,11 +456,13 @@
466456 ELM_SYNDROME_FRAGMENT_5 + offset);
467457 regs->elm_syndrome_fragment_4[i] = elm_read_reg(info,
468458 ELM_SYNDROME_FRAGMENT_4 + offset);
459
+ fallthrough;
469460 case BCH8_ECC:
470461 regs->elm_syndrome_fragment_3[i] = elm_read_reg(info,
471462 ELM_SYNDROME_FRAGMENT_3 + offset);
472463 regs->elm_syndrome_fragment_2[i] = elm_read_reg(info,
473464 ELM_SYNDROME_FRAGMENT_2 + offset);
465
+ fallthrough;
474466 case BCH4_ECC:
475467 regs->elm_syndrome_fragment_1[i] = elm_read_reg(info,
476468 ELM_SYNDROME_FRAGMENT_1 + offset);
....@@ -512,11 +504,13 @@
512504 regs->elm_syndrome_fragment_5[i]);
513505 elm_write_reg(info, ELM_SYNDROME_FRAGMENT_4 + offset,
514506 regs->elm_syndrome_fragment_4[i]);
507
+ fallthrough;
515508 case BCH8_ECC:
516509 elm_write_reg(info, ELM_SYNDROME_FRAGMENT_3 + offset,
517510 regs->elm_syndrome_fragment_3[i]);
518511 elm_write_reg(info, ELM_SYNDROME_FRAGMENT_2 + offset,
519512 regs->elm_syndrome_fragment_2[i]);
513
+ fallthrough;
520514 case BCH4_ECC:
521515 elm_write_reg(info, ELM_SYNDROME_FRAGMENT_1 + offset,
522516 regs->elm_syndrome_fragment_1[i]);