@@ -8,6 +8,7 @@
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
+#include <linux/io.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -25,6 +26,7 @@ EXPORT_SYMBOL_GPL(davinci_gen_pool);
*/
static int __init sram_init(void)
{
+ void *addr;
unsigned len = davinci_soc_info.sram_len;
if (!len)
@@ -36,8 +38,12 @@ static int __init sram_init(void)
if (!davinci_gen_pool)
return -ENOMEM;
- WARN_ON(gen_pool_add_virt(davinci_gen_pool, SRAM_VIRT,
- davinci_soc_info.sram_phys, len, -1));
+ addr = ioremap(davinci_soc_info.sram_phys, len);
+ if (!addr)
+ return -ENOMEM;
+ if(WARN_ON(gen_pool_add_virt(davinci_gen_pool, addr,
+ davinci_soc_info.sram_phys, len, -1)))
+ iounmap(addr);
return 0;
}