netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* am335x: cpsw: phy ignores max-speed setting
@ 2014-11-06 16:25 Yegor Yefremov
  2014-11-06 16:51 ` Dave Taht
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Yegor Yefremov @ 2014-11-06 16:25 UTC (permalink / raw)
  To: netdev; +Cc: N, Mugunthan V, mpa, lsorense, Daniel Mack

I' m trying to override max-speed setting for both CPSW connected
PHYs. This is my DTS section for configuring CPSW:

&mac {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
        dual_emac = <1>;

        status = "okay";
};

&davinci_mdio {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&davinci_mdio_default>;
        pinctrl-1 = <&davinci_mdio_sleep>;

        status = "okay";
};

&cpsw_emac0 {
        phy_id = <&davinci_mdio>, <0>;
        phy-mode = "rgmii-id";
        dual_emac_res_vlan = <1>;
        max-speed = <100>;
};

&cpsw_emac1 {
        phy_id = <&davinci_mdio>, <1>;
        phy-mode = "rgmii-id";
        dual_emac_res_vlan = <2>;
        max-speed = <100>;
};

But in drivers/net/phy/phy_device.c->of_set_phy_supported() routine I
don't get through node check, i.e. node == NULL. Any idea why?

static void of_set_phy_supported(struct phy_device *phydev)
{
        struct device_node *node = phydev->dev.of_node;
        u32 max_speed;

        if (!IS_ENABLED(CONFIG_OF_MDIO))
                return;

        if (!node)
                return;

        if (!of_property_read_u32(node, "max-speed", &max_speed)) {
                /* The default values for phydev->supported are
provided by the PHY
                 * driver "features" member, we want to reset to sane
defaults fist
                 * before supporting higher speeds.
                 */
                phydev->supported &= PHY_DEFAULT_FEATURES;

                switch (max_speed) {
                default:
                        return;

                case SPEED_1000:
                        phydev->supported |= PHY_1000BT_FEATURES;
                case SPEED_100:
                        phydev->supported |= PHY_100BT_FEATURES;
                case SPEED_10:
                        phydev->supported |= PHY_10BT_FEATURES;
                }
        }
}

Yegor

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-11-11 19:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-06 16:25 am335x: cpsw: phy ignores max-speed setting Yegor Yefremov
2014-11-06 16:51 ` Dave Taht
2014-11-06 17:28   ` Eric Dumazet
2014-11-06 19:19   ` Joe Perches
     [not found]     ` <CAA93jw7PTOGdYrmFGSY5zat=MpVsdmESVwpK_tVO=sLeDSWpRA@mail.gmail.com>
2014-11-11 19:08       ` Joe Perches
2014-11-06 16:58 ` Florian Fainelli
2014-11-07  7:11   ` Yegor Yefremov
2014-11-07 16:11     ` Mugunthan V N
2014-11-07 16:27       ` Yegor Yefremov
2014-11-06 19:20 ` Lennart Sorensen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).