* [PATCH net-next 0/9] net: lantiq_etop: some cleanups
@ 2024-09-30 20:24 Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 1/9] net: lantiq_etop: use netif_receive_skb_list Rosen Penev
` (9 more replies)
0 siblings, 10 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
Some basic cleanups to increase devm usage.
Rosen Penev (9):
net: lantiq_etop: use netif_receive_skb_list
net: lantiq_etop: use devm_alloc_etherdev_mqs
net: lantiq_etop: use devm for register_netdev
net: lantiq_etop: use devm for mdiobus
net: lantiq_etop: move phy_disconnect to stop
net: lantiq_etop: use devm_err_probe
net: lantiq_etop: remove struct resource
net: lantiq_etop: use module_platform_driver_probe
net: lantiq_etop: no queue stop in remove
drivers/net/ethernet/lantiq_etop.c | 141 +++++++----------------------
1 file changed, 35 insertions(+), 106 deletions(-)
--
2.46.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH net-next 1/9] net: lantiq_etop: use netif_receive_skb_list
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 2/9] net: lantiq_etop: use devm_alloc_etherdev_mqs Rosen Penev
` (8 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
Improves cache efficiency by batching rx skb processing. Small
performance improvement on RX.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 3c289bfe0a09..94b37c12f3f7 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -122,8 +122,7 @@ ltq_etop_alloc_skb(struct ltq_etop_chan *ch)
return 0;
}
-static void
-ltq_etop_hw_receive(struct ltq_etop_chan *ch)
+static void ltq_etop_hw_receive(struct ltq_etop_chan *ch, struct list_head *lh)
{
struct ltq_etop_priv *priv = netdev_priv(ch->netdev);
struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc];
@@ -143,7 +142,7 @@ ltq_etop_hw_receive(struct ltq_etop_chan *ch)
skb_put(skb, len);
skb->protocol = eth_type_trans(skb, ch->netdev);
- netif_receive_skb(skb);
+ list_add_tail(&skb->list, lh);
}
static int
@@ -151,6 +150,7 @@ ltq_etop_poll_rx(struct napi_struct *napi, int budget)
{
struct ltq_etop_chan *ch = container_of(napi,
struct ltq_etop_chan, napi);
+ LIST_HEAD(rx_list);
int work_done = 0;
while (work_done < budget) {
@@ -158,9 +158,12 @@ ltq_etop_poll_rx(struct napi_struct *napi, int budget)
if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) != LTQ_DMA_C)
break;
- ltq_etop_hw_receive(ch);
+ ltq_etop_hw_receive(ch, &rx_list);
work_done++;
}
+
+ netif_receive_skb_list(&rx_list);
+
if (work_done < budget) {
napi_complete_done(&ch->napi, work_done);
ltq_dma_ack_irq(&ch->dma);
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 2/9] net: lantiq_etop: use devm_alloc_etherdev_mqs
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 1/9] net: lantiq_etop: use netif_receive_skb_list Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 3/9] net: lantiq_etop: use devm for register_netdev Rosen Penev
` (7 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
It seems there's a missing free_netdev in the remove function. Just
avoid manual frees and use devm.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 94b37c12f3f7..de4f75ce8d9d 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -601,7 +601,6 @@ ltq_etop_init(struct net_device *dev)
err_netdev:
unregister_netdev(dev);
- free_netdev(dev);
err_hw:
ltq_etop_hw_exit(dev);
return err;
@@ -672,7 +671,8 @@ ltq_etop_probe(struct platform_device *pdev)
goto err_out;
}
- dev = alloc_etherdev_mq(sizeof(struct ltq_etop_priv), 4);
+ dev = devm_alloc_etherdev_mqs(&pdev->dev, sizeof(struct ltq_etop_priv),
+ 4, 4);
if (!dev) {
err = -ENOMEM;
goto err_out;
@@ -690,13 +690,13 @@ ltq_etop_probe(struct platform_device *pdev)
err = device_property_read_u32(&pdev->dev, "lantiq,tx-burst-length", &priv->tx_burst_len);
if (err < 0) {
dev_err(&pdev->dev, "unable to read tx-burst-length property\n");
- goto err_free;
+ goto err_out;
}
err = device_property_read_u32(&pdev->dev, "lantiq,rx-burst-length", &priv->rx_burst_len);
if (err < 0) {
dev_err(&pdev->dev, "unable to read rx-burst-length property\n");
- goto err_free;
+ goto err_out;
}
for (i = 0; i < MAX_DMA_CHAN; i++) {
@@ -711,13 +711,11 @@ ltq_etop_probe(struct platform_device *pdev)
err = register_netdev(dev);
if (err)
- goto err_free;
+ goto err_out;
platform_set_drvdata(pdev, dev);
return 0;
-err_free:
- free_netdev(dev);
err_out:
return err;
}
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 3/9] net: lantiq_etop: use devm for register_netdev
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 1/9] net: lantiq_etop: use netif_receive_skb_list Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 2/9] net: lantiq_etop: use devm_alloc_etherdev_mqs Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 4/9] net: lantiq_etop: use devm for mdiobus Rosen Penev
` (6 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
This is the last to be created and so must be the first to be freed.
Simpler to avoid by using devm.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index de4f75ce8d9d..988f204fd89c 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -587,7 +587,7 @@ ltq_etop_init(struct net_device *dev)
err = ltq_etop_set_mac_address(dev, &mac);
if (err)
- goto err_netdev;
+ goto err_hw;
/* Set addr_assign_type here, ltq_etop_set_mac_address would reset it. */
if (random_mac)
@@ -596,11 +596,9 @@ ltq_etop_init(struct net_device *dev)
ltq_etop_set_multicast_list(dev);
err = ltq_etop_mdio_init(dev);
if (err)
- goto err_netdev;
+ goto err_hw;
return 0;
-err_netdev:
- unregister_netdev(dev);
err_hw:
ltq_etop_hw_exit(dev);
return err;
@@ -709,7 +707,7 @@ ltq_etop_probe(struct platform_device *pdev)
priv->ch[i].netdev = dev;
}
- err = register_netdev(dev);
+ err = devm_register_netdev(&pdev->dev, dev);
if (err)
goto err_out;
@@ -728,7 +726,6 @@ static void ltq_etop_remove(struct platform_device *pdev)
netif_tx_stop_all_queues(dev);
ltq_etop_hw_exit(dev);
ltq_etop_mdio_cleanup(dev);
- unregister_netdev(dev);
}
}
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 4/9] net: lantiq_etop: use devm for mdiobus
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
` (2 preceding siblings ...)
2024-09-30 20:24 ` [PATCH net-next 3/9] net: lantiq_etop: use devm for register_netdev Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 5/9] net: lantiq_etop: move phy_disconnect to stop Rosen Penev
` (5 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
Allows removing ltq_etop_mdio_cleanup. Kept the phy_disconnect in the
remove function just in case.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 24 +++++-------------------
1 file changed, 5 insertions(+), 19 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 988f204fd89c..d1fcbfd3e255 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -391,7 +391,7 @@ ltq_etop_mdio_init(struct net_device *dev)
struct ltq_etop_priv *priv = netdev_priv(dev);
int err;
- priv->mii_bus = mdiobus_alloc();
+ priv->mii_bus = devm_mdiobus_alloc(&dev->dev);
if (!priv->mii_bus) {
netdev_err(dev, "failed to allocate mii bus\n");
err = -ENOMEM;
@@ -404,35 +404,21 @@ ltq_etop_mdio_init(struct net_device *dev)
priv->mii_bus->name = "ltq_mii";
snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
priv->pdev->name, priv->pdev->id);
- if (mdiobus_register(priv->mii_bus)) {
+ if (devm_mdiobus_register(&dev->dev, priv->mii_bus)) {
err = -ENXIO;
- goto err_out_free_mdiobus;
+ goto err_out;
}
if (ltq_etop_mdio_probe(dev)) {
err = -ENXIO;
- goto err_out_unregister_bus;
+ goto err_out;
}
return 0;
-err_out_unregister_bus:
- mdiobus_unregister(priv->mii_bus);
-err_out_free_mdiobus:
- mdiobus_free(priv->mii_bus);
err_out:
return err;
}
-static void
-ltq_etop_mdio_cleanup(struct net_device *dev)
-{
- struct ltq_etop_priv *priv = netdev_priv(dev);
-
- phy_disconnect(dev->phydev);
- mdiobus_unregister(priv->mii_bus);
- mdiobus_free(priv->mii_bus);
-}
-
static int
ltq_etop_open(struct net_device *dev)
{
@@ -725,7 +711,7 @@ static void ltq_etop_remove(struct platform_device *pdev)
if (dev) {
netif_tx_stop_all_queues(dev);
ltq_etop_hw_exit(dev);
- ltq_etop_mdio_cleanup(dev);
+ phy_disconnect(dev->phydev);
}
}
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 5/9] net: lantiq_etop: move phy_disconnect to stop
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
` (3 preceding siblings ...)
2024-09-30 20:24 ` [PATCH net-next 4/9] net: lantiq_etop: use devm for mdiobus Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 6/9] net: lantiq_etop: use devm_err_probe Rosen Penev
` (4 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
phy is initialized in start, not in probe. Move to stop instead of
remove to disconnect it earlier.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index d1fcbfd3e255..9ca8f01585f6 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -447,6 +447,7 @@ ltq_etop_stop(struct net_device *dev)
netif_tx_stop_all_queues(dev);
phy_stop(dev->phydev);
+ phy_disconnect(dev->phydev);
for (i = 0; i < MAX_DMA_CHAN; i++) {
struct ltq_etop_chan *ch = &priv->ch[i];
@@ -711,7 +712,6 @@ static void ltq_etop_remove(struct platform_device *pdev)
if (dev) {
netif_tx_stop_all_queues(dev);
ltq_etop_hw_exit(dev);
- phy_disconnect(dev->phydev);
}
}
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 6/9] net: lantiq_etop: use devm_err_probe
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
` (4 preceding siblings ...)
2024-09-30 20:24 ` [PATCH net-next 5/9] net: lantiq_etop: move phy_disconnect to stop Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 7/9] net: lantiq_etop: remove struct resource Rosen Penev
` (3 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
Also remove pointless gotos that just return as a result of devm
conversions.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 61 ++++++++++--------------------
1 file changed, 21 insertions(+), 40 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 9ca8f01585f6..bc97b189785e 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -389,13 +389,11 @@ static int
ltq_etop_mdio_init(struct net_device *dev)
{
struct ltq_etop_priv *priv = netdev_priv(dev);
- int err;
priv->mii_bus = devm_mdiobus_alloc(&dev->dev);
if (!priv->mii_bus) {
netdev_err(dev, "failed to allocate mii bus\n");
- err = -ENOMEM;
- goto err_out;
+ return -ENOMEM;
}
priv->mii_bus->priv = dev;
@@ -404,19 +402,13 @@ ltq_etop_mdio_init(struct net_device *dev)
priv->mii_bus->name = "ltq_mii";
snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
priv->pdev->name, priv->pdev->id);
- if (devm_mdiobus_register(&dev->dev, priv->mii_bus)) {
- err = -ENXIO;
- goto err_out;
- }
+ if (devm_mdiobus_register(&dev->dev, priv->mii_bus))
+ return -ENXIO;
- if (ltq_etop_mdio_probe(dev)) {
- err = -ENXIO;
- goto err_out;
- }
- return 0;
+ if (ltq_etop_mdio_probe(dev))
+ return -ENXIO;
-err_out:
- return err;
+ return 0;
}
static int
@@ -634,34 +626,28 @@ ltq_etop_probe(struct platform_device *pdev)
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
- dev_err(&pdev->dev, "failed to get etop resource\n");
- err = -ENOENT;
- goto err_out;
+ dev_err(&pdev->dev, "failed to get etop resource");
+ return -ENOENT;
}
res = devm_request_mem_region(&pdev->dev, res->start,
resource_size(res), dev_name(&pdev->dev));
if (!res) {
- dev_err(&pdev->dev, "failed to request etop resource\n");
- err = -EBUSY;
- goto err_out;
+ dev_err(&pdev->dev, "failed to request etop resource");
+ return -EBUSY;
}
ltq_etop_membase = devm_ioremap(&pdev->dev, res->start,
resource_size(res));
if (!ltq_etop_membase) {
- dev_err(&pdev->dev, "failed to remap etop engine %d\n",
- pdev->id);
- err = -ENOMEM;
- goto err_out;
+ dev_err(&pdev->dev, "failed to remap etop engine %d", pdev->id);
+ return -ENOMEM;
}
dev = devm_alloc_etherdev_mqs(&pdev->dev, sizeof(struct ltq_etop_priv),
4, 4);
- if (!dev) {
- err = -ENOMEM;
- goto err_out;
- }
+ if (!dev)
+ return -ENOMEM;
dev->netdev_ops = <q_eth_netdev_ops;
dev->ethtool_ops = <q_etop_ethtool_ops;
priv = netdev_priv(dev);
@@ -673,16 +659,14 @@ ltq_etop_probe(struct platform_device *pdev)
SET_NETDEV_DEV(dev, &pdev->dev);
err = device_property_read_u32(&pdev->dev, "lantiq,tx-burst-length", &priv->tx_burst_len);
- if (err < 0) {
- dev_err(&pdev->dev, "unable to read tx-burst-length property\n");
- goto err_out;
- }
+ if (err < 0)
+ return dev_err_probe(&pdev->dev, err,
+ "unable to read tx-burst-length property");
err = device_property_read_u32(&pdev->dev, "lantiq,rx-burst-length", &priv->rx_burst_len);
- if (err < 0) {
- dev_err(&pdev->dev, "unable to read rx-burst-length property\n");
- goto err_out;
- }
+ if (err < 0)
+ return dev_err_probe(&pdev->dev, err,
+ "unable to read rx-burst-length property");
for (i = 0; i < MAX_DMA_CHAN; i++) {
if (IS_TX(i))
@@ -696,13 +680,10 @@ ltq_etop_probe(struct platform_device *pdev)
err = devm_register_netdev(&pdev->dev, dev);
if (err)
- goto err_out;
+ return err;
platform_set_drvdata(pdev, dev);
return 0;
-
-err_out:
- return err;
}
static void ltq_etop_remove(struct platform_device *pdev)
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 7/9] net: lantiq_etop: remove struct resource
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
` (5 preceding siblings ...)
2024-09-30 20:24 ` [PATCH net-next 6/9] net: lantiq_etop: use devm_err_probe Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-10-01 15:33 ` Simon Horman
2024-09-30 20:24 ` [PATCH net-next 8/9] net: lantiq_etop: use module_platform_driver_probe Rosen Penev
` (2 subsequent siblings)
9 siblings, 1 reply; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
All of this can be simplified with devm_platformn_ioremap_resource. No
need for extra code.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 23 +++--------------------
1 file changed, 3 insertions(+), 20 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index bc97b189785e..0cb5d536f351 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -90,7 +90,6 @@ struct ltq_etop_priv {
struct net_device *netdev;
struct platform_device *pdev;
struct ltq_eth_data *pldata;
- struct resource *res;
struct mii_bus *mii_bus;
@@ -620,28 +619,13 @@ ltq_etop_probe(struct platform_device *pdev)
{
struct net_device *dev;
struct ltq_etop_priv *priv;
- struct resource *res;
int err;
int i;
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&pdev->dev, "failed to get etop resource");
- return -ENOENT;
- }
-
- res = devm_request_mem_region(&pdev->dev, res->start,
- resource_size(res), dev_name(&pdev->dev));
- if (!res) {
- dev_err(&pdev->dev, "failed to request etop resource");
- return -EBUSY;
- }
-
- ltq_etop_membase = devm_ioremap(&pdev->dev, res->start,
- resource_size(res));
- if (!ltq_etop_membase) {
+ ltq_etop_membase = devm_platformn_ioremap_resource(pdev, 0);
+ if (IS_ERR(ltq_etop_membase)) {
dev_err(&pdev->dev, "failed to remap etop engine %d", pdev->id);
- return -ENOMEM;
+ return PTR_ERR(ltq_etop_membase);
}
dev = devm_alloc_etherdev_mqs(&pdev->dev, sizeof(struct ltq_etop_priv),
@@ -651,7 +635,6 @@ ltq_etop_probe(struct platform_device *pdev)
dev->netdev_ops = <q_eth_netdev_ops;
dev->ethtool_ops = <q_etop_ethtool_ops;
priv = netdev_priv(dev);
- priv->res = res;
priv->pdev = pdev;
priv->pldata = dev_get_platdata(&pdev->dev);
priv->netdev = dev;
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 8/9] net: lantiq_etop: use module_platform_driver_probe
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
` (6 preceding siblings ...)
2024-09-30 20:24 ` [PATCH net-next 7/9] net: lantiq_etop: remove struct resource Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 9/9] net: lantiq_etop: no queue stop in remove Rosen Penev
2024-09-30 22:02 ` [PATCH net-next 0/9] net: lantiq_etop: some cleanups Nelson, Shannon
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
The explicit init and exit functions don't do anything special. Just use
the macro.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 19 +------------------
1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 0cb5d536f351..4d8534092667 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -686,24 +686,7 @@ static struct platform_driver ltq_mii_driver = {
},
};
-static int __init
-init_ltq_etop(void)
-{
- int ret = platform_driver_probe(<q_mii_driver, ltq_etop_probe);
-
- if (ret)
- pr_err("ltq_etop: Error registering platform driver!");
- return ret;
-}
-
-static void __exit
-exit_ltq_etop(void)
-{
- platform_driver_unregister(<q_mii_driver);
-}
-
-module_init(init_ltq_etop);
-module_exit(exit_ltq_etop);
+module_platform_driver_probe(<q_mii_driver, ltq_etop_probe);
MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
MODULE_DESCRIPTION("Lantiq SoC ETOP");
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net-next 9/9] net: lantiq_etop: no queue stop in remove
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
` (7 preceding siblings ...)
2024-09-30 20:24 ` [PATCH net-next 8/9] net: lantiq_etop: use module_platform_driver_probe Rosen Penev
@ 2024-09-30 20:24 ` Rosen Penev
2024-09-30 22:02 ` [PATCH net-next 0/9] net: lantiq_etop: some cleanups Nelson, Shannon
9 siblings, 0 replies; 12+ messages in thread
From: Rosen Penev @ 2024-09-30 20:24 UTC (permalink / raw)
To: netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2,
shannon.nelson
This is already called in stop. No need to call a second time.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/ethernet/lantiq_etop.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 4d8534092667..0b5642744f8a 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -673,10 +673,8 @@ static void ltq_etop_remove(struct platform_device *pdev)
{
struct net_device *dev = platform_get_drvdata(pdev);
- if (dev) {
- netif_tx_stop_all_queues(dev);
+ if (dev)
ltq_etop_hw_exit(dev);
- }
}
static struct platform_driver ltq_mii_driver = {
--
2.46.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH net-next 0/9] net: lantiq_etop: some cleanups
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
` (8 preceding siblings ...)
2024-09-30 20:24 ` [PATCH net-next 9/9] net: lantiq_etop: no queue stop in remove Rosen Penev
@ 2024-09-30 22:02 ` Nelson, Shannon
9 siblings, 0 replies; 12+ messages in thread
From: Nelson, Shannon @ 2024-09-30 22:02 UTC (permalink / raw)
To: Rosen Penev, netdev
Cc: andrew, davem, edumazet, kuba, pabeni, linux-kernel, olek2
On 9/30/2024 1:24 PM, Rosen Penev wrote:
>
> Some basic cleanups to increase devm usage.
>
> Rosen Penev (9):
> net: lantiq_etop: use netif_receive_skb_list
> net: lantiq_etop: use devm_alloc_etherdev_mqs
> net: lantiq_etop: use devm for register_netdev
> net: lantiq_etop: use devm for mdiobus
> net: lantiq_etop: move phy_disconnect to stop
> net: lantiq_etop: use devm_err_probe
> net: lantiq_etop: remove struct resource
> net: lantiq_etop: use module_platform_driver_probe
> net: lantiq_etop: no queue stop in remove
>
> drivers/net/ethernet/lantiq_etop.c | 141 +++++++----------------------
> 1 file changed, 35 insertions(+), 106 deletions(-)
>
> --
> 2.46.2
>
These all seem to be reasonable cleanups - thanks.
Reviewed-by: Shannon Nelson <shannon.nelson@amd.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH net-next 7/9] net: lantiq_etop: remove struct resource
2024-09-30 20:24 ` [PATCH net-next 7/9] net: lantiq_etop: remove struct resource Rosen Penev
@ 2024-10-01 15:33 ` Simon Horman
0 siblings, 0 replies; 12+ messages in thread
From: Simon Horman @ 2024-10-01 15:33 UTC (permalink / raw)
To: Rosen Penev
Cc: netdev, andrew, davem, edumazet, kuba, pabeni, linux-kernel,
olek2, shannon.nelson
On Mon, Sep 30, 2024 at 01:24:32PM -0700, Rosen Penev wrote:
> All of this can be simplified with devm_platformn_ioremap_resource. No
> need for extra code.
>
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
> drivers/net/ethernet/lantiq_etop.c | 23 +++--------------------
> 1 file changed, 3 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
> index bc97b189785e..0cb5d536f351 100644
> --- a/drivers/net/ethernet/lantiq_etop.c
> +++ b/drivers/net/ethernet/lantiq_etop.c
> @@ -90,7 +90,6 @@ struct ltq_etop_priv {
> struct net_device *netdev;
> struct platform_device *pdev;
> struct ltq_eth_data *pldata;
> - struct resource *res;
>
> struct mii_bus *mii_bus;
>
> @@ -620,28 +619,13 @@ ltq_etop_probe(struct platform_device *pdev)
> {
> struct net_device *dev;
> struct ltq_etop_priv *priv;
> - struct resource *res;
> int err;
> int i;
>
> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - if (!res) {
> - dev_err(&pdev->dev, "failed to get etop resource");
> - return -ENOENT;
> - }
> -
> - res = devm_request_mem_region(&pdev->dev, res->start,
> - resource_size(res), dev_name(&pdev->dev));
> - if (!res) {
> - dev_err(&pdev->dev, "failed to request etop resource");
> - return -EBUSY;
> - }
> -
> - ltq_etop_membase = devm_ioremap(&pdev->dev, res->start,
> - resource_size(res));
> - if (!ltq_etop_membase) {
> + ltq_etop_membase = devm_platformn_ioremap_resource(pdev, 0);
Hi Rosen,
I believe this should be devm_platform_ioremap_resource()
> + if (IS_ERR(ltq_etop_membase)) {
> dev_err(&pdev->dev, "failed to remap etop engine %d", pdev->id);
> - return -ENOMEM;
> + return PTR_ERR(ltq_etop_membase);
> }
>
> dev = devm_alloc_etherdev_mqs(&pdev->dev, sizeof(struct ltq_etop_priv),
> @@ -651,7 +635,6 @@ ltq_etop_probe(struct platform_device *pdev)
> dev->netdev_ops = <q_eth_netdev_ops;
> dev->ethtool_ops = <q_etop_ethtool_ops;
> priv = netdev_priv(dev);
> - priv->res = res;
> priv->pdev = pdev;
> priv->pldata = dev_get_platdata(&pdev->dev);
> priv->netdev = dev;
--
pw-bot: changes-requested
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-10-01 15:33 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-30 20:24 [PATCH net-next 0/9] net: lantiq_etop: some cleanups Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 1/9] net: lantiq_etop: use netif_receive_skb_list Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 2/9] net: lantiq_etop: use devm_alloc_etherdev_mqs Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 3/9] net: lantiq_etop: use devm for register_netdev Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 4/9] net: lantiq_etop: use devm for mdiobus Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 5/9] net: lantiq_etop: move phy_disconnect to stop Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 6/9] net: lantiq_etop: use devm_err_probe Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 7/9] net: lantiq_etop: remove struct resource Rosen Penev
2024-10-01 15:33 ` Simon Horman
2024-09-30 20:24 ` [PATCH net-next 8/9] net: lantiq_etop: use module_platform_driver_probe Rosen Penev
2024-09-30 20:24 ` [PATCH net-next 9/9] net: lantiq_etop: no queue stop in remove Rosen Penev
2024-09-30 22:02 ` [PATCH net-next 0/9] net: lantiq_etop: some cleanups Nelson, Shannon
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.