diff options
author | Brian Norris <computersforpeace@gmail.com> | 2015-10-31 04:33:21 +0100 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2015-11-11 22:45:10 +0100 |
commit | 3b6521eab0386a4854d47b1a01947d7dc46ec98d (patch) | |
tree | 2d092fee621b1fa3b7e48824db99f8ac2b2b5cb3 /drivers/mtd/ofpart.c | |
parent | mtd: add get/set of_node/flash_node helpers (diff) | |
download | linux-3b6521eab0386a4854d47b1a01947d7dc46ec98d.tar.xz linux-3b6521eab0386a4854d47b1a01947d7dc46ec98d.zip |
mtd: ofpart: grab device tree node directly from master device node
It seems more logical to use a device node directly associated with the
MTD master device (i.e., mtd->dev.of_node field) rather than requiring
auxiliary partition parser information to be passed in by the driver in
a separate struct.
This patch supports the mtd->dev.of_node field and deprecates the parser
data 'of_node' field
Driver conversions may now follow.
Additional side benefit to assigning mtd->dev.of_node rather than using
parser data: the driver core will automatically create a device -> node
symlink for us.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Diffstat (limited to 'drivers/mtd/ofpart.c')
-rw-r--r-- | drivers/mtd/ofpart.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c index 669c3452f278..7bf996a4cf5e 100644 --- a/drivers/mtd/ofpart.c +++ b/drivers/mtd/ofpart.c @@ -37,10 +37,11 @@ static int parse_ofpart_partitions(struct mtd_info *master, bool dedicated = true; - if (!data) - return 0; - - mtd_node = data->of_node; + /* + * of_node can be provided through auxiliary parser data or (preferred) + * by assigning the master device node + */ + mtd_node = data && data->of_node ? data->of_node : mtd_get_of_node(master); if (!mtd_node) return 0; @@ -149,10 +150,11 @@ static int parse_ofoldpart_partitions(struct mtd_info *master, } *part; const char *names; - if (!data) - return 0; - - dp = data->of_node; + /* + * of_node can be provided through auxiliary parser data or (preferred) + * by assigning the master device node + */ + dp = data && data->of_node ? data->of_node : mtd_get_of_node(master); if (!dp) return 0; |