* fixes NAND * adds latest ethernet patches Signed-off-by: John Crispin <john@phrozen.org>
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 441d87495f33fd444a2b2a16f6df07892dac3f89 Mon Sep 17 00:00:00 2001
 | 
						|
From: John Crispin <john@phrozen.org>
 | 
						|
Date: Tue, 3 May 2016 04:12:35 +0200
 | 
						|
Subject: [PATCH 094/102] net-next: mediatek: don't use intermediate variables
 | 
						|
 to store IRQ masks
 | 
						|
 | 
						|
The code currently uses variables to store and never modify the bit masks
 | 
						|
of interrupts. This is legacy code from an early version of the driver
 | 
						|
that supported MIPS based SoCs where the IRQ bits depended on the actual
 | 
						|
SoC. As the bits are the same for all ARM based SoC using this driver we
 | 
						|
can remove the intermediate variables.
 | 
						|
 | 
						|
Signed-off-by: John Crispin <john@phrozen.org>
 | 
						|
---
 | 
						|
 drivers/net/ethernet/mediatek/mtk_eth_soc.c |   22 ++++++++++------------
 | 
						|
 1 file changed, 10 insertions(+), 12 deletions(-)
 | 
						|
 | 
						|
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 | 
						|
index 6a9fbde..13ee15f 100644
 | 
						|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 | 
						|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 | 
						|
@@ -806,7 +806,7 @@ drop:
 | 
						|
 }
 | 
						|
 
 | 
						|
 static int mtk_poll_rx(struct napi_struct *napi, int budget,
 | 
						|
-		       struct mtk_eth *eth, u32 rx_intr)
 | 
						|
+		       struct mtk_eth *eth)
 | 
						|
 {
 | 
						|
 	struct mtk_rx_ring *ring = ð->rx_ring;
 | 
						|
 	int idx = ring->calc_idx;
 | 
						|
@@ -894,7 +894,7 @@ release_desc:
 | 
						|
 	}
 | 
						|
 
 | 
						|
 	if (done < budget)
 | 
						|
-		mtk_w32(eth, rx_intr, MTK_QMTK_INT_STATUS);
 | 
						|
+		mtk_w32(eth, MTK_RX_DONE_INT, MTK_QMTK_INT_STATUS);
 | 
						|
 
 | 
						|
 	return done;
 | 
						|
 }
 | 
						|
@@ -977,28 +977,26 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again)
 | 
						|
 static int mtk_poll(struct napi_struct *napi, int budget)
 | 
						|
 {
 | 
						|
 	struct mtk_eth *eth = container_of(napi, struct mtk_eth, rx_napi);
 | 
						|
-	u32 status, status2, mask, tx_intr, rx_intr, status_intr;
 | 
						|
+	u32 status, status2, mask;
 | 
						|
 	int tx_done, rx_done;
 | 
						|
 	bool tx_again = false;
 | 
						|
 
 | 
						|
 	status = mtk_r32(eth, MTK_QMTK_INT_STATUS);
 | 
						|
 	status2 = mtk_r32(eth, MTK_INT_STATUS2);
 | 
						|
-	tx_intr = MTK_TX_DONE_INT;
 | 
						|
-	rx_intr = MTK_RX_DONE_INT;
 | 
						|
-	status_intr = (MTK_GDM1_AF | MTK_GDM2_AF);
 | 
						|
 	tx_done = 0;
 | 
						|
 	rx_done = 0;
 | 
						|
 	tx_again = 0;
 | 
						|
 
 | 
						|
-	if (status & tx_intr)
 | 
						|
+	if (status & MTK_TX_DONE_INT)
 | 
						|
 		tx_done = mtk_poll_tx(eth, budget, &tx_again);
 | 
						|
 
 | 
						|
-	if (status & rx_intr)
 | 
						|
-		rx_done = mtk_poll_rx(napi, budget, eth, rx_intr);
 | 
						|
+	if (status & MTK_RX_DONE_INT)
 | 
						|
+		rx_done = mtk_poll_rx(napi, budget, eth);
 | 
						|
 
 | 
						|
-	if (unlikely(status2 & status_intr)) {
 | 
						|
+	if (unlikely(status2 & (MTK_GDM1_AF | MTK_GDM2_AF))) {
 | 
						|
 		mtk_stats_update(eth);
 | 
						|
-		mtk_w32(eth, status_intr, MTK_INT_STATUS2);
 | 
						|
+		mtk_w32(eth, (MTK_GDM1_AF | MTK_GDM2_AF),
 | 
						|
+			MTK_INT_STATUS2);
 | 
						|
 	}
 | 
						|
 
 | 
						|
 	if (unlikely(netif_msg_intr(eth))) {
 | 
						|
@@ -1016,7 +1014,7 @@ static int mtk_poll(struct napi_struct *napi, int budget)
 | 
						|
 		return budget;
 | 
						|
 
 | 
						|
 	napi_complete(napi);
 | 
						|
-	mtk_irq_enable(eth, tx_intr | rx_intr);
 | 
						|
+	mtk_irq_enable(eth, MTK_RX_DONE_INT | MTK_RX_DONE_INT);
 | 
						|
 
 | 
						|
 	return rx_done;
 | 
						|
 }
 | 
						|
-- 
 | 
						|
1.7.10.4
 | 
						|
 |