Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1279785 > unrolled thread

[PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock

Started byLothar Waßmann <LW@KARO-electronics.de>
First post2015-11-30 12:40 +0100
Last post2015-12-01 08:40 +0100
Articles 11 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock Lothar Waßmann <LW@KARO-electronics.de> - 2015-11-30 12:40 +0100
    [PATCH 2/3] net: fec: convert to using gpiod framework Lothar Waßmann <LW@KARO-electronics.de> - 2015-11-30 12:40 +0100
      Re: [PATCH 2/3] net: fec: convert to using gpiod framework Fabio Estevam <festevam@gmail.com> - 2015-11-30 13:20 +0100
      RE: [PATCH 2/3] net: fec: convert to using gpiod framework Duan Andy <fugang.duan@freescale.com> - 2015-12-01 03:40 +0100
        Re: [PATCH 2/3] net: fec: convert to using gpiod framework Lothar Waßmann <LW@KARO-electronics.de> - 2015-12-01 11:30 +0100
    [PATCH 1/3] net: fec: Remove redundant checks for NULL clk pointer Lothar Waßmann <LW@KARO-electronics.de> - 2015-11-30 12:40 +0100
      RE: [PATCH 1/3] net: fec: Remove redundant checks for NULL clk  pointer Duan Andy <fugang.duan@freescale.com> - 2015-12-01 03:10 +0100
        Re: [PATCH 1/3] net: fec: Remove redundant checks for NULL clk  pointer Lothar Waßmann <LW@KARO-electronics.de> - 2015-12-01 08:30 +0100
    RE: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out  clock Duan Andy <fugang.duan@freescale.com> - 2015-12-01 03:00 +0100
      Re: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out  clock Lothar Waßmann <LW@KARO-electronics.de> - 2015-12-01 08:30 +0100
        RE: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out  clock Duan Andy <fugang.duan@freescale.com> - 2015-12-01 08:40 +0100

#1279785 — [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock

FromLothar Waßmann <LW@KARO-electronics.de>
Date2015-11-30 12:40 +0100
Subject[PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock
Message-ID<qAuYh-2X2-7@gated-at.bofh.it>
This patchset fixes a regression introduced by
commit 8fff755e9f8d ("net: fec: Ensure clocks are enabled while using mdio bus")
for ethernet PHYs that are using ENET_OUT as reference clock (on i.MX6
or i.MX28)

The first patch is a cleanup patch that removes redundant NULL checks.
The second patch converts the driver to use the 'gpiod' framework.
The third patch makes sure, fec_reset_phy() is called whenever the
    enet_out clock has been (re-)enabled to get the PHY into a
    consistent state.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1279788 — [PATCH 2/3] net: fec: convert to using gpiod framework

FromLothar Waßmann <LW@KARO-electronics.de>
Date2015-11-30 12:40 +0100
Subject[PATCH 2/3] net: fec: convert to using gpiod framework
Message-ID<qAuYh-2X2-11@gated-at.bofh.it>
In reply to#1279785
Use gpiod_get_optional() instead of checking for a valid GPIO number
and calling devm_gpio_request_one() conditionally.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
---
 drivers/net/ethernet/freescale/fec_main.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index e17d74f..1a983fc 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -3233,7 +3233,7 @@ static int fec_enet_init(struct net_device *ndev)
 #ifdef CONFIG_OF
 static void fec_reset_phy(struct platform_device *pdev)
 {
-	int err, phy_reset;
+	struct gpio_desc *phy_reset;
 	int msec = 1;
 	struct device_node *np = pdev->dev.of_node;
 
@@ -3245,18 +3245,15 @@ static void fec_reset_phy(struct platform_device *pdev)
 	if (msec > 1000)
 		msec = 1;
 
-	phy_reset = of_get_named_gpio(np, "phy-reset-gpios", 0);
-	if (!gpio_is_valid(phy_reset))
-		return;
-
-	err = devm_gpio_request_one(&pdev->dev, phy_reset,
-				    GPIOF_OUT_INIT_LOW, "phy-reset");
-	if (err) {
-		dev_err(&pdev->dev, "failed to get phy-reset-gpios: %d\n", err);
+	phy_reset = devm_gpiod_get_optional(&pdev->dev, "phy-reset",
+					    GPIOD_OUT_LOW);
+	if (IS_ERR(phy_reset)) {
+		dev_err(&pdev->dev, "failed to get phy-reset-gpios: %ld\n",
+			PTR_ERR(phy_reset));
 		return;
 	}
 	msleep(msec);
-	gpio_set_value_cansleep(phy_reset, 1);
+	gpiod_set_value_cansleep(phy_reset, 1);
 }
 #else /* CONFIG_OF */
 static void fec_reset_phy(struct platform_device *pdev)
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1279823 — Re: [PATCH 2/3] net: fec: convert to using gpiod framework

FromFabio Estevam <festevam@gmail.com>
Date2015-11-30 13:20 +0100
SubjectRe: [PATCH 2/3] net: fec: convert to using gpiod framework
Message-ID<qAvB1-3vl-19@gated-at.bofh.it>
In reply to#1279788
On Mon, Nov 30, 2015 at 9:32 AM, Lothar Waßmann <LW@karo-electronics.de> wrote:

> -       gpio_set_value_cansleep(phy_reset, 1);
> +       gpiod_set_value_cansleep(phy_reset, 1);

This will break some existing DTBs.

Currently the fec driver does not care whether 'phy-reset-gpios' is
active low or active high. (Yes, it was a mistake to assume in the
driver that it is always active low.)

After this change the polarity will be taken into account and may
break some dtb's.

I suggest you to send a single patch with the minimum changes to fix
the regression caused by 8fff755e9f8d ("net: fec: Ensure clocks are
enabled while using mdio bus").
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1280501 — RE: [PATCH 2/3] net: fec: convert to using gpiod framework

FromDuan Andy <fugang.duan@freescale.com>
Date2015-12-01 03:40 +0100
SubjectRE: [PATCH 2/3] net: fec: convert to using gpiod framework
Message-ID<qAJ1f-3y3-5@gated-at.bofh.it>
In reply to#1279788
RnJvbTogTG90aGFyIFdhw59tYW5uIDxMV0BLQVJPLWVsZWN0cm9uaWNzLmRlPiBTZW50OiBNb25k
YXksIE5vdmVtYmVyIDMwLCAyMDE1IDc6MzMgUE0NCj4gVG86IEFuZHJldyBMdW5uOyBEYXZpZCBT
LiBNaWxsZXI7IEVzdGV2YW0gRmFiaW8tUjQ5NDk2OyBHcmVnIFVuZ2VyZXI7DQo+IEtldmluIEhh
bzsgTG90aGFyIFdhw59tYW5uOyBMdWNhcyBTdGFjaDsgRHVhbiBGdWdhbmctQjM4NjExOyBQaGls
aXBwZQ0KPiBSZXluZXM7IFJpY2hhcmQgQ29jaHJhbjsgUnVzc2VsbCBLaW5nOyBTYXNjaGEgSGF1
ZXI7IFN0ZWZhbiBBZ25lcjsgbGludXgtDQo+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IG5ldGRl
dkB2Z2VyLmtlcm5lbC5vcmc7IEplZmYgS2lyc2hlcjsgVXdlIEtsZWluZS0NCj4gS8O2bmlnDQo+
IFN1YmplY3Q6IFtQQVRDSCAyLzNdIG5ldDogZmVjOiBjb252ZXJ0IHRvIHVzaW5nIGdwaW9kIGZy
YW1ld29yaw0KPiANCj4gVXNlIGdwaW9kX2dldF9vcHRpb25hbCgpIGluc3RlYWQgb2YgY2hlY2tp
bmcgZm9yIGEgdmFsaWQgR1BJTyBudW1iZXIgYW5kDQo+IGNhbGxpbmcgZGV2bV9ncGlvX3JlcXVl
c3Rfb25lKCkgY29uZGl0aW9uYWxseS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IExvdGhhciBXYcOf
bWFubiA8TFdAS0FSTy1lbGVjdHJvbmljcy5kZT4NCj4gLS0tDQo+ICBkcml2ZXJzL25ldC9ldGhl
cm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYyB8IDE3ICsrKysrKystLS0tLS0tLS0tDQo+ICAxIGZp
bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYg
LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYw0KPiBiL2Ry
aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jDQo+IGluZGV4IGUxN2Q3NGYu
LjFhOTgzZmMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9m
ZWNfbWFpbi5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFp
bi5jDQo+IEBAIC0zMjMzLDcgKzMyMzMsNyBAQCBzdGF0aWMgaW50IGZlY19lbmV0X2luaXQoc3Ry
dWN0IG5ldF9kZXZpY2UgKm5kZXYpDQo+ICNpZmRlZiBDT05GSUdfT0YgIHN0YXRpYyB2b2lkIGZl
Y19yZXNldF9waHkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gew0KPiAtCWludCBl
cnIsIHBoeV9yZXNldDsNCj4gKwlzdHJ1Y3QgZ3Bpb19kZXNjICpwaHlfcmVzZXQ7DQo+ICAJaW50
IG1zZWMgPSAxOw0KPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5kZXYub2Zfbm9k
ZTsNCj4gDQo+IEBAIC0zMjQ1LDE4ICszMjQ1LDE1IEBAIHN0YXRpYyB2b2lkIGZlY19yZXNldF9w
aHkoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiAqcGRldikNCj4gIAlpZiAobXNlYyA+IDEwMDAp
DQo+ICAJCW1zZWMgPSAxOw0KPiANCj4gLQlwaHlfcmVzZXQgPSBvZl9nZXRfbmFtZWRfZ3Bpbyhu
cCwgInBoeS1yZXNldC1ncGlvcyIsIDApOw0KPiAtCWlmICghZ3Bpb19pc192YWxpZChwaHlfcmVz
ZXQpKQ0KPiAtCQlyZXR1cm47DQo+IC0NCj4gLQllcnIgPSBkZXZtX2dwaW9fcmVxdWVzdF9vbmUo
JnBkZXYtPmRldiwgcGh5X3Jlc2V0LA0KPiAtCQkJCSAgICBHUElPRl9PVVRfSU5JVF9MT1csICJw
aHktcmVzZXQiKTsNCj4gLQlpZiAoZXJyKSB7DQo+IC0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZh
aWxlZCB0byBnZXQgcGh5LXJlc2V0LWdwaW9zOiAlZFxuIiwNCj4gZXJyKTsNCj4gKwlwaHlfcmVz
ZXQgPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgmcGRldi0+ZGV2LCAicGh5LXJlc2V0IiwNCj4g
KwkJCQkJICAgIEdQSU9EX09VVF9MT1cpOw0KPiArCWlmIChJU19FUlIocGh5X3Jlc2V0KSkgew0K
PiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHBoeS1yZXNldC1ncGlvczog
JWxkXG4iLA0KPiArCQkJUFRSX0VSUihwaHlfcmVzZXQpKTsNCj4gIAkJcmV0dXJuOw0KPiAgCX0N
Cj4gIAltc2xlZXAobXNlYyk7DQo+IC0JZ3Bpb19zZXRfdmFsdWVfY2Fuc2xlZXAocGh5X3Jlc2V0
LCAxKTsNCj4gKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocGh5X3Jlc2V0LCAxKTsNCg0KVGhp
cyBBUEkgd2lsbCBqdWRnZSB0aGUgR1BJTyBhY3RpdmUgcG9sYXJpdHksIHRoZXJlIG1hbnkgaW14
IGJvYXJkcyBpbiBkdHMgZmlsZXMgZG9uJ3QgY2FyZSB0aGUgcG9sYXJpdHkuDQpTbyBwbHMgZHJv
cCB0aGUgcGF0Y2guDQoNCk9yIHVzZSBncGlvZF9zZXRfcmF3X3ZhbHVlX2NhbnNsZWVwKCkgaW5z
dGVhZCBvZiBncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoKS4NCg0KPiAgfQ0KPiAgI2Vsc2UgLyog
Q09ORklHX09GICovDQo+ICBzdGF0aWMgdm9pZCBmZWNfcmVzZXRfcGh5KHN0cnVjdCBwbGF0Zm9y
bV9kZXZpY2UgKnBkZXYpDQo+IC0tDQo+IDIuMS40DQo=
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1280732 — Re: [PATCH 2/3] net: fec: convert to using gpiod framework

FromLothar Waßmann <LW@KARO-electronics.de>
Date2015-12-01 11:30 +0100
SubjectRe: [PATCH 2/3] net: fec: convert to using gpiod framework
Message-ID<qAQm5-8lS-5@gated-at.bofh.it>
In reply to#1280501
Hi,

> From: Lothar Waßmann <LW@KARO-electronics.de> Sent: Monday, November 30, 2015 7:33 PM
> > To: Andrew Lunn; David S. Miller; Estevam Fabio-R49496; Greg Ungerer;
> > Kevin Hao; Lothar Waßmann; Lucas Stach; Duan Fugang-B38611; Philippe
> > Reynes; Richard Cochran; Russell King; Sascha Hauer; Stefan Agner; linux-
> > kernel@vger.kernel.org; netdev@vger.kernel.org; Jeff Kirsher; Uwe Kleine-
> > König
> > Subject: [PATCH 2/3] net: fec: convert to using gpiod framework
> > 
> > Use gpiod_get_optional() instead of checking for a valid GPIO number and
> > calling devm_gpio_request_one() conditionally.
> > 
> > Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
> > ---
> >  drivers/net/ethernet/freescale/fec_main.c | 17 +++++++----------
> >  1 file changed, 7 insertions(+), 10 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/freescale/fec_main.c
> > b/drivers/net/ethernet/freescale/fec_main.c
> > index e17d74f..1a983fc 100644
> > --- a/drivers/net/ethernet/freescale/fec_main.c
> > +++ b/drivers/net/ethernet/freescale/fec_main.c
> > @@ -3233,7 +3233,7 @@ static int fec_enet_init(struct net_device *ndev)
> > #ifdef CONFIG_OF  static void fec_reset_phy(struct platform_device *pdev)
> > {
> > -	int err, phy_reset;
> > +	struct gpio_desc *phy_reset;
> >  	int msec = 1;
> >  	struct device_node *np = pdev->dev.of_node;
> > 
> > @@ -3245,18 +3245,15 @@ static void fec_reset_phy(struct platform_device
> > *pdev)
> >  	if (msec > 1000)
> >  		msec = 1;
> > 
> > -	phy_reset = of_get_named_gpio(np, "phy-reset-gpios", 0);
> > -	if (!gpio_is_valid(phy_reset))
> > -		return;
> > -
> > -	err = devm_gpio_request_one(&pdev->dev, phy_reset,
> > -				    GPIOF_OUT_INIT_LOW, "phy-reset");
> > -	if (err) {
> > -		dev_err(&pdev->dev, "failed to get phy-reset-gpios: %d\n",
> > err);
> > +	phy_reset = devm_gpiod_get_optional(&pdev->dev, "phy-reset",
> > +					    GPIOD_OUT_LOW);
> > +	if (IS_ERR(phy_reset)) {
> > +		dev_err(&pdev->dev, "failed to get phy-reset-gpios: %ld\n",
> > +			PTR_ERR(phy_reset));
> >  		return;
> >  	}
> >  	msleep(msec);
> > -	gpio_set_value_cansleep(phy_reset, 1);
> > +	gpiod_set_value_cansleep(phy_reset, 1);
> 
> This API will judge the GPIO active polarity, there many imx boards in dts files don't care the polarity.
> So pls drop the patch.
> 
> Or use gpiod_set_raw_value_cansleep() instead of gpiod_set_value_cansleep().
> 
I could prepare a patch that temporarily uses the raw functions and add
a comment to convert these to the proper functions once all DTB files
have been corrected and some time has passed to account for boards using
old dtbs with newer kernels.

I could also send a patch to convert all in-tree dts files to use
GPIO_ACTIVE_LOW if that is desired.


Lothar Waßmann
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1279789 — [PATCH 1/3] net: fec: Remove redundant checks for NULL clk pointer

FromLothar Waßmann <LW@KARO-electronics.de>
Date2015-11-30 12:40 +0100
Subject[PATCH 1/3] net: fec: Remove redundant checks for NULL clk pointer
Message-ID<qAuYh-2X2-9@gated-at.bofh.it>
In reply to#1279785
NULL is a valid argument to clk_enable()/clk_disable(). Remove
redundant checks before calling those functions.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
---
 drivers/net/ethernet/freescale/fec_main.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index d2328fc..e17d74f 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1873,35 +1873,30 @@ static int fec_enet_clk_enable(struct net_device *ndev, bool enable)
 			}
 			mutex_unlock(&fep->ptp_clk_mutex);
 		}
-		if (fep->clk_ref) {
-			ret = clk_prepare_enable(fep->clk_ref);
-			if (ret)
-				goto failed_clk_ref;
-		}
+
+		ret = clk_prepare_enable(fep->clk_ref);
+		if (ret)
+			goto failed_clk_ref;
 	} else {
 		clk_disable_unprepare(fep->clk_ahb);
-		if (fep->clk_enet_out)
-			clk_disable_unprepare(fep->clk_enet_out);
+		clk_disable_unprepare(fep->clk_enet_out);
 		if (fep->clk_ptp) {
 			mutex_lock(&fep->ptp_clk_mutex);
 			clk_disable_unprepare(fep->clk_ptp);
 			fep->ptp_clk_on = false;
 			mutex_unlock(&fep->ptp_clk_mutex);
 		}
-		if (fep->clk_ref)
-			clk_disable_unprepare(fep->clk_ref);
+		clk_disable_unprepare(fep->clk_ref);
 	}
 
 	return 0;
 
 failed_clk_ref:
-	if (fep->clk_ref)
-		clk_disable_unprepare(fep->clk_ref);
+	clk_disable_unprepare(fep->clk_ref);
 failed_clk_ptp:
-	if (fep->clk_enet_out)
-		clk_disable_unprepare(fep->clk_enet_out);
+	clk_disable_unprepare(fep->clk_enet_out);
 failed_clk_enet_out:
-		clk_disable_unprepare(fep->clk_ahb);
+	clk_disable_unprepare(fep->clk_ahb);
 
 	return ret;
 }
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1280495 — RE: [PATCH 1/3] net: fec: Remove redundant checks for NULL clk pointer

FromDuan Andy <fugang.duan@freescale.com>
Date2015-12-01 03:10 +0100
SubjectRE: [PATCH 1/3] net: fec: Remove redundant checks for NULL clk pointer
Message-ID<qAIyd-3oM-3@gated-at.bofh.it>
In reply to#1279789
RnJvbTogTG90aGFyIFdhw59tYW5uIDxMV0BLQVJPLWVsZWN0cm9uaWNzLmRlPiBTZW50OiBNb25k
YXksIE5vdmVtYmVyIDMwLCAyMDE1IDc6MzMgUE0NCj4gVG86IEFuZHJldyBMdW5uOyBEYXZpZCBT
LiBNaWxsZXI7IEVzdGV2YW0gRmFiaW8tUjQ5NDk2OyBHcmVnIFVuZ2VyZXI7DQo+IEtldmluIEhh
bzsgTG90aGFyIFdhw59tYW5uOyBMdWNhcyBTdGFjaDsgRHVhbiBGdWdhbmctQjM4NjExOyBQaGls
aXBwZQ0KPiBSZXluZXM7IFJpY2hhcmQgQ29jaHJhbjsgUnVzc2VsbCBLaW5nOyBTYXNjaGEgSGF1
ZXI7IFN0ZWZhbiBBZ25lcjsgbGludXgtDQo+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IG5ldGRl
dkB2Z2VyLmtlcm5lbC5vcmc7IEplZmYgS2lyc2hlcjsgVXdlIEtsZWluZS0NCj4gS8O2bmlnDQo+
IFN1YmplY3Q6IFtQQVRDSCAxLzNdIG5ldDogZmVjOiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrcyBm
b3IgTlVMTCBjbGsNCj4gcG9pbnRlcg0KPiANCj4gTlVMTCBpcyBhIHZhbGlkIGFyZ3VtZW50IHRv
IGNsa19lbmFibGUoKS9jbGtfZGlzYWJsZSgpLiBSZW1vdmUgcmVkdW5kYW50DQo+IGNoZWNrcyBi
ZWZvcmUgY2FsbGluZyB0aG9zZSBmdW5jdGlvbnMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBMb3Ro
YXIgV2HDn21hbm4gPExXQEtBUk8tZWxlY3Ryb25pY3MuZGU+DQo+IC0tLQ0KPiAgZHJpdmVycy9u
ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgfCAyMyArKysrKysrKystLS0tLS0tLS0t
LS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0p
DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19t
YWluLmMNCj4gYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYw0KPiBp
bmRleCBkMjMyOGZjLi5lMTdkNzRmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l
dC9mcmVlc2NhbGUvZmVjX21haW4uYw0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl
c2NhbGUvZmVjX21haW4uYw0KPiBAQCAtMTg3MywzNSArMTg3MywzMCBAQCBzdGF0aWMgaW50IGZl
Y19lbmV0X2Nsa19lbmFibGUoc3RydWN0IG5ldF9kZXZpY2UNCj4gKm5kZXYsIGJvb2wgZW5hYmxl
KQ0KPiAgCQkJfQ0KPiAgCQkJbXV0ZXhfdW5sb2NrKCZmZXAtPnB0cF9jbGtfbXV0ZXgpOw0KPiAg
CQl9DQo+IC0JCWlmIChmZXAtPmNsa19yZWYpIHsNCj4gLQkJCXJldCA9IGNsa19wcmVwYXJlX2Vu
YWJsZShmZXAtPmNsa19yZWYpOw0KPiAtCQkJaWYgKHJldCkNCj4gLQkJCQlnb3RvIGZhaWxlZF9j
bGtfcmVmOw0KPiAtCQl9DQo+ICsNCj4gKwkJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGZlcC0+
Y2xrX3JlZik7DQo+ICsJCWlmIChyZXQpDQo+ICsJCQlnb3RvIGZhaWxlZF9jbGtfcmVmOw0KDQpJ
ZiB5b3Ugd2FudCB0byBjbGVhbiB1cCB0aGUgY29kZSwgcGxzIGFsc28gcmVtb3ZlICJmZXAtPmNs
a19lbmV0X291dCIgY2hlY2sgaW4gdGhpcyBicmFjZS4NCg0KDQo+ICAJfSBlbHNlIHsNCj4gIAkJ
Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKGZlcC0+Y2xrX2FoYik7DQo+IC0JCWlmIChmZXAtPmNsa19l
bmV0X291dCkNCj4gLQkJCWNsa19kaXNhYmxlX3VucHJlcGFyZShmZXAtPmNsa19lbmV0X291dCk7
DQo+ICsJCWNsa19kaXNhYmxlX3VucHJlcGFyZShmZXAtPmNsa19lbmV0X291dCk7DQo+ICAJCWlm
IChmZXAtPmNsa19wdHApIHsNCj4gIAkJCW11dGV4X2xvY2soJmZlcC0+cHRwX2Nsa19tdXRleCk7
DQo+ICAJCQljbGtfZGlzYWJsZV91bnByZXBhcmUoZmVwLT5jbGtfcHRwKTsNCj4gIAkJCWZlcC0+
cHRwX2Nsa19vbiA9IGZhbHNlOw0KPiAgCQkJbXV0ZXhfdW5sb2NrKCZmZXAtPnB0cF9jbGtfbXV0
ZXgpOw0KPiAgCQl9DQo+IC0JCWlmIChmZXAtPmNsa19yZWYpDQo+IC0JCQljbGtfZGlzYWJsZV91
bnByZXBhcmUoZmVwLT5jbGtfcmVmKTsNCj4gKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGZlcC0+
Y2xrX3JlZik7DQo+ICAJfQ0KPiANCj4gIAlyZXR1cm4gMDsNCj4gDQo+ICBmYWlsZWRfY2xrX3Jl
ZjoNCj4gLQlpZiAoZmVwLT5jbGtfcmVmKQ0KPiAtCQljbGtfZGlzYWJsZV91bnByZXBhcmUoZmVw
LT5jbGtfcmVmKTsNCj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUoZmVwLT5jbGtfcmVmKTsNCj4g
IGZhaWxlZF9jbGtfcHRwOg0KPiAtCWlmIChmZXAtPmNsa19lbmV0X291dCkNCj4gLQkJY2xrX2Rp
c2FibGVfdW5wcmVwYXJlKGZlcC0+Y2xrX2VuZXRfb3V0KTsNCj4gKwljbGtfZGlzYWJsZV91bnBy
ZXBhcmUoZmVwLT5jbGtfZW5ldF9vdXQpOw0KPiAgZmFpbGVkX2Nsa19lbmV0X291dDoNCj4gLQkJ
Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKGZlcC0+Y2xrX2FoYik7DQo+ICsJY2xrX2Rpc2FibGVfdW5w
cmVwYXJlKGZlcC0+Y2xrX2FoYik7DQo+IA0KPiAgCXJldHVybiByZXQ7DQo+ICB9DQo+IC0tDQo+
IDIuMS40DQo=
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1280611 — Re: [PATCH 1/3] net: fec: Remove redundant checks for NULL clk pointer

FromLothar Waßmann <LW@KARO-electronics.de>
Date2015-12-01 08:30 +0100
SubjectRe: [PATCH 1/3] net: fec: Remove redundant checks for NULL clk pointer
Message-ID<qANxU-6yD-13@gated-at.bofh.it>
In reply to#1280495
Hi,

> From: Lothar Waßmann <LW@KARO-electronics.de> Sent: Monday, November 30, 2015 7:33 PM
> > To: Andrew Lunn; David S. Miller; Estevam Fabio-R49496; Greg Ungerer;
> > Kevin Hao; Lothar Waßmann; Lucas Stach; Duan Fugang-B38611; Philippe
> > Reynes; Richard Cochran; Russell King; Sascha Hauer; Stefan Agner; linux-
> > kernel@vger.kernel.org; netdev@vger.kernel.org; Jeff Kirsher; Uwe Kleine-
> > König
> > Subject: [PATCH 1/3] net: fec: Remove redundant checks for NULL clk
> > pointer
> > 
> > NULL is a valid argument to clk_enable()/clk_disable(). Remove redundant
> > checks before calling those functions.
> > 
> > Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
> > ---
> >  drivers/net/ethernet/freescale/fec_main.c | 23 +++++++++--------------
> >  1 file changed, 9 insertions(+), 14 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/freescale/fec_main.c
> > b/drivers/net/ethernet/freescale/fec_main.c
> > index d2328fc..e17d74f 100644
> > --- a/drivers/net/ethernet/freescale/fec_main.c
> > +++ b/drivers/net/ethernet/freescale/fec_main.c
> > @@ -1873,35 +1873,30 @@ static int fec_enet_clk_enable(struct net_device
> > *ndev, bool enable)
> >  			}
> >  			mutex_unlock(&fep->ptp_clk_mutex);
> >  		}
> > -		if (fep->clk_ref) {
> > -			ret = clk_prepare_enable(fep->clk_ref);
> > -			if (ret)
> > -				goto failed_clk_ref;
> > -		}
> > +
> > +		ret = clk_prepare_enable(fep->clk_ref);
> > +		if (ret)
> > +			goto failed_clk_ref;
> 
> If you want to clean up the code, pls also remove "fep->clk_enet_out" check in this brace.
> 
I would have to reintroduce it in the later patch to frame the call to
fec_reset_phy().


