summaryrefslogtreecommitdiffstats
path: root/fs/pstore/ram.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/pstore/ram.c')
-rw-r--r--fs/pstore/ram.c47
1 files changed, 17 insertions, 30 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index 0d8bb8f418..4732bd4e31 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -410,13 +410,13 @@ static int ramoops_init_prz(const char *name,
return 0;
}
-static int ramoops_parse_dt_size(struct device_d *dev,
+static int ramoops_parse_dt_size(struct device *dev,
const char *propname, u32 *value)
{
u32 val32 = 0;
int ret;
- ret = of_property_read_u32(dev->device_node, propname, &val32);
+ ret = of_property_read_u32(dev->of_node, propname, &val32);
if (ret < 0 && ret != -EINVAL) {
dev_err(dev, "failed to parse property %s: %d\n",
propname, ret);
@@ -432,10 +432,10 @@ static int ramoops_parse_dt_size(struct device_d *dev,
return 0;
}
-static int ramoops_parse_dt(struct device_d *dev,
+static int ramoops_parse_dt(struct device *dev,
struct ramoops_platform_data *pdata)
{
- struct device_node *of_node = dev->device_node;
+ struct device_node *of_node = dev->of_node;
struct resource *res;
u32 value;
int ret;
@@ -474,37 +474,24 @@ static int ramoops_of_fixup(struct device_node *root, void *data)
{
struct ramoops_platform_data *pdata = data;
struct device_node *node;
- u32 reg[2];
+ struct resource res = {};
int ret;
- node = of_get_child_by_name(root, "reserved-memory");
- if (!node) {
- pr_info("Adding reserved-memory node\n");
- node = of_create_node(root, "/reserved-memory");
- if (!node)
- return -ENOMEM;
+ res.start = pdata->mem_address;
+ res.end = res.start + pdata->mem_size;
+ res.name = "ramoops";
- of_property_write_u32(node, "#address-cells", 1);
- of_property_write_u32(node, "#size-cells", 1);
- of_new_property(node, "ranges", NULL, 0);
- }
+ ret = of_fixup_reserved_memory(root, &res);
+ if (ret)
+ return ret;
- node = of_get_child_by_name(node, "ramoops");
- if (!node) {
- pr_info("Adding ramoops node\n");
- node = of_create_node(root, "/reserved-memory/ramoops");
- if (!node)
- return -ENOMEM;
- }
+ node = of_find_node_by_path_from(root, "/reserved-memory/ramoops");
+ if (!node)
+ return -ENOMEM;
ret = of_property_write_string(node, "compatible", "ramoops");
if (ret)
return ret;
- reg[0] = pdata->mem_address;
- reg[1] = pdata->mem_size;
- ret = of_property_write_u32_array(node, "reg", reg, 2);
- if (ret)
- return ret;
ret = of_property_write_bool(node, "unbuffered", pdata->mem_type);
if (ret)
@@ -530,7 +517,7 @@ static int ramoops_of_fixup(struct device_node *root, void *data)
return 0;
}
-static int ramoops_probe(struct device_d *dev)
+static int ramoops_probe(struct device *dev)
{
struct ramoops_platform_data *pdata = dummy_data;
struct ramoops_context *cxt = &oops_cxt;
@@ -639,7 +626,6 @@ static int ramoops_probe(struct device_d *dev)
ramoops_ecc);
globalvar_add_simple("linux.bootargs.ramoops", kernelargs);
} else {
- of_add_reserve_entry(cxt->phys_addr, cxt->phys_addr + mem_size);
of_register_fixup(ramoops_of_fixup, pdata);
}
@@ -689,8 +675,9 @@ static const struct of_device_id ramoops_dt_ids[] = {
{ .compatible = "ramoops" },
{ },
};
+MODULE_DEVICE_TABLE(of, ramoops_dt_ids);
-static struct driver_d ramoops_driver = {
+static struct driver ramoops_driver = {
.name = "ramoops",
.probe = ramoops_probe,
.of_compatible = DRV_OF_COMPAT(ramoops_dt_ids),