Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mtd: rawnand: sunxi: introduce random en/dir in sunxi_nfc_caps

The H6/H616 RANDOM EN/DIRECTION masks are different from A10/A23.
So move the masks into sunxi_nfc_caps.

No functional change.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

authored by

Richard Genoud and committed by
Miquel Raynal
1340fa87 d21b4338

+12 -4
+12 -4
drivers/mtd/nand/raw/sunxi_nand.c
··· 144 144 #define NFC_ECC_EXCEPTION BIT(4) 145 145 #define NFC_ECC_BLOCK_SIZE_MSK BIT(5) 146 146 #define NFC_ECC_BLOCK_512 BIT(5) 147 - #define NFC_RANDOM_EN BIT(9) 148 - #define NFC_RANDOM_DIRECTION BIT(10) 147 + #define NFC_RANDOM_EN(nfc) (nfc->caps->random_en_mask) 148 + #define NFC_RANDOM_DIRECTION(nfc) (nfc->caps->random_dir_mask) 149 149 #define NFC_ECC_MODE_MSK(nfc) (nfc->caps->ecc_mode_mask) 150 150 #define NFC_ECC_MODE(nfc, x) field_prep(NFC_ECC_MODE_MSK(nfc), (x)) 151 151 #define NFC_RANDOM_SEED_MSK GENMASK(30, 16) ··· 239 239 * @reg_ecc_err_cnt: ECC error counter register 240 240 * @reg_user_data: User data register 241 241 * @reg_pat_found: Data Pattern Status Register 242 + * @random_en_mask: RANDOM_EN mask in NFC_ECC_CTL register 243 + * @random_dir_mask: RANDOM_DIRECTION mask in NFC_ECC_CTL register 242 244 * @ecc_mode_mask: ECC_MODE mask in NFC_ECC_CTL register 243 245 * @pat_found_mask: ECC_PAT_FOUND mask in NFC_REG_PAT_FOUND register 244 246 * @dma_maxburst: DMA maxburst ··· 254 252 unsigned int reg_ecc_err_cnt; 255 253 unsigned int reg_user_data; 256 254 unsigned int reg_pat_found; 255 + unsigned int random_en_mask; 256 + unsigned int random_dir_mask; 257 257 unsigned int ecc_mode_mask; 258 258 unsigned int pat_found_mask; 259 259 unsigned int dma_maxburst; ··· 684 680 if (!(nand->options & NAND_NEED_SCRAMBLING)) 685 681 return; 686 682 687 - writel(readl(nfc->regs + NFC_REG_ECC_CTL) | NFC_RANDOM_EN, 683 + writel(readl(nfc->regs + NFC_REG_ECC_CTL) | NFC_RANDOM_EN(nfc), 688 684 nfc->regs + NFC_REG_ECC_CTL); 689 685 } 690 686 ··· 695 691 if (!(nand->options & NAND_NEED_SCRAMBLING)) 696 692 return; 697 693 698 - writel(readl(nfc->regs + NFC_REG_ECC_CTL) & ~NFC_RANDOM_EN, 694 + writel(readl(nfc->regs + NFC_REG_ECC_CTL) & ~NFC_RANDOM_EN(nfc), 699 695 nfc->regs + NFC_REG_ECC_CTL); 700 696 } 701 697 ··· 2234 2230 .reg_ecc_err_cnt = NFC_REG_A10_ECC_ERR_CNT, 2235 2231 .reg_user_data = NFC_REG_A10_USER_DATA, 2236 2232 .reg_pat_found = NFC_REG_ECC_ST, 2233 + .random_en_mask = BIT(9), 2234 + .random_dir_mask = BIT(10), 2237 2235 .ecc_mode_mask = GENMASK(15, 12), 2238 2236 .pat_found_mask = GENMASK(31, 16), 2239 2237 .dma_maxburst = 4, ··· 2250 2244 .reg_ecc_err_cnt = NFC_REG_A10_ECC_ERR_CNT, 2251 2245 .reg_user_data = NFC_REG_A10_USER_DATA, 2252 2246 .reg_pat_found = NFC_REG_ECC_ST, 2247 + .random_en_mask = BIT(9), 2248 + .random_dir_mask = BIT(10), 2253 2249 .ecc_mode_mask = GENMASK(15, 12), 2254 2250 .pat_found_mask = GENMASK(31, 16), 2255 2251 .dma_maxburst = 8,