From: Hanyuan Zhao Date: Fri, 9 Aug 2024 08:57:01 +0000 (+0800) Subject: net: dc2114x: remove the pass all multicast flag in operation mode settings X-Git-Url: http://git.dujemihanovic.xyz/%7B%7B%20%24style.RelPermalink%20%7D%7D?a=commitdiff_plain;h=ba30f462a2678c29b5243f7305b5502240c978f8;p=u-boot.git 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 --- diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c index 11dea9b4d7..e1edda8e19 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);