Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95e3bb7a authored by Richard Cochran's avatar Richard Cochran Committed by David S. Miller
Browse files

ixp4xx: Support the all multicast flag on the NPE devices.



This patch adds support for the IFF_ALLMULTI flag. Previously only the
IFF_PROMISC flag was supported.

Signed-off-by: default avatarRichard Cochran <richard.cochran@omicron.at>
Acked-By: default avatarKrzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5d55354f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -738,6 +738,17 @@ static void eth_set_mcast_list(struct net_device *dev)
	struct netdev_hw_addr *ha;
	u8 diffs[ETH_ALEN], *addr;
	int i;
	static const u8 allmulti[] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 };

	if (dev->flags & IFF_ALLMULTI) {
		for (i = 0; i < ETH_ALEN; i++) {
			__raw_writel(allmulti[i], &port->regs->mcast_addr[i]);
			__raw_writel(allmulti[i], &port->regs->mcast_mask[i]);
		}
		__raw_writel(DEFAULT_RX_CNTRL0 | RX_CNTRL0_ADDR_FLTR_EN,
			&port->regs->rx_control[0]);
		return;
	}

	if ((dev->flags & IFF_PROMISC) || netdev_mc_empty(dev)) {
		__raw_writel(DEFAULT_RX_CNTRL0 & ~RX_CNTRL0_ADDR_FLTR_EN,