• Serge Semin's avatar
    net: pcs: xpcs: Introduce DW XPCS info structure · bcac735c
    Serge Semin authored
    The being introduced structure will preserve the PCS and PMA IDs retrieved
    from the respective DW XPCS MMDs or potentially pre-defined by the client
    drivers. (The later change will be introduced later in the framework of
    the commit adding the memory-mapped DW XPCS devices support.)
    
    The structure fields are filled in in the xpcs_get_id() function, which
    used to be responsible for the PCS Device ID getting only. Besides of the
    PCS ID the method now fetches the PMA/PMD IDs too from MMD 1, which used
    to be done in xpcs_dev_flag(). The retrieved PMA ID will be from now
    utilized for the PMA-specific tweaks like it was introduced for the
    Wangxun TxGBE PCS in the commit f629acc6 ("net: pcs: xpcs: support to
    switch mode for Wangxun NICs").
    
    Note 1. The xpcs_get_id() error-handling semantics has been changed. From
    now the error number will be returned from the function. There is no point
    in the next IOs or saving 0xffs and then looping over the actual device
    IDs if device couldn't be reached. -ENODEV will be returned if the very
    first IO operation failed thus indicating that no device could be found.
    
    Note 2. The PCS and PMA IDs macros have been converted to enum'es. The
    enum'es will be populated later in another commit with the virtual IDs
    identifying the DW XPCS devices which have some platform-specifics, but
    have been synthesized with the default PCS/PMA ID.
    Signed-off-by: default avatarSerge Semin <fancer.lancer@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bcac735c
pcs-xpcs.c 36 KB