From 76a629ee35d6f3b0d428acc2674fa49caddf3745 Mon Sep 17 00:00:00 2001
From: Milan Krstic <milan.krstic@gmail.com>
Date: Mon, 21 Jan 2019 22:26:33 +0100
Subject: ath79: ag71xx: preserve port mirror flags during swconfig apply

The swconfig load operation always triggers 'apply' function which in
this driver currently clears port mirroring flags effectively undoing
port mirroring configuration.

Signed-off-by: Milan Krstic <milan.krstic@gmail.com>
---
 .../ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c   | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'target/linux/ath79/files')

diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
index 173c16a53d..77f7670c2b 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
@@ -742,6 +742,10 @@ static void ar7240sw_setup_port(struct ar7240sw *as, unsigned port, u8 portmask)
 			portmask = ar7240sw_port_mask(as, AR7240_PORT_CPU);
 	}
 
+	/* preserve mirror rx&tx flags */
+	ctrl |= ar7240sw_reg_read(mii, AR7240_REG_PORT_CTRL(port)) &
+		(AR7240_PORT_CTRL_MIRROR_RX | AR7240_PORT_CTRL_MIRROR_TX);
+
 	/* allow the port to talk to all other ports, but exclude its
 	 * own ID to prevent frames from being reflected back to the
 	 * port that they came from */
-- 
cgit v1.2.3