Skip to content

Commit

Permalink
Merge branch 'bcm63xx_enet-remove-mac_id-usage'
Browse files Browse the repository at this point in the history
Jonas Gorski says:

====================
bcm63xx_enet: remove mac_id usage

This patchset aims at reducing the platform device id number usage with
the target of making it eventually possible to probe the driver through OF.

Runtested on BCM6358.

Since the patches touch mostly net/, they should go through net-next.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Dec 19, 2017
2 parents 8e6d604 + c7fe89e commit e2948dd
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 19 deletions.
8 changes: 8 additions & 0 deletions arch/mips/bcm63xx/dev-enet.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 4 additions & 0 deletions arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};

/*
Expand Down
21 changes: 5 additions & 16 deletions drivers/net/ethernet/broadcom/bcm63xx_enet.c
Original file line number Diff line number Diff line change
Expand Up @@ -1716,7 +1716,6 @@ static int bcm_enet_probe(struct platform_device *pdev)
struct bcm63xx_enet_platform_data *pd;
struct resource *res_mem, *res_irq, *res_irq_rx, *res_irq_tx;
struct mii_bus *bus;
const char *clk_name;
int i, ret;

if (!bcm_enet_shared_base[0])
Expand Down Expand Up @@ -1751,20 +1750,8 @@ static int bcm_enet_probe(struct platform_device *pdev)
dev->irq = priv->irq = res_irq->start;
priv->irq_rx = res_irq_rx->start;
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;
clk_name = "enet0";
} else {
priv->rx_chan = 2;
priv->tx_chan = 3;
clk_name = "enet1";
}

priv->mac_clk = devm_clk_get(&pdev->dev, clk_name);
priv->mac_clk = devm_clk_get(&pdev->dev, "enet");
if (IS_ERR(priv->mac_clk)) {
ret = PTR_ERR(priv->mac_clk);
goto out;
Expand Down Expand Up @@ -1795,9 +1782,11 @@ 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) {
if (priv->has_phy && !priv->use_external_mii) {
/* using internal PHY, enable clock */
priv->phy_clk = devm_clk_get(&pdev->dev, "ephy");
if (IS_ERR(priv->phy_clk)) {
Expand Down Expand Up @@ -1828,7 +1817,7 @@ static int bcm_enet_probe(struct platform_device *pdev)
bus->priv = priv;
bus->read = bcm_enet_mdio_read_phylib;
bus->write = bcm_enet_mdio_write_phylib;
sprintf(bus->id, "%s-%d", pdev->name, priv->mac_id);
sprintf(bus->id, "%s-%d", pdev->name, pdev->id);

/* only probe bus where we think the PHY is, because
* the mdio read operation return 0 instead of 0xffff
Expand Down
3 changes: 0 additions & 3 deletions drivers/net/ethernet/broadcom/bcm63xx_enet.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,9 +193,6 @@ struct bcm_enet_mib_counters {

struct bcm_enet_priv {

/* mac id (from platform device id) */
int mac_id;

/* base remapped address of device */
void __iomem *base;

Expand Down

0 comments on commit e2948dd

Please sign in to comment.