aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand/denali.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/nand/denali.c')
-rw-r--r--drivers/mtd/nand/denali.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
index 0650aafa0dd2..e706a237170f 100644
--- a/drivers/mtd/nand/denali.c
+++ b/drivers/mtd/nand/denali.c
@@ -1028,7 +1028,7 @@ static void denali_setup_dma(struct denali_nand_info *denali, int op)
1028 1028
1029/* writes a page. user specifies type, and this function handles the 1029/* writes a page. user specifies type, and this function handles the
1030 * configuration details. */ 1030 * configuration details. */
1031static void write_page(struct mtd_info *mtd, struct nand_chip *chip, 1031static int write_page(struct mtd_info *mtd, struct nand_chip *chip,
1032 const uint8_t *buf, bool raw_xfer) 1032 const uint8_t *buf, bool raw_xfer)
1033{ 1033{
1034 struct denali_nand_info *denali = mtd_to_denali(mtd); 1034 struct denali_nand_info *denali = mtd_to_denali(mtd);
@@ -1078,6 +1078,8 @@ static void write_page(struct mtd_info *mtd, struct nand_chip *chip,
1078 1078
1079 denali_enable_dma(denali, false); 1079 denali_enable_dma(denali, false);
1080 dma_sync_single_for_cpu(denali->dev, addr, size, DMA_TO_DEVICE); 1080 dma_sync_single_for_cpu(denali->dev, addr, size, DMA_TO_DEVICE);
1081
1082 return 0;
1081} 1083}
1082 1084
1083/* NAND core entry points */ 1085/* NAND core entry points */
@@ -1086,24 +1088,24 @@ static void write_page(struct mtd_info *mtd, struct nand_chip *chip,
1086 * writing a page with ECC or without is similar, all the work is done 1088 * writing a page with ECC or without is similar, all the work is done
1087 * by write_page above. 1089 * by write_page above.
1088 * */ 1090 * */
1089static void denali_write_page(struct mtd_info *mtd, struct nand_chip *chip, 1091static int denali_write_page(struct mtd_info *mtd, struct nand_chip *chip,
1090 const uint8_t *buf, int oob_required) 1092 const uint8_t *buf, int oob_required)
1091{ 1093{
1092 /* for regular page writes, we let HW handle all the ECC 1094 /* for regular page writes, we let HW handle all the ECC
1093 * data written to the device. */ 1095 * data written to the device. */
1094 write_page(mtd, chip, buf, false); 1096 return write_page(mtd, chip, buf, false);
1095} 1097}
1096 1098
1097/* This is the callback that the NAND core calls to write a page without ECC. 1099/* This is the callback that the NAND core calls to write a page without ECC.
1098 * raw access is similar to ECC page writes, so all the work is done in the 1100 * raw access is similar to ECC page writes, so all the work is done in the
1099 * write_page() function above. 1101 * write_page() function above.
1100 */ 1102 */
1101static void denali_write_page_raw(struct mtd_info *mtd, struct nand_chip *chip, 1103static int denali_write_page_raw(struct mtd_info *mtd, struct nand_chip *chip,
1102 const uint8_t *buf, int oob_required) 1104 const uint8_t *buf, int oob_required)
1103{ 1105{
1104 /* for raw page writes, we want to disable ECC and simply write 1106 /* for raw page writes, we want to disable ECC and simply write
1105 whatever data is in the buffer. */ 1107 whatever data is in the buffer. */
1106 write_page(mtd, chip, buf, true); 1108 return write_page(mtd, chip, buf, true);
1107} 1109}
1108 1110
1109static int denali_write_oob(struct mtd_info *mtd, struct nand_chip *chip, 1111static int denali_write_oob(struct mtd_info *mtd, struct nand_chip *chip,