summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHanyuan Zhao <hanyuan-z@qq.com>2024-08-09 16:57:01 +0800
committerTom Rini <trini@konsulko.com>2024-10-27 10:15:29 -0600
commitba30f462a2678c29b5243f7305b5502240c978f8 (patch)
treeae63a093b4e8489fec7b22aa01134e52637ef2b6
parentc303f4a0dd7a6fba0a3103c1f8f490929ae5b578 (diff)
net: dc2114x: remove the pass all multicast flag in operation mode settings
Remove the OMR_PM flag and choose 16 perfect filtering mode since in modern networks there're plenty of multicasts and set ORM_PM flag will increase the dc2114x's workload and ask the U-Boot to handle packets not related to itself. And most of the time, U-Boot does not need this feature. Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
-rw-r--r--drivers/net/dc2114x.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c
index 11dea9b4d79..e1edda8e19c 100644
--- a/drivers/net/dc2114x.c
+++ b/drivers/net/dc2114x.c
@@ -437,7 +437,16 @@ static int dc21x4x_init_common(struct dc2114x_priv *priv)
return -1;
}
- dc2114x_outl(priv, OMR_SDP | OMR_PS | OMR_PM, DE4X5_OMR);
+ /* 2024-07:
+ * Remove the OMR_PM flag and choose 16 perfect filtering mode since in
+ * modern networks there're plenty of multicasts and set ORM_PM flag will
+ * increase the dc2114x's workload and ask the U-Boot to handle packets
+ * not related to itself. And most of the time, U-Boot does not need this
+ * feature.
+ *
+ * A better way: let user to decide whether to have this flag.
+ */
+ dc2114x_outl(priv, OMR_SDP | OMR_PS, DE4X5_OMR);
for (i = 0; i < NUM_RX_DESC; i++) {
priv->rx_ring[i].status = cpu_to_le32(R_OWN);