Lothar Waßmann
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1280486 — RE: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock

FromDuan Andy <fugang.duan@freescale.com>
Date2015-12-01 03:00 +0100
SubjectRE: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock
Message-ID<qAIoy-360-11@gated-at.bofh.it>
In reply to#1279785
RnJvbTogTG90aGFyIFdhw59tYW5uIDxMV0BLQVJPLWVsZWN0cm9uaWNzLmRlPiBTZW50OiBNb25k
YXksIE5vdmVtYmVyIDMwLCAyMDE1IDc6MzMgUE0NCj4gVG86IEFuZHJldyBMdW5uOyBEYXZpZCBT
LiBNaWxsZXI7IEVzdGV2YW0gRmFiaW8tUjQ5NDk2OyBHcmVnIFVuZ2VyZXI7DQo+IEtldmluIEhh
bzsgTG90aGFyIFdhw59tYW5uOyBMdWNhcyBTdGFjaDsgRHVhbiBGdWdhbmctQjM4NjExOyBQaGls
aXBwZQ0KPiBSZXluZXM7IFJpY2hhcmQgQ29jaHJhbjsgUnVzc2VsbCBLaW5nOyBTYXNjaGEgSGF1
ZXI7IFN0ZWZhbiBBZ25lcjsgbGludXgtDQo+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IG5ldGRl
dkB2Z2VyLmtlcm5lbC5vcmc7IEplZmYgS2lyc2hlcjsgVXdlIEtsZWluZS0NCj4gS8O2bmlnDQo+
IFN1YmplY3Q6IFtQQVRDSCAwLzNdIG5ldDogZmVjOiBSZXNldCBldGhlcm5ldCBQSFkgd2hlbmV2
ZXIgdGhlIGVuZXRfb3V0DQo+IGNsb2NrDQo+IA0KPiBUaGlzIHBhdGNoc2V0IGZpeGVzIGEgcmVn
cmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4ZmZmNzU1ZTlmOGQgKCJuZXQ6DQo+IGZlYzog
RW5zdXJlIGNsb2NrcyBhcmUgZW5hYmxlZCB3aGlsZSB1c2luZyBtZGlvIGJ1cyIpIGZvciBldGhl
cm5ldCBQSFlzDQo+IHRoYXQgYXJlIHVzaW5nIEVORVRfT1VUIGFzIHJlZmVyZW5jZSBjbG9jayAo
b24gaS5NWDYgb3IgaS5NWDI4KQ0KPiANCkRvIHlvdSBtZWFuIGNvbW1pdCA4ZmZmNzU1ZTlmOGQg
Y2F1c2UgeW91ciBwcm9ibGVtID8gIFRoaXMgY29tbWl0IGp1c3QgbWFuYWdlIGlwZyBjbG9jayBp
biBydW50aW1lIGJlY2F1c2UgbWRpbyBidXMgY2FuIGFjY2VzcyBleHRlcm5hbCBwaHkgc3dpdGNo
IG5vIG1hdHRlciBuZXRkZXYgc3RhdHVzLg0KDQpJIGRvbid0IHRoaW5rIHRoZSBjb21taXQgY2F1
c2UgcGh5IGxpbmsgdXAvZG93biBpc3N1ZS4gIFBoeSBsaW5rIHVwL2Rvd24gaXMgZHVlIHRvIHBo
eSBpcyBub3QgcmVhZHkgYWZ0ZXIgcG93ZXIvY2xvY2sgb24sIGl0IG5lZWQgdG8gZG8gcmVzZXQu
DQoNCg0KPiBUaGUgZmlyc3QgcGF0Y2ggaXMgYSBjbGVhbnVwIHBhdGNoIHRoYXQgcmVtb3ZlcyBy
ZWR1bmRhbnQgTlVMTCBjaGVja3MuDQo+IFRoZSBzZWNvbmQgcGF0Y2ggY29udmVydHMgdGhlIGRy
aXZlciB0byB1c2UgdGhlICdncGlvZCcgZnJhbWV3b3JrLg0KPiBUaGUgdGhpcmQgcGF0Y2ggbWFr
ZXMgc3VyZSwgZmVjX3Jlc2V0X3BoeSgpIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUNCj4gICAgIGVu
ZXRfb3V0IGNsb2NrIGhhcyBiZWVuIChyZS0pZW5hYmxlZCB0byBnZXQgdGhlIFBIWSBpbnRvIGEN
Cj4gICAgIGNvbnNpc3RlbnQgc3RhdGUuDQo=
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1280607 — Re: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock

