|
@@ -682,7 +682,8 @@ static int brcm_fet_config_intr(struct phy_device *phydev)
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
|
|
-static struct phy_driver bcm5411_driver = {
|
|
|
|
|
|
+static struct phy_driver broadcom_drivers[] = {
|
|
|
|
+{
|
|
.phy_id = PHY_ID_BCM5411,
|
|
.phy_id = PHY_ID_BCM5411,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM5411",
|
|
.name = "Broadcom BCM5411",
|
|
@@ -695,9 +696,7 @@ static struct phy_driver bcm5411_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm5421_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM5421,
|
|
.phy_id = PHY_ID_BCM5421,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM5421",
|
|
.name = "Broadcom BCM5421",
|
|
@@ -710,9 +709,7 @@ static struct phy_driver bcm5421_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm5461_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM5461,
|
|
.phy_id = PHY_ID_BCM5461,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM5461",
|
|
.name = "Broadcom BCM5461",
|
|
@@ -725,9 +722,7 @@ static struct phy_driver bcm5461_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm5464_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM5464,
|
|
.phy_id = PHY_ID_BCM5464,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM5464",
|
|
.name = "Broadcom BCM5464",
|
|
@@ -740,9 +735,7 @@ static struct phy_driver bcm5464_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm5481_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM5481,
|
|
.phy_id = PHY_ID_BCM5481,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM5481",
|
|
.name = "Broadcom BCM5481",
|
|
@@ -755,9 +748,7 @@ static struct phy_driver bcm5481_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm5482_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM5482,
|
|
.phy_id = PHY_ID_BCM5482,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM5482",
|
|
.name = "Broadcom BCM5482",
|
|
@@ -770,9 +761,7 @@ static struct phy_driver bcm5482_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm50610_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM50610,
|
|
.phy_id = PHY_ID_BCM50610,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM50610",
|
|
.name = "Broadcom BCM50610",
|
|
@@ -785,9 +774,7 @@ static struct phy_driver bcm50610_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm50610m_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM50610M,
|
|
.phy_id = PHY_ID_BCM50610M,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM50610M",
|
|
.name = "Broadcom BCM50610M",
|
|
@@ -800,9 +787,7 @@ static struct phy_driver bcm50610m_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm57780_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM57780,
|
|
.phy_id = PHY_ID_BCM57780,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM57780",
|
|
.name = "Broadcom BCM57780",
|
|
@@ -815,9 +800,7 @@ static struct phy_driver bcm57780_driver = {
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.ack_interrupt = bcm54xx_ack_interrupt,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.config_intr = bcm54xx_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcmac131_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCMAC131,
|
|
.phy_id = PHY_ID_BCMAC131,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCMAC131",
|
|
.name = "Broadcom BCMAC131",
|
|
@@ -830,9 +813,7 @@ static struct phy_driver bcmac131_driver = {
|
|
.ack_interrupt = brcm_fet_ack_interrupt,
|
|
.ack_interrupt = brcm_fet_ack_interrupt,
|
|
.config_intr = brcm_fet_config_intr,
|
|
.config_intr = brcm_fet_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct phy_driver bcm5241_driver = {
|
|
|
|
|
|
+}, {
|
|
.phy_id = PHY_ID_BCM5241,
|
|
.phy_id = PHY_ID_BCM5241,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.phy_id_mask = 0xfffffff0,
|
|
.name = "Broadcom BCM5241",
|
|
.name = "Broadcom BCM5241",
|
|
@@ -845,84 +826,18 @@ static struct phy_driver bcm5241_driver = {
|
|
.ack_interrupt = brcm_fet_ack_interrupt,
|
|
.ack_interrupt = brcm_fet_ack_interrupt,
|
|
.config_intr = brcm_fet_config_intr,
|
|
.config_intr = brcm_fet_config_intr,
|
|
.driver = { .owner = THIS_MODULE },
|
|
.driver = { .owner = THIS_MODULE },
|
|
-};
|
|
|
|
|
|
+} };
|
|
|
|
|
|
static int __init broadcom_init(void)
|
|
static int __init broadcom_init(void)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
-
|
|
|
|
- ret = phy_driver_register(&bcm5411_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_5411;
|
|
|
|
- ret = phy_driver_register(&bcm5421_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_5421;
|
|
|
|
- ret = phy_driver_register(&bcm5461_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_5461;
|
|
|
|
- ret = phy_driver_register(&bcm5464_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_5464;
|
|
|
|
- ret = phy_driver_register(&bcm5481_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_5481;
|
|
|
|
- ret = phy_driver_register(&bcm5482_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_5482;
|
|
|
|
- ret = phy_driver_register(&bcm50610_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_50610;
|
|
|
|
- ret = phy_driver_register(&bcm50610m_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_50610m;
|
|
|
|
- ret = phy_driver_register(&bcm57780_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_57780;
|
|
|
|
- ret = phy_driver_register(&bcmac131_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_ac131;
|
|
|
|
- ret = phy_driver_register(&bcm5241_driver);
|
|
|
|
- if (ret)
|
|
|
|
- goto out_5241;
|
|
|
|
- return ret;
|
|
|
|
-
|
|
|
|
-out_5241:
|
|
|
|
- phy_driver_unregister(&bcmac131_driver);
|
|
|
|
-out_ac131:
|
|
|
|
- phy_driver_unregister(&bcm57780_driver);
|
|
|
|
-out_57780:
|
|
|
|
- phy_driver_unregister(&bcm50610m_driver);
|
|
|
|
-out_50610m:
|
|
|
|
- phy_driver_unregister(&bcm50610_driver);
|
|
|
|
-out_50610:
|
|
|
|
- phy_driver_unregister(&bcm5482_driver);
|
|
|
|
-out_5482:
|
|
|
|
- phy_driver_unregister(&bcm5481_driver);
|
|
|
|
-out_5481:
|
|
|
|
- phy_driver_unregister(&bcm5464_driver);
|
|
|
|
-out_5464:
|
|
|
|
- phy_driver_unregister(&bcm5461_driver);
|
|
|
|
-out_5461:
|
|
|
|
- phy_driver_unregister(&bcm5421_driver);
|
|
|
|
-out_5421:
|
|
|
|
- phy_driver_unregister(&bcm5411_driver);
|
|
|
|
-out_5411:
|
|
|
|
- return ret;
|
|
|
|
|
|
+ return phy_drivers_register(broadcom_drivers,
|
|
|
|
+ ARRAY_SIZE(broadcom_drivers));
|
|
}
|
|
}
|
|
|
|
|
|
static void __exit broadcom_exit(void)
|
|
static void __exit broadcom_exit(void)
|
|
{
|
|
{
|
|
- phy_driver_unregister(&bcm5241_driver);
|
|
|
|
- phy_driver_unregister(&bcmac131_driver);
|
|
|
|
- phy_driver_unregister(&bcm57780_driver);
|
|
|
|
- phy_driver_unregister(&bcm50610m_driver);
|
|
|
|
- phy_driver_unregister(&bcm50610_driver);
|
|
|
|
- phy_driver_unregister(&bcm5482_driver);
|
|
|
|
- phy_driver_unregister(&bcm5481_driver);
|
|
|
|
- phy_driver_unregister(&bcm5464_driver);
|
|
|
|
- phy_driver_unregister(&bcm5461_driver);
|
|
|
|
- phy_driver_unregister(&bcm5421_driver);
|
|
|
|
- phy_driver_unregister(&bcm5411_driver);
|
|
|
|
|
|
+ phy_drivers_unregister(broadcom_drivers,
|
|
|
|
+ ARRAY_SIZE(broadcom_drivers));
|
|
}
|
|
}
|
|
|
|
|
|
module_init(broadcom_init);
|
|
module_init(broadcom_init);
|