linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq()
@ 2022-05-07 10:01 Andy Shevchenko
  2022-05-07 10:01 ` [PATCH v2 2/4] powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode Andy Shevchenko
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Andy Shevchenko @ 2022-05-07 10:01 UTC (permalink / raw)
  To: Andy Shevchenko, Wolfram Sang, Marc Kleine-Budde, Damien Le Moal,
	Mark Brown, chris.packham, Sergey Shtylyov, David S. Miller,
	Jakub Kicinski, Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev,
	linux-kernel, linux-ide, linux-i2c, linux-can, netdev, linux-spi,
	linux-serial
  Cc: Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Anatolij Gustschin, Wolfgang Grandegger, Eric Dumazet,
	Paolo Abeni, Pantelis Antoniou

It seems mpc52xx_get_xtal_freq() is not used anywhere. Remove dead code.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Wolfram Sang <wsa@kernel.org>
---
v2: collected tags
 arch/powerpc/include/asm/mpc52xx.h           |  1 -
 arch/powerpc/platforms/52xx/mpc52xx_common.c | 37 --------------------
 2 files changed, 38 deletions(-)

diff --git a/arch/powerpc/include/asm/mpc52xx.h b/arch/powerpc/include/asm/mpc52xx.h
index ce1e0aabaa64..ddd80aae1e32 100644
--- a/arch/powerpc/include/asm/mpc52xx.h
+++ b/arch/powerpc/include/asm/mpc52xx.h
@@ -274,7 +274,6 @@ extern void mpc52xx_declare_of_platform_devices(void);
 extern int mpc5200_psc_ac97_gpio_reset(int psc_number);
 extern void mpc52xx_map_common_devices(void);
 extern int mpc52xx_set_psc_clkdiv(int psc_id, int clkdiv);
-extern unsigned int mpc52xx_get_xtal_freq(struct device_node *node);
 extern void __noreturn mpc52xx_restart(char *cmd);
 
 /* mpc52xx_gpt.c */
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c
index 565e3a83dc9e..4a39e1cb2263 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_common.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c
@@ -203,43 +203,6 @@ int mpc52xx_set_psc_clkdiv(int psc_id, int clkdiv)
 }
 EXPORT_SYMBOL(mpc52xx_set_psc_clkdiv);
 
-/**
- * mpc52xx_get_xtal_freq - Get SYS_XTAL_IN frequency for a device
- *
- * @node: device node
- *
- * Returns the frequency of the external oscillator clock connected
- * to the SYS_XTAL_IN pin, or 0 if it cannot be determined.
- */
-unsigned int mpc52xx_get_xtal_freq(struct device_node *node)
-{
-	u32 val;
-	unsigned int freq;
-
-	if (!mpc52xx_cdm)
-		return 0;
-
-	freq = mpc5xxx_get_bus_frequency(node);
-	if (!freq)
-		return 0;
-
-	if (in_8(&mpc52xx_cdm->ipb_clk_sel) & 0x1)
-		freq *= 2;
-
-	val  = in_be32(&mpc52xx_cdm->rstcfg);
-	if (val & (1 << 5))
-		freq *= 8;
-	else
-		freq *= 4;
-	if (val & (1 << 6))
-		freq /= 12;
-	else
-		freq /= 16;
-
-	return freq;
-}
-EXPORT_SYMBOL(mpc52xx_get_xtal_freq);
-
 /**
  * mpc52xx_restart: ppc_md->restart hook for mpc5200 using the watchdog timer
  */
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/4] powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode
  2022-05-07 10:01 [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Andy Shevchenko
@ 2022-05-07 10:01 ` Andy Shevchenko
  2022-05-07 10:01 ` [PATCH v2 3/4] powerpc/52xx: Get rid of of_node assignment Andy Shevchenko
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2022-05-07 10:01 UTC (permalink / raw)
  To: Andy Shevchenko, Wolfram Sang, Marc Kleine-Budde, Damien Le Moal,
	Mark Brown, chris.packham, Sergey Shtylyov, David S. Miller,
	Jakub Kicinski, Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev,
	linux-kernel, linux-ide, linux-i2c, linux-can, netdev, linux-spi,
	linux-serial
  Cc: Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Anatolij Gustschin, Wolfgang Grandegger, Eric Dumazet,
	Paolo Abeni, Pantelis Antoniou

Switch mpc5xxx_get_bus_frequency() to use fwnode in order to help
cleaning up other parts of the kernel from OF specific code.

No functional change intended.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz> # for i2c-mpc
Acked-by: Wolfram Sang <wsa@kernel.org> # for the I2C part
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de> # for mscan/mpc5xxx_can
Acked-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
---
v2: collected tags, fixed compilation error (LKP, Chris)
 arch/powerpc/include/asm/mpc5xxx.h            |  9 +++-
 arch/powerpc/platforms/52xx/mpc52xx_gpt.c     |  2 +-
 arch/powerpc/sysdev/mpc5xxx_clocks.c          | 41 ++++++++++---------
 drivers/ata/pata_mpc52xx.c                    |  2 +-
 drivers/i2c/busses/i2c-mpc.c                  |  7 ++--
 drivers/net/can/mscan/mpc5xxx_can.c           |  2 +-
 drivers/net/ethernet/freescale/fec_mpc52xx.c  |  2 +-
 .../net/ethernet/freescale/fec_mpc52xx_phy.c  |  3 +-
 .../net/ethernet/freescale/fs_enet/mii-fec.c  |  4 +-
 drivers/spi/spi-mpc52xx.c                     |  2 +-
 drivers/tty/serial/mpc52xx_uart.c             |  4 +-
 11 files changed, 44 insertions(+), 34 deletions(-)

diff --git a/arch/powerpc/include/asm/mpc5xxx.h b/arch/powerpc/include/asm/mpc5xxx.h
index 2f60f5c5461b..44db26380435 100644
--- a/arch/powerpc/include/asm/mpc5xxx.h
+++ b/arch/powerpc/include/asm/mpc5xxx.h
@@ -11,7 +11,14 @@
 #ifndef __ASM_POWERPC_MPC5xxx_H__
 #define __ASM_POWERPC_MPC5xxx_H__
 
-extern unsigned long mpc5xxx_get_bus_frequency(struct device_node *node);
+#include <linux/property.h>
+
+unsigned long mpc5xxx_fwnode_get_bus_frequency(struct fwnode_handle *fwnode);
+
+static inline unsigned long mpc5xxx_get_bus_frequency(struct device *dev)
+{
+	return mpc5xxx_fwnode_get_bus_frequency(dev_fwnode(dev));
+}
 
 #endif /* __ASM_POWERPC_MPC5xxx_H__ */
 
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 0cb248269db7..2605b4667b39 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -720,7 +720,7 @@ static int mpc52xx_gpt_probe(struct platform_device *ofdev)
 
 	raw_spin_lock_init(&gpt->lock);
 	gpt->dev = &ofdev->dev;
-	gpt->ipb_freq = mpc5xxx_get_bus_frequency(ofdev->dev.of_node);
+	gpt->ipb_freq = mpc5xxx_get_bus_frequency(&ofdev->dev);
 	gpt->regs = of_iomap(ofdev->dev.of_node, 0);
 	if (!gpt->regs)
 		return -ENOMEM;
diff --git a/arch/powerpc/sysdev/mpc5xxx_clocks.c b/arch/powerpc/sysdev/mpc5xxx_clocks.c
index 834a6d7fbd88..c5bf7e1b3780 100644
--- a/arch/powerpc/sysdev/mpc5xxx_clocks.c
+++ b/arch/powerpc/sysdev/mpc5xxx_clocks.c
@@ -1,31 +1,34 @@
 // SPDX-License-Identifier: GPL-2.0
-/**
- * 	mpc5xxx_get_bus_frequency - Find the bus frequency for a device
- * 	@node:	device node
- *
- * 	Returns bus frequency (IPS on MPC512x, IPB on MPC52xx),
- * 	or 0 if the bus frequency cannot be found.
- */
 
 #include <linux/kernel.h>
-#include <linux/of_platform.h>
 #include <linux/export.h>
+#include <linux/property.h>
+
 #include <asm/mpc5xxx.h>
 
-unsigned long mpc5xxx_get_bus_frequency(struct device_node *node)
+/**
+ * mpc5xxx_fwnode_get_bus_frequency - Find the bus frequency for a firmware node
+ * @fwnode:	firmware node
+ *
+ * Returns bus frequency (IPS on MPC512x, IPB on MPC52xx),
+ * or 0 if the bus frequency cannot be found.
+ */
+unsigned long mpc5xxx_fwnode_get_bus_frequency(struct fwnode_handle *fwnode)
 {
-	const unsigned int *p_bus_freq = NULL;
+	struct fwnode_handle *parent;
+	u32 bus_freq;
+	int ret;
 
-	of_node_get(node);
-	while (node) {
-		p_bus_freq = of_get_property(node, "bus-frequency", NULL);
-		if (p_bus_freq)
-			break;
+	ret = fwnode_property_read_u32(fwnode, "bus-frequency", &bus_freq);
+	if (!ret)
+		return bus_freq;
 
-		node = of_get_next_parent(node);
+	fwnode_for_each_parent_node(fwnode, parent) {
+		ret = fwnode_property_read_u32(parent, "bus-frequency", &bus_freq);
+		if (!ret)
+			return bus_freq;
 	}
-	of_node_put(node);
 
-	return p_bus_freq ? *p_bus_freq : 0;
+	return 0;
 }
-EXPORT_SYMBOL(mpc5xxx_get_bus_frequency);
+EXPORT_SYMBOL(mpc5xxx_fwnode_get_bus_frequency);
diff --git a/drivers/ata/pata_mpc52xx.c b/drivers/ata/pata_mpc52xx.c
index 03b6ae37a578..6559b606736d 100644
--- a/drivers/ata/pata_mpc52xx.c
+++ b/drivers/ata/pata_mpc52xx.c
@@ -683,7 +683,7 @@ static int mpc52xx_ata_probe(struct platform_device *op)
 	struct bcom_task *dmatsk;
 
 	/* Get ipb frequency */
-	ipb_freq = mpc5xxx_get_bus_frequency(op->dev.of_node);
+	ipb_freq = mpc5xxx_get_bus_frequency(&op->dev);
 	if (!ipb_freq) {
 		dev_err(&op->dev, "could not determine IPB bus frequency\n");
 		return -ENODEV;
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 6c698c10d3cd..81ac92bb4f6f 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -239,6 +239,7 @@ static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = {
 static int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock,
 					  u32 *real_clk)
 {
+	struct fwnode_handle *fwnode = of_fwnode_handle(node);
 	const struct mpc_i2c_divider *div = NULL;
 	unsigned int pvr = mfspr(SPRN_PVR);
 	u32 divider;
@@ -246,12 +247,12 @@ static int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock,
 
 	if (clock == MPC_I2C_CLOCK_LEGACY) {
 		/* see below - default fdr = 0x3f -> div = 2048 */
-		*real_clk = mpc5xxx_get_bus_frequency(node) / 2048;
+		*real_clk = mpc5xxx_fwnode_get_bus_frequency(fwnode) / 2048;
 		return -EINVAL;
 	}
 
 	/* Determine divider value */
-	divider = mpc5xxx_get_bus_frequency(node) / clock;
+	divider = mpc5xxx_fwnode_get_bus_frequency(fwnode) / clock;
 
 	/*
 	 * We want to choose an FDR/DFSR that generates an I2C bus speed that
@@ -266,7 +267,7 @@ static int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock,
 			break;
 	}
 
-	*real_clk = mpc5xxx_get_bus_frequency(node) / div->divider;
+	*real_clk = mpc5xxx_fwnode_get_bus_frequency(fwnode) / div->divider;
 	return (int)div->fdr;
 }
 
diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
index 65ba6697bd7d..c469b2f3e57d 100644
--- a/drivers/net/can/mscan/mpc5xxx_can.c
+++ b/drivers/net/can/mscan/mpc5xxx_can.c
@@ -63,7 +63,7 @@ static u32 mpc52xx_can_get_clock(struct platform_device *ofdev,
 	else
 		*mscan_clksrc = MSCAN_CLKSRC_XTAL;
 
-	freq = mpc5xxx_get_bus_frequency(ofdev->dev.of_node);
+	freq = mpc5xxx_get_bus_frequency(&ofdev->dev);
 	if (!freq)
 		return 0;
 
diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx.c b/drivers/net/ethernet/freescale/fec_mpc52xx.c
index be0bd4b44926..159d59147827 100644
--- a/drivers/net/ethernet/freescale/fec_mpc52xx.c
+++ b/drivers/net/ethernet/freescale/fec_mpc52xx.c
@@ -922,7 +922,7 @@ static int mpc52xx_fec_probe(struct platform_device *op)
 	/* Start with safe defaults for link connection */
 	priv->speed = 100;
 	priv->duplex = DUPLEX_HALF;
-	priv->mdio_speed = ((mpc5xxx_get_bus_frequency(np) >> 20) / 5) << 1;
+	priv->mdio_speed = ((mpc5xxx_get_bus_frequency(&op->dev) >> 20) / 5) << 1;
 
 	/* The current speed preconfigures the speed of the MII link */
 	prop = of_get_property(np, "current-speed", &prop_size);
diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
index b5497e308302..3c9b1fae956b 100644
--- a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
+++ b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
@@ -99,8 +99,7 @@ static int mpc52xx_fec_mdio_probe(struct platform_device *of)
 	dev_set_drvdata(dev, bus);
 
 	/* set MII speed */
-	out_be32(&priv->regs->mii_speed,
-		((mpc5xxx_get_bus_frequency(of->dev.of_node) >> 20) / 5) << 1);
+	out_be32(&priv->regs->mii_speed, ((mpc5xxx_get_bus_frequency(dev) >> 20) / 5) << 1);
 
 	err = of_mdiobus_register(bus, np);
 	if (err)
diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
index 152f4d83765a..d37d7a19a759 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
@@ -102,7 +102,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev)
 	struct resource res;
 	struct mii_bus *new_bus;
 	struct fec_info *fec;
-	int (*get_bus_freq)(struct device_node *);
+	int (*get_bus_freq)(struct device *);
 	int ret = -ENOMEM, clock, speed;
 
 	match = of_match_device(fs_enet_mdio_fec_match, &ofdev->dev);
@@ -136,7 +136,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev)
 	}
 
 	if (get_bus_freq) {
-		clock = get_bus_freq(ofdev->dev.of_node);
+		clock = get_bus_freq(&ofdev->dev);
 		if (!clock) {
 			/* Use maximum divider if clock is unknown */
 			dev_warn(&ofdev->dev, "could not determine IPS clock\n");
diff --git a/drivers/spi/spi-mpc52xx.c b/drivers/spi/spi-mpc52xx.c
index 3ebdce804b90..bc5e36fd4288 100644
--- a/drivers/spi/spi-mpc52xx.c
+++ b/drivers/spi/spi-mpc52xx.c
@@ -437,7 +437,7 @@ static int mpc52xx_spi_probe(struct platform_device *op)
 	ms->irq0 = irq_of_parse_and_map(op->dev.of_node, 0);
 	ms->irq1 = irq_of_parse_and_map(op->dev.of_node, 1);
 	ms->state = mpc52xx_spi_fsmstate_idle;
-	ms->ipb_freq = mpc5xxx_get_bus_frequency(op->dev.of_node);
+	ms->ipb_freq = mpc5xxx_get_bus_frequency(&op->dev);
 	ms->gpio_cs_count = of_gpio_count(op->dev.of_node);
 	if (ms->gpio_cs_count > 0) {
 		master->num_chipselect = ms->gpio_cs_count;
diff --git a/drivers/tty/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c
index e50f069b5ebb..3f1986c89694 100644
--- a/drivers/tty/serial/mpc52xx_uart.c
+++ b/drivers/tty/serial/mpc52xx_uart.c
@@ -1630,7 +1630,7 @@ mpc52xx_console_setup(struct console *co, char *options)
 		return ret;
 	}
 
-	uartclk = mpc5xxx_get_bus_frequency(np);
+	uartclk = mpc5xxx_fwnode_get_bus_frequency(of_fwnode_handle(np));
 	if (uartclk == 0) {
 		pr_debug("Could not find uart clock frequency!\n");
 		return -EINVAL;
@@ -1747,7 +1747,7 @@ static int mpc52xx_uart_of_probe(struct platform_device *op)
 	/* set the uart clock to the input clock of the psc, the different
 	 * prescalers are taken into account in the set_baudrate() methods
 	 * of the respective chip */
-	uartclk = mpc5xxx_get_bus_frequency(op->dev.of_node);
+	uartclk = mpc5xxx_get_bus_frequency(&op->dev);
 	if (uartclk == 0) {
 		dev_dbg(&op->dev, "Could not find uart clock frequency!\n");
 		return -EINVAL;
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/4] powerpc/52xx: Get rid of of_node assignment
  2022-05-07 10:01 [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Andy Shevchenko
  2022-05-07 10:01 ` [PATCH v2 2/4] powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode Andy Shevchenko
