aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetri Gynther <pgynther@google.com>2015-03-25 15:35:12 -0400
committerDavid S. Miller <davem@davemloft.net>2015-03-27 17:26:14 -0400
commitb2e97eca88f07d1a4dae691ad8d751ba1de15645 (patch)
tree997ce6dcc5ea2d674e919ec03e403912e04d96d9
parentebbd96fb2861f591df011cd0eac67dd367596cca (diff)
net: bcmgenet: tweak init_umac()
Use more meaningful variable names int0_enable and int1_enable when enabling bcmgenet interrupts. For Rx default queue interrupts, use: UMAC_IRQ_RXDMA_BDONE | UMAC_IRQ_RXDMA_PDONE For Tx default queue interrupts, use: UMAC_IRQ_TXDMA_BDONE | UMAC_IRQ_TXDMA_PDONE Signed-off-by: Petri Gynther <pgynther@google.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 1c9f9b418c52..68873beba760 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -1652,8 +1652,10 @@ static int init_umac(struct bcmgenet_priv *priv)
1652{ 1652{
1653 struct device *kdev = &priv->pdev->dev; 1653 struct device *kdev = &priv->pdev->dev;
1654 int ret; 1654 int ret;
1655 u32 reg, cpu_mask_clear; 1655 u32 reg;
1656 int index; 1656 u32 int0_enable = 0;
1657 u32 int1_enable = 0;
1658 int i;
1657 1659
1658 dev_dbg(&priv->pdev->dev, "bcmgenet: init_umac\n"); 1660 dev_dbg(&priv->pdev->dev, "bcmgenet: init_umac\n");
1659 1661
@@ -1680,15 +1682,17 @@ static int init_umac(struct bcmgenet_priv *priv)
1680 1682
1681 bcmgenet_intr_disable(priv); 1683 bcmgenet_intr_disable(priv);
1682 1684
1683 cpu_mask_clear = UMAC_IRQ_RXDMA_BDONE | UMAC_IRQ_TXDMA_BDONE; 1685 /* Enable Rx default queue 16 interrupts */
1686 int0_enable |= (UMAC_IRQ_RXDMA_BDONE | UMAC_IRQ_RXDMA_PDONE);
1684 1687
1685 dev_dbg(kdev, "%s:Enabling RXDMA_BDONE interrupt\n", __func__); 1688 /* Enable Tx default queue 16 interrupts */
1689 int0_enable |= (UMAC_IRQ_TXDMA_BDONE | UMAC_IRQ_TXDMA_PDONE);
1686 1690
1687 /* Monitor cable plug/unplugged event for internal PHY */ 1691 /* Monitor cable plug/unplugged event for internal PHY */
1688 if (phy_is_internal(priv->phydev)) { 1692 if (phy_is_internal(priv->phydev)) {
1689 cpu_mask_clear |= (UMAC_IRQ_LINK_DOWN | UMAC_IRQ_LINK_UP); 1693 int0_enable |= (UMAC_IRQ_LINK_DOWN | UMAC_IRQ_LINK_UP);
1690 } else if (priv->ext_phy) { 1694 } else if (priv->ext_phy) {
1691 cpu_mask_clear |= (UMAC_IRQ_LINK_DOWN | UMAC_IRQ_LINK_UP); 1695 int0_enable |= (UMAC_IRQ_LINK_DOWN | UMAC_IRQ_LINK_UP);
1692 } else if (priv->phy_interface == PHY_INTERFACE_MODE_MOCA) { 1696 } else if (priv->phy_interface == PHY_INTERFACE_MODE_MOCA) {
1693 reg = bcmgenet_bp_mc_get(priv); 1697 reg = bcmgenet_bp_mc_get(priv);
1694 reg |= BIT(priv->hw_params->bp_in_en_shift); 1698 reg |= BIT(priv->hw_params->bp_in_en_shift);
@@ -1703,13 +1707,14 @@ static int init_umac(struct bcmgenet_priv *priv)
1703 1707
1704 /* Enable MDIO interrupts on GENET v3+ */ 1708 /* Enable MDIO interrupts on GENET v3+ */
1705 if (priv->hw_params->flags & GENET_HAS_MDIO_INTR) 1709 if (priv->hw_params->flags & GENET_HAS_MDIO_INTR)
1706 cpu_mask_clear |= UMAC_IRQ_MDIO_DONE | UMAC_IRQ_MDIO_ERROR; 1710 int0_enable |= (UMAC_IRQ_MDIO_DONE | UMAC_IRQ_MDIO_ERROR);
1707 1711
1708 bcmgenet_intrl2_0_writel(priv, cpu_mask_clear, INTRL2_CPU_MASK_CLEAR); 1712 /* Enable Tx priority queue interrupts */
1713 for (i = 0; i < priv->hw_params->tx_queues; ++i)
1714 int1_enable |= (1 << i);
1709 1715
1710 for (index = 0; index < priv->hw_params->tx_queues; index++) 1716 bcmgenet_intrl2_0_writel(priv, int0_enable, INTRL2_CPU_MASK_CLEAR);
1711 bcmgenet_intrl2_1_writel(priv, (1 << index), 1717 bcmgenet_intrl2_1_writel(priv, int1_enable, INTRL2_CPU_MASK_CLEAR);
1712 INTRL2_CPU_MASK_CLEAR);
1713 1718
1714 /* Enable rx/tx engine.*/ 1719 /* Enable rx/tx engine.*/
1715 dev_dbg(kdev, "done init umac\n"); 1720 dev_dbg(kdev, "done init umac\n");
@@ -2111,7 +2116,8 @@ static int bcmgenet_poll(struct napi_struct *napi, int budget)
2111 2116
2112 if (work_done < budget) { 2117 if (work_done < budget) {
2113 napi_complete(napi); 2118 napi_complete(napi);
2114 bcmgenet_intrl2_0_writel(priv, UMAC_IRQ_RXDMA_BDONE, 2119 bcmgenet_intrl2_0_writel(priv, UMAC_IRQ_RXDMA_BDONE |
2120 UMAC_IRQ_RXDMA_PDONE,
2115 INTRL2_CPU_MASK_CLEAR); 2121 INTRL2_CPU_MASK_CLEAR);
2116 } 2122 }
2117 2123
@@ -2198,7 +2204,8 @@ static irqreturn_t bcmgenet_isr0(int irq, void *dev_id)
2198 * Disable interrupt, will be enabled in the poll method. 2204 * Disable interrupt, will be enabled in the poll method.
2199 */ 2205 */
2200 if (likely(napi_schedule_prep(&priv->napi))) { 2206 if (likely(napi_schedule_prep(&priv->napi))) {
2201 bcmgenet_intrl2_0_writel(priv, UMAC_IRQ_RXDMA_BDONE, 2207 bcmgenet_intrl2_0_writel(priv, UMAC_IRQ_RXDMA_BDONE |
2208 UMAC_IRQ_RXDMA_PDONE,
2202 INTRL2_CPU_MASK_SET); 2209 INTRL2_CPU_MASK_SET);
2203 __napi_schedule(&priv->napi); 2210 __napi_schedule(&priv->napi);
2204 } 2211 }