|
@@ -163,8 +163,9 @@ static int register_device(char *name, unsigned long start, unsigned long length
|
|
}
|
|
}
|
|
|
|
|
|
if (!(((slram_priv_t *)(*curmtd)->mtdinfo->priv)->start =
|
|
if (!(((slram_priv_t *)(*curmtd)->mtdinfo->priv)->start =
|
|
- ioremap(start, length))) {
|
|
|
|
- E("slram: ioremap failed\n");
|
|
|
|
|
|
+ memremap(start, length,
|
|
|
|
+ MEMREMAP_WB | MEMREMAP_WT | MEMREMAP_WC))) {
|
|
|
|
+ E("slram: memremap failed\n");
|
|
return -EIO;
|
|
return -EIO;
|
|
}
|
|
}
|
|
((slram_priv_t *)(*curmtd)->mtdinfo->priv)->end =
|
|
((slram_priv_t *)(*curmtd)->mtdinfo->priv)->end =
|
|
@@ -186,7 +187,7 @@ static int register_device(char *name, unsigned long start, unsigned long length
|
|
|
|
|
|
if (mtd_device_register((*curmtd)->mtdinfo, NULL, 0)) {
|
|
if (mtd_device_register((*curmtd)->mtdinfo, NULL, 0)) {
|
|
E("slram: Failed to register new device\n");
|
|
E("slram: Failed to register new device\n");
|
|
- iounmap(((slram_priv_t *)(*curmtd)->mtdinfo->priv)->start);
|
|
|
|
|
|
+ memunmap(((slram_priv_t *)(*curmtd)->mtdinfo->priv)->start);
|
|
kfree((*curmtd)->mtdinfo->priv);
|
|
kfree((*curmtd)->mtdinfo->priv);
|
|
kfree((*curmtd)->mtdinfo);
|
|
kfree((*curmtd)->mtdinfo);
|
|
return(-EAGAIN);
|
|
return(-EAGAIN);
|
|
@@ -206,7 +207,7 @@ static void unregister_devices(void)
|
|
while (slram_mtdlist) {
|
|
while (slram_mtdlist) {
|
|
nextitem = slram_mtdlist->next;
|
|
nextitem = slram_mtdlist->next;
|
|
mtd_device_unregister(slram_mtdlist->mtdinfo);
|
|
mtd_device_unregister(slram_mtdlist->mtdinfo);
|
|
- iounmap(((slram_priv_t *)slram_mtdlist->mtdinfo->priv)->start);
|
|
|
|
|
|
+ memunmap(((slram_priv_t *)slram_mtdlist->mtdinfo->priv)->start);
|
|
kfree(slram_mtdlist->mtdinfo->priv);
|
|
kfree(slram_mtdlist->mtdinfo->priv);
|
|
kfree(slram_mtdlist->mtdinfo);
|
|
kfree(slram_mtdlist->mtdinfo);
|
|
kfree(slram_mtdlist);
|
|
kfree(slram_mtdlist);
|