diff options
| -rw-r--r-- | drivers/net/phy/cicada.c | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/drivers/net/phy/cicada.c b/drivers/net/phy/cicada.c index 3efb715c28dc..ae60e6e4107c 100644 --- a/drivers/net/phy/cicada.c +++ b/drivers/net/phy/cicada.c | |||
| @@ -103,7 +103,22 @@ static int cis820x_config_intr(struct phy_device *phydev) | |||
| 103 | return err; | 103 | return err; |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | /* Cicada 820x */ | 106 | /* Cicada 8201, a.k.a Vitesse VSC8201 */ |
| 107 | static struct phy_driver cis8201_driver = { | ||
| 108 | .phy_id = 0x000fc410, | ||
| 109 | .name = "Cicada Cis8201", | ||
| 110 | .phy_id_mask = 0x000ffff0, | ||
| 111 | .features = PHY_GBIT_FEATURES, | ||
| 112 | .flags = PHY_HAS_INTERRUPT, | ||
| 113 | .config_init = &cis820x_config_init, | ||
| 114 | .config_aneg = &genphy_config_aneg, | ||
| 115 | .read_status = &genphy_read_status, | ||
| 116 | .ack_interrupt = &cis820x_ack_interrupt, | ||
| 117 | .config_intr = &cis820x_config_intr, | ||
| 118 | .driver = { .owner = THIS_MODULE,}, | ||
| 119 | }; | ||
| 120 | |||
| 121 | /* Cicada 8204 */ | ||
| 107 | static struct phy_driver cis8204_driver = { | 122 | static struct phy_driver cis8204_driver = { |
| 108 | .phy_id = 0x000fc440, | 123 | .phy_id = 0x000fc440, |
| 109 | .name = "Cicada Cis8204", | 124 | .name = "Cicada Cis8204", |
| @@ -118,15 +133,30 @@ static struct phy_driver cis8204_driver = { | |||
| 118 | .driver = { .owner = THIS_MODULE,}, | 133 | .driver = { .owner = THIS_MODULE,}, |
| 119 | }; | 134 | }; |
| 120 | 135 | ||
| 121 | static int __init cis8204_init(void) | 136 | static int __init cicada_init(void) |
| 122 | { | 137 | { |
| 123 | return phy_driver_register(&cis8204_driver); | 138 | int ret; |
| 139 | |||
| 140 | ret = phy_driver_register(&cis8204_driver); | ||
| 141 | if (ret) | ||
| 142 | goto err1; | ||
| 143 | |||
| 144 | ret = phy_driver_register(&cis8201_driver); | ||
| 145 | if (ret) | ||
| 146 | goto err2; | ||
| 147 | return 0; | ||
| 148 | |||
| 149 | err2: | ||
| 150 | phy_driver_unregister(&cis8204_driver); | ||
| 151 | err1: | ||
| 152 | return ret; | ||
| 124 | } | 153 | } |
| 125 | 154 | ||
| 126 | static void __exit cis8204_exit(void) | 155 | static void __exit cicada_exit(void) |
| 127 | { | 156 | { |
| 128 | phy_driver_unregister(&cis8204_driver); | 157 | phy_driver_unregister(&cis8204_driver); |
| 158 | phy_driver_unregister(&cis8201_driver); | ||
| 129 | } | 159 | } |
| 130 | 160 | ||
| 131 | module_init(cis8204_init); | 161 | module_init(cicada_init); |
| 132 | module_exit(cis8204_exit); | 162 | module_exit(cicada_exit); |
