From: Sander Vanheule Date: Fri, 9 Sep 2022 17:35:23 +0000 (+0200) Subject: realtek: remove RTL839x path in RTL838x multicast X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=039e5be4af2497bd40414eedb6f83a1c75d06cca;p=openwrt%2Fstaging%2Fxback.git realtek: remove RTL839x path in RTL838x multicast The multicast setup function rtl838x_eth_set_multicast_list() checks if the current SoC is a RTL839x family device. However, the function is only included in the RTL838x ops table, so this path should never be taken, making this dead code. rtl839x_eth_set_multicast_list() is already present in the RTL839x ops table, so it should be safe to remove this branch. While touching the code, also re-sort the functions to match sorting elsewhere, with rtl838x coming before rtl839x. Signed-off-by: Sander Vanheule --- diff --git a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c index d497b4cc8c..7a6057b445 100644 --- a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c +++ b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c @@ -1030,6 +1030,20 @@ static int rtl838x_eth_stop(struct net_device *ndev) return 0; } +static void rtl838x_eth_set_multicast_list(struct net_device *ndev) +{ + if (!(ndev->flags & (IFF_PROMISC | IFF_ALLMULTI))) { + sw_w32(0x0, RTL838X_RMA_CTRL_0); + sw_w32(0x0, RTL838X_RMA_CTRL_1); + } + if (ndev->flags & IFF_ALLMULTI) + sw_w32(0x1fffff, RTL838X_RMA_CTRL_0); + if (ndev->flags & IFF_PROMISC) { + sw_w32(0x1fffff, RTL838X_RMA_CTRL_0); + sw_w32(0x7fff, RTL838X_RMA_CTRL_1); + } +} + static void rtl839x_eth_set_multicast_list(struct net_device *ndev) { if (!(ndev->flags & (IFF_PROMISC | IFF_ALLMULTI))) { @@ -1051,25 +1065,6 @@ static void rtl839x_eth_set_multicast_list(struct net_device *ndev) } } -static void rtl838x_eth_set_multicast_list(struct net_device *ndev) -{ - struct rtl838x_eth_priv *priv = netdev_priv(ndev); - - if (priv->family_id == RTL8390_FAMILY_ID) - return rtl839x_eth_set_multicast_list(ndev); - - if (!(ndev->flags & (IFF_PROMISC | IFF_ALLMULTI))) { - sw_w32(0x0, RTL838X_RMA_CTRL_0); - sw_w32(0x0, RTL838X_RMA_CTRL_1); - } - if (ndev->flags & IFF_ALLMULTI) - sw_w32(0x1fffff, RTL838X_RMA_CTRL_0); - if (ndev->flags & IFF_PROMISC) { - sw_w32(0x1fffff, RTL838X_RMA_CTRL_0); - sw_w32(0x7fff, RTL838X_RMA_CTRL_1); - } -} - static void rtl930x_eth_set_multicast_list(struct net_device *ndev) { if (!(ndev->flags & (IFF_PROMISC | IFF_ALLMULTI))) {