aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorSander Vanheule <sander@svanheule.net>2022-09-09 19:35:23 +0200
committerSander Vanheule <sander@svanheule.net>2022-10-23 22:33:08 +0200
commit039e5be4af2497bd40414eedb6f83a1c75d06cca (patch)
tree54f658ce5fbd34a209a247542201dc3822b4cc81 /target
parent19b86658b7f9d6080d7059896a57b8daa67ae941 (diff)
downloadupstream-039e5be4af2497bd40414eedb6f83a1c75d06cca.tar.gz
upstream-039e5be4af2497bd40414eedb6f83a1c75d06cca.tar.bz2
upstream-039e5be4af2497bd40414eedb6f83a1c75d06cca.zip
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 <sander@svanheule.net>
Diffstat (limited to 'target')
-rw-r--r--target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c33
1 files changed, 14 insertions, 19 deletions
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))) {