diff options
Diffstat (limited to 'drivers/net/phy/bcm63xx.c')
| -rw-r--r-- | drivers/net/phy/bcm63xx.c | 40 | 
1 files changed, 12 insertions, 28 deletions
diff --git a/drivers/net/phy/bcm63xx.c b/drivers/net/phy/bcm63xx.c index e16f98cb4f0..ac55b080785 100644 --- a/drivers/net/phy/bcm63xx.c +++ b/drivers/net/phy/bcm63xx.c @@ -39,10 +39,7 @@ static int bcm63xx_config_init(struct phy_device *phydev)  		MII_BCM63XX_IR_SPEED |  		MII_BCM63XX_IR_LINK) |  		MII_BCM63XX_IR_EN; -	err = phy_write(phydev, MII_BCM63XX_IR, reg); -	if (err < 0) -		return err; -	return 0; +	return phy_write(phydev, MII_BCM63XX_IR, reg);  }  static int bcm63xx_ack_interrupt(struct phy_device *phydev) @@ -74,58 +71,45 @@ static int bcm63xx_config_intr(struct phy_device *phydev)  	return err;  } -static struct phy_driver bcm63xx_1_driver = { +static struct phy_driver bcm63xx_driver[] = { +{  	.phy_id		= 0x00406000,  	.phy_id_mask	= 0xfffffc00,  	.name		= "Broadcom BCM63XX (1)",  	/* ASYM_PAUSE bit is marked RO in datasheet, so don't cheat */  	.features	= (PHY_BASIC_FEATURES | SUPPORTED_Pause), -	.flags		= PHY_HAS_INTERRUPT, +	.flags		= PHY_HAS_INTERRUPT | PHY_IS_INTERNAL,  	.config_init	= bcm63xx_config_init,  	.config_aneg	= genphy_config_aneg,  	.read_status	= genphy_read_status,  	.ack_interrupt	= bcm63xx_ack_interrupt,  	.config_intr	= bcm63xx_config_intr,  	.driver		= { .owner = THIS_MODULE }, -}; - -/* same phy as above, with just a different OUI */ -static struct phy_driver bcm63xx_2_driver = { +}, { +	/* same phy as above, with just a different OUI */  	.phy_id		= 0x002bdc00,  	.phy_id_mask	= 0xfffffc00,  	.name		= "Broadcom BCM63XX (2)",  	.features	= (PHY_BASIC_FEATURES | SUPPORTED_Pause), -	.flags		= PHY_HAS_INTERRUPT, +	.flags		= PHY_HAS_INTERRUPT | PHY_IS_INTERNAL,  	.config_init	= bcm63xx_config_init,  	.config_aneg	= genphy_config_aneg,  	.read_status	= genphy_read_status,  	.ack_interrupt	= bcm63xx_ack_interrupt,  	.config_intr	= bcm63xx_config_intr,  	.driver		= { .owner = THIS_MODULE }, -}; +} };  static int __init bcm63xx_phy_init(void)  { -	int ret; - -	ret = phy_driver_register(&bcm63xx_1_driver); -	if (ret) -		goto out_63xx_1; -	ret = phy_driver_register(&bcm63xx_2_driver); -	if (ret) -		goto out_63xx_2; -	return ret; - -out_63xx_2: -	phy_driver_unregister(&bcm63xx_1_driver); -out_63xx_1: -	return ret; +	return phy_drivers_register(bcm63xx_driver, +		ARRAY_SIZE(bcm63xx_driver));  }  static void __exit bcm63xx_phy_exit(void)  { -	phy_driver_unregister(&bcm63xx_1_driver); -	phy_driver_unregister(&bcm63xx_2_driver); +	phy_drivers_unregister(bcm63xx_driver, +		ARRAY_SIZE(bcm63xx_driver));  }  module_init(bcm63xx_phy_init);  | 
