All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] net: mdio: mscc-miim: Use devm_platform_get_and_ioremap_resource()
@ 2021-06-10  9:11 Yang Yingliang
  2021-06-10 16:01 ` Andrew Lunn
  0 siblings, 1 reply; 4+ messages in thread
From: Yang Yingliang @ 2021-06-10  9:11 UTC (permalink / raw)
  To: linux-kernel, netdev; +Cc: davem, kuba, andrew

Use devm_platform_get_and_ioremap_resource() to simplify
code.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
---
 drivers/net/mdio/mdio-mscc-miim.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/net/mdio/mdio-mscc-miim.c b/drivers/net/mdio/mdio-mscc-miim.c
index b36e5ea04ddf..b8491efbd330 100644
--- a/drivers/net/mdio/mdio-mscc-miim.c
+++ b/drivers/net/mdio/mdio-mscc-miim.c
@@ -139,10 +139,6 @@ static int mscc_miim_probe(struct platform_device *pdev)
 	struct mscc_miim_dev *dev;
 	int ret;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	if (!res)
-		return -ENODEV;
-
 	bus = devm_mdiobus_alloc_size(&pdev->dev, sizeof(*dev));
 	if (!bus)
 		return -ENOMEM;
@@ -155,19 +151,16 @@ static int mscc_miim_probe(struct platform_device *pdev)
 	bus->parent = &pdev->dev;
 
 	dev = bus->priv;
-	dev->regs = devm_ioremap_resource(&pdev->dev, res);
+	dev->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
 	if (IS_ERR(dev->regs)) {
 		dev_err(&pdev->dev, "Unable to map MIIM registers\n");
 		return PTR_ERR(dev->regs);
 	}
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-	if (res) {
-		dev->phy_regs = devm_ioremap_resource(&pdev->dev, res);
-		if (IS_ERR(dev->phy_regs)) {
-			dev_err(&pdev->dev, "Unable to map internal phy registers\n");
-			return PTR_ERR(dev->phy_regs);
-		}
+	dev->phy_regs = devm_platform_get_and_ioremap_resource(pdev, 1, &res);
+	if (res && IS_ERR(dev->phy_regs)) {
+		dev_err(&pdev->dev, "Unable to map internal phy registers\n");
+		return PTR_ERR(dev->phy_regs);
 	}
 
 	ret = of_mdiobus_register(bus, pdev->dev.of_node);
-- 
2.25.1


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

* Re: [PATCH net-next] net: mdio: mscc-miim: Use devm_platform_get_and_ioremap_resource()
  2021-06-10  9:11 [PATCH net-next] net: mdio: mscc-miim: Use devm_platform_get_and_ioremap_resource() Yang Yingliang
@ 2021-06-10 16:01 ` Andrew Lunn
  2021-06-11  1:35   ` Yang Yingliang
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Lunn @ 2021-06-10 16:01 UTC (permalink / raw)
  To: Yang Yingliang; +Cc: linux-kernel, netdev, davem, kuba

> -	dev->regs = devm_ioremap_resource(&pdev->dev, res);
> +	dev->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
>  	if (IS_ERR(dev->regs)) {

Here, only dev->regs is considered.

>  		dev_err(&pdev->dev, "Unable to map MIIM registers\n");
>  		return PTR_ERR(dev->regs);
>  	}



> +	dev->phy_regs = devm_platform_get_and_ioremap_resource(pdev, 1, &res);
> +	if (res && IS_ERR(dev->phy_regs)) {

Here you look at both res and dev->phy_regs.

This seems inconsistent. Can devm_platform_get_and_ioremap_resource()
return success despite res being NULL?

       Andrew

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

* Re: [PATCH net-next] net: mdio: mscc-miim: Use devm_platform_get_and_ioremap_resource()
  2021-06-10 16:01 ` Andrew Lunn
@ 2021-06-11  1:35   ` Yang Yingliang
  2021-06-11  3:35     ` Andrew Lunn
  0 siblings, 1 reply; 4+ messages in thread
From: Yang Yingliang @ 2021-06-11  1:35 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: linux-kernel, netdev, davem, kuba

Hi,

On 2021/6/11 0:01, Andrew Lunn wrote:
>> -	dev->regs = devm_ioremap_resource(&pdev->dev, res);
>> +	dev->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
>>   	if (IS_ERR(dev->regs)) {
> Here, only dev->regs is considered.
>
>>   		dev_err(&pdev->dev, "Unable to map MIIM registers\n");
>>   		return PTR_ERR(dev->regs);
>>   	}
>
>
>> +	dev->phy_regs = devm_platform_get_and_ioremap_resource(pdev, 1, &res);
>> +	if (res && IS_ERR(dev->phy_regs)) {
> Here you look at both res and dev->phy_regs.
>
> This seems inconsistent. Can devm_platform_get_and_ioremap_resource()
> return success despite res being NULL?
No, if res is NULL, devm_platform_get_and_ioremap_resource() returns failed.
But, before this patch, if the internal phy res is NULL, it doesn't 
return error
code, so I checked the res to make sure it doesn't change the origin 
code logic.

Thanks,
Yang
>
>         Andrew
> .

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

* Re: [PATCH net-next] net: mdio: mscc-miim: Use devm_platform_get_and_ioremap_resource()
  2021-06-11  1:35   ` Yang Yingliang
@ 2021-06-11  3:35     ` Andrew Lunn
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Lunn @ 2021-06-11  3:35 UTC (permalink / raw)
  To: Yang Yingliang; +Cc: linux-kernel, netdev, davem, kuba

On Fri, Jun 11, 2021 at 09:35:04AM +0800, Yang Yingliang wrote:
> Hi,
> 
> On 2021/6/11 0:01, Andrew Lunn wrote:
> > > -	dev->regs = devm_ioremap_resource(&pdev->dev, res);
> > > +	dev->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
> > >   	if (IS_ERR(dev->regs)) {
> > Here, only dev->regs is considered.
> > 
> > >   		dev_err(&pdev->dev, "Unable to map MIIM registers\n");
> > >   		return PTR_ERR(dev->regs);
> > >   	}
> > 
> > 
> > > +	dev->phy_regs = devm_platform_get_and_ioremap_resource(pdev, 1, &res);
> > > +	if (res && IS_ERR(dev->phy_regs)) {
> > Here you look at both res and dev->phy_regs.
> > 
> > This seems inconsistent. Can devm_platform_get_and_ioremap_resource()
> > return success despite res being NULL?
> No, if res is NULL, devm_platform_get_and_ioremap_resource() returns failed.
> But, before this patch, if the internal phy res is NULL, it doesn't return
> error
> code, so I checked the res to make sure it doesn't change the origin code
> logic.

O.K, so IORESOURCE_MEM, 1 is optional. By making this change, i think
you have made this less clear. So i would say it is O.K. to change the
first platform_get_resource(pdev, IORESOURCE_MEM, 0) and
devm_ioremap_resource(&pdev->dev, res) to one call, but i would leave
the second pair alone.

    Andrew

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

end of thread, other threads:[~2021-06-11  3:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-10  9:11 [PATCH net-next] net: mdio: mscc-miim: Use devm_platform_get_and_ioremap_resource() Yang Yingliang
2021-06-10 16:01 ` Andrew Lunn
2021-06-11  1:35   ` Yang Yingliang
2021-06-11  3:35     ` Andrew Lunn

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.