diff options
-rw-r--r-- | drivers/mtd/nand/mxc_nand.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index f14f93392491..b6aa7e3a967a 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c | |||
@@ -102,7 +102,6 @@ struct mxc_nand_host { | |||
102 | 102 | ||
103 | void *spare0; | 103 | void *spare0; |
104 | void *main_area0; | 104 | void *main_area0; |
105 | void *main_area1; | ||
106 | 105 | ||
107 | void __iomem *base; | 106 | void __iomem *base; |
108 | void __iomem *regs; | 107 | void __iomem *regs; |
@@ -305,25 +304,24 @@ static void send_read_id(struct mxc_nand_host *host) | |||
305 | * NAND device status and returns the current status. */ | 304 | * NAND device status and returns the current status. */ |
306 | static uint16_t get_dev_status(struct mxc_nand_host *host) | 305 | static uint16_t get_dev_status(struct mxc_nand_host *host) |
307 | { | 306 | { |
308 | void __iomem *main_buf = host->main_area1; | 307 | void __iomem *main_buf = host->main_area0; |
309 | uint32_t store; | 308 | uint32_t store; |
310 | uint16_t ret; | 309 | uint16_t ret; |
311 | /* Issue status request to NAND device */ | ||
312 | 310 | ||
313 | /* store the main area1 first word, later do recovery */ | 311 | writew(0x0, NFC_V1_V2_BUF_ADDR); |
312 | |||
313 | /* | ||
314 | * The device status is stored in main_area0. To | ||
315 | * prevent corruption of the buffer save the value | ||
316 | * and restore it afterwards. | ||
317 | */ | ||
314 | store = readl(main_buf); | 318 | store = readl(main_buf); |
315 | /* NANDFC buffer 1 is used for device status to prevent | ||
316 | * corruption of read/write buffer on status requests. */ | ||
317 | writew(1, host->regs + NFC_BUF_ADDR); | ||
318 | 319 | ||
319 | writew(NFC_STATUS, host->regs + NFC_CONFIG2); | 320 | writew(NFC_STATUS, host->regs + NFC_CONFIG2); |
320 | |||
321 | /* Wait for operation to complete */ | ||
322 | wait_op_done(host, true); | 321 | wait_op_done(host, true); |
323 | 322 | ||
324 | /* Status is placed in first word of main buffer */ | ||
325 | /* get status, then recovery area 1 data */ | ||
326 | ret = readw(main_buf); | 323 | ret = readw(main_buf); |
324 | |||
327 | writel(store, main_buf); | 325 | writel(store, main_buf); |
328 | 326 | ||
329 | return ret; | 327 | return ret; |
@@ -761,7 +759,6 @@ static int __init mxcnd_probe(struct platform_device *pdev) | |||
761 | } | 759 | } |
762 | 760 | ||
763 | host->main_area0 = host->base; | 761 | host->main_area0 = host->base; |
764 | host->main_area1 = host->base + 0x200; | ||
765 | 762 | ||
766 | if (nfc_is_v21()) { | 763 | if (nfc_is_v21()) { |
767 | host->regs = host->base + 0x1e00; | 764 | host->regs = host->base + 0x1e00; |