|
@@ -122,32 +122,35 @@ device_initcall(s5p_mfc_memory_init);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_OF
|
|
#ifdef CONFIG_OF
|
|
-int __init s5p_fdt_find_mfc_mem(unsigned long node, const char *uname,
|
|
|
|
|
|
+int __init s5p_fdt_alloc_mfc_mem(unsigned long node, const char *uname,
|
|
int depth, void *data)
|
|
int depth, void *data)
|
|
{
|
|
{
|
|
__be32 *prop;
|
|
__be32 *prop;
|
|
unsigned long len;
|
|
unsigned long len;
|
|
- struct s5p_mfc_dt_meminfo *mfc_mem = data;
|
|
|
|
|
|
+ struct s5p_mfc_dt_meminfo mfc_mem;
|
|
|
|
|
|
if (!data)
|
|
if (!data)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- if (!of_flat_dt_is_compatible(node, mfc_mem->compatible))
|
|
|
|
|
|
+ if (!of_flat_dt_is_compatible(node, data))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
prop = of_get_flat_dt_prop(node, "samsung,mfc-l", &len);
|
|
prop = of_get_flat_dt_prop(node, "samsung,mfc-l", &len);
|
|
if (!prop || (len != 2 * sizeof(unsigned long)))
|
|
if (!prop || (len != 2 * sizeof(unsigned long)))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- mfc_mem->loff = be32_to_cpu(prop[0]);
|
|
|
|
- mfc_mem->lsize = be32_to_cpu(prop[1]);
|
|
|
|
|
|
+ mfc_mem.loff = be32_to_cpu(prop[0]);
|
|
|
|
+ mfc_mem.lsize = be32_to_cpu(prop[1]);
|
|
|
|
|
|
prop = of_get_flat_dt_prop(node, "samsung,mfc-r", &len);
|
|
prop = of_get_flat_dt_prop(node, "samsung,mfc-r", &len);
|
|
if (!prop || (len != 2 * sizeof(unsigned long)))
|
|
if (!prop || (len != 2 * sizeof(unsigned long)))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- mfc_mem->roff = be32_to_cpu(prop[0]);
|
|
|
|
- mfc_mem->rsize = be32_to_cpu(prop[1]);
|
|
|
|
|
|
+ mfc_mem.roff = be32_to_cpu(prop[0]);
|
|
|
|
+ mfc_mem.rsize = be32_to_cpu(prop[1]);
|
|
|
|
+
|
|
|
|
+ s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize,
|
|
|
|
+ mfc_mem.loff, mfc_mem.lsize);
|
|
|
|
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|