123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- From b7d1d1f345bb3b25c360c1df812d98866e2ee7fb Mon Sep 17 00:00:00 2001
- From: Jonas Gorski <[email protected]>
- Date: Sat, 30 Sep 2017 13:50:03 +0200
- Subject: [PATCH 2/4] bcm63xx_enet: use platform data for dma channel numbers
- To reduce the reliance on device ids, pass the dma channel numbers to
- the enet devices as platform data.
- Signed-off-by: Jonas Gorski <[email protected]>
- ---
- arch/mips/bcm63xx/dev-enet.c | 8 ++++++++
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h | 4 ++++
- drivers/net/ethernet/broadcom/bcm63xx_enet.c | 11 ++---------
- 3 files changed, 14 insertions(+), 9 deletions(-)
- --- a/arch/mips/bcm63xx/dev-enet.c
- +++ b/arch/mips/bcm63xx/dev-enet.c
- @@ -265,6 +265,14 @@ int __init bcm63xx_enet_register(int uni
- dpd->dma_chan_width = ENETDMA_CHAN_WIDTH;
- }
-
- + if (unit == 0) {
- + dpd->rx_chan = 0;
- + dpd->tx_chan = 1;
- + } else {
- + dpd->rx_chan = 2;
- + dpd->tx_chan = 3;
- + }
- +
- ret = platform_device_register(pdev);
- if (ret)
- return ret;
- --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
- +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
- @@ -54,6 +54,10 @@ struct bcm63xx_enet_platform_data {
-
- /* DMA descriptor shift */
- unsigned int dma_desc_shift;
- +
- + /* dma channel ids */
- + int rx_chan;
- + int tx_chan;
- };
-
- /*
- --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
- +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
- @@ -1772,15 +1772,6 @@ static int bcm_enet_probe(struct platfor
- priv->irq_tx = res_irq_tx->start;
- priv->mac_id = pdev->id;
-
- - /* get rx & tx dma channel id for this mac */
- - if (priv->mac_id == 0) {
- - priv->rx_chan = 0;
- - priv->tx_chan = 1;
- - } else {
- - priv->rx_chan = 2;
- - priv->tx_chan = 3;
- - }
- -
- priv->mac_clk = devm_clk_get(&pdev->dev, "enet");
- if (IS_ERR(priv->mac_clk)) {
- ret = PTR_ERR(priv->mac_clk);
- @@ -1812,6 +1803,8 @@ static int bcm_enet_probe(struct platfor
- priv->dma_chan_width = pd->dma_chan_width;
- priv->dma_has_sram = pd->dma_has_sram;
- priv->dma_desc_shift = pd->dma_desc_shift;
- + priv->rx_chan = pd->rx_chan;
- + priv->tx_chan = pd->tx_chan;
- }
-
- if (priv->mac_id == 0 && priv->has_phy && !priv->use_external_mii) {
|