@ 2022-05-07 10:01 ` Andy Shevchenko
  2022-05-07 10:01 ` [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API Andy Shevchenko
  2022-06-29 12:15 ` [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Michael Ellerman
  3 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2022-05-07 10:01 UTC (permalink / raw)
  To: Andy Shevchenko, Wolfram Sang, Marc Kleine-Budde, Damien Le Moal,
	Mark Brown, chris.packham, Sergey Shtylyov, David S. Miller,
	Jakub Kicinski, Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev,
	linux-kernel, linux-ide, linux-i2c, linux-can, netdev, linux-spi,
	linux-serial
  Cc: Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Anatolij Gustschin, Wolfgang Grandegger, Eric Dumazet,
	Paolo Abeni, Pantelis Antoniou

Let GPIO library assign of_node from the parent device.
This allows to move GPIO library and drivers to use fwnode
APIs instead of being stuck with OF-only interfaces.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2: no changes
 arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 2605b4667b39..ae47fdcc8a96 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -58,6 +58,7 @@
 #include <linux/of_platform.h>
 #include <linux/of_gpio.h>
 #include <linux/kernel.h>
+#include <linux/property.h>
 #include <linux/slab.h>
 #include <linux/fs.h>
 #include <linux/watchdog.h>
@@ -314,17 +315,15 @@ mpc52xx_gpt_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
 	return 0;
 }
 
-static void
-mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
+static void mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt)
 {
 	int rc;
 
-	/* Only setup GPIO if the device tree claims the GPT is
-	 * a GPIO controller */
-	if (!of_find_property(node, "gpio-controller", NULL))
+	/* Only setup GPIO if the device claims the GPT is a GPIO controller */
+	if (!device_property_present(gpt->dev, "gpio-controller"))
 		return;
 
-	gpt->gc.label = kasprintf(GFP_KERNEL, "%pOF", node);
+	gpt->gc.label = kasprintf(GFP_KERNEL, "%pfw", dev_fwnode(gpt->dev));
 	if (!gpt->gc.label) {
 		dev_err(gpt->dev, "out of memory\n");
 		return;
@@ -336,7 +335,7 @@ mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
 	gpt->gc.get = mpc52xx_gpt_gpio_get;
 	gpt->gc.set = mpc52xx_gpt_gpio_set;
 	gpt->gc.base = -1;
-	gpt->gc.of_node = node;
+	gpt->gc.parent = gpt->dev;
 
 	/* Setup external pin in GPIO mode */
 	clrsetbits_be32(&gpt->regs->mode, MPC52xx_GPT_MODE_MS_MASK,
@@ -349,8 +348,7 @@ mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
 	dev_dbg(gpt->dev, "%s() complete.\n", __func__);
 }
 #else /* defined(CONFIG_GPIOLIB) */
-static void
-mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *p, struct device_node *np) { }
+static void mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt) { }
 #endif /* defined(CONFIG_GPIOLIB) */
 
 /***********************************************************************
@@ -727,7 +725,7 @@ static int mpc52xx_gpt_probe(struct platform_device *ofdev)
 
 	dev_set_drvdata(&ofdev->dev, gpt);
 
-	mpc52xx_gpt_gpio_setup(gpt, ofdev->dev.of_node);
+	mpc52xx_gpt_gpio_setup(gpt);
 	mpc52xx_gpt_irq_setup(gpt, ofdev->dev.of_node);
 
 	mutex_lock(&mpc52xx_gpt_list_mutex);
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API
  2022-05-07 10:01 [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Andy Shevchenko
  2022-05-07 10:01 ` [PATCH v2 2/4] powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode Andy Shevchenko
  2022-05-07 10:01 ` [PATCH v2 3/4] powerpc/52xx: Get rid of of_node assignment Andy Shevchenko
@ 2022-05-07 10:01 ` Andy Shevchenko
  2022-05-16 13:48   ` Michael Ellerman
  2022-06-29 12:15 ` [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Michael Ellerman
  3 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2022-05-07 10:01 UTC (permalink / raw)
  To: Andy Shevchenko, Wolfram Sang, Marc Kleine-Budde, Damien Le Moal,
	Mark Brown, chris.packham, Sergey Shtylyov, David S. Miller,
	Jakub Kicinski, Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev,
	linux-kernel, linux-ide, linux-i2c, linux-can, netdev, linux-spi,
	linux-serial
  Cc: Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Anatolij Gustschin, Wolfgang Grandegger, Eric Dumazet,
	Paolo Abeni, Pantelis Antoniou

We may convert the GPT driver to use fwnode API for the sake
of consistency of the used APIs inside the driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2: no changes
 arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 47 +++++++++++------------
 1 file changed, 22 insertions(+), 25 deletions(-)

diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index ae47fdcc8a96..58c3651034bd 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -53,10 +53,9 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/list.h>
+#include <linux/mod_devicetable.h>
+#include <linux/module.h>
 #include <linux/mutex.h>
-#include <linux/of.h>
-#include <linux/of_platform.h>
-#include <linux/of_gpio.h>
 #include <linux/kernel.h>
 #include <linux/property.h>
 #include <linux/slab.h>
@@ -64,7 +63,7 @@
 #include <linux/watchdog.h>
 #include <linux/miscdevice.h>
 #include <linux/uaccess.h>
-#include <linux/module.h>
+
 #include <asm/div64.h>
 #include <asm/mpc52xx.h>
 
@@ -235,18 +234,17 @@ static const struct irq_domain_ops mpc52xx_gpt_irq_ops = {
 	.xlate = mpc52xx_gpt_irq_xlate,
 };
 
-static void
-mpc52xx_gpt_irq_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
+static void mpc52xx_gpt_irq_setup(struct mpc52xx_gpt_priv *gpt)
 {
 	int cascade_virq;
 	unsigned long flags;
 	u32 mode;
 
-	cascade_virq = irq_of_parse_and_map(node, 0);
-	if (!cascade_virq)
+	cascade_virq = platform_get_irq(to_platform_device(gpt->dev), 0);
+	if (cascade_virq < 0)
 		return;
 
-	gpt->irqhost = irq_domain_add_linear(node, 1, &mpc52xx_gpt_irq_ops, gpt);
+	gpt->irqhost = irq_domain_create_linear(dev_fwnode(gpt->dev), 1, &mpc52xx_gpt_irq_ops, gpt);
 	if (!gpt->irqhost) {
 		dev_err(gpt->dev, "irq_domain_add_linear() failed\n");
 		return;
@@ -670,8 +668,7 @@ static int mpc52xx_gpt_wdt_init(void)
 	return err;
 }
 
-static int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt,
-				 const u32 *period)
+static int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt, const u32 period)
 {
 	u64 real_timeout;
 
@@ -679,14 +676,14 @@ static int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt,
 	mpc52xx_gpt_wdt = gpt;
 
 	/* configure the wdt if the device tree contained a timeout */
-	if (!period || *period == 0)
+	if (period == 0)
 		return 0;
 
-	real_timeout = (u64) *period * 1000000000ULL;
+	real_timeout = (u64)period * 1000000000ULL;
 	if (mpc52xx_gpt_do_start(gpt, real_timeout, 0, 1))
 		dev_warn(gpt->dev, "starting as wdt failed\n");
 	else
-		dev_info(gpt->dev, "watchdog set to %us timeout\n", *period);
+		dev_info(gpt->dev, "watchdog set to %us timeout\n", period);
 	return 0;
 }
 
@@ -697,8 +694,7 @@ static int mpc52xx_gpt_wdt_init(void)
 	return 0;
 }
 
