X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fphy%2Fcicada.c;h=ae60e6e4107c09b502c3c111617add99c2f90d32;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=7d8d534255c07f3a53955361b1a1791848362ee3;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/drivers/net/phy/cicada.c b/drivers/net/phy/cicada.c index 7d8d53425..ae60e6e41 100644 --- a/drivers/net/phy/cicada.c +++ b/drivers/net/phy/cicada.c @@ -13,7 +13,6 @@ * option) any later version. * */ -#include #include #include #include @@ -104,7 +103,22 @@ static int cis820x_config_intr(struct phy_device *phydev) return err; } -/* Cicada 820x */ +/* Cicada 8201, a.k.a Vitesse VSC8201 */ +static struct phy_driver cis8201_driver = { + .phy_id = 0x000fc410, + .name = "Cicada Cis8201", + .phy_id_mask = 0x000ffff0, + .features = PHY_GBIT_FEATURES, + .flags = PHY_HAS_INTERRUPT, + .config_init = &cis820x_config_init, + .config_aneg = &genphy_config_aneg, + .read_status = &genphy_read_status, + .ack_interrupt = &cis820x_ack_interrupt, + .config_intr = &cis820x_config_intr, + .driver = { .owner = THIS_MODULE,}, +}; + +/* Cicada 8204 */ static struct phy_driver cis8204_driver = { .phy_id = 0x000fc440, .name = "Cicada Cis8204", @@ -119,15 +133,30 @@ static struct phy_driver cis8204_driver = { .driver = { .owner = THIS_MODULE,}, }; -static int __init cis8204_init(void) +static int __init cicada_init(void) { - return phy_driver_register(&cis8204_driver); + int ret; + + ret = phy_driver_register(&cis8204_driver); + if (ret) + goto err1; + + ret = phy_driver_register(&cis8201_driver); + if (ret) + goto err2; + return 0; + +err2: + phy_driver_unregister(&cis8204_driver); +err1: + return ret; } -static void __exit cis8204_exit(void) +static void __exit cicada_exit(void) { phy_driver_unregister(&cis8204_driver); + phy_driver_unregister(&cis8201_driver); } -module_init(cis8204_init); -module_exit(cis8204_exit); +module_init(cicada_init); +module_exit(cicada_exit);