From: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Thu, 1 Oct 2020 13:52:57 +0300
This patch adds multi-port support to TI AM65x CPSW driver xmit/rx path in
preparation for adding support for multi-port devices, like Main CPSW0 on
K3 J721E SoC or future CPSW3g on K3 AM64x SoC.
Hence DMA channels are common/shared for all ext Ports and the RX/TX NAPI
and DMA processing going to be assigned to first netdev this patch:
- ensures all RX descriptors fields are initialized;
- adds synchronization for TX DMA push/pop operation (locking) as
Networking core is not enough any more;
- updates TX bql processing for every packet in
am65_cpsw_nuss_tx_compl_packets() as every completed TX skb can have
different ndev assigned (come from different netdevs).
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
This locking is unnecessary in single-port non-shared DMA situations
and therefore will impose unnecessary performance loss for basically
all existing supported setups.
Please do this another way.
In fact, I would encourage you to find a way to avoid the new atomic
operations even in multi-port configurations.