FromLothar Waßmann <LW@KARO-electronics.de>
Date2015-12-01 08:30 +0100
SubjectRe: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock
Message-ID<qANxT-6yD-1@gated-at.bofh.it>
In reply to#1280486
Hi,

> From: Lothar Waßmann <LW@KARO-electronics.de> Sent: Monday, November 30, 2015 7:33 PM
> > To: Andrew Lunn; David S. Miller; Estevam Fabio-R49496; Greg Ungerer;
> > Kevin Hao; Lothar Waßmann; Lucas Stach; Duan Fugang-B38611; Philippe
> > Reynes; Richard Cochran; Russell King; Sascha Hauer; Stefan Agner; linux-
> > kernel@vger.kernel.org; netdev@vger.kernel.org; Jeff Kirsher; Uwe Kleine-
> > König
> > Subject: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out
> > clock
> > 
> > This patchset fixes a regression introduced by commit 8fff755e9f8d ("net:
> > fec: Ensure clocks are enabled while using mdio bus") for ethernet PHYs
> > that are using ENET_OUT as reference clock (on i.MX6 or i.MX28)
> > 
> Do you mean commit 8fff755e9f8d cause your problem ?  This commit just manage ipg clock in runtime because mdio bus can access external phy switch no matter netdev status.
> 
No. Actually I meant commit e8fcfcd5684a ("net: fec: optimize the clock management to save power")
which started to disable the clocks when not in use.

Sorry for the confusion,
Lothar Waßmann
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1280617 — RE: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock

FromDuan Andy <fugang.duan@freescale.com>
Date2015-12-01 08:40 +0100
SubjectRE: [PATCH 0/3] net: fec: Reset ethernet PHY whenever the enet_out clock
Message-ID<qANHz-6Cu-5@gated-at.bofh.it>
In reply to#1280607
RnJvbTogTG90aGFyIFdhw59tYW5uIDxMV0BLQVJPLWVsZWN0cm9uaWNzLmRlPiBTZW50OiBUdWVz
ZGF5LCBEZWNlbWJlciAwMSwgMjAxNSAzOjI1IFBNDQo+IFRvOiBEdWFuIEZ1Z2FuZy1CMzg2MTEN
Cj4gQ2M6IEFuZHJldyBMdW5uOyBEYXZpZCBTLiBNaWxsZXI7IEVzdGV2YW0gRmFiaW8tUjQ5NDk2
OyBHcmVnIFVuZ2VyZXI7DQo+IEtldmluIEhhbzsgTHVjYXMgU3RhY2g7IFBoaWxpcHBlIFJleW5l
czsgUmljaGFyZCBDb2NocmFuOyBSdXNzZWxsIEtpbmc7DQo+IFNhc2NoYSBIYXVlcjsgU3RlZmFu
IEFnbmVyOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOw0KPiBuZXRkZXZAdmdlci5rZXJu
ZWwub3JnOyBKZWZmIEtpcnNoZXI7IFV3ZSBLbGVpbmUtSz9uaWcNCj4gU3ViamVjdDogUmU6IFtQ
QVRDSCAwLzNdIG5ldDogZmVjOiBSZXNldCBldGhlcm5ldCBQSFkgd2hlbmV2ZXIgdGhlDQo+IGVu
ZXRfb3V0IGNsb2NrDQo+IA0KPiBIaSwNCj4gDQo+ID4gRnJvbTogTG90aGFyIFdhw59tYW5uIDxM
V0BLQVJPLWVsZWN0cm9uaWNzLmRlPiBTZW50OiBNb25kYXksIE5vdmVtYmVyDQo+ID4gMzAsIDIw
MTUgNzozMyBQTQ0KPiA+ID4gVG86IEFuZHJldyBMdW5uOyBEYXZpZCBTLiBNaWxsZXI7IEVzdGV2
YW0gRmFiaW8tUjQ5NDk2OyBHcmVnDQo+ID4gPiBVbmdlcmVyOyBLZXZpbiBIYW87IExvdGhhciBX
YcOfbWFubjsgTHVjYXMgU3RhY2g7IER1YW4gRnVnYW5nLUIzODYxMTsNCj4gPiA+IFBoaWxpcHBl
IFJleW5lczsgUmljaGFyZCBDb2NocmFuOyBSdXNzZWxsIEtpbmc7IFNhc2NoYSBIYXVlcjsgU3Rl
ZmFuDQo+ID4gPiBBZ25lcjsgbGludXgtIGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IG5ldGRldkB2
Z2VyLmtlcm5lbC5vcmc7IEplZmYNCj4gPiA+IEtpcnNoZXI7IFV3ZSBLbGVpbmUtIEvDtm5pZw0K
PiA+ID4gU3ViamVjdDogW1BBVENIIDAvM10gbmV0OiBmZWM6IFJlc2V0IGV0aGVybmV0IFBIWSB3
aGVuZXZlciB0aGUNCj4gPiA+IGVuZXRfb3V0IGNsb2NrDQo+ID4gPg0KPiA+ID4gVGhpcyBwYXRj
aHNldCBmaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSBjb21taXQgOGZmZjc1NWU5Zjhk
DQo+ICgibmV0Og0KPiA+ID4gZmVjOiBFbnN1cmUgY2xvY2tzIGFyZSBlbmFibGVkIHdoaWxlIHVz
aW5nIG1kaW8gYnVzIikgZm9yIGV0aGVybmV0DQo+ID4gPiBQSFlzIHRoYXQgYXJlIHVzaW5nIEVO
RVRfT1VUIGFzIHJlZmVyZW5jZSBjbG9jayAob24gaS5NWDYgb3IgaS5NWDI4KQ0KPiA+ID4NCj4g
PiBEbyB5b3UgbWVhbiBjb21taXQgOGZmZjc1NWU5ZjhkIGNhdXNlIHlvdXIgcHJvYmxlbSA/ICBU
aGlzIGNvbW1pdCBqdXN0DQo+IG1hbmFnZSBpcGcgY2xvY2sgaW4gcnVudGltZSBiZWNhdXNlIG1k
aW8gYnVzIGNhbiBhY2Nlc3MgZXh0ZXJuYWwgcGh5DQo+IHN3aXRjaCBubyBtYXR0ZXIgbmV0ZGV2
IHN0YXR1cy4NCj4gPg0KPiBOby4gQWN0dWFsbHkgSSBtZWFudCBjb21taXQgZThmY2ZjZDU2ODRh
ICgibmV0OiBmZWM6IG9wdGltaXplIHRoZSBjbG9jaw0KPiBtYW5hZ2VtZW50IHRvIHNhdmUgcG93
ZXIiKSB3aGljaCBzdGFydGVkIHRvIGRpc2FibGUgdGhlIGNsb2NrcyB3aGVuIG5vdA0KPiBpbiB1
c2UuDQo+IA0KVW5kZXJzdGFuZC4gWWVzLCBkaXNhYmxlIGVuZXRfb3V0IGNsb2NrIGZvciBwb3dl
ciBzYXZpbmcgaXMgbmVjZXNzYXJ5Lg0KDQo+IFNvcnJ5IGZvciB0aGUgY29uZnVzaW9uLA0KPiBM
b3RoYXIgV2HDn21hbm4NCg==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web