[U-Boot,RFC] export genphy_parse_link()

Submitted by Yegor Yefremov on Nov. 26, 2012, 2:30 p.m.

Details

Message ID CAGm1_kv2=9UM2PG3S1J-W+mnASWo+MQ3qd0W6dmB8QQv2X4wnw@mail.gmail.com
State Superseded
Headers show

Commit Message

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

Comments

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 hide | download patch | download mbox

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);