]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: dc2114x: allow users to decide whether to detect the tx No Carrier errors
authorHanyuan Zhao <hanyuan-z@qq.com>
Fri, 9 Aug 2024 08:56:59 +0000 (16:56 +0800)
committerTom Rini <trini@konsulko.com>
Sun, 27 Oct 2024 16:15:29 +0000 (10:15 -0600)
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>
drivers/net/Kconfig
drivers/net/dc2114x.c

index e27b4a78cd2f836da309599b3234b16d1be70892..804f4b09a208f8818cf7aa4fa0c5e2cf0d6e1f8a 100644 (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
index 8a285742a1c184fc2e3cf6a4f07fdd38f6baeb78..dc2871222101fef9956888acfa9944e0681d5f96 100644 (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;