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 <jonas.gorski@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Jonas Gorski 2017-12-17 17:02:53 +01:00 committed by David S. Miller
parent 7555001546
commit 1942e48225
3 changed files with 14 additions and 9 deletions

View File

@ -265,6 +265,14 @@ int __init bcm63xx_enet_register(int unit,
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;

View File

@ -55,6 +55,10 @@ struct bcm63xx_enet_platform_data {
/* DMA descriptor shift */
unsigned int dma_desc_shift;
/* dma channel ids */
int rx_chan;
int tx_chan;
};
/*

View File

@ -1752,15 +1752,6 @@ static int bcm_enet_probe(struct platform_device *pdev)
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);
@ -1792,6 +1783,8 @@ static int bcm_enet_probe(struct platform_device *pdev)
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) {