diff options
author | Petri Gynther <pgynther@google.com> | 2015-03-25 15:35:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-03-27 17:26:14 -0400 |
commit | b2e97eca88f07d1a4dae691ad8d751ba1de15645 (patch) | |
tree | 997ce6dcc5ea2d674e919ec03e403912e04d96d9 | |
parent | ebbd96fb2861f591df011cd0eac67dd367596cca (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.c | 33 |
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 | } |