• L
    amd-xgbe: Fix mdio access for non-zero ports and clause 45 PHYs · c76f0642
    Lendacky, Thomas 提交于
    [ Upstream commit 5ab3121beeb76aa6090195b67d237115860dd9ec ]
    
    The XGBE hardware has support for performing MDIO operations using an
    MDIO command request. The driver mistakenly uses the mdio port address
    as the MDIO command request device address instead of the MDIO command
    request port address. Additionally, the driver does not properly check
    for and create a clause 45 MDIO command.
    
    Check the supplied MDIO register to determine if the request is a clause
    45 operation (MII_ADDR_C45). For a clause 45 operation, extract the device
    address and register number from the supplied MDIO register and use them
    to set the MDIO command request device address and register number fields.
    For a clause 22 operation, the MDIO request device address is set to zero
    and the MDIO command request register number is set to the supplied MDIO
    register. In either case, the supplied MDIO port address is used as the
    MDIO command request port address.
    
    Fixes: 732f2ab7 ("amd-xgbe: Add support for MDIO attached PHYs")
    Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
    Tested-by: NShyam Sundar S K <Shyam-sundar.S-k@amd.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    c76f0642
xgbe-dev.c 98.9 KB