002-phy_drivers_backport.patch 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. --- a/drivers/net/phy/adm6996.c
  2. +++ b/drivers/net/phy/adm6996.c
  3. @@ -289,7 +289,7 @@ static u16
  4. adm6996_read_mii_reg(struct adm6996_priv *priv, enum admreg reg)
  5. {
  6. struct phy_device *phydev = priv->priv;
  7. - struct mii_bus *bus = phydev->mdio.bus;
  8. + struct mii_bus *bus = phydev->bus;
  9. return bus->read(bus, PHYADDR(reg));
  10. }
  11. @@ -298,7 +298,7 @@ static void
  12. adm6996_write_mii_reg(struct adm6996_priv *priv, enum admreg reg, u16 val)
  13. {
  14. struct phy_device *phydev = priv->priv;
  15. - struct mii_bus *bus = phydev->mdio.bus;
  16. + struct mii_bus *bus = phydev->bus;
  17. bus->write(bus, PHYADDR(reg), val);
  18. }
  19. @@ -1050,13 +1050,13 @@ static int adm6996_config_init(struct ph
  20. pdev->supported = ADVERTISED_100baseT_Full;
  21. pdev->advertising = ADVERTISED_100baseT_Full;
  22. - if (pdev->mdio.addr != 0) {
  23. + if (pdev->addr != 0) {
  24. pr_info ("%s: PHY overlaps ADM6996, providing fixed PHY 0x%x.\n"
  25. - , pdev->attached_dev->name, pdev->mdio.addr);
  26. + , pdev->attached_dev->name, pdev->addr);
  27. return 0;
  28. }
  29. - priv = devm_kzalloc(&pdev->mdio.dev, sizeof(struct adm6996_priv), GFP_KERNEL);
  30. + priv = devm_kzalloc(&pdev->dev, sizeof(struct adm6996_priv), GFP_KERNEL);
  31. if (!priv)
  32. return -ENOMEM;
  33. @@ -1076,7 +1076,7 @@ static int adm6996_config_init(struct ph
  34. }
  35. /*
  36. - * Warning: phydev->priv is NULL if phydev->mdio.addr != 0
  37. + * Warning: phydev->priv is NULL if phydev->addr != 0
  38. */
  39. static int adm6996_read_status(struct phy_device *phydev)
  40. {
  41. @@ -1092,7 +1092,7 @@ static int adm6996_read_status(struct ph
  42. }
  43. /*
  44. - * Warning: phydev->priv is NULL if phydev->mdio.addr != 0
  45. + * Warning: phydev->priv is NULL if phydev->addr != 0
  46. */
  47. static int adm6996_config_aneg(struct phy_device *phydev)
  48. {
  49. @@ -1101,11 +1101,11 @@ static int adm6996_config_aneg(struct ph
  50. static int adm6996_fixup(struct phy_device *dev)
  51. {
  52. - struct mii_bus *bus = dev->mdio.bus;
  53. + struct mii_bus *bus = dev->bus;
  54. u16 reg;
  55. /* Our custom registers are at PHY addresses 0-10. Claim those. */
  56. - if (dev->mdio.addr > 10)
  57. + if (dev->addr > 10)
  58. return 0;
  59. /* look for the switch on the bus */
  60. @@ -1152,6 +1152,7 @@ static struct phy_driver adm6996_phy_dri
  61. .config_aneg = &adm6996_config_aneg,
  62. .read_status = &adm6996_read_status,
  63. .soft_reset = adm6996_soft_reset,
  64. + .driver = { .owner = THIS_MODULE,},
  65. };
  66. static int adm6996_gpio_probe(struct platform_device *pdev)
  67. @@ -1220,7 +1221,7 @@ static int __init adm6996_init(void)
  68. int err;
  69. phy_register_fixup_for_id(PHY_ANY_ID, adm6996_fixup);
  70. - err = phy_driver_register(&adm6996_phy_driver, THIS_MODULE);
  71. + err = phy_driver_register(&adm6996_phy_driver);
  72. if (err)
  73. return err;
  74. --- a/drivers/net/phy/ar8216.c
  75. +++ b/drivers/net/phy/ar8216.c
  76. @@ -177,7 +177,7 @@ ar8xxx_phy_check_aneg(struct phy_device
  77. if (ret & BMCR_ANENABLE)
  78. return 0;
  79. - dev_info(&phydev->mdio.dev, "ANEG disabled, re-enabling ...\n");
  80. + dev_info(&phydev->dev, "ANEG disabled, re-enabling ...\n");
  81. ret |= BMCR_ANENABLE | BMCR_ANRESTART;
  82. return phy_write(phydev, MII_BMCR, ret);
  83. }
  84. @@ -2012,7 +2012,7 @@ ar8xxx_phy_config_init(struct phy_device
  85. priv->phy = phydev;
  86. - if (phydev->mdio.addr != 0) {
  87. + if (phydev->addr != 0) {
  88. if (chip_is_ar8316(priv)) {
  89. /* switch device has been initialized, reinit */
  90. priv->dev.ports = (AR8216_NUM_PORTS - 1);
  91. @@ -2060,7 +2060,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
  92. /* flush ARL entries for this port if it went down*/
  93. if (!link_new)
  94. priv->chip->atu_flush_port(priv, i);
  95. - dev_info(&priv->phy->mdio.dev, "Port %d is %s\n",
  96. + dev_info(&priv->phy->dev, "Port %d is %s\n",
  97. i, link_new ? "up" : "down");
  98. }
  99. @@ -2079,10 +2079,10 @@ ar8xxx_phy_read_status(struct phy_device
  100. if (phydev->state == PHY_CHANGELINK)
  101. ar8xxx_check_link_states(priv);
  102. - if (phydev->mdio.addr != 0)
  103. + if (phydev->addr != 0)
  104. return genphy_read_status(phydev);
  105. - ar8216_read_port_link(priv, phydev->mdio.addr, &link);
  106. + ar8216_read_port_link(priv, phydev->addr, &link);
  107. phydev->link = !!link.link;
  108. if (!phydev->link)
  109. return 0;
  110. @@ -2112,7 +2112,7 @@ ar8xxx_phy_read_status(struct phy_device
  111. static int
  112. ar8xxx_phy_config_aneg(struct phy_device *phydev)
  113. {
  114. - if (phydev->mdio.addr == 0)
  115. + if (phydev->addr == 0)
  116. return 0;
  117. return genphy_config_aneg(phydev);
  118. @@ -2167,15 +2167,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
  119. int ret;
  120. /* skip PHYs at unused adresses */
  121. - if (phydev->mdio.addr != 0 && phydev->mdio.addr != 4)
  122. + if (phydev->addr != 0 && phydev->addr != 4)
  123. return -ENODEV;
  124. - if (!ar8xxx_is_possible(phydev->mdio.bus))
  125. + if (!ar8xxx_is_possible(phydev->bus))
  126. return -ENODEV;
  127. mutex_lock(&ar8xxx_dev_list_lock);
  128. list_for_each_entry(priv, &ar8xxx_dev_list, list)
  129. - if (priv->mii_bus == phydev->mdio.bus)
  130. + if (priv->mii_bus == phydev->bus)
  131. goto found;
  132. priv = ar8xxx_create();
  133. @@ -2184,7 +2184,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
  134. goto unlock;
  135. }
  136. - priv->mii_bus = phydev->mdio.bus;
  137. + priv->mii_bus = phydev->bus;
  138. ret = ar8xxx_probe_switch(priv);
  139. if (ret)
  140. @@ -2205,7 +2205,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
  141. found:
  142. priv->use_count++;
  143. - if (phydev->mdio.addr == 0) {
  144. + if (phydev->addr == 0) {
  145. if (ar8xxx_has_gige(priv)) {
  146. phydev->supported = SUPPORTED_1000baseT_Full;
  147. phydev->advertising = ADVERTISED_1000baseT_Full;
  148. @@ -2293,21 +2293,33 @@ ar8xxx_phy_soft_reset(struct phy_device
  149. return 0;
  150. }
  151. -static struct phy_driver ar8xxx_phy_driver[] = {
  152. - {
  153. - .phy_id = 0x004d0000,
  154. - .name = "Atheros AR8216/AR8236/AR8316",
  155. - .phy_id_mask = 0xffff0000,
  156. - .features = PHY_BASIC_FEATURES,
  157. - .probe = ar8xxx_phy_probe,
  158. - .remove = ar8xxx_phy_remove,
  159. - .detach = ar8xxx_phy_detach,
  160. - .config_init = ar8xxx_phy_config_init,
  161. - .config_aneg = ar8xxx_phy_config_aneg,
  162. - .read_status = ar8xxx_phy_read_status,
  163. - .soft_reset = ar8xxx_phy_soft_reset,
  164. - }
  165. +static struct phy_driver ar8xxx_phy_driver = {
  166. + .phy_id = 0x004d0000,
  167. + .name = "Atheros AR8216/AR8236/AR8316",
  168. + .phy_id_mask = 0xffff0000,
  169. + .features = PHY_BASIC_FEATURES,
  170. + .probe = ar8xxx_phy_probe,
  171. + .remove = ar8xxx_phy_remove,
  172. + .detach = ar8xxx_phy_detach,
  173. + .config_init = ar8xxx_phy_config_init,
  174. + .config_aneg = ar8xxx_phy_config_aneg,
  175. + .read_status = ar8xxx_phy_read_status,
  176. + .soft_reset = ar8xxx_phy_soft_reset,
  177. + .driver = { .owner = THIS_MODULE },
  178. };
  179. -module_phy_driver(ar8xxx_phy_driver);
  180. +int __init
  181. +ar8xxx_init(void)
  182. +{
  183. + return phy_driver_register(&ar8xxx_phy_driver);
  184. +}
  185. +
  186. +void __exit
  187. +ar8xxx_exit(void)
  188. +{
  189. + phy_driver_unregister(&ar8xxx_phy_driver);
  190. +}
  191. +
  192. +module_init(ar8xxx_init);
  193. +module_exit(ar8xxx_exit);
  194. MODULE_LICENSE("GPL");
  195. --- a/drivers/net/phy/ar8327.c
  196. +++ b/drivers/net/phy/ar8327.c
  197. @@ -619,11 +619,11 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
  198. if (!priv->chip_data)
  199. return -ENOMEM;
  200. - if (priv->phy->mdio.dev.of_node)
  201. - ret = ar8327_hw_config_of(priv, priv->phy->mdio.dev.of_node);
  202. + if (priv->phy->dev.of_node)
  203. + ret = ar8327_hw_config_of(priv, priv->phy->dev.of_node);
  204. else
  205. ret = ar8327_hw_config_pdata(priv,
  206. - priv->phy->mdio.dev.platform_data);
  207. + priv->phy->dev.platform_data);
  208. if (ret)
  209. return ret;
  210. --- a/drivers/net/phy/ip17xx.c
  211. +++ b/drivers/net/phy/ip17xx.c
  212. @@ -1273,7 +1273,7 @@ static int ip17xx_probe(struct phy_devic
  213. int err;
  214. /* We only attach to PHY 0, but use all available PHYs */
  215. - if (pdev->mdio.addr != 0)
  216. + if (pdev->addr != 0)
  217. return -ENODEV;
  218. state = kzalloc(sizeof(*state), GFP_KERNEL);
  219. @@ -1283,7 +1283,7 @@ static int ip17xx_probe(struct phy_devic
  220. dev = &state->dev;
  221. pdev->priv = state;
  222. - state->mii_bus = pdev->mdio.bus;
  223. + state->mii_bus = pdev->bus;
  224. err = get_model(state);
  225. if (err < 0)
  226. @@ -1295,7 +1295,7 @@ static int ip17xx_probe(struct phy_devic
  227. dev->name = state->regs->NAME;
  228. dev->ops = &ip17xx_ops;
  229. - pr_info("IP17xx: Found %s at %s\n", dev->name, dev_name(&pdev->mdio.dev));
  230. + pr_info("IP17xx: Found %s at %s\n", dev->name, dev_name(&pdev->dev));
  231. return 0;
  232. error:
  233. @@ -1353,25 +1353,58 @@ static int ip17xx_read_status(struct phy
  234. return 0;
  235. }
  236. -static struct phy_driver ip17xx_driver[] = {
  237. - {
  238. - .name = "IC+ IP17xx",
  239. - .phy_id = 0x02430c00,
  240. - .phy_id_mask = 0x0ffffc00,
  241. - .features = PHY_BASIC_FEATURES,
  242. - .probe = ip17xx_probe,
  243. - .remove = ip17xx_remove,
  244. - .config_init = ip17xx_config_init,
  245. - .config_aneg = ip17xx_config_aneg,
  246. - .aneg_done = ip17xx_aneg_done,
  247. - .update_link = ip17xx_update_link,
  248. - .read_status = ip17xx_read_status,
  249. - }
  250. +static struct phy_driver ip17xx_driver = {
  251. + .name = "IC+ IP17xx",
  252. + .phy_id = 0x02430c00,
  253. + .phy_id_mask = 0x0ffffc00,
  254. + .features = PHY_BASIC_FEATURES,
  255. + .probe = ip17xx_probe,
  256. + .remove = ip17xx_remove,
  257. + .config_init = ip17xx_config_init,
  258. + .config_aneg = ip17xx_config_aneg,
  259. + .aneg_done = ip17xx_aneg_done,
  260. + .update_link = ip17xx_update_link,
  261. + .read_status = ip17xx_read_status,
  262. + .driver = { .owner = THIS_MODULE },
  263. };
  264. -module_phy_driver(ip17xx_driver);
  265. +static struct phy_driver ip175a_driver = {
  266. + .name = "IC+ IP175A",
  267. + .phy_id = 0x02430c50,
  268. + .phy_id_mask = 0x0ffffff0,
  269. + .features = PHY_BASIC_FEATURES,
  270. + .probe = ip17xx_probe,
  271. + .remove = ip17xx_remove,
  272. + .config_init = ip17xx_config_init,
  273. + .config_aneg = ip17xx_config_aneg,
  274. + .aneg_done = ip17xx_aneg_done,
  275. + .update_link = ip17xx_update_link,
  276. + .read_status = ip17xx_read_status,
  277. + .driver = { .owner = THIS_MODULE },
  278. +};
  279. +
  280. +
  281. +int __init ip17xx_init(void)
  282. +{
  283. + int ret;
  284. +
  285. + ret = phy_driver_register(&ip175a_driver);
  286. + if (ret < 0)
  287. + return ret;
  288. +
  289. + return phy_driver_register(&ip17xx_driver);
  290. +}
  291. +
  292. +void __exit ip17xx_exit(void)
  293. +{
  294. + phy_driver_unregister(&ip17xx_driver);
  295. + phy_driver_unregister(&ip175a_driver);
  296. +}
  297. MODULE_AUTHOR("Patrick Horn <patrick.horn@gmail.com>");
  298. MODULE_AUTHOR("Felix Fietkau <nbd@nbd.name>");
  299. MODULE_AUTHOR("Martin Mares <mj@ucw.cz>");
  300. MODULE_LICENSE("GPL");
  301. +
  302. +module_init(ip17xx_init);
  303. +module_exit(ip17xx_exit);
  304. --- a/drivers/net/phy/mvswitch.c
  305. +++ b/drivers/net/phy/mvswitch.c
  306. @@ -50,17 +50,13 @@ struct mvswitch_priv {
  307. static inline u16
  308. r16(struct phy_device *phydev, int addr, int reg)
  309. {
  310. - struct mii_bus *bus = phydev->mdio.bus;
  311. -
  312. - return bus->read(bus, addr, reg);
  313. + return phydev->bus->read(phydev->bus, addr, reg);
  314. }
  315. static inline void
  316. w16(struct phy_device *phydev, int addr, int reg, u16 val)
  317. {
  318. - struct mii_bus *bus = phydev->mdio.bus;
  319. -
  320. - bus->write(bus, addr, reg, val);
  321. + phydev->bus->write(phydev->bus, addr, reg, val);
  322. }
  323. @@ -398,13 +394,12 @@ mvswitch_probe(struct phy_device *pdev)
  324. static int
  325. mvswitch_fixup(struct phy_device *dev)
  326. {
  327. - struct mii_bus *bus = dev->mdio.bus;
  328. u16 reg;
  329. - if (dev->mdio.addr != 0x10)
  330. + if (dev->addr != 0x10)
  331. return 0;
  332. - reg = bus->read(bus, MV_PORTREG(IDENT, 0)) & MV_IDENT_MASK;
  333. + reg = dev->bus->read(dev->bus, MV_PORTREG(IDENT, 0)) & MV_IDENT_MASK;
  334. if (reg != MV_IDENT_VALUE)
  335. return 0;
  336. @@ -425,13 +420,14 @@ static struct phy_driver mvswitch_driver
  337. .config_aneg = &mvswitch_config_aneg,
  338. .aneg_done = &mvswitch_aneg_done,
  339. .read_status = &mvswitch_read_status,
  340. + .driver = { .owner = THIS_MODULE,},
  341. };
  342. static int __init
  343. mvswitch_init(void)
  344. {
  345. phy_register_fixup_for_id(PHY_ANY_ID, mvswitch_fixup);
  346. - return phy_driver_register(&mvswitch_driver, THIS_MODULE);
  347. + return phy_driver_register(&mvswitch_driver);
  348. }
  349. static void __exit
  350. --- a/drivers/net/phy/psb6970.c
  351. +++ b/drivers/net/phy/psb6970.c
  352. @@ -70,16 +70,12 @@ struct psb6970_priv {
  353. static u16 psb6970_mii_read(struct phy_device *phydev, int reg)
  354. {
  355. - struct mii_bus *bus = phydev->mdio.bus;
  356. -
  357. - return bus->read(bus, PHYADDR(reg));
  358. + return phydev->bus->read(phydev->bus, PHYADDR(reg));
  359. }
  360. static void psb6970_mii_write(struct phy_device *phydev, int reg, u16 val)
  361. {
  362. - struct mii_bus *bus = phydev->mdio.bus;
  363. -
  364. - bus->write(bus, PHYADDR(reg), val);
  365. + phydev->bus->write(phydev->bus, PHYADDR(reg), val);
  366. }
  367. static int
  368. @@ -316,11 +312,11 @@ static int psb6970_config_init(struct ph
  369. priv->phy = pdev;
  370. - if (pdev->mdio.addr == 0)
  371. + if (pdev->addr == 0)
  372. printk(KERN_INFO "%s: psb6970 switch driver attached.\n",
  373. pdev->attached_dev->name);
  374. - if (pdev->mdio.addr != 0) {
  375. + if (pdev->addr != 0) {
  376. kfree(priv);
  377. return 0;
  378. }
  379. @@ -388,14 +384,14 @@ static void psb6970_remove(struct phy_de
  380. if (!priv)
  381. return;
  382. - if (pdev->mdio.addr == 0)
  383. + if (pdev->addr == 0)
  384. unregister_switch(&priv->dev);
  385. kfree(priv);
  386. }
  387. static int psb6970_fixup(struct phy_device *dev)
  388. {
  389. - struct mii_bus *bus = dev->mdio.bus;
  390. + struct mii_bus *bus = dev->bus;
  391. u16 reg;
  392. /* look for the switch on the bus */
  393. @@ -419,12 +415,13 @@ static struct phy_driver psb6970_driver
  394. .config_init = &psb6970_config_init,
  395. .config_aneg = &psb6970_config_aneg,
  396. .read_status = &psb6970_read_status,
  397. + .driver = {.owner = THIS_MODULE},
  398. };
  399. int __init psb6970_init(void)
  400. {
  401. phy_register_fixup_for_id(PHY_ANY_ID, psb6970_fixup);
  402. - return phy_driver_register(&psb6970_driver, THIS_MODULE);
  403. + return phy_driver_register(&psb6970_driver);
  404. }
  405. module_init(psb6970_init);
  406. --- a/drivers/net/phy/rtl8306.c
  407. +++ b/drivers/net/phy/rtl8306.c
  408. @@ -877,7 +877,7 @@ rtl8306_config_init(struct phy_device *p
  409. int err;
  410. /* Only init the switch for the primary PHY */
  411. - if (pdev->mdio.addr != 0)
  412. + if (pdev->addr != 0)
  413. return 0;
  414. val.value.i = 1;
  415. @@ -887,7 +887,7 @@ rtl8306_config_init(struct phy_device *p
  416. priv->dev.ops = &rtl8306_ops;
  417. priv->do_cpu = 0;
  418. priv->page = -1;
  419. - priv->bus = pdev->mdio.bus;
  420. + priv->bus = pdev->bus;
  421. chipid = rtl_get(dev, RTL_REG_CHIPID);
  422. chipver = rtl_get(dev, RTL_REG_CHIPVER);
  423. @@ -933,13 +933,13 @@ rtl8306_fixup(struct phy_device *pdev)
  424. u16 chipid;
  425. /* Attach to primary LAN port and WAN port */
  426. - if (pdev->mdio.addr != 0 && pdev->mdio.addr != 4)
  427. + if (pdev->addr != 0 && pdev->addr != 4)
  428. return 0;
  429. memset(&priv, 0, sizeof(priv));
  430. priv.fixup = true;
  431. priv.page = -1;
  432. - priv.bus = pdev->mdio.bus;
  433. + priv.bus = pdev->bus;
  434. chipid = rtl_get(&priv.dev, RTL_REG_CHIPID);
  435. if (chipid == 0x5988)
  436. pdev->phy_id = RTL8306_MAGIC;
  437. @@ -957,14 +957,14 @@ rtl8306_probe(struct phy_device *pdev)
  438. * share one rtl_priv instance between virtual phy
  439. * devices on the same bus
  440. */
  441. - if (priv->bus == pdev->mdio.bus)
  442. + if (priv->bus == pdev->bus)
  443. goto found;
  444. }
  445. priv = kzalloc(sizeof(struct rtl_priv), GFP_KERNEL);
  446. if (!priv)
  447. return -ENOMEM;
  448. - priv->bus = pdev->mdio.bus;
  449. + priv->bus = pdev->bus;
  450. found:
  451. pdev->priv = priv;
  452. @@ -985,7 +985,7 @@ rtl8306_config_aneg(struct phy_device *p
  453. struct rtl_priv *priv = pdev->priv;
  454. /* Only for WAN */
  455. - if (pdev->mdio.addr == 0)
  456. + if (pdev->addr == 0)
  457. return 0;
  458. /* Restart autonegotiation */
  459. @@ -1001,7 +1001,7 @@ rtl8306_read_status(struct phy_device *p
  460. struct rtl_priv *priv = pdev->priv;
  461. struct switch_dev *dev = &priv->dev;
  462. - if (pdev->mdio.addr == 4) {
  463. + if (pdev->addr == 4) {
  464. /* WAN */
  465. pdev->speed = rtl_get(dev, RTL_PORT_REG(4, SPEED)) ? SPEED_100 : SPEED_10;
  466. pdev->duplex = rtl_get(dev, RTL_PORT_REG(4, DUPLEX)) ? DUPLEX_FULL : DUPLEX_HALF;
  467. @@ -1044,6 +1044,7 @@ static struct phy_driver rtl8306_driver
  468. .config_init = &rtl8306_config_init,
  469. .config_aneg = &rtl8306_config_aneg,
  470. .read_status = &rtl8306_read_status,
  471. + .driver = { .owner = THIS_MODULE,},
  472. };
  473. @@ -1051,7 +1052,7 @@ static int __init
  474. rtl_init(void)
  475. {
  476. phy_register_fixup_for_id(PHY_ANY_ID, rtl8306_fixup);
  477. - return phy_driver_register(&rtl8306_driver, THIS_MODULE);
  478. + return phy_driver_register(&rtl8306_driver);
  479. }
  480. static void __exit