Commit f892ac77 authored by Rob Herring's avatar Rob Herring Committed by Michael Ellerman
Browse files

powerpc: fsl: Use of_property_read_reg() to parse "reg"



Use the recently added of_property_read_reg() helper to get the
untranslated "reg" address value.

Signed-off-by: default avatarRob Herring <robh@kernel.org>
[mpe: Add required include of of_address.h]
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230609183151.1766261-1-robh@kernel.org
parent c4ae1799
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -448,13 +448,11 @@ int fsl_rio_setup(struct platform_device *dev)
	struct rio_mport *port;
	struct rio_priv *priv;
	int rc = 0;
	const u32 *dt_range, *port_index;
	const u32 *port_index;
	u32 active_ports = 0;
	struct device_node *np, *rmu_node;
	int rlen;
	u32 ccsr;
	u64 range_start;
	int aw;
	u32 i;
	static int tmp;
	struct device_node *rmu_np[MAX_MSG_UNIT_NUM] = {NULL};
@@ -528,15 +526,12 @@ int fsl_rio_setup(struct platform_device *dev)
	dbell->bellirq = irq_of_parse_and_map(np, 1);
	dev_info(&dev->dev, "bellirq: %d\n", dbell->bellirq);

	aw = of_n_addr_cells(np);
	dt_range = of_get_property(np, "reg", &rlen);
	if (!dt_range) {
	if (of_property_read_reg(np, 0, &range_start, NULL)) {
		pr_err("%pOF: unable to find 'reg' property\n",
			np);
		rc = -ENOMEM;
		goto err_pw;
	}
	range_start = of_read_number(dt_range, aw);
	dbell->dbell_regs = (struct rio_dbell_regs *)(rmu_regs_win +
				(u32)range_start);

@@ -556,15 +551,12 @@ int fsl_rio_setup(struct platform_device *dev)
	pw->dev = &dev->dev;
	pw->pwirq = irq_of_parse_and_map(np, 0);
	dev_info(&dev->dev, "pwirq: %d\n", pw->pwirq);
	aw = of_n_addr_cells(np);
	dt_range = of_get_property(np, "reg", &rlen);
	if (!dt_range) {
	if (of_property_read_reg(np, 0, &range_start, NULL)) {
		pr_err("%pOF: unable to find 'reg' property\n",
			np);
		rc = -ENOMEM;
		goto err;
	}
	range_start = of_read_number(dt_range, aw);
	pw->pw_regs = (struct rio_pw_regs *)(rmu_regs_win + (u32)range_start);

	/*set up ports node*/
+2 −8
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <linux/types.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/slab.h>
@@ -1067,9 +1068,6 @@ int fsl_rio_setup_rmu(struct rio_mport *mport, struct device_node *node)
	struct rio_priv *priv;
	struct fsl_rmu *rmu;
	u64 msg_start;
	const u32 *msg_addr;
	int mlen;
	int aw;

	if (!mport || !mport->priv)
		return -EINVAL;
@@ -1086,16 +1084,12 @@ int fsl_rio_setup_rmu(struct rio_mport *mport, struct device_node *node)
	if (!rmu)
		return -ENOMEM;

	aw = of_n_addr_cells(node);
	msg_addr = of_get_property(node, "reg", &mlen);
	if (!msg_addr) {
	if (of_property_read_reg(node, 0, &msg_start, NULL)) {
		pr_err("%pOF: unable to find 'reg' property of message-unit\n",
			node);
		kfree(rmu);
		return -ENOMEM;
	}
	msg_start = of_read_number(msg_addr, aw);

	rmu->msg_regs = (struct rio_msg_regs *)
			(rmu_regs_win + (u32)msg_start);