|
From: <mar...@us...> - 2007-08-30 02:41:22
|
Revision: 1290
http://hackndev.svn.sourceforge.net/hackndev/?rev=1290&view=rev
Author: marex_z71
Date: 2007-08-29 19:41:10 -0700 (Wed, 29 Aug 2007)
Log Message:
-----------
PalmTX: correctly manager memory unmaping if something fails and do writes in more correct way
Modified Paths:
--------------
linux4palm/linux/trunk/drivers/mtd/nand/palmtx.c
Modified: linux4palm/linux/trunk/drivers/mtd/nand/palmtx.c
===================================================================
--- linux4palm/linux/trunk/drivers/mtd/nand/palmtx.c 2007-08-30 02:36:54 UTC (rev 1289)
+++ linux4palm/linux/trunk/drivers/mtd/nand/palmtx.c 2007-08-30 02:41:10 UTC (rev 1290)
@@ -70,10 +70,10 @@
if (cmd != NAND_CMD_NONE) {
switch ((ctrl & 0x6) >> 1) {
case 1: /* CLE */
- writeb(cmd, nand_cle);
+ iowrite8(cmd, nand_cle);
break;
case 2: /* ALE */
- writeb(cmd, nand_ale);
+ iowrite8(cmd, nand_ale);
break;
default:
printk("PalmTX NAND: invalid control bit\n");
@@ -115,11 +115,16 @@
nand_ale = ioremap(PALMTX_PHYS_NAND_START | 1<<24, 0x1000);
if (!nand_ale) {
printk("Failed to ioremap NAND flash.\n");
+ iounmap((void *)palmtx_nand_mtd);
+ iounmap((void *)nandaddr);
return -ENOMEM;
}
nand_cle = ioremap(PALMTX_PHYS_NAND_START | 1<<25, 0x1000);
if (!nand_cle) {
printk("Failed to ioremap NAND flash.\n");
+ iounmap((void *)palmtx_nand_mtd);
+ iounmap((void *)nandaddr);
+ iounmap((void *)nand_ale);
return -ENOMEM;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|