* [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.