diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2024-03-04 19:59:03 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2024-03-05 16:28:05 +0100 |
commit | 29d0e0522828464bedae34fd73e050eac561edc0 (patch) | |
tree | e229555b58d5649d3ffa7e55c5f6018202012dae /drivers | |
parent | 2285dd1e4f193ada5bdabc23e5935b15fbd0a886 (diff) | |
download | barebox-29d0e0522828464bedae34fd73e050eac561edc0.tar.gz barebox-29d0e0522828464bedae34fd73e050eac561edc0.tar.xz |
cdev: implement setter/getter for cdev device node
A cdev has two device tree node pointers, one directly at struct
cdev.device_node and another indirectly via cdev.dev->device_node.
We may want to remove cdev::device_node in future, but till then to
avoid users having to guess, which device_node is the correct one, add a
helper to set and get the device tree node.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20240304190038.3486881-19-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mci/mci-core.c | 2 | ||||
-rw-r--r-- | drivers/nvmem/core.c | 2 | ||||
-rw-r--r-- | drivers/of/of_path.c | 4 | ||||
-rw-r--r-- | drivers/of/partition.c | 12 |
4 files changed, 10 insertions, 10 deletions
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c index 2b39985d5e..663d366666 100644 --- a/drivers/mci/mci-core.c +++ b/drivers/mci/mci-core.c @@ -557,7 +557,7 @@ static void mci_part_add(struct mci *mci, uint64_t size, part->idx = idx; if (area_type == MMC_BLK_DATA_AREA_MAIN) { - part->blk.cdev.device_node = mci->host->hw_dev->of_node; + cdev_set_of_node(&part->blk.cdev, mci->host->hw_dev->of_node); part->blk.cdev.flags |= DEVFS_IS_MCI_MAIN_PART_DEV; } diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 67bb1d7993..e7341b62f6 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -213,7 +213,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) nvmem->dev.parent = config->dev; nvmem->reg_read = config->reg_read; nvmem->reg_write = config->reg_write; - np = config->cdev ? config->cdev->device_node : config->dev->of_node; + np = config->cdev ? cdev_of_node(config->cdev) : config->dev->of_node; nvmem->dev.of_node = np; nvmem->priv = config->priv; nvmem->cell_post_process = config->cell_post_process; diff --git a/drivers/of/of_path.c b/drivers/of/of_path.c index 12a2dfce55..42efb1ad1d 100644 --- a/drivers/of/of_path.c +++ b/drivers/of/of_path.c @@ -181,9 +181,9 @@ struct device_node *of_find_node_by_devpath(struct device_node *root, const char part_size = cdev->size; pr_debug("%s path %s: is a partition with offset 0x%08llx, size 0x%08llx\n", __func__, path, part_offset, part_size); - np = cdev->master->device_node; + np = cdev_of_node(cdev->master); } else { - np = cdev->device_node; + np = cdev_of_node(cdev); } /* diff --git a/drivers/of/partition.c b/drivers/of/partition.c index 7c9f443ee7..729ea238b9 100644 --- a/drivers/of/partition.c +++ b/drivers/of/partition.c @@ -95,7 +95,7 @@ int of_parse_partitions(struct cdev *cdev, struct device_node *node) if (!node) return -EINVAL; - cdev->device_node = node; + cdev_set_of_node(cdev, node); subnode = of_get_child_by_name(node, "partitions"); if (subnode) { @@ -276,21 +276,21 @@ int of_fixup_partitions(struct device_node *np, struct cdev *cdev) static int of_partition_fixup(struct device_node *root, void *ctx) { struct cdev *cdev = ctx; - struct device_node *np; + struct device_node *cdev_np, *np; char *name; - if (!cdev->device_node) + cdev_np = cdev_of_node(cdev); + if (!cdev_np) return -EINVAL; if (list_empty(&cdev->partitions)) return 0; - name = of_get_reproducible_name(cdev->device_node); + name = of_get_reproducible_name(cdev_np); np = of_find_node_by_reproducible_name(root, name); free(name); if (!np) { - dev_err(cdev->dev, "Cannot find nodepath %pOF, cannot fixup\n", - cdev->device_node); + dev_err(cdev->dev, "Cannot find nodepath %pOF, cannot fixup\n", cdev_np); return -EINVAL; } |