Thread (11 messages) 11 messages, 2 authors, 2015-03-31

Re: [PATCH 4/6] of: add API for changing parameters of fixed link

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2015-03-27 16:22:24
Also in: lkml, netdev

2015-03-27 9:07 GMT-07:00 Stas Sergeev [off-list ref]:
27.03.2015 18:41, Florian Fainelli пишет:
quoted
2015-03-27 6:37 GMT-07:00 Stas Sergeev [off-list ref]:
quoted
The following API is added:
- of_phy_fixed_link_set_link() allows to set link state (up/down)
- of_phy_fixed_link_set_speed() allows to set link speed
- of_phy_fixed_link_set_duplex() allows to enable/disable duplex

This API is needed when the MDIO-less link have some other means
of a status passing to MAC, for example with in-band data (SGMII).
MAC driver can then use that API to update the PHY status.
I do not think any of these changes are required, if you look at
drivers/net/dsa/bcm_sf2.c, there is a fixed_link_update callback to
re-act to link up/down interrupts (but this could easily be extended
to speed/duplex as well), by directly modifying a fixed_phy_status
structure.

Can you try that approach in mvneta?
Just to make sure I properly understand what you want.
drivers/net/dsa/bcm_sf2.c registers the .fixed_link_update callback
of struct dsa_switch_driver, which is later called from net/dsa/slave.c's
dsa_slave_fixed_link_update().
Right, that's because there is a two layer model, first in DSA, then
in the switch driver.
Do you want mvneta to register a similar callback in of_mdio, instead
of adding an explicit state-updating functions? Something like
of_phy_fixed_link_set_update_callback()?
You don't need an of_phy_fixed_link_set_update callback, you just need
to provide a fixed_link_update callback in mvneta, that you register,
if and only if you are binding to a fixed PHY which is also SGMII (you
can use a phy-mode property to tell that). So essentially, do the same
thing as net/dsa/slave.c, checking that a PHY is fixed, and if so,
register a fixed_link_update callback, within mvneta, and this
callback updates fixed_phy_status, ala drivers/net/dsa/bcm_sf2.c to
adjust the link parameters.
This will remove a few changes indeed, but perhaps not too much.
Please confirm if this is exactly what you want, and then I try.
Let me know if this is clearer now, if not, I can certainly cook a
patch which does what I am suggesting. Thanks!
-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help