summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHanyuan Zhao <hanyuan-z@qq.com>2024-08-09 16:56:59 +0800
committerTom Rini <trini@konsulko.com>2024-10-27 10:15:29 -0600
commit5fa3e10cec85ddd12d31af14f9fce6c3c0ff37d0 (patch)
treeddd81c5acb3ef1077534cd17aa8d62937b2a345e
parent8c18c53164be0d3793dcf8074bfeb06615335ac9 (diff)
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>
-rw-r--r--drivers/net/Kconfig11
-rw-r--r--drivers/net/dc2114x.c2
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index e27b4a78cd2..804f4b09a20 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -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
diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c
index 8a285742a1c..dc287122210 100644
--- a/drivers/net/dc2114x.c
+++ b/drivers/net/dc2114x.c
@@ -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;