cpsw cleanups
Subsystems (3)
cover cpsw cleanups
While working on an out-of-tree customization, I noticed a few minor problems in the cpsw code. This series cleans up the issues I found.
Thanks,
Richard
Richard Cochran (4):
net: cpsw: fix misplaced break statements.
net: cpsw: remove two unused global functions
net: cpsw: remove redundant calls enabling dma interrupts.
net: cpsw: remove redundant calls disabling dma interrupts.
drivers/net/ethernet/ti/cpsw.c | 9 ++------ drivers/net/ethernet/ti/cpsw_ale.c | 45 -------------------------------------- drivers/net/ethernet/ti/cpsw_ale.h | 2 -- 3 files changed, 2 insertions(+), 54 deletions(-)
Signature · 1 line
2.1.4
PATCH 1/4 net: cpsw: fix misplaced break statements.
Having the breaks too far to the left makes parsing the dense switch/case block unnecessarily harder.
--- drivers/net/ethernet/ti/cpsw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/ethernet/ti/cpsw.c +2 -2
@@ -1456,7 +1456,7 @@ static void cpsw_hwtstamp_v2(struct cpsw_priv *priv)if (priv->cpts->rx_enable) ctrl |=CTRL_V2_RX_TS_BITS ; -break ; +break ;case CPSW_VERSION_3 :default : ctrl &= ~CTRL_V3_ALL_TS_MASK ;
@@ -1466,7 +1466,7 @@ static void cpsw_hwtstamp_v2(struct cpsw_priv *priv)if (priv->cpts->rx_enable) ctrl |=CTRL_V3_RX_TS_BITS ; -break ; +break ; } mtype = (30 <<TS_SEQ_ID_OFFSET_SHIFT ) |EVENT_MSG_BITS ;
Signature · 1 line
2.1.4
PATCH 2/4 net: cpsw: remove two unused global functions
In reply to Richard CochranThe funtions, cpsw_ale_flush and cpsw_ale_set_ageout, have never been used since they were first introduced. This patch removes the dead code.
--- drivers/net/ethernet/ti/cpsw_ale.c | 45 -------------------------------------- drivers/net/ethernet/ti/cpsw_ale.h | 2 -- 2 files changed, 47 deletions(-)
drivers/net/ethernet/ti/cpsw_ale.c +0 -45
@@ -268,39 +268,6 @@ int cpsw_ale_flush_multicast(struct cpsw_ale *ale, int port_mask, int vid) }EXPORT_SYMBOL_GPL (cpsw_ale_flush_multicast); -static void cpsw_ale_flush_ucast (struct cpsw_ale *ale,u32 *ale_entry, -int port_mask) -{ -int port; - - port =cpsw_ale_get_port_num (ale_entry); -if ((BIT (port) & port_mask) ==0 ) -return ;/* ports dont intersect, not interested */ -cpsw_ale_set_entry_type (ale_entry,ALE_TYPE_FREE ); -} - -int cpsw_ale_flush (struct cpsw_ale *ale,int port_mask) -{ -u32 ale_entry[ALE_ENTRY_WORDS ]; -int ret, idx; - -for (idx =0 ; idx < ale->params.ale_entries; idx++) { -cpsw_ale_read (ale, idx, ale_entry); - ret =cpsw_ale_get_entry_type (ale_entry); -if (ret !=ALE_TYPE_ADDR && ret !=ALE_TYPE_VLAN_ADDR ) -continue ; - -if (cpsw_ale_get_mcast (ale_entry)) -cpsw_ale_flush_mcast (ale, ale_entry, port_mask); -else -cpsw_ale_flush_ucast (ale, ale_entry, port_mask); - -cpsw_ale_write (ale, idx, ale_entry); - } -return 0 ; -} -EXPORT_SYMBOL_GPL (cpsw_ale_flush); -static inline void cpsw_ale_set_vlan_entry_type (u32 *ale_entry,int flags,u16 vid) {
@@ -752,18 +719,6 @@ static void cpsw_ale_timer(unsigned long arg) } } -int cpsw_ale_set_ageout (struct cpsw_ale *ale,int ageout) -{ -del_timer_sync (&ale->timer); - ale->ageout = ageout *HZ ; -if (ale->ageout) { - ale->timer.expires = jiffies + ale->ageout; -add_timer (&ale->timer); - } -return 0 ; -} -EXPORT_SYMBOL_GPL (cpsw_ale_set_ageout); -void cpsw_ale_start (struct cpsw_ale *ale) {u32 rev;
drivers/net/ethernet/ti/cpsw_ale.h +0 -2
@@ -90,8 +90,6 @@ int cpsw_ale_destroy(struct cpsw_ale *ale);void cpsw_ale_start (struct cpsw_ale *ale);void cpsw_ale_stop (struct cpsw_ale *ale); -int cpsw_ale_set_ageout (struct cpsw_ale *ale,int ageout); -int cpsw_ale_flush (struct cpsw_ale *ale,int port_mask);int cpsw_ale_flush_multicast (struct cpsw_ale *ale,int port_mask,int vid);int cpsw_ale_add_ucast (struct cpsw_ale *ale,u8 *addr,int port,int flags,u16 vid);
Signature · 1 line
2.1.4
PATCH 3/4 net: cpsw: remove redundant calls enabling dma interrupts.
In reply to Richard CochranThe function, cpsw_intr_enable, already calls cpdma_ctlr_int_ctrl. There is no need to enable the dma interrupts twice. This patch removes the extra call.
--- drivers/net/ethernet/ti/cpsw.c | 2 -- 1 file changed, 2 deletions(-)
drivers/net/ethernet/ti/cpsw.c +0 -2
@@ -1592,7 +1592,6 @@ static void cpsw_ndo_tx_timeout(struct net_device *ndev)cpdma_ctlr_int_ctrl (priv->dma, false);cpdma_chan_stop (priv->txch);cpdma_chan_start (priv->txch); -cpdma_ctlr_int_ctrl (priv->dma, true);cpsw_intr_enable (priv); }
@@ -1632,7 +1631,6 @@ static void cpsw_ndo_poll_controller(struct net_device *ndev)cpdma_ctlr_int_ctrl (priv->dma, false);cpsw_rx_interrupt (priv->irqs_table[0 ], priv);cpsw_tx_interrupt (priv->irqs_table[1 ], priv); -cpdma_ctlr_int_ctrl (priv->dma, true); cpsw_intr_enable(priv); }#endif
Signature · 1 line
2.1.4
PATCH 4/4 net: cpsw: remove redundant calls disabling dma interrupts.
In reply to Richard CochranThe function, cpsw_intr_disable, already calls cpdma_ctlr_int_ctrl. There is no need to disable the dma interrupts twice. This patch removes the extra calls.
--- drivers/net/ethernet/ti/cpsw.c | 3 --- 1 file changed, 3 deletions(-)
drivers/net/ethernet/ti/cpsw.c +0 -3
@@ -1361,7 +1361,6 @@ static int cpsw_ndo_stop(struct net_device *ndev)if (cpsw_common_res_usage_state (priv) <=1 ) {cpts_unregister (priv->cpts);cpsw_intr_disable (priv); -cpdma_ctlr_int_ctrl (priv->dma, false);cpdma_ctlr_stop (priv->dma);cpsw_ale_stop (priv->ale); }
@@ -1589,7 +1588,6 @@ static void cpsw_ndo_tx_timeout(struct net_device *ndev)cpsw_err (priv, tx_err,"transmit timeout, restarting dma\n" ); ndev->stats.tx_errors++;cpsw_intr_disable (priv); -cpdma_ctlr_int_ctrl (priv->dma, false);cpdma_chan_stop (priv->txch);cpdma_chan_start (priv->txch);cpsw_intr_enable (priv);
@@ -1628,7 +1626,6 @@ static void cpsw_ndo_poll_controller(struct net_device *ndev)struct cpsw_priv *priv =netdev_priv (ndev);cpsw_intr_disable (priv); -cpdma_ctlr_int_ctrl (priv->dma, false);cpsw_rx_interrupt (priv->irqs_table[0 ], priv);cpsw_tx_interrupt (priv->irqs_table[1 ], priv);cpsw_intr_enable (priv);
Signature · 1 line
2.1.4
David Miller
maintainerFrom: Richard Cochran <[email protected]>
Date: Mon, 25 May 2015 11:02:12 +0200
Quoted 2 lines
While working on an out-of-tree customization, I noticed a few minor problems in the cpsw code. This series cleans up the issues I found.
Series applied, thanks Richard.