]> git.dujemihanovic.xyz Git - linux.git/commit
net: ravb: Wait for operating mode to be applied
authorClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Wed, 3 Jan 2024 08:13:53 +0000 (10:13 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Jan 2024 10:54:36 +0000 (10:54 +0000)
commit9039cd4c61635b2d541009a7cd5e2cc052402f28
treea769e6c723e793efac12a8f7eff3b963bacf96fd
parenteaac6a2d26b65511e164772bec6918fcbc61938e
net: ravb: Wait for operating mode to be applied

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: c156633f1353 ("Renesas Ethernet AVB driver proper")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/ravb_main.c