diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2010-08-06 09:53:05 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-08-06 11:34:54 -0400 |
commit | c29c607afa2e94a43f249f19a2d3097e56aaedd7 (patch) | |
tree | 62ede8e280f1d5aaa6b1adf403c973d9cc594156 /drivers/mtd | |
parent | 938cf997f998f3172e7cb9beafceccdec259b10d (diff) |
mxc_nand: rework get_dev_status
We save/restore the value in the buffer anyway, so it makes
no difference whether we use main_area0 or main_area1. So,
we can use main_area0 and remove main_area1 from the driver
which is otherwise unused. Also, clean up the comments in
get_dev_status.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd')
-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; |