* [PATCH net-next] net: use pdev instead of OF funcs
@ 2024-11-09 23:38 Rosen Penev
2024-11-10 10:53 ` kernel test robot
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Rosen Penev @ 2024-11-09 23:38 UTC (permalink / raw)
To: netdev
Cc: Marc Kleine-Budde, Vincent Mailhol, Andrew Lunn, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Florian Fainelli,
Vladimir Oltean, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Pantelis Antoniou, Marcin Wojtas, Byungho An, Kevin Brace,
Francois Romieu, Michal Simek, Heiner Kallweit, Russell King,
Zhao Qiang, open list:CAN NETWORK DRIVERS, open list,
moderated list:ARM/Allwinner sunXi SoC support,
open list:ARM/Allwinner sunXi SoC support,
open list:FREESCALE SOC FS_ENET DRIVER
np here is ofdev->dev.of_node. Better to use the proper functions as
there's no use of children or anything else.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/can/grcan.c | 2 +-
drivers/net/can/mscan/mpc5xxx_can.c | 2 +-
drivers/net/dsa/bcm_sf2.c | 4 ++--
drivers/net/ethernet/allwinner/sun4i-emac.c | 2 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 23 ++++++++++---------
.../net/ethernet/freescale/fec_mpc52xx_phy.c | 12 ++++++----
.../net/ethernet/freescale/fs_enet/mac-fcc.c | 2 +-
.../net/ethernet/freescale/fs_enet/mac-fec.c | 2 +-
.../net/ethernet/freescale/fs_enet/mac-scc.c | 2 +-
.../net/ethernet/freescale/fs_enet/mii-fec.c | 12 ++++++----
drivers/net/ethernet/freescale/ucc_geth.c | 12 +++++-----
drivers/net/ethernet/marvell/mvneta.c | 2 +-
drivers/net/ethernet/moxa/moxart_ether.c | 4 ++--
.../ethernet/samsung/sxgbe/sxgbe_platform.c | 8 +++----
drivers/net/ethernet/via/via-rhine.c | 2 +-
drivers/net/ethernet/via/via-velocity.c | 2 +-
drivers/net/ethernet/xilinx/ll_temac_mdio.c | 6 ++---
drivers/net/mdio/mdio-mux-mmioreg.c | 16 +++++++------
drivers/net/wan/fsl_ucc_hdlc.c | 10 ++++----
19 files changed, 66 insertions(+), 59 deletions(-)
diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c
index cdf0ec9fa7f3..0a2cc0ba219f 100644
--- a/drivers/net/can/grcan.c
+++ b/drivers/net/can/grcan.c
@@ -1673,7 +1673,7 @@ static int grcan_probe(struct platform_device *ofdev)
goto exit_error;
}
- irq = irq_of_parse_and_map(np, GRCAN_IRQIX_IRQ);
+ irq = platform_get_irq(ofdev, GRCAN_IRQIX_IRQ);
if (!irq) {
dev_err(&ofdev->dev, "no irq found\n");
err = -ENODEV;
diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
index 0080c39ee182..252ad40bdb97 100644
--- a/drivers/net/can/mscan/mpc5xxx_can.c
+++ b/drivers/net/can/mscan/mpc5xxx_can.c
@@ -300,7 +300,7 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)
if (!base)
return dev_err_probe(&ofdev->dev, err, "couldn't ioremap\n");
- irq = irq_of_parse_and_map(np, 0);
+ irq = platform_get_irq(ofdev, 0);
if (!irq) {
dev_err(&ofdev->dev, "no irq found\n");
err = -ENODEV;
diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
index 43bde1f583ff..9229582efd05 100644
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -1443,8 +1443,8 @@ static int bcm_sf2_sw_probe(struct platform_device *pdev)
of_node_put(ports);
}
- priv->irq0 = irq_of_parse_and_map(dn, 0);
- priv->irq1 = irq_of_parse_and_map(dn, 1);
+ priv->irq0 = platform_get_irq(pdev, 0);
+ priv->irq1 = platform_get_irq(pdev, 1);
base = &priv->core;
for (i = 0; i < BCM_SF2_REGS_NUM; i++) {
diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c
index 2f516b950f4e..18df8d1d93fd 100644
--- a/drivers/net/ethernet/allwinner/sun4i-emac.c
+++ b/drivers/net/ethernet/allwinner/sun4i-emac.c
@@ -995,7 +995,7 @@ static int emac_probe(struct platform_device *pdev)
/* fill in parameters for net-dev structure */
ndev->base_addr = (unsigned long)db->membase;
- ndev->irq = irq_of_parse_and_map(np, 0);
+ ndev->irq = platform_get_irq(pdev, 0);
if (ndev->irq == -ENXIO) {
netdev_err(ndev, "No irq resource\n");
ret = ndev->irq;
diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx.c b/drivers/net/ethernet/freescale/fec_mpc52xx.c
index 2bfaf14f65c8..553d33a98c99 100644
--- a/drivers/net/ethernet/freescale/fec_mpc52xx.c
+++ b/drivers/net/ethernet/freescale/fec_mpc52xx.c
@@ -811,7 +811,7 @@ static int mpc52xx_fec_probe(struct platform_device *op)
int rv;
struct net_device *ndev;
struct mpc52xx_fec_priv *priv = NULL;
- struct resource mem;
+ struct resource *mem;
const u32 *prop;
int prop_size;
struct device_node *np = op->dev.of_node;
@@ -828,20 +828,21 @@ static int mpc52xx_fec_probe(struct platform_device *op)
priv->ndev = ndev;
/* Reserve FEC control zone */
- rv = of_address_to_resource(np, 0, &mem);
- if (rv) {
+ mem = platform_get_resource(op, 0, IORESOURCE_MEM);
+ if (!mem) {
pr_err("Error while parsing device node resource\n");
+ rv = -ENODEV;
goto err_netdev;
}
- if (resource_size(&mem) < sizeof(struct mpc52xx_fec)) {
+ if (resource_size(mem) < sizeof(struct mpc52xx_fec)) {
pr_err("invalid resource size (%lx < %x), check mpc52xx_devices.c\n",
- (unsigned long)resource_size(&mem),
+ (unsigned long)resource_size(mem),
sizeof(struct mpc52xx_fec));
rv = -EINVAL;
goto err_netdev;
}
- if (!request_mem_region(mem.start, sizeof(struct mpc52xx_fec),
+ if (!request_mem_region(mem->start, sizeof(struct mpc52xx_fec),
DRIVER_NAME)) {
rv = -EBUSY;
goto err_netdev;
@@ -851,13 +852,13 @@ static int mpc52xx_fec_probe(struct platform_device *op)
ndev->netdev_ops = &mpc52xx_fec_netdev_ops;
ndev->ethtool_ops = &mpc52xx_fec_ethtool_ops;
ndev->watchdog_timeo = FEC_WATCHDOG_TIMEOUT;
- ndev->base_addr = mem.start;
+ ndev->base_addr = mem->start;
SET_NETDEV_DEV(ndev, &op->dev);
spin_lock_init(&priv->lock);
/* ioremap the zones */
- priv->fec = ioremap(mem.start, sizeof(struct mpc52xx_fec));
+ priv->fec = ioremap(mem->start, sizeof(struct mpc52xx_fec));
if (!priv->fec) {
rv = -ENOMEM;
@@ -879,9 +880,9 @@ static int mpc52xx_fec_probe(struct platform_device *op)
/* Get the IRQ we need one by one */
/* Control */
- ndev->irq = irq_of_parse_and_map(np, 0);
+ ndev->irq = platform_get_irq(op, 0);
- /* RX */
+ /* RX */
priv->r_irq = bcom_get_task_irq(priv->rx_dmatsk);
/* TX */
@@ -967,7 +968,7 @@ static int mpc52xx_fec_probe(struct platform_device *op)
bcom_fec_tx_release(priv->tx_dmatsk);
iounmap(priv->fec);
err_mem_region:
- release_mem_region(mem.start, sizeof(struct mpc52xx_fec));
+ release_mem_region(mem->start, sizeof(struct mpc52xx_fec));
err_netdev:
free_netdev(ndev);
diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
index 3d073f0fae63..4ffab516f770 100644
--- a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
+++ b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
@@ -68,7 +68,7 @@ static int mpc52xx_fec_mdio_probe(struct platform_device *of)
struct device_node *np = of->dev.of_node;
struct mii_bus *bus;
struct mpc52xx_fec_mdio_priv *priv;
- struct resource res;
+ struct resource *res;
int err;
bus = mdiobus_alloc();
@@ -85,16 +85,18 @@ static int mpc52xx_fec_mdio_probe(struct platform_device *of)
bus->write = mpc52xx_fec_mdio_write;
/* setup registers */
- err = of_address_to_resource(np, 0, &res);
- if (err)
+ res = platform_get_resource(of, 0, IORESOURCE_MEM);
+ if (!res) {
+ err = -ENODEV;
goto out_free;
- priv->regs = ioremap(res.start, resource_size(&res));
+ }
+ priv->regs = ioremap(res->start, resource_size(res));
if (priv->regs == NULL) {
err = -ENOMEM;
goto out_free;
}
- snprintf(bus->id, MII_BUS_ID_SIZE, "%pa", &res.start);
+ snprintf(bus->id, MII_BUS_ID_SIZE, "%pa", &res->start);
bus->priv = priv;
bus->parent = dev;
diff --git a/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c b/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c
index be63293511d9..8bed0ea11dd1 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c
@@ -83,7 +83,7 @@ static int do_pd_setup(struct fs_enet_private *fep)
struct fs_platform_info *fpi = fep->fpi;
int ret = -EINVAL;
- fep->interrupt = irq_of_parse_and_map(ofdev->dev.of_node, 0);
+ fep->interrupt = platform_get_irq(ofdev, 0);
if (!fep->interrupt)
goto out;
diff --git a/drivers/net/ethernet/freescale/fs_enet/mac-fec.c b/drivers/net/ethernet/freescale/fs_enet/mac-fec.c
index f2ecd20027cf..8dbd624b87ac 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mac-fec.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mac-fec.c
@@ -88,7 +88,7 @@ static int do_pd_setup(struct fs_enet_private *fep)
{
struct platform_device *ofdev = to_platform_device(fep->dev);
- fep->interrupt = irq_of_parse_and_map(ofdev->dev.of_node, 0);
+ fep->interrupt = platform_get_irq(ofdev, 0);
if (!fep->interrupt)
return -EINVAL;
diff --git a/drivers/net/ethernet/freescale/fs_enet/mac-scc.c b/drivers/net/ethernet/freescale/fs_enet/mac-scc.c
index 6c97191649de..53d67fb08bad 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mac-scc.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mac-scc.c
@@ -87,7 +87,7 @@ static int do_pd_setup(struct fs_enet_private *fep)
{
struct platform_device *ofdev = to_platform_device(fep->dev);
- fep->interrupt = irq_of_parse_and_map(ofdev->dev.of_node, 0);
+ fep->interrupt = platform_get_irq(ofdev, 0);
if (!fep->interrupt)
return -EINVAL;
diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
index dec31b638941..0e6faba74e34 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
@@ -96,7 +96,7 @@ static int fs_enet_fec_mii_write(struct mii_bus *bus, int phy_id, int location,
static int fs_enet_mdio_probe(struct platform_device *ofdev)
{
- struct resource res;
+ struct resource *res;
struct mii_bus *new_bus;
struct fec_info *fec;
int (*get_bus_freq)(struct device *);
@@ -117,13 +117,15 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev)
new_bus->read = &fs_enet_fec_mii_read;
new_bus->write = &fs_enet_fec_mii_write;
- ret = of_address_to_resource(ofdev->dev.of_node, 0, &res);
- if (ret)
+ res = platform_get_resource(ofdev, 0, IORESOURCE_MEM);
+ if (!res) {
+ ret = -ENODEV;
goto out_res;
+ }
- snprintf(new_bus->id, MII_BUS_ID_SIZE, "%pap", &res.start);
+ snprintf(new_bus->id, MII_BUS_ID_SIZE, "%pap", &res->start);
- fec->fecp = ioremap(res.start, resource_size(&res));
+ fec->fecp = ioremap(res->start, resource_size(res));
if (!fec->fecp) {
ret = -ENOMEM;
goto out_fec;
diff --git a/drivers/net/ethernet/freescale/ucc_geth.c b/drivers/net/ethernet/freescale/ucc_geth.c
index 6663c1768089..2a10486bc1f0 100644
--- a/drivers/net/ethernet/freescale/ucc_geth.c
+++ b/drivers/net/ethernet/freescale/ucc_geth.c
@@ -3560,7 +3560,7 @@ static int ucc_geth_probe(struct platform_device* ofdev)
struct net_device *dev = NULL;
struct ucc_geth_private *ugeth = NULL;
struct ucc_geth_info *ug_info;
- struct resource res;
+ struct resource *res;
int err, ucc_num, max_speed = 0;
const unsigned int *prop;
phy_interface_t phy_interface;
@@ -3605,12 +3605,12 @@ static int ucc_geth_probe(struct platform_device* ofdev)
if (err)
return err;
- err = of_address_to_resource(np, 0, &res);
- if (err)
- return err;
+ res = platform_get_resource(ofdev 0, IORESOURCE_MEM);
+ if (!res)
+ return -ENODEV;
- ug_info->uf_info.regs = res.start;
- ug_info->uf_info.irq = irq_of_parse_and_map(np, 0);
+ ug_info->uf_info.regs = res->start;
+ ug_info->uf_info.irq = platform_get_irq(ofdev, 0);
ug_info->phy_node = of_parse_phandle(np, "phy-handle", 0);
if (!ug_info->phy_node && of_phy_is_fixed_link(np)) {
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 1fb285fa0bdb..0da7084b80c4 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -5511,7 +5511,7 @@ static int mvneta_probe(struct platform_device *pdev)
pp->neta_ac5 = true;
}
- dev->irq = irq_of_parse_and_map(dn, 0);
+ dev->irq = platform_get_irq(pdev, 0);
if (dev->irq == 0)
return -EINVAL;
diff --git a/drivers/net/ethernet/moxa/moxart_ether.c b/drivers/net/ethernet/moxa/moxart_ether.c
index 8bd60168624a..f995591dc43b 100644
--- a/drivers/net/ethernet/moxa/moxart_ether.c
+++ b/drivers/net/ethernet/moxa/moxart_ether.c
@@ -465,9 +465,9 @@ static int moxart_mac_probe(struct platform_device *pdev)
if (!ndev)
return -ENOMEM;
- irq = irq_of_parse_and_map(node, 0);
+ irq = platform_get_irq(pdev, 0);
if (irq <= 0) {
- netdev_err(ndev, "irq_of_parse_and_map failed\n");
+ netdev_err(ndev, "platform_get_irq failed\n");
ret = -EINVAL;
goto irq_map_fail;
}
diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
index 2eccc7617507..4118e35b99e5 100644
--- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
+++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
@@ -111,7 +111,7 @@ static int sxgbe_platform_probe(struct platform_device *pdev)
}
/* Get the SXGBE common INT information */
- priv->irq = irq_of_parse_and_map(node, 0);
+ priv->irq = platform_get_irq(pdev, 0);
if (priv->irq <= 0) {
dev_err(dev, "sxgbe common irq parsing failed\n");
goto err_drv_remove;
@@ -122,7 +122,7 @@ static int sxgbe_platform_probe(struct platform_device *pdev)
/* Get the TX/RX IRQ numbers */
for (i = 0, chan = 1; i < SXGBE_TX_QUEUES; i++) {
- priv->txq[i]->irq_no = irq_of_parse_and_map(node, chan++);
+ priv->txq[i]->irq_no = platform_get_irq(pdev, chan++);
if (priv->txq[i]->irq_no <= 0) {
dev_err(dev, "sxgbe tx irq parsing failed\n");
goto err_tx_irq_unmap;
@@ -130,14 +130,14 @@ static int sxgbe_platform_probe(struct platform_device *pdev)
}
for (i = 0; i < SXGBE_RX_QUEUES; i++) {
- priv->rxq[i]->irq_no = irq_of_parse_and_map(node, chan++);
+ priv->rxq[i]->irq_no = platform_get_irq(pdev, chan++);
if (priv->rxq[i]->irq_no <= 0) {
dev_err(dev, "sxgbe rx irq parsing failed\n");
goto err_rx_irq_unmap;
}
}
- priv->lpi_irq = irq_of_parse_and_map(node, chan);
+ priv->lpi_irq = platform_get_irq(pdev, chan);
if (priv->lpi_irq <= 0) {
dev_err(dev, "sxgbe lpi irq parsing failed\n");
goto err_rx_irq_unmap;
diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
index 894911f3d560..f079242c33e2 100644
--- a/drivers/net/ethernet/via/via-rhine.c
+++ b/drivers/net/ethernet/via/via-rhine.c
@@ -1127,7 +1127,7 @@ static int rhine_init_one_platform(struct platform_device *pdev)
if (IS_ERR(ioaddr))
return PTR_ERR(ioaddr);
- irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
+ irq = platform_get_irq(pdev, 0);
if (!irq)
return -EINVAL;
diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c
index dd4a07c97eee..4aac9599c14d 100644
--- a/drivers/net/ethernet/via/via-velocity.c
+++ b/drivers/net/ethernet/via/via-velocity.c
@@ -2950,7 +2950,7 @@ static int velocity_platform_probe(struct platform_device *pdev)
if (!info)
return -EINVAL;
- irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
+ irq = platform_get_irq(pdev, 0);
if (!irq)
return -EINVAL;
diff --git a/drivers/net/ethernet/xilinx/ll_temac_mdio.c b/drivers/net/ethernet/xilinx/ll_temac_mdio.c
index 07a9fb49eda1..4bc5d47ecb7e 100644
--- a/drivers/net/ethernet/xilinx/ll_temac_mdio.c
+++ b/drivers/net/ethernet/xilinx/ll_temac_mdio.c
@@ -69,7 +69,7 @@ int temac_mdio_setup(struct temac_local *lp, struct platform_device *pdev)
u32 bus_hz;
int clk_div;
int rc;
- struct resource res;
+ struct resource *res;
/* Get MDIO bus frequency (if specified) */
bus_hz = 0;
@@ -98,9 +98,9 @@ int temac_mdio_setup(struct temac_local *lp, struct platform_device *pdev)
return -ENOMEM;
if (np) {
- of_address_to_resource(np, 0, &res);
+ res = platform_get_resource(pdev, 0, IORESOURCE_MEM);
snprintf(bus->id, MII_BUS_ID_SIZE, "%.8llx",
- (unsigned long long)res.start);
+ (unsigned long long)res->start);
} else if (pdata) {
snprintf(bus->id, MII_BUS_ID_SIZE, "%.8llx",
pdata->mdio_bus_id);
diff --git a/drivers/net/mdio/mdio-mux-mmioreg.c b/drivers/net/mdio/mdio-mux-mmioreg.c
index 9c4b1efd0d53..b5a65a1ab406 100644
--- a/drivers/net/mdio/mdio-mux-mmioreg.c
+++ b/drivers/net/mdio/mdio-mux-mmioreg.c
@@ -98,7 +98,7 @@ static int mdio_mux_mmioreg_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
struct mdio_mux_mmioreg_state *s;
- struct resource res;
+ struct resource *res;
const __be32 *iprop;
int len, ret;
@@ -108,13 +108,15 @@ static int mdio_mux_mmioreg_probe(struct platform_device *pdev)
if (!s)
return -ENOMEM;
- ret = of_address_to_resource(np, 0, &res);
- if (ret)
- return dev_err_probe(&pdev->dev, ret,
- "could not obtain memory map for node %pOF\n", np);
- s->phys = res.start;
+ res = platform_get_resource(pdev, 0, IORESOURCE_MEM);
+ if (!res) {
+ dev_err(&pdev->dev,
+ "could not obtain memory map for node %pOF\n", np);
+ return -ENODEV;
+ }
+ s->phys = res->start;
- s->iosize = resource_size(&res);
+ s->iosize = resource_size(res);
if (s->iosize != sizeof(uint8_t) &&
s->iosize != sizeof(uint16_t) &&
s->iosize != sizeof(uint32_t))
diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c
index f999798a5612..414a9d22da5e 100644
--- a/drivers/net/wan/fsl_ucc_hdlc.c
+++ b/drivers/net/wan/fsl_ucc_hdlc.c
@@ -1118,7 +1118,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev)
struct ucc_hdlc_private *uhdlc_priv = NULL;
struct ucc_tdm_info *ut_info;
struct ucc_tdm *utdm = NULL;
- struct resource res;
+ struct resource *res;
struct net_device *dev;
hdlc_device *hdlc;
int ucc_num;
@@ -1170,12 +1170,12 @@ static int ucc_hdlc_probe(struct platform_device *pdev)
return -EINVAL;
}
- ret = of_address_to_resource(np, 0, &res);
- if (ret)
+ res = platform_get_resource(pdev, 0, IORESOURCE_MEM);
+ if (!res)
return -EINVAL;
- ut_info->uf_info.regs = res.start;
- ut_info->uf_info.irq = irq_of_parse_and_map(np, 0);
+ ut_info->uf_info.regs = res->start;
+ ut_info->uf_info.irq = platform_get_irq(pdev, 0);
uhdlc_priv = kzalloc(sizeof(*uhdlc_priv), GFP_KERNEL);
if (!uhdlc_priv)
--
2.47.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] net: use pdev instead of OF funcs
2024-11-09 23:38 [PATCH net-next] net: use pdev instead of OF funcs Rosen Penev
@ 2024-11-10 10:53 ` kernel test robot
2024-11-10 12:37 ` kernel test robot
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2024-11-10 10:53 UTC (permalink / raw)
To: Rosen Penev, netdev
Cc: oe-kbuild-all, Marc Kleine-Budde, Vincent Mailhol, Andrew Lunn,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Florian Fainelli,
Vladimir Oltean, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Pantelis Antoniou, Marcin Wojtas, Byungho An, Kevin Brace,
Francois Romieu, Michal Simek, Heiner Kallweit, Russell King,
Zhao Qiang, linux-can, linux-kernel, linuxppc-dev
Hi Rosen,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Rosen-Penev/net-use-pdev-instead-of-OF-funcs/20241110-073939
base: net-next/main
patch link: https://lore.kernel.org/r/20241109233821.8619-1-rosenp%40gmail.com
patch subject: [PATCH net-next] net: use pdev instead of OF funcs
config: powerpc-ge_imp3a_defconfig (https://download.01.org/0day-ci/archive/20241110/202411101834.A8QNRx3c-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241110/202411101834.A8QNRx3c-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411101834.A8QNRx3c-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_free_rx':
drivers/net/ethernet/freescale/ucc_geth.c:1810:31: warning: variable 'uf_info' set but not used [-Wunused-but-set-variable]
1810 | struct ucc_fast_info *uf_info;
| ^~~~~~~
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_free_tx':
drivers/net/ethernet/freescale/ucc_geth.c:1849:31: warning: variable 'uf_info' set but not used [-Wunused-but-set-variable]
1849 | struct ucc_fast_info *uf_info;
| ^~~~~~~
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_alloc_tx':
drivers/net/ethernet/freescale/ucc_geth.c:2142:31: warning: variable 'uf_info' set but not used [-Wunused-but-set-variable]
2142 | struct ucc_fast_info *uf_info;
| ^~~~~~~
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_alloc_rx':
drivers/net/ethernet/freescale/ucc_geth.c:2204:31: warning: variable 'uf_info' set but not used [-Wunused-but-set-variable]
2204 | struct ucc_fast_info *uf_info;
| ^~~~~~~
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_startup':
drivers/net/ethernet/freescale/ucc_geth.c:2271:13: warning: variable 'ifstat' set but not used [-Wunused-but-set-variable]
2271 | u32 ifstat, i, j, size, l2qt, l3qt;
| ^~~~~~
drivers/net/ethernet/freescale/ucc_geth.c:2261:62: warning: variable 'p_82xx_addr_filt' set but not used [-Wunused-but-set-variable]
2261 | struct ucc_geth_82xx_address_filtering_pram __iomem *p_82xx_addr_filt;
| ^~~~~~~~~~~~~~~~
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_rx':
drivers/net/ethernet/freescale/ucc_geth.c:2996:13: warning: variable 'bdBuffer' set but not used [-Wunused-but-set-variable]
2996 | u8 *bdBuffer;
| ^~~~~~~~
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_irq_handler':
drivers/net/ethernet/freescale/ucc_geth.c:3149:31: warning: variable 'ug_info' set but not used [-Wunused-but-set-variable]
3149 | struct ucc_geth_info *ug_info;
| ^~~~~~~
drivers/net/ethernet/freescale/ucc_geth.c: In function 'ucc_geth_probe':
>> drivers/net/ethernet/freescale/ucc_geth.c:3608:42: error: expected ')' before numeric constant
3608 | res = platform_get_resource(ofdev 0, IORESOURCE_MEM);
| ~ ^~
| )
>> drivers/net/ethernet/freescale/ucc_geth.c:3608:15: error: too few arguments to function 'platform_get_resource'
3608 | res = platform_get_resource(ofdev 0, IORESOURCE_MEM);
| ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/freescale/ucc_geth.c:36:
include/linux/platform_device.h:58:25: note: declared here
58 | extern struct resource *platform_get_resource(struct platform_device *,
| ^~~~~~~~~~~~~~~~~~~~~
vim +3608 drivers/net/ethernet/freescale/ucc_geth.c
3555
3556 static int ucc_geth_probe(struct platform_device* ofdev)
3557 {
3558 struct device *device = &ofdev->dev;
3559 struct device_node *np = ofdev->dev.of_node;
3560 struct net_device *dev = NULL;
3561 struct ucc_geth_private *ugeth = NULL;
3562 struct ucc_geth_info *ug_info;
3563 struct resource *res;
3564 int err, ucc_num, max_speed = 0;
3565 const unsigned int *prop;
3566 phy_interface_t phy_interface;
3567 static const int enet_to_speed[] = {
3568 SPEED_10, SPEED_10, SPEED_10,
3569 SPEED_100, SPEED_100, SPEED_100,
3570 SPEED_1000, SPEED_1000, SPEED_1000, SPEED_1000,
3571 };
3572 static const phy_interface_t enet_to_phy_interface[] = {
3573 PHY_INTERFACE_MODE_MII, PHY_INTERFACE_MODE_RMII,
3574 PHY_INTERFACE_MODE_RGMII, PHY_INTERFACE_MODE_MII,
3575 PHY_INTERFACE_MODE_RMII, PHY_INTERFACE_MODE_RGMII,
3576 PHY_INTERFACE_MODE_GMII, PHY_INTERFACE_MODE_RGMII,
3577 PHY_INTERFACE_MODE_TBI, PHY_INTERFACE_MODE_RTBI,
3578 PHY_INTERFACE_MODE_SGMII,
3579 };
3580
3581 ugeth_vdbg("%s: IN", __func__);
3582
3583 prop = of_get_property(np, "cell-index", NULL);
3584 if (!prop) {
3585 prop = of_get_property(np, "device-id", NULL);
3586 if (!prop)
3587 return -ENODEV;
3588 }
3589
3590 ucc_num = *prop - 1;
3591 if ((ucc_num < 0) || (ucc_num > 7))
3592 return -ENODEV;
3593
3594 ug_info = devm_kmemdup(&ofdev->dev, &ugeth_primary_info,
3595 sizeof(*ug_info), GFP_KERNEL);
3596 if (!ug_info)
3597 return -ENOMEM;
3598
3599 ug_info->uf_info.ucc_num = ucc_num;
3600
3601 err = ucc_geth_parse_clock(np, "rx", &ug_info->uf_info.rx_clock);
3602 if (err)
3603 return err;
3604 err = ucc_geth_parse_clock(np, "tx", &ug_info->uf_info.tx_clock);
3605 if (err)
3606 return err;
3607
> 3608 res = platform_get_resource(ofdev 0, IORESOURCE_MEM);
3609 if (!res)
3610 return -ENODEV;
3611
3612 ug_info->uf_info.regs = res->start;
3613 ug_info->uf_info.irq = platform_get_irq(ofdev, 0);
3614
3615 ug_info->phy_node = of_parse_phandle(np, "phy-handle", 0);
3616 if (!ug_info->phy_node && of_phy_is_fixed_link(np)) {
3617 /*
3618 * In the case of a fixed PHY, the DT node associated
3619 * to the PHY is the Ethernet MAC DT node.
3620 */
3621 err = of_phy_register_fixed_link(np);
3622 if (err)
3623 return err;
3624 ug_info->phy_node = of_node_get(np);
3625 }
3626
3627 /* Find the TBI PHY node. If it's not there, we don't support SGMII */
3628 ug_info->tbi_node = of_parse_phandle(np, "tbi-handle", 0);
3629
3630 /* get the phy interface type, or default to MII */
3631 prop = of_get_property(np, "phy-connection-type", NULL);
3632 if (!prop) {
3633 /* handle interface property present in old trees */
3634 prop = of_get_property(ug_info->phy_node, "interface", NULL);
3635 if (prop != NULL) {
3636 phy_interface = enet_to_phy_interface[*prop];
3637 max_speed = enet_to_speed[*prop];
3638 } else
3639 phy_interface = PHY_INTERFACE_MODE_MII;
3640 } else {
3641 phy_interface = to_phy_interface((const char *)prop);
3642 }
3643
3644 /* get speed, or derive from PHY interface */
3645 if (max_speed == 0)
3646 switch (phy_interface) {
3647 case PHY_INTERFACE_MODE_GMII:
3648 case PHY_INTERFACE_MODE_RGMII:
3649 case PHY_INTERFACE_MODE_RGMII_ID:
3650 case PHY_INTERFACE_MODE_RGMII_RXID:
3651 case PHY_INTERFACE_MODE_RGMII_TXID:
3652 case PHY_INTERFACE_MODE_TBI:
3653 case PHY_INTERFACE_MODE_RTBI:
3654 case PHY_INTERFACE_MODE_SGMII:
3655 max_speed = SPEED_1000;
3656 break;
3657 default:
3658 max_speed = SPEED_100;
3659 break;
3660 }
3661
3662 if (max_speed == SPEED_1000) {
3663 unsigned int snums = qe_get_num_of_snums();
3664
3665 /* configure muram FIFOs for gigabit operation */
3666 ug_info->uf_info.urfs = UCC_GETH_URFS_GIGA_INIT;
3667 ug_info->uf_info.urfet = UCC_GETH_URFET_GIGA_INIT;
3668 ug_info->uf_info.urfset = UCC_GETH_URFSET_GIGA_INIT;
3669 ug_info->uf_info.utfs = UCC_GETH_UTFS_GIGA_INIT;
3670 ug_info->uf_info.utfet = UCC_GETH_UTFET_GIGA_INIT;
3671 ug_info->uf_info.utftt = UCC_GETH_UTFTT_GIGA_INIT;
3672 ug_info->numThreadsTx = UCC_GETH_NUM_OF_THREADS_4;
3673
3674 /* If QE's snum number is 46/76 which means we need to support
3675 * 4 UECs at 1000Base-T simultaneously, we need to allocate
3676 * more Threads to Rx.
3677 */
3678 if ((snums == 76) || (snums == 46))
3679 ug_info->numThreadsRx = UCC_GETH_NUM_OF_THREADS_6;
3680 else
3681 ug_info->numThreadsRx = UCC_GETH_NUM_OF_THREADS_4;
3682 }
3683
3684 if (netif_msg_probe(&debug))
3685 pr_info("UCC%1d at 0x%8llx (irq = %d)\n",
3686 ug_info->uf_info.ucc_num + 1,
3687 (u64)ug_info->uf_info.regs,
3688 ug_info->uf_info.irq);
3689
3690 /* Create an ethernet device instance */
3691 dev = devm_alloc_etherdev(&ofdev->dev, sizeof(*ugeth));
3692 if (!dev) {
3693 err = -ENOMEM;
3694 goto err_deregister_fixed_link;
3695 }
3696
3697 ugeth = netdev_priv(dev);
3698 spin_lock_init(&ugeth->lock);
3699
3700 /* Create CQs for hash tables */
3701 INIT_LIST_HEAD(&ugeth->group_hash_q);
3702 INIT_LIST_HEAD(&ugeth->ind_hash_q);
3703
3704 dev_set_drvdata(device, dev);
3705
3706 /* Set the dev->base_addr to the gfar reg region */
3707 dev->base_addr = (unsigned long)(ug_info->uf_info.regs);
3708
3709 SET_NETDEV_DEV(dev, device);
3710
3711 /* Fill in the dev structure */
3712 uec_set_ethtool_ops(dev);
3713 dev->netdev_ops = &ucc_geth_netdev_ops;
3714 dev->watchdog_timeo = TX_TIMEOUT;
3715 INIT_WORK(&ugeth->timeout_work, ucc_geth_timeout_work);
3716 netif_napi_add(dev, &ugeth->napi, ucc_geth_poll);
3717 dev->mtu = 1500;
3718 dev->max_mtu = 1518;
3719
3720 ugeth->msg_enable = netif_msg_init(debug.msg_enable, UGETH_MSG_DEFAULT);
3721 ugeth->phy_interface = phy_interface;
3722 ugeth->max_speed = max_speed;
3723
3724 /* Carrier starts down, phylib will bring it up */
3725 netif_carrier_off(dev);
3726
3727 err = devm_register_netdev(&ofdev->dev, dev);
3728 if (err) {
3729 if (netif_msg_probe(ugeth))
3730 pr_err("%s: Cannot register net device, aborting\n",
3731 dev->name);
3732 goto err_deregister_fixed_link;
3733 }
3734
3735 err = of_get_ethdev_address(np, dev);
3736 if (err == -EPROBE_DEFER)
3737 goto err_deregister_fixed_link;
3738
3739 ugeth->ug_info = ug_info;
3740 ugeth->dev = device;
3741 ugeth->ndev = dev;
3742 ugeth->node = np;
3743
3744 return 0;
3745
3746 err_deregister_fixed_link:
3747 if (of_phy_is_fixed_link(np))
3748 of_phy_deregister_fixed_link(np);
3749 of_node_put(ug_info->tbi_node);
3750 of_node_put(ug_info->phy_node);
3751 return err;
3752 }
3753
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] net: use pdev instead of OF funcs
2024-11-09 23:38 [PATCH net-next] net: use pdev instead of OF funcs Rosen Penev
2024-11-10 10:53 ` kernel test robot
@ 2024-11-10 12:37 ` kernel test robot
2024-11-10 16:37 ` Francois Romieu
2024-11-11 16:20 ` Rob Herring
3 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2024-11-10 12:37 UTC (permalink / raw)
To: Rosen Penev, netdev
Cc: oe-kbuild-all, Marc Kleine-Budde, Vincent Mailhol, Andrew Lunn,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Florian Fainelli,
Vladimir Oltean, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Pantelis Antoniou, Marcin Wojtas, Byungho An, Kevin Brace,
Francois Romieu, Michal Simek, Heiner Kallweit, Russell King,
Zhao Qiang, linux-can, linux-kernel, linuxppc-dev
Hi Rosen,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Rosen-Penev/net-use-pdev-instead-of-OF-funcs/20241110-073939
base: net-next/main
patch link: https://lore.kernel.org/r/20241109233821.8619-1-rosenp%40gmail.com
patch subject: [PATCH net-next] net: use pdev instead of OF funcs
config: arm-moxart_defconfig (https://download.01.org/0day-ci/archive/20241110/202411102000.aEYCgzAp-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241110/202411102000.aEYCgzAp-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411102000.aEYCgzAp-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/ethernet/moxa/moxart_ether.c: In function 'moxart_mac_probe':
>> drivers/net/ethernet/moxa/moxart_ether.c:457:29: warning: unused variable 'node' [-Wunused-variable]
457 | struct device_node *node = p_dev->of_node;
| ^~~~
vim +/node +457 drivers/net/ethernet/moxa/moxart_ether.c
6c821bd9edc956 Jonas Jensen 2013-08-08 453
6c821bd9edc956 Jonas Jensen 2013-08-08 454 static int moxart_mac_probe(struct platform_device *pdev)
6c821bd9edc956 Jonas Jensen 2013-08-08 455 {
6c821bd9edc956 Jonas Jensen 2013-08-08 456 struct device *p_dev = &pdev->dev;
6c821bd9edc956 Jonas Jensen 2013-08-08 @457 struct device_node *node = p_dev->of_node;
6c821bd9edc956 Jonas Jensen 2013-08-08 458 struct net_device *ndev;
6c821bd9edc956 Jonas Jensen 2013-08-08 459 struct moxart_mac_priv_t *priv;
6c821bd9edc956 Jonas Jensen 2013-08-08 460 struct resource *res;
6c821bd9edc956 Jonas Jensen 2013-08-08 461 unsigned int irq;
6c821bd9edc956 Jonas Jensen 2013-08-08 462 int ret;
6c821bd9edc956 Jonas Jensen 2013-08-08 463
6c821bd9edc956 Jonas Jensen 2013-08-08 464 ndev = alloc_etherdev(sizeof(struct moxart_mac_priv_t));
6c821bd9edc956 Jonas Jensen 2013-08-08 465 if (!ndev)
6c821bd9edc956 Jonas Jensen 2013-08-08 466 return -ENOMEM;
6c821bd9edc956 Jonas Jensen 2013-08-08 467
c22f4680de3d5a Rosen Penev 2024-11-09 468 irq = platform_get_irq(pdev, 0);
6c821bd9edc956 Jonas Jensen 2013-08-08 469 if (irq <= 0) {
c22f4680de3d5a Rosen Penev 2024-11-09 470 netdev_err(ndev, "platform_get_irq failed\n");
bdfd6304c8e243 Wei Yongjun 2013-10-08 471 ret = -EINVAL;
bdfd6304c8e243 Wei Yongjun 2013-10-08 472 goto irq_map_fail;
6c821bd9edc956 Jonas Jensen 2013-08-08 473 }
6c821bd9edc956 Jonas Jensen 2013-08-08 474
6c821bd9edc956 Jonas Jensen 2013-08-08 475 priv = netdev_priv(ndev);
6c821bd9edc956 Jonas Jensen 2013-08-08 476 priv->ndev = ndev;
5dac33ad6f0d1d Christoph Hellwig 2019-02-11 477 priv->pdev = pdev;
6c821bd9edc956 Jonas Jensen 2013-08-08 478
35cba15a504bf4 Yang Yingliang 2021-06-07 479 priv->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
1d3cd1773fddfd Dan Carpenter 2016-03-02 480 if (IS_ERR(priv->base)) {
1d3cd1773fddfd Dan Carpenter 2016-03-02 481 ret = PTR_ERR(priv->base);
6c821bd9edc956 Jonas Jensen 2013-08-08 482 goto init_fail;
6c821bd9edc956 Jonas Jensen 2013-08-08 483 }
35cba15a504bf4 Yang Yingliang 2021-06-07 484 ndev->base_addr = res->start;
6c821bd9edc956 Jonas Jensen 2013-08-08 485
f4693b81ea3802 Sergei Antonov 2022-08-18 486 ret = platform_get_ethdev_address(p_dev, ndev);
f4693b81ea3802 Sergei Antonov 2022-08-18 487 if (ret == -EPROBE_DEFER)
f4693b81ea3802 Sergei Antonov 2022-08-18 488 goto init_fail;
f4693b81ea3802 Sergei Antonov 2022-08-18 489 if (ret)
f4693b81ea3802 Sergei Antonov 2022-08-18 490 eth_hw_addr_random(ndev);
f4693b81ea3802 Sergei Antonov 2022-08-18 491 moxart_update_mac_address(ndev);
f4693b81ea3802 Sergei Antonov 2022-08-18 492
6c821bd9edc956 Jonas Jensen 2013-08-08 493 spin_lock_init(&priv->txlock);
6c821bd9edc956 Jonas Jensen 2013-08-08 494
6c821bd9edc956 Jonas Jensen 2013-08-08 495 priv->tx_buf_size = TX_BUF_SIZE;
9fe1b3bc8d9182 Jonas Jensen 2014-08-25 496 priv->rx_buf_size = RX_BUF_SIZE;
6c821bd9edc956 Jonas Jensen 2013-08-08 497
3a12df22a8f689 Sergei Antonov 2022-08-12 498 priv->tx_desc_base = dma_alloc_coherent(p_dev, TX_REG_DESC_SIZE *
6c821bd9edc956 Jonas Jensen 2013-08-08 499 TX_DESC_NUM, &priv->tx_base,
6c821bd9edc956 Jonas Jensen 2013-08-08 500 GFP_DMA | GFP_KERNEL);
e8048b84bbfd3e SZ Lin 2017-07-29 501 if (!priv->tx_desc_base) {
bdfd6304c8e243 Wei Yongjun 2013-10-08 502 ret = -ENOMEM;
6c821bd9edc956 Jonas Jensen 2013-08-08 503 goto init_fail;
bdfd6304c8e243 Wei Yongjun 2013-10-08 504 }
6c821bd9edc956 Jonas Jensen 2013-08-08 505
3a12df22a8f689 Sergei Antonov 2022-08-12 506 priv->rx_desc_base = dma_alloc_coherent(p_dev, RX_REG_DESC_SIZE *
6c821bd9edc956 Jonas Jensen 2013-08-08 507 RX_DESC_NUM, &priv->rx_base,
6c821bd9edc956 Jonas Jensen 2013-08-08 508 GFP_DMA | GFP_KERNEL);
e8048b84bbfd3e SZ Lin 2017-07-29 509 if (!priv->rx_desc_base) {
bdfd6304c8e243 Wei Yongjun 2013-10-08 510 ret = -ENOMEM;
6c821bd9edc956 Jonas Jensen 2013-08-08 511 goto init_fail;
bdfd6304c8e243 Wei Yongjun 2013-10-08 512 }
6c821bd9edc956 Jonas Jensen 2013-08-08 513
6da2ec56059c3c Kees Cook 2018-06-12 514 priv->tx_buf_base = kmalloc_array(priv->tx_buf_size, TX_DESC_NUM,
c9ac080b25d98d Julia Lawall 2022-02-10 515 GFP_KERNEL);
bdfd6304c8e243 Wei Yongjun 2013-10-08 516 if (!priv->tx_buf_base) {
bdfd6304c8e243 Wei Yongjun 2013-10-08 517 ret = -ENOMEM;
6c821bd9edc956 Jonas Jensen 2013-08-08 518 goto init_fail;
bdfd6304c8e243 Wei Yongjun 2013-10-08 519 }
6c821bd9edc956 Jonas Jensen 2013-08-08 520
6da2ec56059c3c Kees Cook 2018-06-12 521 priv->rx_buf_base = kmalloc_array(priv->rx_buf_size, RX_DESC_NUM,
c9ac080b25d98d Julia Lawall 2022-02-10 522 GFP_KERNEL);
bdfd6304c8e243 Wei Yongjun 2013-10-08 523 if (!priv->rx_buf_base) {
bdfd6304c8e243 Wei Yongjun 2013-10-08 524 ret = -ENOMEM;
6c821bd9edc956 Jonas Jensen 2013-08-08 525 goto init_fail;
bdfd6304c8e243 Wei Yongjun 2013-10-08 526 }
6c821bd9edc956 Jonas Jensen 2013-08-08 527
6c821bd9edc956 Jonas Jensen 2013-08-08 528 platform_set_drvdata(pdev, ndev);
6c821bd9edc956 Jonas Jensen 2013-08-08 529
6c821bd9edc956 Jonas Jensen 2013-08-08 530 ret = devm_request_irq(p_dev, irq, moxart_mac_interrupt, 0,
6c821bd9edc956 Jonas Jensen 2013-08-08 531 pdev->name, ndev);
6c821bd9edc956 Jonas Jensen 2013-08-08 532 if (ret) {
6c821bd9edc956 Jonas Jensen 2013-08-08 533 netdev_err(ndev, "devm_request_irq failed\n");
6c821bd9edc956 Jonas Jensen 2013-08-08 534 goto init_fail;
6c821bd9edc956 Jonas Jensen 2013-08-08 535 }
6c821bd9edc956 Jonas Jensen 2013-08-08 536
6c821bd9edc956 Jonas Jensen 2013-08-08 537 ndev->netdev_ops = &moxart_netdev_ops;
b707b89f7be361 Jakub Kicinski 2022-05-06 538 netif_napi_add_weight(ndev, &priv->napi, moxart_rx_poll, RX_DESC_NUM);
6c821bd9edc956 Jonas Jensen 2013-08-08 539 ndev->priv_flags |= IFF_UNICAST_FLT;
6c821bd9edc956 Jonas Jensen 2013-08-08 540 ndev->irq = irq;
6c821bd9edc956 Jonas Jensen 2013-08-08 541
6c821bd9edc956 Jonas Jensen 2013-08-08 542 SET_NETDEV_DEV(ndev, &pdev->dev);
6c821bd9edc956 Jonas Jensen 2013-08-08 543
6c821bd9edc956 Jonas Jensen 2013-08-08 544 ret = register_netdev(ndev);
c78eaeebe855fd Pavel Skripkin 2021-07-09 545 if (ret)
6c821bd9edc956 Jonas Jensen 2013-08-08 546 goto init_fail;
6c821bd9edc956 Jonas Jensen 2013-08-08 547
6c821bd9edc956 Jonas Jensen 2013-08-08 548 netdev_dbg(ndev, "%s: IRQ=%d address=%pM\n",
6c821bd9edc956 Jonas Jensen 2013-08-08 549 __func__, ndev->irq, ndev->dev_addr);
6c821bd9edc956 Jonas Jensen 2013-08-08 550
6c821bd9edc956 Jonas Jensen 2013-08-08 551 return 0;
6c821bd9edc956 Jonas Jensen 2013-08-08 552
6c821bd9edc956 Jonas Jensen 2013-08-08 553 init_fail:
6c821bd9edc956 Jonas Jensen 2013-08-08 554 netdev_err(ndev, "init failed\n");
6c821bd9edc956 Jonas Jensen 2013-08-08 555 moxart_mac_free_memory(ndev);
bdfd6304c8e243 Wei Yongjun 2013-10-08 556 irq_map_fail:
bdfd6304c8e243 Wei Yongjun 2013-10-08 557 free_netdev(ndev);
6c821bd9edc956 Jonas Jensen 2013-08-08 558 return ret;
6c821bd9edc956 Jonas Jensen 2013-08-08 559 }
6c821bd9edc956 Jonas Jensen 2013-08-08 560
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] net: use pdev instead of OF funcs
2024-11-09 23:38 [PATCH net-next] net: use pdev instead of OF funcs Rosen Penev
2024-11-10 10:53 ` kernel test robot
2024-11-10 12:37 ` kernel test robot
@ 2024-11-10 16:37 ` Francois Romieu
2024-11-11 16:20 ` Rob Herring
3 siblings, 0 replies; 6+ messages in thread
From: Francois Romieu @ 2024-11-10 16:37 UTC (permalink / raw)
To: Rosen Penev
Cc: netdev, Marc Kleine-Budde, Vincent Mailhol, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Florian Fainelli, Vladimir Oltean, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, Pantelis Antoniou, Marcin Wojtas, Byungho An,
Kevin Brace, Michal Simek, Heiner Kallweit, Russell King,
Zhao Qiang, open list:CAN NETWORK DRIVERS, open list,
moderated list:ARM/Allwinner sunXi SoC support,
open list:ARM/Allwinner sunXi SoC support,
open list:FREESCALE SOC FS_ENET DRIVER
Rosen Penev <rosenp@gmail.com> :
> np here is ofdev->dev.of_node. Better to use the proper functions as
> there's no use of children or anything else.
>
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
[...]
> diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
> index 894911f3d560..f079242c33e2 100644
> --- a/drivers/net/ethernet/via/via-rhine.c
> +++ b/drivers/net/ethernet/via/via-rhine.c
> @@ -1127,7 +1127,7 @@ static int rhine_init_one_platform(struct platform_device *pdev)
> if (IS_ERR(ioaddr))
> return PTR_ERR(ioaddr);
>
> - irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
> + irq = platform_get_irq(pdev, 0);
> if (!irq)
> return -EINVAL;
>
> diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c
> index dd4a07c97eee..4aac9599c14d 100644
> --- a/drivers/net/ethernet/via/via-velocity.c
> +++ b/drivers/net/ethernet/via/via-velocity.c
> @@ -2950,7 +2950,7 @@ static int velocity_platform_probe(struct platform_device *pdev)
> if (!info)
> return -EINVAL;
>
> - irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
> + irq = platform_get_irq(pdev, 0);
> if (!irq)
> return -EINVAL;
>
The change makes sense. However neither the description nor the commit message
really match here.
--
Ueimor
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] net: use pdev instead of OF funcs
2024-11-09 23:38 [PATCH net-next] net: use pdev instead of OF funcs Rosen Penev
` (2 preceding siblings ...)
2024-11-10 16:37 ` Francois Romieu
@ 2024-11-11 16:20 ` Rob Herring
2024-11-11 18:15 ` Rosen Penev
3 siblings, 1 reply; 6+ messages in thread
From: Rob Herring @ 2024-11-11 16:20 UTC (permalink / raw)
To: Rosen Penev
Cc: netdev, Marc Kleine-Budde, Vincent Mailhol, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Florian Fainelli, Vladimir Oltean, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, Pantelis Antoniou, Marcin Wojtas, Byungho An,
Kevin Brace, Francois Romieu, Michal Simek, Heiner Kallweit,
Russell King, Zhao Qiang, open list:CAN NETWORK DRIVERS,
open list, moderated list:ARM/Allwinner sunXi SoC support,
open list:ARM/Allwinner sunXi SoC support,
open list:FREESCALE SOC FS_ENET DRIVER
On Sat, Nov 9, 2024 at 5:40 PM Rosen Penev <rosenp@gmail.com> wrote:
>
> np here is ofdev->dev.of_node. Better to use the proper functions as
> there's no use of children or anything else.
Your commit message needs some work.
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
> drivers/net/can/grcan.c | 2 +-
> drivers/net/can/mscan/mpc5xxx_can.c | 2 +-
> drivers/net/dsa/bcm_sf2.c | 4 ++--
> drivers/net/ethernet/allwinner/sun4i-emac.c | 2 +-
> drivers/net/ethernet/freescale/fec_mpc52xx.c | 23 ++++++++++---------
> .../net/ethernet/freescale/fec_mpc52xx_phy.c | 12 ++++++----
> .../net/ethernet/freescale/fs_enet/mac-fcc.c | 2 +-
> .../net/ethernet/freescale/fs_enet/mac-fec.c | 2 +-
> .../net/ethernet/freescale/fs_enet/mac-scc.c | 2 +-
> .../net/ethernet/freescale/fs_enet/mii-fec.c | 12 ++++++----
> drivers/net/ethernet/freescale/ucc_geth.c | 12 +++++-----
> drivers/net/ethernet/marvell/mvneta.c | 2 +-
> drivers/net/ethernet/moxa/moxart_ether.c | 4 ++--
> .../ethernet/samsung/sxgbe/sxgbe_platform.c | 8 +++----
> drivers/net/ethernet/via/via-rhine.c | 2 +-
> drivers/net/ethernet/via/via-velocity.c | 2 +-
> drivers/net/ethernet/xilinx/ll_temac_mdio.c | 6 ++---
> drivers/net/mdio/mdio-mux-mmioreg.c | 16 +++++++------
> drivers/net/wan/fsl_ucc_hdlc.c | 10 ++++----
> 19 files changed, 66 insertions(+), 59 deletions(-)
>
> diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c
> index cdf0ec9fa7f3..0a2cc0ba219f 100644
> --- a/drivers/net/can/grcan.c
> +++ b/drivers/net/can/grcan.c
> @@ -1673,7 +1673,7 @@ static int grcan_probe(struct platform_device *ofdev)
> goto exit_error;
> }
>
> - irq = irq_of_parse_and_map(np, GRCAN_IRQIX_IRQ);
> + irq = platform_get_irq(ofdev, GRCAN_IRQIX_IRQ);
> if (!irq) {
> dev_err(&ofdev->dev, "no irq found\n");
> err = -ENODEV;
> diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
> index 0080c39ee182..252ad40bdb97 100644
> --- a/drivers/net/can/mscan/mpc5xxx_can.c
> +++ b/drivers/net/can/mscan/mpc5xxx_can.c
> @@ -300,7 +300,7 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)
> if (!base)
> return dev_err_probe(&ofdev->dev, err, "couldn't ioremap\n");
>
> - irq = irq_of_parse_and_map(np, 0);
> + irq = platform_get_irq(ofdev, 0);
> if (!irq) {
> dev_err(&ofdev->dev, "no irq found\n");
> err = -ENODEV;
> diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
> index 43bde1f583ff..9229582efd05 100644
> --- a/drivers/net/dsa/bcm_sf2.c
> +++ b/drivers/net/dsa/bcm_sf2.c
> @@ -1443,8 +1443,8 @@ static int bcm_sf2_sw_probe(struct platform_device *pdev)
> of_node_put(ports);
> }
>
> - priv->irq0 = irq_of_parse_and_map(dn, 0);
> - priv->irq1 = irq_of_parse_and_map(dn, 1);
> + priv->irq0 = platform_get_irq(pdev, 0);
> + priv->irq1 = platform_get_irq(pdev, 1);
>
> base = &priv->core;
> for (i = 0; i < BCM_SF2_REGS_NUM; i++) {
> diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c
> index 2f516b950f4e..18df8d1d93fd 100644
> --- a/drivers/net/ethernet/allwinner/sun4i-emac.c
> +++ b/drivers/net/ethernet/allwinner/sun4i-emac.c
> @@ -995,7 +995,7 @@ static int emac_probe(struct platform_device *pdev)
>
> /* fill in parameters for net-dev structure */
> ndev->base_addr = (unsigned long)db->membase;
> - ndev->irq = irq_of_parse_and_map(np, 0);
> + ndev->irq = platform_get_irq(pdev, 0);
> if (ndev->irq == -ENXIO) {
> netdev_err(ndev, "No irq resource\n");
> ret = ndev->irq;
> diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx.c b/drivers/net/ethernet/freescale/fec_mpc52xx.c
> index 2bfaf14f65c8..553d33a98c99 100644
> --- a/drivers/net/ethernet/freescale/fec_mpc52xx.c
> +++ b/drivers/net/ethernet/freescale/fec_mpc52xx.c
> @@ -811,7 +811,7 @@ static int mpc52xx_fec_probe(struct platform_device *op)
> int rv;
> struct net_device *ndev;
> struct mpc52xx_fec_priv *priv = NULL;
> - struct resource mem;
> + struct resource *mem;
> const u32 *prop;
> int prop_size;
> struct device_node *np = op->dev.of_node;
> @@ -828,20 +828,21 @@ static int mpc52xx_fec_probe(struct platform_device *op)
> priv->ndev = ndev;
>
> /* Reserve FEC control zone */
> - rv = of_address_to_resource(np, 0, &mem);
> - if (rv) {
> + mem = platform_get_resource(op, 0, IORESOURCE_MEM);
> + if (!mem) {
> pr_err("Error while parsing device node resource\n");
> + rv = -ENODEV;
> goto err_netdev;
> }
> - if (resource_size(&mem) < sizeof(struct mpc52xx_fec)) {
> + if (resource_size(mem) < sizeof(struct mpc52xx_fec)) {
> pr_err("invalid resource size (%lx < %x), check mpc52xx_devices.c\n",
> - (unsigned long)resource_size(&mem),
> + (unsigned long)resource_size(mem),
> sizeof(struct mpc52xx_fec));
> rv = -EINVAL;
> goto err_netdev;
> }
>
> - if (!request_mem_region(mem.start, sizeof(struct mpc52xx_fec),
> + if (!request_mem_region(mem->start, sizeof(struct mpc52xx_fec),
> DRIVER_NAME)) {
> rv = -EBUSY;
> goto err_netdev;
> @@ -851,13 +852,13 @@ static int mpc52xx_fec_probe(struct platform_device *op)
> ndev->netdev_ops = &mpc52xx_fec_netdev_ops;
> ndev->ethtool_ops = &mpc52xx_fec_ethtool_ops;
> ndev->watchdog_timeo = FEC_WATCHDOG_TIMEOUT;
> - ndev->base_addr = mem.start;
> + ndev->base_addr = mem->start;
> SET_NETDEV_DEV(ndev, &op->dev);
>
> spin_lock_init(&priv->lock);
>
> /* ioremap the zones */
> - priv->fec = ioremap(mem.start, sizeof(struct mpc52xx_fec));
> + priv->fec = ioremap(mem->start, sizeof(struct mpc52xx_fec));
Generally, devm_platform_ioremap_resource(),
devm_platform_get_and_ioremap_resource(), etc. are preferred. So if
we're going to rework things, rework them to use those.
Rob
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] net: use pdev instead of OF funcs
2024-11-11 16:20 ` Rob Herring
@ 2024-11-11 18:15 ` Rosen Penev
0 siblings, 0 replies; 6+ messages in thread
From: Rosen Penev @ 2024-11-11 18:15 UTC (permalink / raw)
To: Rob Herring
Cc: netdev, Marc Kleine-Budde, Vincent Mailhol, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Florian Fainelli, Vladimir Oltean, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, Pantelis Antoniou, Marcin Wojtas, Byungho An,
Kevin Brace, Francois Romieu, Michal Simek, Heiner Kallweit,
Russell King, Zhao Qiang, open list:CAN NETWORK DRIVERS,
open list, moderated list:ARM/Allwinner sunXi SoC support,
open list:ARM/Allwinner sunXi SoC support,
open list:FREESCALE SOC FS_ENET DRIVER
On Mon, Nov 11, 2024 at 8:21 AM Rob Herring <robh@kernel.org> wrote:
>
> On Sat, Nov 9, 2024 at 5:40 PM Rosen Penev <rosenp@gmail.com> wrote:
> >
> > np here is ofdev->dev.of_node. Better to use the proper functions as
> > there's no use of children or anything else.
>
> Your commit message needs some work.
>
> > Signed-off-by: Rosen Penev <rosenp@gmail.com>
> > ---
> > drivers/net/can/grcan.c | 2 +-
> > drivers/net/can/mscan/mpc5xxx_can.c | 2 +-
> > drivers/net/dsa/bcm_sf2.c | 4 ++--
> > drivers/net/ethernet/allwinner/sun4i-emac.c | 2 +-
> > drivers/net/ethernet/freescale/fec_mpc52xx.c | 23 ++++++++++---------
> > .../net/ethernet/freescale/fec_mpc52xx_phy.c | 12 ++++++----
> > .../net/ethernet/freescale/fs_enet/mac-fcc.c | 2 +-
> > .../net/ethernet/freescale/fs_enet/mac-fec.c | 2 +-
> > .../net/ethernet/freescale/fs_enet/mac-scc.c | 2 +-
> > .../net/ethernet/freescale/fs_enet/mii-fec.c | 12 ++++++----
> > drivers/net/ethernet/freescale/ucc_geth.c | 12 +++++-----
> > drivers/net/ethernet/marvell/mvneta.c | 2 +-
> > drivers/net/ethernet/moxa/moxart_ether.c | 4 ++--
> > .../ethernet/samsung/sxgbe/sxgbe_platform.c | 8 +++----
> > drivers/net/ethernet/via/via-rhine.c | 2 +-
> > drivers/net/ethernet/via/via-velocity.c | 2 +-
> > drivers/net/ethernet/xilinx/ll_temac_mdio.c | 6 ++---
> > drivers/net/mdio/mdio-mux-mmioreg.c | 16 +++++++------
> > drivers/net/wan/fsl_ucc_hdlc.c | 10 ++++----
> > 19 files changed, 66 insertions(+), 59 deletions(-)
> >
> > diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c
> > index cdf0ec9fa7f3..0a2cc0ba219f 100644
> > --- a/drivers/net/can/grcan.c
> > +++ b/drivers/net/can/grcan.c
> > @@ -1673,7 +1673,7 @@ static int grcan_probe(struct platform_device *ofdev)
> > goto exit_error;
> > }
> >
> > - irq = irq_of_parse_and_map(np, GRCAN_IRQIX_IRQ);
> > + irq = platform_get_irq(ofdev, GRCAN_IRQIX_IRQ);
> > if (!irq) {
> > dev_err(&ofdev->dev, "no irq found\n");
> > err = -ENODEV;
> > diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
> > index 0080c39ee182..252ad40bdb97 100644
> > --- a/drivers/net/can/mscan/mpc5xxx_can.c
> > +++ b/drivers/net/can/mscan/mpc5xxx_can.c
> > @@ -300,7 +300,7 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)
> > if (!base)
> > return dev_err_probe(&ofdev->dev, err, "couldn't ioremap\n");
> >
> > - irq = irq_of_parse_and_map(np, 0);
> > + irq = platform_get_irq(ofdev, 0);
> > if (!irq) {
> > dev_err(&ofdev->dev, "no irq found\n");
> > err = -ENODEV;
> > diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
> > index 43bde1f583ff..9229582efd05 100644
> > --- a/drivers/net/dsa/bcm_sf2.c
> > +++ b/drivers/net/dsa/bcm_sf2.c
> > @@ -1443,8 +1443,8 @@ static int bcm_sf2_sw_probe(struct platform_device *pdev)
> > of_node_put(ports);
> > }
> >
> > - priv->irq0 = irq_of_parse_and_map(dn, 0);
> > - priv->irq1 = irq_of_parse_and_map(dn, 1);
> > + priv->irq0 = platform_get_irq(pdev, 0);
> > + priv->irq1 = platform_get_irq(pdev, 1);
> >
> > base = &priv->core;
> > for (i = 0; i < BCM_SF2_REGS_NUM; i++) {
> > diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c
> > index 2f516b950f4e..18df8d1d93fd 100644
> > --- a/drivers/net/ethernet/allwinner/sun4i-emac.c
> > +++ b/drivers/net/ethernet/allwinner/sun4i-emac.c
> > @@ -995,7 +995,7 @@ static int emac_probe(struct platform_device *pdev)
> >
> > /* fill in parameters for net-dev structure */
> > ndev->base_addr = (unsigned long)db->membase;
> > - ndev->irq = irq_of_parse_and_map(np, 0);
> > + ndev->irq = platform_get_irq(pdev, 0);
> > if (ndev->irq == -ENXIO) {
> > netdev_err(ndev, "No irq resource\n");
> > ret = ndev->irq;
> > diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx.c b/drivers/net/ethernet/freescale/fec_mpc52xx.c
> > index 2bfaf14f65c8..553d33a98c99 100644
> > --- a/drivers/net/ethernet/freescale/fec_mpc52xx.c
> > +++ b/drivers/net/ethernet/freescale/fec_mpc52xx.c
> > @@ -811,7 +811,7 @@ static int mpc52xx_fec_probe(struct platform_device *op)
> > int rv;
> > struct net_device *ndev;
> > struct mpc52xx_fec_priv *priv = NULL;
> > - struct resource mem;
> > + struct resource *mem;
> > const u32 *prop;
> > int prop_size;
> > struct device_node *np = op->dev.of_node;
> > @@ -828,20 +828,21 @@ static int mpc52xx_fec_probe(struct platform_device *op)
> > priv->ndev = ndev;
> >
> > /* Reserve FEC control zone */
> > - rv = of_address_to_resource(np, 0, &mem);
> > - if (rv) {
> > + mem = platform_get_resource(op, 0, IORESOURCE_MEM);
> > + if (!mem) {
> > pr_err("Error while parsing device node resource\n");
> > + rv = -ENODEV;
> > goto err_netdev;
> > }
> > - if (resource_size(&mem) < sizeof(struct mpc52xx_fec)) {
> > + if (resource_size(mem) < sizeof(struct mpc52xx_fec)) {
> > pr_err("invalid resource size (%lx < %x), check mpc52xx_devices.c\n",
> > - (unsigned long)resource_size(&mem),
> > + (unsigned long)resource_size(mem),
> > sizeof(struct mpc52xx_fec));
> > rv = -EINVAL;
> > goto err_netdev;
> > }
> >
> > - if (!request_mem_region(mem.start, sizeof(struct mpc52xx_fec),
> > + if (!request_mem_region(mem->start, sizeof(struct mpc52xx_fec),
> > DRIVER_NAME)) {
> > rv = -EBUSY;
> > goto err_netdev;
> > @@ -851,13 +852,13 @@ static int mpc52xx_fec_probe(struct platform_device *op)
> > ndev->netdev_ops = &mpc52xx_fec_netdev_ops;
> > ndev->ethtool_ops = &mpc52xx_fec_ethtool_ops;
> > ndev->watchdog_timeo = FEC_WATCHDOG_TIMEOUT;
> > - ndev->base_addr = mem.start;
> > + ndev->base_addr = mem->start;
> > SET_NETDEV_DEV(ndev, &op->dev);
> >
> > spin_lock_init(&priv->lock);
> >
> > /* ioremap the zones */
> > - priv->fec = ioremap(mem.start, sizeof(struct mpc52xx_fec));
> > + priv->fec = ioremap(mem->start, sizeof(struct mpc52xx_fec));
>
> Generally, devm_platform_ioremap_resource(),
> devm_platform_get_and_ioremap_resource(), etc. are preferred. So if
> we're going to rework things, rework them to use those.
I'm going to avoid that as I've been constantly getting requests to
test my changes on real hardware. I don't own anything that uses
fec_mpc52xx.c.
Plus, documentation states that netdev isn't too big of a fan of devm.
Oh and this file uses no devm of any kind.
>
> Rob
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-11-11 18:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-09 23:38 [PATCH net-next] net: use pdev instead of OF funcs Rosen Penev
2024-11-10 10:53 ` kernel test robot
2024-11-10 12:37 ` kernel test robot
2024-11-10 16:37 ` Francois Romieu
2024-11-11 16:20 ` Rob Herring
2024-11-11 18:15 ` Rosen Penev
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).