diff mbox series

[1/1] drivers/net/ethernet/marvell/mvmdio.c: Fix non OF case

Message ID 20201015093221.720980174@rtp-net.org
State Not Applicable
Delegated to: David Miller
Headers show
Series [1/1] drivers/net/ethernet/marvell/mvmdio.c: Fix non OF case | expand

Commit Message

Arnaud Patard (Rtp) Oct. 15, 2020, 9:32 a.m. UTC
commit d934423ac26ed373dfe089734d505dca5ff679b6 upstream.

Orion5.x systems are still using machine files and not device-tree.
Commit 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be
specified for orion-mdio") has replaced devm_clk_get() with of_clk_get(),
leading to a oops at boot and not working network, as reported in
https://lists.debian.org/debian-arm/2019/07/msg00088.html and possibly in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908712.
    
Link: https://lists.debian.org/debian-arm/2019/07/msg00088.html
Fixes: 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be specified for orion-mdio")
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

Comments

Greg Kroah-Hartman Oct. 15, 2020, 10:04 a.m. UTC | #1
On Thu, Oct 15, 2020 at 11:32:15AM +0200, Arnaud Patard wrote:
> commit d934423ac26ed373dfe089734d505dca5ff679b6 upstream.
> 
> Orion5.x systems are still using machine files and not device-tree.
> Commit 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be
> specified for orion-mdio") has replaced devm_clk_get() with of_clk_get(),
> leading to a oops at boot and not working network, as reported in
> https://lists.debian.org/debian-arm/2019/07/msg00088.html and possibly in
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908712.
>     
> Link: https://lists.debian.org/debian-arm/2019/07/msg00088.html
> Fixes: 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be specified for orion-mdio")
> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> 

What stable tree(s) are you asking for this to be backported to?

thanks,

greg k-h
Arnaud Patard (Rtp) Oct. 15, 2020, 10:08 a.m. UTC | #2
Greg KH <gregkh@linuxfoundation.org> writes:

> On Thu, Oct 15, 2020 at 11:32:15AM +0200, Arnaud Patard wrote:
>> commit d934423ac26ed373dfe089734d505dca5ff679b6 upstream.
>> 
>> Orion5.x systems are still using machine files and not device-tree.
>> Commit 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be
>> specified for orion-mdio") has replaced devm_clk_get() with of_clk_get(),
>> leading to a oops at boot and not working network, as reported in
>> https://lists.debian.org/debian-arm/2019/07/msg00088.html and possibly in
>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908712.
>>     
>> Link: https://lists.debian.org/debian-arm/2019/07/msg00088.html
>> Fixes: 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be specified for orion-mdio")
>> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
>> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
>> Signed-off-by: David S. Miller <davem@davemloft.net>
>> 
>
> What stable tree(s) are you asking for this to be backported to?

oops, forgot to put it in the mail subject. It's for 4.19.X, which is
used in Debian stable.

Arnaud
Greg Kroah-Hartman Oct. 16, 2020, 8:01 a.m. UTC | #3
On Thu, Oct 15, 2020 at 12:08:00PM +0200, Arnaud Patard wrote:
> Greg KH <gregkh@linuxfoundation.org> writes:
> 
> > On Thu, Oct 15, 2020 at 11:32:15AM +0200, Arnaud Patard wrote:
> >> commit d934423ac26ed373dfe089734d505dca5ff679b6 upstream.
> >> 
> >> Orion5.x systems are still using machine files and not device-tree.
> >> Commit 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be
> >> specified for orion-mdio") has replaced devm_clk_get() with of_clk_get(),
> >> leading to a oops at boot and not working network, as reported in
> >> https://lists.debian.org/debian-arm/2019/07/msg00088.html and possibly in
> >> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908712.
> >>     
> >> Link: https://lists.debian.org/debian-arm/2019/07/msg00088.html
> >> Fixes: 96cb4342382290c9 ("net: mvmdio: allow up to three clocks to be specified for orion-mdio")
> >> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
> >> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> >> Signed-off-by: David S. Miller <davem@davemloft.net>
> >> 
> >
> > What stable tree(s) are you asking for this to be backported to?
> 
> oops, forgot to put it in the mail subject. It's for 4.19.X, which is
> used in Debian stable.

Also works on 4.14.y, so I've put it there as well.

thanks,

greg k-h
diff mbox series

Patch

Index: linux/drivers/net/ethernet/marvell/mvmdio.c
===================================================================
--- linux.orig/drivers/net/ethernet/marvell/mvmdio.c
+++ linux/drivers/net/ethernet/marvell/mvmdio.c
@@ -319,15 +319,25 @@  static int orion_mdio_probe(struct platf
 
 	init_waitqueue_head(&dev->smi_busy_wait);
 
-	for (i = 0; i < ARRAY_SIZE(dev->clk); i++) {
-		dev->clk[i] = of_clk_get(pdev->dev.of_node, i);
-		if (PTR_ERR(dev->clk[i]) == -EPROBE_DEFER) {
+	if (pdev->dev.of_node) {
+		for (i = 0; i < ARRAY_SIZE(dev->clk); i++) {
+			dev->clk[i] = of_clk_get(pdev->dev.of_node, i);
+			if (PTR_ERR(dev->clk[i]) == -EPROBE_DEFER) {
+				ret = -EPROBE_DEFER;
+				goto out_clk;
+			}
+			if (IS_ERR(dev->clk[i]))
+				break;
+			clk_prepare_enable(dev->clk[i]);
+		}
+	} else {
+		dev->clk[0] = clk_get(&pdev->dev, NULL);
+		if (PTR_ERR(dev->clk[0]) == -EPROBE_DEFER) {
 			ret = -EPROBE_DEFER;
 			goto out_clk;
 		}
-		if (IS_ERR(dev->clk[i]))
-			break;
-		clk_prepare_enable(dev->clk[i]);
+		if (!IS_ERR(dev->clk[0]))
+			clk_prepare_enable(dev->clk[0]);
 	}
 
 	dev->err_interrupt = platform_get_irq(pdev, 0);