diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-22 15:49:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-22 15:49:18 -0400 |
commit | a48178a2fa17beee17d7e6aeaa6ed2db5813552d (patch) | |
tree | 74579777d047478b3d62fcc3349a903b53515770 /drivers/mtd/maps/nettel.c | |
parent | 14d1adfc59ba66932ef167fdff62983e7c2b0197 (diff) | |
parent | 734a56285dbeedc6cc10aef6f700eeab7c65ea9f (diff) |
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6:
Remove accidentally-added include/linux/utsrelease.h
Revert "[MTD] blkdev helper code: fix printk format warning"
[MTD] Add SSFDC (SmartMedia) read-only translation layer
[MTD] pmc551 pci cleanup
[MTD] pmc551 use kzalloc
[MTD] pmc551 whitespace cleanup
[MTD] Remove iq80310 map driver
[MTD NAND] Fix in typo ndfc.c causing wrong ECC layout
[MTD] physmap: add power management support
ioremap balanced with iounmap for drivers/mtd subsystem
[MTD] Switch to pci_get_device and do ref counting
[MTD] blkdev helper code: fix printk format warning
[MTD] Fix ixp4xx partition parsing.
[JFFS2] Remove unneeded ifdefs from jffs2_fs_i.h
[MTD NAND] Remove old code in au1550nd.c
[MTD] Unlock NOR flash automatically where necessary
Diffstat (limited to 'drivers/mtd/maps/nettel.c')
-rw-r--r-- | drivers/mtd/maps/nettel.c | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/drivers/mtd/maps/nettel.c b/drivers/mtd/maps/nettel.c index 0994b5b2e331..198e840ff6db 100644 --- a/drivers/mtd/maps/nettel.c +++ b/drivers/mtd/maps/nettel.c | |||
@@ -277,6 +277,7 @@ int __init nettel_init(void) | |||
277 | nettel_amd_map.virt = ioremap_nocache(amdaddr, maxsize); | 277 | nettel_amd_map.virt = ioremap_nocache(amdaddr, maxsize); |
278 | if (!nettel_amd_map.virt) { | 278 | if (!nettel_amd_map.virt) { |
279 | printk("SNAPGEAR: failed to ioremap() BOOTCS\n"); | 279 | printk("SNAPGEAR: failed to ioremap() BOOTCS\n"); |
280 | iounmap(nettel_mmcrp); | ||
280 | return(-EIO); | 281 | return(-EIO); |
281 | } | 282 | } |
282 | simple_map_init(&nettel_amd_map); | 283 | simple_map_init(&nettel_amd_map); |
@@ -337,7 +338,8 @@ int __init nettel_init(void) | |||
337 | nettel_amd_map.virt = NULL; | 338 | nettel_amd_map.virt = NULL; |
338 | #else | 339 | #else |
339 | /* Only AMD flash supported */ | 340 | /* Only AMD flash supported */ |
340 | return(-ENXIO); | 341 | rc = -ENXIO; |
342 | goto out_unmap2; | ||
341 | #endif | 343 | #endif |
342 | } | 344 | } |
343 | 345 | ||
@@ -361,14 +363,15 @@ int __init nettel_init(void) | |||
361 | nettel_intel_map.virt = ioremap_nocache(intel0addr, maxsize); | 363 | nettel_intel_map.virt = ioremap_nocache(intel0addr, maxsize); |
362 | if (!nettel_intel_map.virt) { | 364 | if (!nettel_intel_map.virt) { |
363 | printk("SNAPGEAR: failed to ioremap() ROMCS1\n"); | 365 | printk("SNAPGEAR: failed to ioremap() ROMCS1\n"); |
364 | return(-EIO); | 366 | rc = -EIO; |
367 | goto out_unmap2; | ||
365 | } | 368 | } |
366 | simple_map_init(&nettel_intel_map); | 369 | simple_map_init(&nettel_intel_map); |
367 | 370 | ||
368 | intel_mtd = do_map_probe("cfi_probe", &nettel_intel_map); | 371 | intel_mtd = do_map_probe("cfi_probe", &nettel_intel_map); |
369 | if (!intel_mtd) { | 372 | if (!intel_mtd) { |
370 | iounmap(nettel_intel_map.virt); | 373 | rc = -ENXIO; |
371 | return(-ENXIO); | 374 | goto out_unmap1; |
372 | } | 375 | } |
373 | 376 | ||
374 | /* Set PAR to the detected size */ | 377 | /* Set PAR to the detected size */ |
@@ -394,13 +397,14 @@ int __init nettel_init(void) | |||
394 | nettel_intel_map.virt = ioremap_nocache(intel0addr, maxsize); | 397 | nettel_intel_map.virt = ioremap_nocache(intel0addr, maxsize); |
395 | if (!nettel_intel_map.virt) { | 398 | if (!nettel_intel_map.virt) { |
396 | printk("SNAPGEAR: failed to ioremap() ROMCS1/2\n"); | 399 | printk("SNAPGEAR: failed to ioremap() ROMCS1/2\n"); |
397 | return(-EIO); | 400 | rc = -EIO; |
401 | goto out_unmap2; | ||
398 | } | 402 | } |
399 | 403 | ||
400 | intel_mtd = do_map_probe("cfi_probe", &nettel_intel_map); | 404 | intel_mtd = do_map_probe("cfi_probe", &nettel_intel_map); |
401 | if (! intel_mtd) { | 405 | if (! intel_mtd) { |
402 | iounmap((void *) nettel_intel_map.virt); | 406 | rc = -ENXIO; |
403 | return(-ENXIO); | 407 | goto out_unmap1; |
404 | } | 408 | } |
405 | 409 | ||
406 | intel1size = intel_mtd->size - intel0size; | 410 | intel1size = intel_mtd->size - intel0size; |
@@ -456,6 +460,18 @@ int __init nettel_init(void) | |||
456 | #endif | 460 | #endif |
457 | 461 | ||
458 | return(rc); | 462 | return(rc); |
463 | |||
464 | #ifdef CONFIG_MTD_CFI_INTELEXT | ||
465 | out_unmap1: | ||
466 | iounmap((void *) nettel_intel_map.virt); | ||
467 | #endif | ||
468 | |||
469 | out_unmap2: | ||
470 | iounmap(nettel_mmcrp); | ||
471 | iounmap(nettel_amd_map.virt); | ||
472 | |||
473 | return(rc); | ||
474 | |||
459 | } | 475 | } |
460 | 476 | ||
461 | /****************************************************************************/ | 477 | /****************************************************************************/ |
@@ -469,6 +485,10 @@ void __exit nettel_cleanup(void) | |||
469 | del_mtd_partitions(amd_mtd); | 485 | del_mtd_partitions(amd_mtd); |
470 | map_destroy(amd_mtd); | 486 | map_destroy(amd_mtd); |
471 | } | 487 | } |
488 | if (nettel_mmcrp) { | ||
489 | iounmap(nettel_mmcrp); | ||
490 | nettel_mmcrp = NULL; | ||
491 | } | ||
472 | if (nettel_amd_map.virt) { | 492 | if (nettel_amd_map.virt) { |
473 | iounmap(nettel_amd_map.virt); | 493 | iounmap(nettel_amd_map.virt); |
474 | nettel_amd_map.virt = NULL; | 494 | nettel_amd_map.virt = NULL; |