12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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(-)
- --- 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 *e
- 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 *
- 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;
- }
|