-static inline int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt,
-					const u32 *period)
+static inline int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt, const u32 period)
 {
 	return 0;
 }
@@ -726,25 +722,26 @@ static int mpc52xx_gpt_probe(struct platform_device *ofdev)
 	dev_set_drvdata(&ofdev->dev, gpt);
 
 	mpc52xx_gpt_gpio_setup(gpt);
-	mpc52xx_gpt_irq_setup(gpt, ofdev->dev.of_node);
+	mpc52xx_gpt_irq_setup(gpt);
 
 	mutex_lock(&mpc52xx_gpt_list_mutex);
 	list_add(&gpt->list, &mpc52xx_gpt_list);
 	mutex_unlock(&mpc52xx_gpt_list_mutex);
 
 	/* check if this device could be a watchdog */
-	if (of_get_property(ofdev->dev.of_node, "fsl,has-wdt", NULL) ||
-	    of_get_property(ofdev->dev.of_node, "has-wdt", NULL)) {
-		const u32 *on_boot_wdt;
+	if (device_property_present(gpt->dev, "fsl,has-wdt") ||
+	    device_property_present(gpt->dev, "has-wdt")) {
+		u32 on_boot_wdt = 0;
+		int ret;
 
 		gpt->wdt_mode = MPC52xx_GPT_CAN_WDT;
-		on_boot_wdt = of_get_property(ofdev->dev.of_node,
-					      "fsl,wdt-on-boot", NULL);
-		if (on_boot_wdt) {
+		ret = device_property_read_u32(gpt->dev, "fsl,wdt-on-boot", &on_boot_wdt);
+		if (ret) {
+			dev_info(gpt->dev, "can function as watchdog\n");
+		} else {
 			dev_info(gpt->dev, "used as watchdog\n");
 			gpt->wdt_mode |= MPC52xx_GPT_IS_WDT;
-		} else
-			dev_info(gpt->dev, "can function as watchdog\n");
+		}
 		mpc52xx_gpt_wdt_setup(gpt, on_boot_wdt);
 	}
 
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API
  2022-05-07 10:01 ` [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API Andy Shevchenko
@ 2022-05-16 13:48   ` Michael Ellerman
  2022-05-16 14:05     ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Ellerman @ 2022-05-16 13:48 UTC (permalink / raw)
  To: Andy Shevchenko, Andy Shevchenko, Wolfram Sang,
	Marc Kleine-Budde, Damien Le Moal, Mark Brown, chris.packham,
	Sergey Shtylyov, David S. Miller, Jakub Kicinski,
	Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev, linux-kernel,
	linux-ide, linux-i2c, linux-can, netdev, linux-spi, linux-serial
  Cc: Benjamin Herrenschmidt, Paul Mackerras, Anatolij Gustschin,
	Wolfgang Grandegger, Eric Dumazet, Paolo Abeni,
	Pantelis Antoniou

Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
> We may convert the GPT driver to use fwnode API for the sake
> of consistency of the used APIs inside the driver.

I'm not sure about this one.

It's more consistent to use fwnode in this driver, but it's very
inconsistent with the rest of the powerpc code. We have basically no
uses of the fwnode APIs at the moment.

It seems like a pretty straight-forward conversion, but there could
easily be a bug in there, I don't have any way to test it. Do you?

cheers



> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> index ae47fdcc8a96..58c3651034bd 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> @@ -53,10 +53,9 @@
>  #include <linux/interrupt.h>
>  #include <linux/io.h>
>  #include <linux/list.h>
> +#include <linux/mod_devicetable.h>
> +#include <linux/module.h>
>  #include <linux/mutex.h>
> -#include <linux/of.h>
> -#include <linux/of_platform.h>
> -#include <linux/of_gpio.h>
>  #include <linux/kernel.h>
>  #include <linux/property.h>
>  #include <linux/slab.h>
> @@ -64,7 +63,7 @@
>  #include <linux/watchdog.h>
>  #include <linux/miscdevice.h>
>  #include <linux/uaccess.h>
> -#include <linux/module.h>
> +
>  #include <asm/div64.h>
>  #include <asm/mpc52xx.h>
>  
> @@ -235,18 +234,17 @@ static const struct irq_domain_ops mpc52xx_gpt_irq_ops = {
>  	.xlate = mpc52xx_gpt_irq_xlate,
>  };
>  
> -static void
> -mpc52xx_gpt_irq_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
> +static void mpc52xx_gpt_irq_setup(struct mpc52xx_gpt_priv *gpt)
>  {
>  	int cascade_virq;
>  	unsigned long flags;
>  	u32 mode;
>  
> -	cascade_virq = irq_of_parse_and_map(node, 0);
> -	if (!cascade_virq)
> +	cascade_virq = platform_get_irq(to_platform_device(gpt->dev), 0);
> +	if (cascade_virq < 0)
>  		return;
>  
> -	gpt->irqhost = irq_domain_add_linear(node, 1, &mpc52xx_gpt_irq_ops, gpt);
> +	gpt->irqhost = irq_domain_create_linear(dev_fwnode(gpt->dev), 1, &mpc52xx_gpt_irq_ops, gpt);
>  	if (!gpt->irqhost) {
>  		dev_err(gpt->dev, "irq_domain_add_linear() failed\n");
>  		return;
> @@ -670,8 +668,7 @@ static int mpc52xx_gpt_wdt_init(void)
>  	return err;
>  }
>  
> -static int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt,
> -				 const u32 *period)
> +static int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt, const u32 period)
>  {
>  	u64 real_timeout;
>  
> @@ -679,14 +676,14 @@ static int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt,
>  	mpc52xx_gpt_wdt = gpt;
>  
>  	/* configure the wdt if the device tree contained a timeout */
> -	if (!period || *period == 0)
> +	if (period == 0)
>  		return 0;
>  
> -	real_timeout = (u64) *period * 1000000000ULL;
> +	real_timeout = (u64)period * 1000000000ULL;
>  	if (mpc52xx_gpt_do_start(gpt, real_timeout, 0, 1))
>  		dev_warn(gpt->dev, "starting as wdt failed\n");
>  	else
> -		dev_info(gpt->dev, "watchdog set to %us timeout\n", *period);
> +		dev_info(gpt->dev, "watchdog set to %us timeout\n", period);
>  	return 0;
>  }
>  
> @@ -697,8 +694,7 @@ static int mpc52xx_gpt_wdt_init(void)
>  	return 0;
>  }
>  
> -static inline int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt,
> -					const u32 *period)
> +static inline int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt, const u32 period)
>  {
>  	return 0;
>  }
> @@ -726,25 +722,26 @@ static int mpc52xx_gpt_probe(struct platform_device *ofdev)
>  	dev_set_drvdata(&ofdev->dev, gpt);
>  
>  	mpc52xx_gpt_gpio_setup(gpt);
> -	mpc52xx_gpt_irq_setup(gpt, ofdev->dev.of_node);
> +	mpc52xx_gpt_irq_setup(gpt);
>  
>  	mutex_lock(&mpc52xx_gpt_list_mutex);
>  	list_add(&gpt->list, &mpc52xx_gpt_list);
>  	mutex_unlock(&mpc52xx_gpt_list_mutex);
>  
>  	/* check if this device could be a watchdog */
> -	if (of_get_property(ofdev->dev.of_node, "fsl,has-wdt", NULL) ||
> -	    of_get_property(ofdev->dev.of_node, "has-wdt", NULL)) {
> -		const u32 *on_boot_wdt;
> +	if (device_property_present(gpt->dev, "fsl,has-wdt") ||
> +	    device_property_present(gpt->dev, "has-wdt")) {
> +		u32 on_boot_wdt = 0;
> +		int ret;
>  
>  		gpt->wdt_mode = MPC52xx_GPT_CAN_WDT;
> -		on_boot_wdt = of_get_property(ofdev->dev.of_node,
> -					      "fsl,wdt-on-boot", NULL);
> -		if (on_boot_wdt) {
> +		ret = device_property_read_u32(gpt->dev, "fsl,wdt-on-boot", &on_boot_wdt);
> +		if (ret) {
> +			dev_info(gpt->dev, "can function as watchdog\n");
> +		} else {
>  			dev_info(gpt->dev, "used as watchdog\n");
>  			gpt->wdt_mode |= MPC52xx_GPT_IS_WDT;
> -		} else
> -			dev_info(gpt->dev, "can function as watchdog\n");
> +		}
>  		mpc52xx_gpt_wdt_setup(gpt, on_boot_wdt);
>  	}
>  
> -- 
> 2.35.1

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API
  2022-05-16 13:48   ` Michael Ellerman
@ 2022-05-16 14:05     ` Andy Shevchenko
  2022-05-16 14:10       ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2022-05-16 14:05 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Wolfram Sang, Marc Kleine-Budde, Damien Le Moal, Mark Brown,
	chris.packham, Sergey Shtylyov, David S. Miller, Jakub Kicinski,
	Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev, linux-kernel,
	linux-ide, linux-i2c, linux-can, netdev, linux-spi, linux-serial,
	Benjamin Herrenschmidt, Paul Mackerras, Anatolij Gustschin,
	Wolfgang Grandegger, Eric Dumazet, Paolo Abeni,
	Pantelis Antoniou

On Mon, May 16, 2022 at 11:48:05PM +1000, Michael Ellerman wrote:
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
> > We may convert the GPT driver to use fwnode API for the sake
> > of consistency of the used APIs inside the driver.
> 
> I'm not sure about this one.
> 
> It's more consistent to use fwnode in this driver, but it's very
> inconsistent with the rest of the powerpc code. We have basically no
> uses of the fwnode APIs at the moment.

Fair point!

> It seems like a pretty straight-forward conversion, but there could
> easily be a bug in there, I don't have any way to test it. Do you?

Nope, only compile testing. The important part of this series is to
clean up of_node from GPIO library, so since here it's a user of
it I want to do that. This patch is just ad-hoc conversion that I
noticed is possible. But there is no any requirement to do so.

Lemme drop this from v3.


-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API
  2022-05-16 14:05     ` Andy Shevchenko
@ 2022-05-16 14:10       ` Andy Shevchenko
  2022-05-16 23:38         ` Michael Ellerman
  0 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2022-05-16 14:10 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Wolfram Sang, Marc Kleine-Budde, Damien Le Moal, Mark Brown,
	chris.packham, Sergey Shtylyov, David S. Miller, Jakub Kicinski,
	Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev, linux-kernel,
	linux-ide, linux-i2c, linux-can, netdev, linux-spi, linux-serial,
	Benjamin Herrenschmidt, Paul Mackerras, Anatolij Gustschin,
	Wolfgang Grandegger, Eric Dumazet, Paolo Abeni,
	Pantelis Antoniou

On Mon, May 16, 2022 at 05:05:12PM +0300, Andy Shevchenko wrote:
> On Mon, May 16, 2022 at 11:48:05PM +1000, Michael Ellerman wrote:
> > Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
> > > We may convert the GPT driver to use fwnode API for the sake
> > > of consistency of the used APIs inside the driver.
> > 
> > I'm not sure about this one.
> > 
> > It's more consistent to use fwnode in this driver, but it's very
> > inconsistent with the rest of the powerpc code. We have basically no
> > uses of the fwnode APIs at the moment.
> 
> Fair point!
> 
> > It seems like a pretty straight-forward conversion, but there could
> > easily be a bug in there, I don't have any way to test it. Do you?
> 
> Nope, only compile testing. The important part of this series is to
> clean up of_node from GPIO library, so since here it's a user of
> it I want to do that. This patch is just ad-hoc conversion that I
> noticed is possible. But there is no any requirement to do so.
> 
> Lemme drop this from v3.

I just realize that there is no point to send a v3. You can just apply
first 3 patches. Or is your comment against entire series?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API
  2022-05-16 14:10       ` Andy Shevchenko
@ 2022-05-16 23:38         ` Michael Ellerman
  2022-05-17 16:30           ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Ellerman @ 2022-05-16 23:38 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Wolfram Sang, Marc Kleine-Budde, Damien Le Moal, Mark Brown,
	chris.packham, Sergey Shtylyov, David S. Miller, Jakub Kicinski,
	Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev, linux-kernel,
	linux-ide, linux-i2c, linux-can, netdev, linux-spi, linux-serial,
	Benjamin Herrenschmidt, Paul Mackerras, Anatolij Gustschin,
	Wolfgang Grandegger, Eric Dumazet, Paolo Abeni,
	Pantelis Antoniou

Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
> On Mon, May 16, 2022 at 05:05:12PM +0300, Andy Shevchenko wrote:
>> On Mon, May 16, 2022 at 11:48:05PM +1000, Michael Ellerman wrote:
>> > Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
>> > > We may convert the GPT driver to use fwnode API for the sake
>> > > of consistency of the used APIs inside the driver.
>> > 
>> > I'm not sure about this one.
>> > 
>> > It's more consistent to use fwnode in this driver, but it's very
>> > inconsistent with the rest of the powerpc code. We have basically no
>> > uses of the fwnode APIs at the moment.
>> 
>> Fair point!
>> 
>> > It seems like a pretty straight-forward conversion, but there could
>> > easily be a bug in there, I don't have any way to test it. Do you?
>> 
>> Nope, only compile testing. The important part of this series is to
>> clean up of_node from GPIO library, so since here it's a user of
>> it I want to do that. This patch is just ad-hoc conversion that I
>> noticed is possible. But there is no any requirement to do so.
>> 
>> Lemme drop this from v3.
>
> I just realize that there is no point to send a v3. You can just apply
> first 3 patches. Or is your comment against entire series?

No, my comment is just about this patch.

I don't mind converting to new APIs when it's blocking some other
cleanup. But given the age of this code I think it's probably better to
just leave the rest of it as-is, unless someone volunteers to test it.

So yeah I'll just take patches 1-3 of this v2 series, no need to resend.

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API
  2022-05-16 23:38         ` Michael Ellerman
@ 2022-05-17 16:30           ` Andy Shevchenko
  0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2022-05-17 16:30 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Wolfram Sang, Marc Kleine-Budde, Damien Le Moal, Mark Brown,
	chris.packham, Sergey Shtylyov, David S. Miller, Jakub Kicinski,
	Greg Kroah-Hartman, Jiri Slaby, linuxppc-dev, linux-kernel,
	linux-ide, linux-i2c, linux-can, netdev, linux-spi, linux-serial,
	Benjamin Herrenschmidt, Paul Mackerras, Anatolij Gustschin,
	Wolfgang Grandegger, Eric Dumazet, Paolo Abeni,
	Pantelis Antoniou

On Tue, May 17, 2022 at 09:38:56AM +1000, Michael Ellerman wrote:
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
> > On Mon, May 16, 2022 at 05:05:12PM +0300, Andy Shevchenko wrote:
> >> On Mon, May 16, 2022 at 11:48:05PM +1000, Michael Ellerman wrote:
> >> > Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
> >> > > We may convert the GPT driver to use fwnode API for the sake
> >> > > of consistency of the used APIs inside the driver.
> >> > 
> >> > I'm not sure about this one.
> >> > 
> >> > It's more consistent to use fwnode in this driver, but it's very
> >> > inconsistent with the rest of the powerpc code. We have basically no
> >> > uses of the fwnode APIs at the moment.
> >> 
> >> Fair point!
> >> 
> >> > It seems like a pretty straight-forward conversion, but there could
> >> > easily be a bug in there, I don't have any way to test it. Do you?
> >> 
> >> Nope, only compile testing. The important part of this series is to
> >> clean up of_node from GPIO library, so since here it's a user of
> >> it I want to do that. This patch is just ad-hoc conversion that I
> >> noticed is possible. But there is no any requirement to do so.
> >> 
> >> Lemme drop this from v3.
> >
> > I just realize that there is no point to send a v3. You can just apply
> > first 3 patches. Or is your comment against entire series?
> 
> No, my comment is just about this patch.
> 
> I don't mind converting to new APIs when it's blocking some other
> cleanup. But given the age of this code I think it's probably better to
> just leave the rest of it as-is, unless someone volunteers to test it.
> 
> So yeah I'll just take patches 1-3 of this v2 series, no need to resend.

Thanks!

One note though, the fwnode_for_each_parent_node() is not yet available in
upstream, but will be after v5.19-rc1. It means the patch 3 can't be applied
without that. That's why LKP complained on patch 4 in this series.

That said, the easiest way is to postpone it till v5.19-rc1 is out.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq()
  2022-05-07 10:01 [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Andy Shevchenko
                   ` (2 preceding siblings ...)
  2022-05-07 10:01 ` [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API Andy Shevchenko
@ 2022-06-29 12:15 ` Michael Ellerman
  3 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2022-06-29 12:15 UTC (permalink / raw)
  To: Mark Brown, David S. Miller, linux-ide, linux-serial,
	Marc Kleine-Budde, linux-kernel, Wolfram Sang, Andy Shevchenko,
	linuxppc-dev, linux-i2c, Jakub Kicinski, Damien Le Moal, netdev,
	Greg Kroah-Hartman, linux-spi, linux-can, Jiri Slaby,
	chris.packham, Sergey Shtylyov
  Cc: Paolo Abeni, Paul Mackerras, Michael Ellerman, Eric Dumazet,
	Pantelis Antoniou, Wolfgang Grandegger, Benjamin Herrenschmidt,
	Anatolij Gustschin

On Sat, 7 May 2022 13:01:44 +0300, Andy Shevchenko wrote:
> It seems mpc52xx_get_xtal_freq() is not used anywhere. Remove dead code.
> 
> 

Patches 1-3 applied to powerpc/next.

[1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq()
      https://git.kernel.org/powerpc/c/6d056b7254f9954522b7bb9947c8779a013d189f
[2/4] powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode
      https://git.kernel.org/powerpc/c/de06fba62af64144aca6f8a8bedbc848d2e5b440
[3/4] powerpc/52xx: Get rid of of_node assignment
      https://git.kernel.org/powerpc/c/00bcb550dc60f73d593d2dbb718c4f521c7d7be8

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-06-29 12:16 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-07 10:01 [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Andy Shevchenko
2022-05-07 10:01 ` [PATCH v2 2/4] powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode Andy Shevchenko
2022-05-07 10:01 ` [PATCH v2 3/4] powerpc/52xx: Get rid of of_node assignment Andy Shevchenko
2022-05-07 10:01 ` [PATCH v2 4/4] powerpc/52xx: Convert to use fwnode API Andy Shevchenko
2022-05-16 13:48   ` Michael Ellerman
2022-05-16 14:05     ` Andy Shevchenko
2022-05-16 14:10       ` Andy Shevchenko
2022-05-16 23:38         ` Michael Ellerman
2022-05-17 16:30           ` Andy Shevchenko
2022-06-29 12:15 ` [PATCH v2 1/4] powerpc/52xx: Remove dead code, i.e. mpc52xx_get_xtal_freq() Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).