Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1279785 > unrolled thread
| Started by | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| First post | 2015-11-30 12:40 +0100 |
| Last post | 2015-12-01 08:40 +0100 |
| Articles | 11 — 3 participants |
Back to article view | Back to linux.kernel
[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
| From | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| Date | 2015-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]
| From | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| Date | 2015-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]
| From | Fabio Estevam <festevam@gmail.com> |
|---|---|
| Date | 2015-11-30 13:20 +0100 |
| Subject | Re: [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]
| From | Duan Andy <fugang.duan@freescale.com> |
|---|---|
| Date | 2015-12-01 03:40 +0100 |
| Subject | RE: [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]
| From | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| Date | 2015-12-01 11:30 +0100 |
| Subject | Re: [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]
| From | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| Date | 2015-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]
| From | Duan Andy <fugang.duan@freescale.com> |
|---|---|
| Date | 2015-12-01 03:10 +0100 |
| Subject | RE: [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]
| From | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| Date | 2015-12-01 08:30 +0100 |
| Subject | Re: [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]
| From | Duan Andy <fugang.duan@freescale.com> |
|---|---|
| Date | 2015-12-01 03:00 +0100 |
| Subject | RE: [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]
| From | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| Date | 2015-12-01 08:30 +0100 |
| Subject | Re: [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]
| From | Duan Andy <fugang.duan@freescale.com> |
|---|---|
| Date | 2015-12-01 08:40 +0100 |
| Subject | RE: [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