提交 4010db56 编写于 作者: S Stefan Roese 提交者: David Woodhouse

[MTD] [NAND] Fix endianess bug in ndfc.c

The writel() call accidentally clears all bits in the NDFC_CCR
register (endianess problem). Now __raw_writel() is used instead.

Tested on Bamboo with NAND on chip select 0 and chip select 1.
Signed-off-by: NStefan Roese <sr@denx.de>
Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
上级 ddacff1f
...@@ -56,7 +56,7 @@ static void ndfc_select_chip(struct mtd_info *mtd, int chip) ...@@ -56,7 +56,7 @@ static void ndfc_select_chip(struct mtd_info *mtd, int chip)
ccr |= NDFC_CCR_BS(chip + pchip->chip_offset); ccr |= NDFC_CCR_BS(chip + pchip->chip_offset);
} else } else
ccr |= NDFC_CCR_RESET_CE; ccr |= NDFC_CCR_RESET_CE;
writel(ccr, ndfc->ndfcbase + NDFC_CCR); __raw_writel(ccr, ndfc->ndfcbase + NDFC_CCR);
} }
static void ndfc_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl) static void ndfc_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册