* [PATCHv2 net-next 0/2] simplify with devm
@ 2024-12-03 22:16 Rosen Penev
2024-12-03 22:16 ` [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource Rosen Penev
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Rosen Penev @ 2024-12-03 22:16 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, ansuelsmth, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
open list
Makes probe simpler and easier to reason about.
v2: Just resent.
Rosen Penev (2):
net: mdio-ipq8064: use platform_get_resource
net: mdio-ipq8064: remove _remove function
drivers/net/mdio/mdio-ipq8064.c | 24 +++++-------------------
1 file changed, 5 insertions(+), 19 deletions(-)
--
2.47.0
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource
2024-12-03 22:16 [PATCHv2 net-next 0/2] simplify with devm Rosen Penev
@ 2024-12-03 22:16 ` Rosen Penev
2024-12-03 22:27 ` Heiner Kallweit
2024-12-03 22:16 ` [PATCH net-next 2/2] net: mdio-ipq8064: remove _remove function Rosen Penev
2024-12-03 23:47 ` [PATCHv2 net-next 0/2] simplify with devm Andrew Lunn
2 siblings, 1 reply; 7+ messages in thread
From: Rosen Penev @ 2024-12-03 22:16 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, ansuelsmth, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
open list
There's no need to get the of_node explicitly. platform_get_resource
already does this.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/mdio/mdio-ipq8064.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/mdio/mdio-ipq8064.c b/drivers/net/mdio/mdio-ipq8064.c
index 6253a9ab8b69..e3d311ce3810 100644
--- a/drivers/net/mdio/mdio-ipq8064.c
+++ b/drivers/net/mdio/mdio-ipq8064.c
@@ -111,15 +111,16 @@ ipq8064_mdio_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
struct ipq8064_mdio *priv;
- struct resource res;
+ struct resource *res;
struct mii_bus *bus;
void __iomem *base;
int ret;
- if (of_address_to_resource(np, 0, &res))
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
return -ENOMEM;
- base = devm_ioremap(&pdev->dev, res.start, resource_size(&res));
+ base = devm_ioremap(&pdev->dev, res->start, resource_size(res));
if (!base)
return -ENOMEM;
--
2.47.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource
2024-12-03 22:16 ` [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource Rosen Penev
@ 2024-12-03 22:27 ` Heiner Kallweit
2024-12-03 22:32 ` Rosen Penev
0 siblings, 1 reply; 7+ messages in thread
From: Heiner Kallweit @ 2024-12-03 22:27 UTC (permalink / raw)
To: Rosen Penev, netdev
Cc: Andrew Lunn, ansuelsmth, Russell King, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, open list
On 03.12.2024 23:16, Rosen Penev wrote:
> There's no need to get the of_node explicitly. platform_get_resource
> already does this.
>
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
> drivers/net/mdio/mdio-ipq8064.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/mdio/mdio-ipq8064.c b/drivers/net/mdio/mdio-ipq8064.c
> index 6253a9ab8b69..e3d311ce3810 100644
> --- a/drivers/net/mdio/mdio-ipq8064.c
> +++ b/drivers/net/mdio/mdio-ipq8064.c
> @@ -111,15 +111,16 @@ ipq8064_mdio_probe(struct platform_device *pdev)
> {
> struct device_node *np = pdev->dev.of_node;
> struct ipq8064_mdio *priv;
> - struct resource res;
> + struct resource *res;
> struct mii_bus *bus;
> void __iomem *base;
> int ret;
>
> - if (of_address_to_resource(np, 0, &res))
> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> + if (!res)
> return -ENOMEM;
>
> - base = devm_ioremap(&pdev->dev, res.start, resource_size(&res));
> + base = devm_ioremap(&pdev->dev, res->start, resource_size(res));
> if (!base)
> return -ENOMEM;
>
Why not directly switching to devm_platform_get_and_ioremap_resource()?
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource
2024-12-03 22:27 ` Heiner Kallweit
@ 2024-12-03 22:32 ` Rosen Penev
0 siblings, 0 replies; 7+ messages in thread
From: Rosen Penev @ 2024-12-03 22:32 UTC (permalink / raw)
To: Heiner Kallweit
Cc: netdev, Andrew Lunn, ansuelsmth, Russell King, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, open list
On Tue, Dec 3, 2024 at 2:27 PM Heiner Kallweit <hkallweit1@gmail.com> wrote:
>
> On 03.12.2024 23:16, Rosen Penev wrote:
> > There's no need to get the of_node explicitly. platform_get_resource
> > already does this.
> >
> > Signed-off-by: Rosen Penev <rosenp@gmail.com>
> > ---
> > drivers/net/mdio/mdio-ipq8064.c | 7 ++++---
> > 1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/mdio/mdio-ipq8064.c b/drivers/net/mdio/mdio-ipq8064.c
> > index 6253a9ab8b69..e3d311ce3810 100644
> > --- a/drivers/net/mdio/mdio-ipq8064.c
> > +++ b/drivers/net/mdio/mdio-ipq8064.c
> > @@ -111,15 +111,16 @@ ipq8064_mdio_probe(struct platform_device *pdev)
> > {
> > struct device_node *np = pdev->dev.of_node;
> > struct ipq8064_mdio *priv;
> > - struct resource res;
> > + struct resource *res;
> > struct mii_bus *bus;
> > void __iomem *base;
> > int ret;
> >
> > - if (of_address_to_resource(np, 0, &res))
> > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> > + if (!res)
> > return -ENOMEM;
> >
> > - base = devm_ioremap(&pdev->dev, res.start, resource_size(&res));
> > + base = devm_ioremap(&pdev->dev, res->start, resource_size(res));
> > if (!base)
> > return -ENOMEM;
> >
>
> Why not directly switching to devm_platform_get_and_ioremap_resource()?
Because that is not the same.
devm_platform_get_and_ioremap_resource is
platform_get_resource + request_memory_region + ioremap
The issue here is the second. This driver (well, platform really) uses
overlapping memory regions and so request_memory_region will fail.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH net-next 2/2] net: mdio-ipq8064: remove _remove function
2024-12-03 22:16 [PATCHv2 net-next 0/2] simplify with devm Rosen Penev
2024-12-03 22:16 ` [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource Rosen Penev
@ 2024-12-03 22:16 ` Rosen Penev
2024-12-03 23:47 ` [PATCHv2 net-next 0/2] simplify with devm Andrew Lunn
2 siblings, 0 replies; 7+ messages in thread
From: Rosen Penev @ 2024-12-03 22:16 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, ansuelsmth, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
open list
Change of_mdiobus_register to devm_mdiobus_register as devm allows
removing the _remove function as well as slightly cleaning up the probe
function.
Regular mdiobus_register is fine here as the platform device's of_node
is used. Removes two variables from _probe.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/mdio/mdio-ipq8064.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/net/mdio/mdio-ipq8064.c b/drivers/net/mdio/mdio-ipq8064.c
index e3d311ce3810..9f13e16edb17 100644
--- a/drivers/net/mdio/mdio-ipq8064.c
+++ b/drivers/net/mdio/mdio-ipq8064.c
@@ -109,12 +109,10 @@ static const struct regmap_config ipq8064_mdio_regmap_config = {
static int
ipq8064_mdio_probe(struct platform_device *pdev)
{
- struct device_node *np = pdev->dev.of_node;
struct ipq8064_mdio *priv;
struct resource *res;
struct mii_bus *bus;
void __iomem *base;
- int ret;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
@@ -140,19 +138,7 @@ ipq8064_mdio_probe(struct platform_device *pdev)
if (IS_ERR(priv->base))
return PTR_ERR(priv->base);
- ret = of_mdiobus_register(bus, np);
- if (ret)
- return ret;
-
- platform_set_drvdata(pdev, bus);
- return 0;
-}
-
-static void ipq8064_mdio_remove(struct platform_device *pdev)
-{
- struct mii_bus *bus = platform_get_drvdata(pdev);
-
- mdiobus_unregister(bus);
+ return devm_mdiobus_register(&pdev->dev, bus);
}
static const struct of_device_id ipq8064_mdio_dt_ids[] = {
@@ -163,7 +149,6 @@ MODULE_DEVICE_TABLE(of, ipq8064_mdio_dt_ids);
static struct platform_driver ipq8064_mdio_driver = {
.probe = ipq8064_mdio_probe,
- .remove = ipq8064_mdio_remove,
.driver = {
.name = "ipq8064-mdio",
.of_match_table = ipq8064_mdio_dt_ids,
--
2.47.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCHv2 net-next 0/2] simplify with devm
2024-12-03 22:16 [PATCHv2 net-next 0/2] simplify with devm Rosen Penev
2024-12-03 22:16 ` [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource Rosen Penev
2024-12-03 22:16 ` [PATCH net-next 2/2] net: mdio-ipq8064: remove _remove function Rosen Penev
@ 2024-12-03 23:47 ` Andrew Lunn
2 siblings, 0 replies; 7+ messages in thread
From: Andrew Lunn @ 2024-12-03 23:47 UTC (permalink / raw)
To: Rosen Penev
Cc: netdev, ansuelsmth, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
open list
On Tue, Dec 03, 2024 at 02:16:42PM -0800, Rosen Penev wrote:
> Makes probe simpler and easier to reason about.
Hi Rosen
For all future patches, please say either:
Test on real hardware.
or
Compile tested only
We need to know this to help determine the risk of accepting the
patches. Clearly something you have tested is a lot lower risk than
something which is only compile tested.
Andrew
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH net-next 0/2] net: mdio-ipq8064: simplify with devm
@ 2024-11-17 21:31 Rosen Penev
2024-11-17 21:31 ` [PATCH net-next 2/2] net: mdio-ipq8064: remove _remove function Rosen Penev
0 siblings, 1 reply; 7+ messages in thread
From: Rosen Penev @ 2024-11-17 21:31 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, ansuelsmth, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
open list
Makes probe simpler and easier to reason about.
Rosen Penev (2):
net: mdio-ipq8064: use platform_get_resource
net: mdio-ipq8064: remove _remove function
drivers/net/mdio/mdio-ipq8064.c | 24 +++++-------------------
1 file changed, 5 insertions(+), 19 deletions(-)
--
2.47.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH net-next 2/2] net: mdio-ipq8064: remove _remove function
2024-11-17 21:31 [PATCH net-next 0/2] net: mdio-ipq8064: " Rosen Penev
@ 2024-11-17 21:31 ` Rosen Penev
0 siblings, 0 replies; 7+ messages in thread
From: Rosen Penev @ 2024-11-17 21:31 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, ansuelsmth, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
open list
Change of_mdiobus_register to devm_mdiobus_register as devm allows
removing the _remove function as well as slightly cleaning up the probe
function.
Regular mdiobus_register is fine here as the platform device's of_node
is used. Removes two variables from _probe.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/mdio/mdio-ipq8064.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/net/mdio/mdio-ipq8064.c b/drivers/net/mdio/mdio-ipq8064.c
index e3d311ce3810..9f13e16edb17 100644
--- a/drivers/net/mdio/mdio-ipq8064.c
+++ b/drivers/net/mdio/mdio-ipq8064.c
@@ -109,12 +109,10 @@ static const struct regmap_config ipq8064_mdio_regmap_config = {
static int
ipq8064_mdio_probe(struct platform_device *pdev)
{
- struct device_node *np = pdev->dev.of_node;
struct ipq8064_mdio *priv;
struct resource *res;
struct mii_bus *bus;
void __iomem *base;
- int ret;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
@@ -140,19 +138,7 @@ ipq8064_mdio_probe(struct platform_device *pdev)
if (IS_ERR(priv->base))
return PTR_ERR(priv->base);
- ret = of_mdiobus_register(bus, np);
- if (ret)
- return ret;
-
- platform_set_drvdata(pdev, bus);
- return 0;
-}
-
-static void ipq8064_mdio_remove(struct platform_device *pdev)
-{
- struct mii_bus *bus = platform_get_drvdata(pdev);
-
- mdiobus_unregister(bus);
+ return devm_mdiobus_register(&pdev->dev, bus);
}
static const struct of_device_id ipq8064_mdio_dt_ids[] = {
@@ -163,7 +149,6 @@ MODULE_DEVICE_TABLE(of, ipq8064_mdio_dt_ids);
static struct platform_driver ipq8064_mdio_driver = {
.probe = ipq8064_mdio_probe,
- .remove = ipq8064_mdio_remove,
.driver = {
.name = "ipq8064-mdio",
.of_match_table = ipq8064_mdio_dt_ids,
--
2.47.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-12-03 23:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-03 22:16 [PATCHv2 net-next 0/2] simplify with devm Rosen Penev
2024-12-03 22:16 ` [PATCH net-next 1/2] net: mdio-ipq8064: use platform_get_resource Rosen Penev
2024-12-03 22:27 ` Heiner Kallweit
2024-12-03 22:32 ` Rosen Penev
2024-12-03 22:16 ` [PATCH net-next 2/2] net: mdio-ipq8064: remove _remove function Rosen Penev
2024-12-03 23:47 ` [PATCHv2 net-next 0/2] simplify with devm Andrew Lunn
-- strict thread matches above, loose matches on Subject: below --
2024-11-17 21:31 [PATCH net-next 0/2] net: mdio-ipq8064: " Rosen Penev
2024-11-17 21:31 ` [PATCH net-next 2/2] net: mdio-ipq8064: remove _remove function Rosen Penev
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.