diff options
Diffstat (limited to 'drivers/net/phy/micrel.c')
-rw-r--r-- | drivers/net/phy/micrel.c | 62 |
1 files changed, 11 insertions, 51 deletions
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index 9d6c80c8a0c..cf287e0eb40 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c | |||
@@ -114,7 +114,8 @@ static int ks8051_config_init(struct phy_device *phydev) | |||
114 | return 0; | 114 | return 0; |
115 | } | 115 | } |
116 | 116 | ||
117 | static struct phy_driver ks8737_driver = { | 117 | static struct phy_driver ksphy_driver[] = { |
118 | { | ||
118 | .phy_id = PHY_ID_KS8737, | 119 | .phy_id = PHY_ID_KS8737, |
119 | .phy_id_mask = 0x00fffff0, | 120 | .phy_id_mask = 0x00fffff0, |
120 | .name = "Micrel KS8737", | 121 | .name = "Micrel KS8737", |
@@ -126,9 +127,7 @@ static struct phy_driver ks8737_driver = { | |||
126 | .ack_interrupt = kszphy_ack_interrupt, | 127 | .ack_interrupt = kszphy_ack_interrupt, |
127 | .config_intr = ks8737_config_intr, | 128 | .config_intr = ks8737_config_intr, |
128 | .driver = { .owner = THIS_MODULE,}, | 129 | .driver = { .owner = THIS_MODULE,}, |
129 | }; | 130 | }, { |
130 | |||
131 | static struct phy_driver ks8041_driver = { | ||
132 | .phy_id = PHY_ID_KS8041, | 131 | .phy_id = PHY_ID_KS8041, |
133 | .phy_id_mask = 0x00fffff0, | 132 | .phy_id_mask = 0x00fffff0, |
134 | .name = "Micrel KS8041", | 133 | .name = "Micrel KS8041", |
@@ -141,9 +140,7 @@ static struct phy_driver ks8041_driver = { | |||
141 | .ack_interrupt = kszphy_ack_interrupt, | 140 | .ack_interrupt = kszphy_ack_interrupt, |
142 | .config_intr = kszphy_config_intr, | 141 | .config_intr = kszphy_config_intr, |
143 | .driver = { .owner = THIS_MODULE,}, | 142 | .driver = { .owner = THIS_MODULE,}, |
144 | }; | 143 | }, { |
145 | |||
146 | static struct phy_driver ks8051_driver = { | ||
147 | .phy_id = PHY_ID_KS8051, | 144 | .phy_id = PHY_ID_KS8051, |
148 | .phy_id_mask = 0x00fffff0, | 145 | .phy_id_mask = 0x00fffff0, |
149 | .name = "Micrel KS8051", | 146 | .name = "Micrel KS8051", |
@@ -156,9 +153,7 @@ static struct phy_driver ks8051_driver = { | |||
156 | .ack_interrupt = kszphy_ack_interrupt, | 153 | .ack_interrupt = kszphy_ack_interrupt, |
157 | .config_intr = kszphy_config_intr, | 154 | .config_intr = kszphy_config_intr, |
158 | .driver = { .owner = THIS_MODULE,}, | 155 | .driver = { .owner = THIS_MODULE,}, |
159 | }; | 156 | }, { |
160 | |||
161 | static struct phy_driver ks8001_driver = { | ||
162 | .phy_id = PHY_ID_KS8001, | 157 | .phy_id = PHY_ID_KS8001, |
163 | .name = "Micrel KS8001 or KS8721", | 158 | .name = "Micrel KS8001 or KS8721", |
164 | .phy_id_mask = 0x00ffffff, | 159 | .phy_id_mask = 0x00ffffff, |
@@ -170,9 +165,7 @@ static struct phy_driver ks8001_driver = { | |||
170 | .ack_interrupt = kszphy_ack_interrupt, | 165 | .ack_interrupt = kszphy_ack_interrupt, |
171 | .config_intr = kszphy_config_intr, | 166 | .config_intr = kszphy_config_intr, |
172 | .driver = { .owner = THIS_MODULE,}, | 167 | .driver = { .owner = THIS_MODULE,}, |
173 | }; | 168 | }, { |
174 | |||
175 | static struct phy_driver ksz9021_driver = { | ||
176 | .phy_id = PHY_ID_KSZ9021, | 169 | .phy_id = PHY_ID_KSZ9021, |
177 | .phy_id_mask = 0x000ffffe, | 170 | .phy_id_mask = 0x000ffffe, |
178 | .name = "Micrel KSZ9021 Gigabit PHY", | 171 | .name = "Micrel KSZ9021 Gigabit PHY", |
@@ -185,51 +178,18 @@ static struct phy_driver ksz9021_driver = { | |||
185 | .ack_interrupt = kszphy_ack_interrupt, | 178 | .ack_interrupt = kszphy_ack_interrupt, |
186 | .config_intr = ksz9021_config_intr, | 179 | .config_intr = ksz9021_config_intr, |
187 | .driver = { .owner = THIS_MODULE, }, | 180 | .driver = { .owner = THIS_MODULE, }, |
188 | }; | 181 | } }; |
189 | 182 | ||
190 | static int __init ksphy_init(void) | 183 | static int __init ksphy_init(void) |
191 | { | 184 | { |
192 | int ret; | 185 | return phy_drivers_register(ksphy_driver, |
193 | 186 | ARRAY_SIZE(ksphy_driver)); | |
194 | ret = phy_driver_register(&ks8001_driver); | ||
195 | if (ret) | ||
196 | goto err1; | ||
197 | |||
198 | ret = phy_driver_register(&ksz9021_driver); | ||
199 | if (ret) | ||
200 | goto err2; | ||
201 | |||
202 | ret = phy_driver_register(&ks8737_driver); | ||
203 | if (ret) | ||
204 | goto err3; | ||
205 | ret = phy_driver_register(&ks8041_driver); | ||
206 | if (ret) | ||
207 | goto err4; | ||
208 | ret = phy_driver_register(&ks8051_driver); | ||
209 | if (ret) | ||
210 | goto err5; | ||
211 | |||
212 | return 0; | ||
213 | |||
214 | err5: | ||
215 | phy_driver_unregister(&ks8041_driver); | ||
216 | err4: | ||
217 | phy_driver_unregister(&ks8737_driver); | ||
218 | err3: | ||
219 | phy_driver_unregister(&ksz9021_driver); | ||
220 | err2: | ||
221 | phy_driver_unregister(&ks8001_driver); | ||
222 | err1: | ||
223 | return ret; | ||
224 | } | 187 | } |
225 | 188 | ||
226 | static void __exit ksphy_exit(void) | 189 | static void __exit ksphy_exit(void) |
227 | { | 190 | { |
228 | phy_driver_unregister(&ks8001_driver); | 191 | phy_drivers_unregister(ksphy_driver, |
229 | phy_driver_unregister(&ks8737_driver); | 192 | ARRAY_SIZE(ksphy_driver)); |
230 | phy_driver_unregister(&ksz9021_driver); | ||
231 | phy_driver_unregister(&ks8041_driver); | ||
232 | phy_driver_unregister(&ks8051_driver); | ||
233 | } | 193 | } |
234 | 194 | ||
235 | module_init(ksphy_init); | 195 | module_init(ksphy_init); |