* [PATCH 1/4] bcm63xx_enet: just use "enet" as the clock name
2017-12-17 16:02 [PATCH 0/4] bcm63xx_enet: remove mac_id usage Jonas Gorski
@ 2017-12-17 16:02 ` Jonas Gorski
2017-12-17 16:02 ` [PATCH 2/4] bcm63xx_enet: use platform data for dma channel numbers Jonas Gorski
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jonas Gorski @ 2017-12-17 16:02 UTC (permalink / raw)
To: netdev, linux-mips
Cc: Ralf Baechle, David S. Miller, Florian Fainelli,
bcm-kernel-feedback-list
Now that we have the individual clocks available as "enet" we
don't need to rely on the device id for them anymore.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index d9346e2ac720..5a5886345da2 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -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])
@@ -1757,14 +1756,12 @@ static int bcm_enet_probe(struct platform_device *pdev)
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;
--
2.13.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 2/4] bcm63xx_enet: use platform data for dma channel numbers
2017-12-17 16:02 [PATCH 0/4] bcm63xx_enet: remove mac_id usage Jonas Gorski
2017-12-17 16:02 ` [PATCH 1/4] bcm63xx_enet: just use "enet" as the clock name Jonas Gorski
@ 2017-12-17 16:02 ` Jonas Gorski
2017-12-17 16:02 ` [PATCH 3/4] bcm63xx_enet: remove pointless mac_id check Jonas Gorski
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jonas Gorski @ 2017-12-17 16:02 UTC (permalink / raw)
To: netdev, linux-mips
Cc: Ralf Baechle, David S. Miller, Florian Fainelli,
bcm-kernel-feedback-list
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>
---
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(-)
diff --git a/arch/mips/bcm63xx/dev-enet.c b/arch/mips/bcm63xx/dev-enet.c
index e8284771d620..07b4c65a88a4 100644
--- a/arch/mips/bcm63xx/dev-enet.c
+++ b/arch/mips/bcm63xx/dev-enet.c
@@ -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;
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
index c0bd47444cff..da39e4d326ba 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
@@ -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;
};
/*
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index 5a5886345da2..e603a6fe6349 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -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) {
--
2.13.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 3/4] bcm63xx_enet: remove pointless mac_id check
2017-12-17 16:02 [PATCH 0/4] bcm63xx_enet: remove mac_id usage Jonas Gorski
2017-12-17 16:02 ` [PATCH 1/4] bcm63xx_enet: just use "enet" as the clock name Jonas Gorski
2017-12-17 16:02 ` [PATCH 2/4] bcm63xx_enet: use platform data for dma channel numbers Jonas Gorski
@ 2017-12-17 16:02 ` Jonas Gorski
2017-12-17 16:02 ` [PATCH 4/4] bcm63xx_enet: use platform device id directly for miibus name Jonas Gorski
2017-12-19 16:07 ` [PATCH 0/4] bcm63xx_enet: remove mac_id usage David Miller
4 siblings, 0 replies; 6+ messages in thread
From: Jonas Gorski @ 2017-12-17 16:02 UTC (permalink / raw)
To: netdev, linux-mips
Cc: Ralf Baechle, David S. Miller, Florian Fainelli,
bcm-kernel-feedback-list
Enabling the ephy clock for mac 1 is harmless, and the actual usage of
the ephy is not restricted to mac 0, so we might as well remove the
check.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index e603a6fe6349..d4519c621d08 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -1787,7 +1787,7 @@ static int bcm_enet_probe(struct platform_device *pdev)
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)) {
--
2.13.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 4/4] bcm63xx_enet: use platform device id directly for miibus name
2017-12-17 16:02 [PATCH 0/4] bcm63xx_enet: remove mac_id usage Jonas Gorski
` (2 preceding siblings ...)
2017-12-17 16:02 ` [PATCH 3/4] bcm63xx_enet: remove pointless mac_id check Jonas Gorski
@ 2017-12-17 16:02 ` Jonas Gorski
2017-12-19 16:07 ` [PATCH 0/4] bcm63xx_enet: remove mac_id usage David Miller
4 siblings, 0 replies; 6+ messages in thread
From: Jonas Gorski @ 2017-12-17 16:02 UTC (permalink / raw)
To: netdev, linux-mips
Cc: Ralf Baechle, David S. Miller, Florian Fainelli,
bcm-kernel-feedback-list
Directly use the platform device for generating the miibus name. This
removes the last user of bcm_enet_priv::mac_id and we can remove the
field.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 3 +--
drivers/net/ethernet/broadcom/bcm63xx_enet.h | 3 ---
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index d4519c621d08..1fbbbabe7588 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -1750,7 +1750,6 @@ 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;
priv->mac_clk = devm_clk_get(&pdev->dev, "enet");
if (IS_ERR(priv->mac_clk)) {
@@ -1818,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
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.h b/drivers/net/ethernet/broadcom/bcm63xx_enet.h
index 5a66728d4776..1d3c917eb830 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.h
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.h
@@ -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;
--
2.13.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 0/4] bcm63xx_enet: remove mac_id usage
2017-12-17 16:02 [PATCH 0/4] bcm63xx_enet: remove mac_id usage Jonas Gorski
` (3 preceding siblings ...)
2017-12-17 16:02 ` [PATCH 4/4] bcm63xx_enet: use platform device id directly for miibus name Jonas Gorski
@ 2017-12-19 16:07 ` David Miller
4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2017-12-19 16:07 UTC (permalink / raw)
To: jonas.gorski
Cc: netdev, linux-mips, ralf, f.fainelli, bcm-kernel-feedback-list
From: Jonas Gorski <jonas.gorski@gmail.com>
Date: Sun, 17 Dec 2017 17:02:51 +0100
> 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.
Series applied, thank you.
^ permalink raw reply [flat|nested] 6+ messages in thread