• Florian Fainelli's avatar
    net: phy: broadcom: Fix bcm_write_exp() · e9e03708
    Florian Fainelli authored
    [ Upstream commit 79fb218d ]
    
    On newer PHYs, we need to select the expansion register to write with
    setting bits [11:8] to 0xf. This was done correctly by bcm7xxx.c prior
    to being migrated to generic code under bcm-phy-lib.c which
    unfortunately used the older implementation from the BCM54xx days.
    
    Fix this by creating an inline stub: bcm_write_exp_sel() which adds the
    correct value (MII_BCM54XX_EXP_SEL_ER) and update both the Cygnus PHY
    and BCM7xxx PHY drivers which require setting these bits.
    
    broadcom.c is unchanged because some PHYs even use a different selector
    method, so let them specify it directly (e.g: SerDes secondary selector).
    
    Fixes: a1cba561 ("net: phy: Add Broadcom phy library for common interfaces")
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e9e03708
bcm-cygnus.c 4.04 KB