• Claudiu Beznea's avatar
    net: ravb: Wait for operating mode to be applied · 9039cd4c
    Claudiu Beznea authored
    CSR.OPS bits specify the current operating mode and (according to
    documentation) they are updated by HW when the operating mode change
    request is processed. To comply with this check CSR.OPS before proceeding.
    
    Commit introduces ravb_set_opmode() that does all the necessities for
    setting the operating mode (set CCC.OPC (and CCC.GAC, CCC.CSEL, if any) and
    wait for CSR.OPS) and call it where needed. This should comply with all the
    HW manuals requirements as different manual variants specify that different
    modes need to be checked in CSR.OPS when setting CCC.OPC.
    
    If gPTP active in config mode is supported and it needs to be enabled, the
    CCC.GAC and CCC.CSEL needs to be configured along with CCC.OPC in the same
    write access. For this, ravb_set_opmode() allows passing GAC and CSEL as
    part of opmode and the function updates accordingly CCC register.
    
    Fixes: c156633f ("Renesas Ethernet AVB driver proper")
    Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Reviewed-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9039cd4c
ravb_main.c 79.9 KB