aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2023-03-29 18:19:11 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2023-03-29 18:33:34 +0200
commita0f100c569fea84e4eb7750c5d85886e9e77cf4d (patch)
tree9465ff70c967c682a572eb86f8b0d6dc4289eb52 /target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c
parent5d8f14bfefc6f12e93425ee522bdce75a7c979d6 (diff)
downloadupstream-a0f100c569fea84e4eb7750c5d85886e9e77cf4d.tar.gz
upstream-a0f100c569fea84e4eb7750c5d85886e9e77cf4d.tar.bz2
upstream-a0f100c569fea84e4eb7750c5d85886e9e77cf4d.zip
bmips: bcm6348-enet: register emac driver from iudma
Register the ethernet driver from iudma, which avoids the attempt to probe the emac driver before iudma and its consequent deferral. The ethernet driver can't work without iudma anyway. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c')
-rw-r--r--target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c b/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c
index 75e85aa0f3..2bd243089e 100644
--- a/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c
+++ b/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6348-enet.c
@@ -128,6 +128,8 @@ struct bcm6348_iudma {
unsigned int dma_channels;
};
+int bcm6348_iudma_drivers_register(struct platform_device *pdev);
+
static inline u32 dma_readl(struct bcm6348_iudma *iudma, u32 off)
{
u32 val;
@@ -269,7 +271,7 @@ static int bcm6348_iudma_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, iudma);
- return 0;
+ return bcm6348_iudma_drivers_register(pdev);
}
static const struct of_device_id bcm6348_iudma_of_match[] = {
@@ -1703,4 +1705,15 @@ static struct platform_driver bcm6348_emac_driver = {
.probe = bcm6348_emac_probe,
.remove = bcm6348_emac_remove,
};
-module_platform_driver(bcm6348_emac_driver);
+
+int bcm6348_iudma_drivers_register(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ int ret;
+
+ ret = platform_driver_register(&bcm6348_emac_driver);
+ if (ret)
+ dev_err(dev, "error registering emac driver!\n");
+
+ return ret;
+}