net: dc2114x: allow users to decide whether to detect the tx No Carrier errors

Some IP cores of dc2114x or its variants do not comply so well with
the behaviors described by the official document. A packet could be
sent successfully but reported with No Carrier error. Latest drivers
of this IP core have not detect this error anymore.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
This commit is contained in:
Hanyuan Zhao
2024-08-09 16:56:59 +08:00
committed by Tom Rini
parent 8c18c53164
commit 5fa3e10cec
2 changed files with 13 additions and 0 deletions

View File

@@ -770,6 +770,17 @@ config TULIP_SUPPORT_NON_PCI
Say Y to this and you can run this driver on platforms that do not
have PCI controllers.
config TULIP_IGNORE_TX_NO_CARRIER
bool "Ignore tx no carrier error"
depends on TULIP
default n
help
Some IP cores of dc2114x or its variants do not comply so well with
the behaviors described by the official document. A packet could be
sent successfully but reported with No Carrier error. Latest drivers
of this IP core do not detect this error anymore. Say Y to this could
disable handling of this error.
config XILINX_AXIEMAC
select PHYLIB
select MII

View File

@@ -371,7 +371,9 @@ static int dc21x4x_send_common(struct dc2114x_priv *priv, void *packet, int leng
if (le32_to_cpu(priv->tx_ring[priv->tx_new].status) & TD_ES) {
priv->tx_ring[priv->tx_new].status = 0x0;
#if !CONFIG_IS_ENABLED(TULIP_IGNORE_TX_NO_CARRIER)
goto done;
#endif
}
status = length;