Patchwork [U-Boot,RFC] export genphy_parse_link()

login
register
mail settings
Submitter Yegor Yefremov
Date Nov. 26, 2012, 2:30 p.m.
Message ID <CAGm1_kv2=9UM2PG3S1J-W+mnASWo+MQ3qd0W6dmB8QQv2X4wnw@mail.gmail.com>
Download mbox | patch
Permalink /patch/201708/
State Superseded
Headers show

Comments

Yegor Yefremov - Nov. 26, 2012, 2:30 p.m.
I'm porting a phy driver from Linux to u-boot and was able to use
genphy_parse_link() without a problem. As mentioned in comment to
genphy_parse_link(), the routine itself was taken from Linux kernel
and many phy drivers are using this generic function.

Why wasn't it exported? Are there any issues?

Regards,
Yegor

From c20576e3ddbf92e68837238a2aef9c6c83c6fea2 Mon Sep 17 00:00:00 2001
From: Yegor Yefremov <yegorslists@googlemail.com>
Date: Mon, 26 Nov 2012 15:25:55 +0100
Subject: [PATCH] phy: export genphy_parse_link()

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
 drivers/net/phy/phy.c |    2 +-
 include/phy.h         |    1 +
 2 files changed, 2 insertions(+), 1 deletions(-)

--
1.7.7
Marek Vasut - Nov. 27, 2012, 2:57 a.m.
Dear Yegor Yefremov,

> I'm porting a phy driver from Linux to u-boot and was able to use
> genphy_parse_link() without a problem. As mentioned in comment to
> genphy_parse_link(), the routine itself was taken from Linux kernel
> and many phy drivers are using this generic function.
> 
> Why wasn't it exported? Are there any issues?

Ccing Joe ... do you have any consumer for this now exported function?

[...]

Best regards,
Marek Vasut
Yegor Yefremov - Nov. 27, 2012, 6:55 a.m.
On Tue, Nov 27, 2012 at 3:57 AM, Marek Vasut <marex@denx.de> wrote:
> Dear Yegor Yefremov,
>
>> I'm porting a phy driver from Linux to u-boot and was able to use
>> genphy_parse_link() without a problem. As mentioned in comment to
>> genphy_parse_link(), the routine itself was taken from Linux kernel
>> and many phy drivers are using this generic function.
>>
>> Why wasn't it exported? Are there any issues?
>
> Ccing Joe ... do you have any consumer for this now exported function?

Yes, I'm about to submit a phy driver for ICPlus phy and need this
export. I tested it with both 100mbit and 1Gbit switches. In both
cases phy reported the correct speed.

Yegor
Yegor Yefremov - Nov. 28, 2012, 10:17 a.m.
On Tue, Nov 27, 2012 at 7:55 AM, Yegor Yefremov
<yegorslists@googlemail.com> wrote:
> On Tue, Nov 27, 2012 at 3:57 AM, Marek Vasut <marex@denx.de> wrote:
>> Dear Yegor Yefremov,
>>
>>> I'm porting a phy driver from Linux to u-boot and was able to use
>>> genphy_parse_link() without a problem. As mentioned in comment to
>>> genphy_parse_link(), the routine itself was taken from Linux kernel
>>> and many phy drivers are using this generic function.
>>>
>>> Why wasn't it exported? Are there any issues?
>>
>> Ccing Joe ... do you have any consumer for this now exported function?
>
> Yes, I'm about to submit a phy driver for ICPlus phy and need this
> export. I tested it with both 100mbit and 1Gbit switches. In both
> cases phy reported the correct speed.

I've sent a patch series: first patch is exporting the
genphy_parse_link() the second is adding ICPlus driver.

Yegor

Patch

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 1ffa791..c28ea70 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -279,7 +279,7 @@  int genphy_update_link(struct phy_device *phydev)
  *
  * Stolen from Linux's mii.c and phy_device.c
  */
-static int genphy_parse_link(struct phy_device *phydev)
+int genphy_parse_link(struct phy_device *phydev)
 {
        int mii_reg = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMSR);

diff --git a/include/phy.h b/include/phy.h
index 3c30f11..1342ef7 100644
--- a/include/phy.h
+++ b/include/phy.h
@@ -209,6 +209,7 @@  int phy_register(struct phy_driver *drv);
 int genphy_config_aneg(struct phy_device *phydev);
 int genphy_restart_aneg(struct phy_device *phydev);
 int genphy_update_link(struct phy_device *phydev);
+int genphy_parse_link(struct phy_device *phydev);
 int genphy_config(struct phy_device *phydev);
 int genphy_startup(struct phy_device *phydev);
 int genphy_shutdown(struct phy_device *phydev);