brcm63xx: backport latest bcm63xx_enet changes from upstream
No functional changes, just simple cleanups. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>v19.07.3_mercusys_ac12_duma
parent
457e7a160a
commit
a41ad1b6f6
@ -0,0 +1,39 @@
|
||||
From 943b0832e0cf3afe5bd40ffb1885d06106122c5d Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
Date: Sun, 16 Jul 2017 12:49:49 +0200
|
||||
Subject: [PATCH 1/4] bcm63xx_enet: just use "enet" as the clock name
|
||||
|
||||
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(-)
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||||
@@ -1733,7 +1733,6 @@ static int bcm_enet_probe(struct platfor
|
||||
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])
|
||||
@@ -1774,14 +1773,12 @@ static int bcm_enet_probe(struct platfor
|
||||
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;
|
@ -0,0 +1,72 @@
|
||||
From b7d1d1f345bb3b25c360c1df812d98866e2ee7fb Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
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 <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(-)
|
||||
|
||||
--- 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
|
||||
@@ -1769,15 +1769,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);
|
||||
@@ -1809,6 +1800,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) {
|
@ -0,0 +1,25 @@
|
||||
From 8c61608e5dd2e15575c171ee9cd558ddc3b94962 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
Date: Sun, 17 Dec 2017 12:54:30 +0100
|
||||
Subject: [PATCH 3/4] bcm63xx_enet: remove pointless mac_id check
|
||||
|
||||
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(-)
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||||
@@ -1804,7 +1804,7 @@ static int bcm_enet_probe(struct platfor
|
||||
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)) {
|
@ -0,0 +1,46 @@
|
||||
From faea89cd893a1a7af81185f026a64dad603ef72f Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
Date: Sun, 17 Dec 2017 12:58:12 +0100
|
||||
Subject: [PATCH 4/4] bcm63xx_enet: use platform device id directly for miibus
|
||||
name
|
||||
|
||||
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(-)
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||||
@@ -1767,7 +1767,6 @@ static int bcm_enet_probe(struct platfor
|
||||
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)) {
|
||||
@@ -1835,7 +1834,7 @@ static int bcm_enet_probe(struct platfor
|
||||
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
|
||||
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.h
|
||||
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.h
|
||||
@@ -192,9 +192,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;
|
||||
|
Loading…
Reference in New Issue