• Serge Semin's avatar
    net: mdio: mdio-bitbang: Fix C45 read/write protocol · 2572ce62
    Serge Semin authored
    Based on the original code semantic in case of Clause 45 MDIO, the address
    command is supposed to be followed by the command sending the MMD address,
    not the CSR address. The commit 002dd3de ("net: mdio: mdio-bitbang:
    Separate C22 and C45 transactions") has erroneously broken that. So most
    likely due to an unfortunate variable name it switched the code to sending
    the CSR address. In our case it caused the protocol malfunction so the
    read operation always failed with the turnaround bit always been driven to
    one by PHY instead of zero. Fix that by getting back the correct
    behaviour: sending MMD address command right after the regular address
    command.
    
    Fixes: 002dd3de ("net: mdio: mdio-bitbang: Separate C22 and C45 transactions")
    Signed-off-by: default avatarSerge Semin <fancer.lancer@gmail.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2572ce62
mdio-bitbang.c 6.13 KB