27 Dec, 2013

1 commit


13 Oct, 2012

1 commit


23 Aug, 2012

1 commit

  • The helper functions which translate IEEE MDIO Manageable Device (MMD)
    Energy-Efficient Ethernet (EEE) registers 3.20, 7.60 and 7.61 to and from
    the comparable ethtool supported/advertised settings will be needed by
    drivers other than those in PHYLIB (e.g. e1000e in a follow-on patch).

    In the same fashion as similar translation functions in linux/mii.h, move
    these functions from the PHYLIB core to the linux/mdio.h header file so the
    code will not have to be duplicated in each driver needing MMD-to-ethtool
    (and vice-versa) translations. The function and some variable names have
    been renamed to be more descriptive.

    Not tested on the only hardware that currently calls the related functions,
    stmmac, because I don't have access to any. Has been compile tested and
    the translations have been tested on a locally modified version of e1000e.

    Signed-off-by: Bruce Allan
    Cc: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Allan, Bruce W
     

01 Jul, 2012

1 commit

  • This patch adds the support for the Energy-Efficient Ethernet (EEE)
    to the Physical Abstraction Layer.
    To support the EEE we have to access to the MMD registers 3.20 and
    7.60/61. So two new functions have been added to read/write the MMD
    registers (clause 45).

    An Ethernet driver (I tested the stmmac) can invoke the phy_init_eee to properly
    check if the EEE is supported by the PHYs and it can also set the clock
    stop enable bit in the 3.0 register.
    The phy_get_eee_err can be used for reporting the number of time where
    the PHY failed to complete its normal wake sequence.

    In the end, this patch also adds the EEE ethtool support implementing:
    o phy_ethtool_set_eee
    o phy_ethtool_get_eee

    v1: initial patch
    v2: fixed some errors especially on naming convention
    v3: renamed again the mmd read/write functions thank to Ben's feedback
    v4: moved file to phy.c and added the ethtool support.
    v5: fixed phy_adv_to_eee, phy_eee_to_supported, phy_eee_to_adv return
    values according to ethtool API (thanks to Ben's feedback).
    Renamed some macros to avoid too long names.
    v6: fixed kernel-doc comments to be properly parsed.
    Fixed the phy_init_eee function: we need to check which link mode
    was autonegotiated and then the corresponding bits in 7.60 and 7.61
    registers.
    v7: reviewed the way to get the negotiated settings.
    v8: fixed a problem in the phy_init_eee return value erroneously added
    when included the phy_read_status call.
    v9: do not remove the MDIO_AN_EEE_ADV_100TX and MDIO_AN_EEE_ADV_1000T
    and fixed the eee_{cap,lp,adv} declaration as "int" instead of u16.

    Signed-off-by: Giuseppe Cavallaro
    Reviewed-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     

04 Mar, 2012

1 commit


02 Mar, 2012

1 commit

  • The ID packing definitions are needed by userland and the register
    definitions may also be useful there.

    Do not export mdio_phy_id_{is_c45,prtad,devad}() as the use of bool is
    problematic and it's not that useful to export only a subset of these.

    Do not export MDIO_SUPPORTS_{C22,C45} directly; these flags are only
    exposed to userland through struct ethtool_cmd so they should be
    defined alongside that with appropriate names.

    Signed-off-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Ben Hutchings
     

07 Dec, 2010

1 commit

  • In commit 52b02d04c801fff51ca49ad033210846d1713253 entitled "tg3: Add
    EEE support", Ben Hutchings had commented that the EEE advertisement
    register will be in a standard location. This patch moves that
    definition into mdio.h and changes the code to use it.

    Signed-off-by: Matt Carlson
    Reviewed-by: Benjamin Li
    Signed-off-by: David S. Miller

    Matt Carlson
     

19 Aug, 2009

1 commit


11 Jun, 2009

1 commit


18 May, 2009

2 commits


30 Apr, 2009

5 commits