Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: phy: switch drivers to use dynamic feature detection

Recently genphy_read_abilities() has been added that dynamically detects
clause 22 PHY abilities. I *think* this detection should work with all
supported PHY's, at least for the ones with basic features sets, i.e.
PHY_BASIC_FEATURES and PHY_GBIT_FEATURES. So let's remove setting these
features explicitly and rely on phylib feature detection.

I don't have access to most of these PHY's, therefore I'd appreciate
regression testing.

v2:
- make the feature constant a comment so that readers know which
features are supported by the respective PHY

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Tested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Heiner Kallweit and committed by
David S. Miller
dcdecdcf b6ed55cb

+120 -120
+1 -1
drivers/net/phy/amd.c
··· 60 60 .phy_id = PHY_ID_AM79C874, 61 61 .name = "AM79C874", 62 62 .phy_id_mask = 0xfffffff0, 63 - .features = PHY_BASIC_FEATURES, 63 + /* PHY_BASIC_FEATURES */ 64 64 .config_init = am79c_config_init, 65 65 .ack_interrupt = am79c_ack_interrupt, 66 66 .config_intr = am79c_config_intr,
+1 -1
drivers/net/phy/asix.c
··· 43 43 .phy_id = PHY_ID_ASIX_AX88796B, 44 44 .name = "Asix Electronics AX88796B", 45 45 .phy_id_mask = 0xfffffff0, 46 - .features = PHY_BASIC_FEATURES, 46 + /* PHY_BASIC_FEATURES */ 47 47 .soft_reset = asix_soft_reset, 48 48 } }; 49 49
+3 -3
drivers/net/phy/at803x.c
··· 389 389 .get_wol = at803x_get_wol, 390 390 .suspend = at803x_suspend, 391 391 .resume = at803x_resume, 392 - .features = PHY_GBIT_FEATURES, 392 + /* PHY_GBIT_FEATURES */ 393 393 .ack_interrupt = at803x_ack_interrupt, 394 394 .config_intr = at803x_config_intr, 395 395 }, { ··· 404 404 .get_wol = at803x_get_wol, 405 405 .suspend = at803x_suspend, 406 406 .resume = at803x_resume, 407 - .features = PHY_BASIC_FEATURES, 407 + /* PHY_BASIC_FEATURES */ 408 408 .ack_interrupt = at803x_ack_interrupt, 409 409 .config_intr = at803x_config_intr, 410 410 }, { ··· 418 418 .get_wol = at803x_get_wol, 419 419 .suspend = at803x_suspend, 420 420 .resume = at803x_resume, 421 - .features = PHY_GBIT_FEATURES, 421 + /* PHY_GBIT_FEATURES */ 422 422 .aneg_done = at803x_aneg_done, 423 423 .ack_interrupt = &at803x_ack_interrupt, 424 424 .config_intr = &at803x_config_intr,
+2 -2
drivers/net/phy/bcm-cygnus.c
··· 254 254 .phy_id = PHY_ID_BCM_CYGNUS, 255 255 .phy_id_mask = 0xfffffff0, 256 256 .name = "Broadcom Cygnus PHY", 257 - .features = PHY_GBIT_FEATURES, 257 + /* PHY_GBIT_FEATURES */ 258 258 .config_init = bcm_cygnus_config_init, 259 259 .ack_interrupt = bcm_phy_ack_intr, 260 260 .config_intr = bcm_phy_config_intr, ··· 264 264 .phy_id = PHY_ID_BCM_OMEGA, 265 265 .phy_id_mask = 0xfffffff0, 266 266 .name = "Broadcom Omega Combo GPHY", 267 - .features = PHY_GBIT_FEATURES, 267 + /* PHY_GBIT_FEATURES */ 268 268 .flags = PHY_IS_INTERNAL, 269 269 .config_init = bcm_omega_config_init, 270 270 .suspend = genphy_suspend,
+2 -2
drivers/net/phy/bcm63xx.c
··· 64 64 .phy_id = 0x00406000, 65 65 .phy_id_mask = 0xfffffc00, 66 66 .name = "Broadcom BCM63XX (1)", 67 - .features = PHY_BASIC_FEATURES, 67 + /* PHY_BASIC_FEATURES */ 68 68 .flags = PHY_IS_INTERNAL, 69 69 .config_init = bcm63xx_config_init, 70 70 .ack_interrupt = bcm_phy_ack_intr, ··· 73 73 /* same phy as above, with just a different OUI */ 74 74 .phy_id = 0x002bdc00, 75 75 .phy_id_mask = 0xfffffc00, 76 - .features = PHY_BASIC_FEATURES, 76 + /* PHY_BASIC_FEATURES */ 77 77 .flags = PHY_IS_INTERNAL, 78 78 .config_init = bcm63xx_config_init, 79 79 .ack_interrupt = bcm_phy_ack_intr,
+3 -3
drivers/net/phy/bcm7xxx.c
··· 538 538 .phy_id = (_oui), \ 539 539 .phy_id_mask = 0xfffffff0, \ 540 540 .name = _name, \ 541 - .features = PHY_GBIT_FEATURES, \ 541 + /* PHY_GBIT_FEATURES */ \ 542 542 .flags = PHY_IS_INTERNAL, \ 543 543 .config_init = bcm7xxx_28nm_config_init, \ 544 544 .resume = bcm7xxx_28nm_resume, \ ··· 555 555 .phy_id = (_oui), \ 556 556 .phy_id_mask = 0xfffffff0, \ 557 557 .name = _name, \ 558 - .features = PHY_BASIC_FEATURES, \ 558 + /* PHY_BASIC_FEATURES */ \ 559 559 .flags = PHY_IS_INTERNAL, \ 560 560 .config_init = bcm7xxx_28nm_ephy_config_init, \ 561 561 .resume = bcm7xxx_28nm_ephy_resume, \ ··· 570 570 .phy_id = (_oui), \ 571 571 .phy_id_mask = 0xfffffff0, \ 572 572 .name = _name, \ 573 - .features = PHY_BASIC_FEATURES, \ 573 + /* PHY_BASIC_FEATURES */ \ 574 574 .flags = PHY_IS_INTERNAL, \ 575 575 .config_init = bcm7xxx_config_init, \ 576 576 .suspend = bcm7xxx_suspend, \
+17 -17
drivers/net/phy/broadcom.c
··· 610 610 .phy_id = PHY_ID_BCM5411, 611 611 .phy_id_mask = 0xfffffff0, 612 612 .name = "Broadcom BCM5411", 613 - .features = PHY_GBIT_FEATURES, 613 + /* PHY_GBIT_FEATURES */ 614 614 .config_init = bcm54xx_config_init, 615 615 .ack_interrupt = bcm_phy_ack_intr, 616 616 .config_intr = bcm_phy_config_intr, ··· 618 618 .phy_id = PHY_ID_BCM5421, 619 619 .phy_id_mask = 0xfffffff0, 620 620 .name = "Broadcom BCM5421", 621 - .features = PHY_GBIT_FEATURES, 621 + /* PHY_GBIT_FEATURES */ 622 622 .config_init = bcm54xx_config_init, 623 623 .ack_interrupt = bcm_phy_ack_intr, 624 624 .config_intr = bcm_phy_config_intr, ··· 626 626 .phy_id = PHY_ID_BCM54210E, 627 627 .phy_id_mask = 0xfffffff0, 628 628 .name = "Broadcom BCM54210E", 629 - .features = PHY_GBIT_FEATURES, 629 + /* PHY_GBIT_FEATURES */ 630 630 .config_init = bcm54xx_config_init, 631 631 .ack_interrupt = bcm_phy_ack_intr, 632 632 .config_intr = bcm_phy_config_intr, ··· 634 634 .phy_id = PHY_ID_BCM5461, 635 635 .phy_id_mask = 0xfffffff0, 636 636 .name = "Broadcom BCM5461", 637 - .features = PHY_GBIT_FEATURES, 637 + /* PHY_GBIT_FEATURES */ 638 638 .config_init = bcm54xx_config_init, 639 639 .ack_interrupt = bcm_phy_ack_intr, 640 640 .config_intr = bcm_phy_config_intr, ··· 642 642 .phy_id = PHY_ID_BCM54612E, 643 643 .phy_id_mask = 0xfffffff0, 644 644 .name = "Broadcom BCM54612E", 645 - .features = PHY_GBIT_FEATURES, 645 + /* PHY_GBIT_FEATURES */ 646 646 .config_init = bcm54xx_config_init, 647 647 .ack_interrupt = bcm_phy_ack_intr, 648 648 .config_intr = bcm_phy_config_intr, ··· 650 650 .phy_id = PHY_ID_BCM54616S, 651 651 .phy_id_mask = 0xfffffff0, 652 652 .name = "Broadcom BCM54616S", 653 - .features = PHY_GBIT_FEATURES, 653 + /* PHY_GBIT_FEATURES */ 654 654 .config_init = bcm54xx_config_init, 655 655 .config_aneg = bcm54616s_config_aneg, 656 656 .ack_interrupt = bcm_phy_ack_intr, ··· 659 659 .phy_id = PHY_ID_BCM5464, 660 660 .phy_id_mask = 0xfffffff0, 661 661 .name = "Broadcom BCM5464", 662 - .features = PHY_GBIT_FEATURES, 662 + /* PHY_GBIT_FEATURES */ 663 663 .config_init = bcm54xx_config_init, 664 664 .ack_interrupt = bcm_phy_ack_intr, 665 665 .config_intr = bcm_phy_config_intr, ··· 667 667 .phy_id = PHY_ID_BCM5481, 668 668 .phy_id_mask = 0xfffffff0, 669 669 .name = "Broadcom BCM5481", 670 - .features = PHY_GBIT_FEATURES, 670 + /* PHY_GBIT_FEATURES */ 671 671 .config_init = bcm54xx_config_init, 672 672 .config_aneg = bcm5481_config_aneg, 673 673 .ack_interrupt = bcm_phy_ack_intr, ··· 676 676 .phy_id = PHY_ID_BCM54810, 677 677 .phy_id_mask = 0xfffffff0, 678 678 .name = "Broadcom BCM54810", 679 - .features = PHY_GBIT_FEATURES, 679 + /* PHY_GBIT_FEATURES */ 680 680 .config_init = bcm54xx_config_init, 681 681 .config_aneg = bcm5481_config_aneg, 682 682 .ack_interrupt = bcm_phy_ack_intr, ··· 685 685 .phy_id = PHY_ID_BCM5482, 686 686 .phy_id_mask = 0xfffffff0, 687 687 .name = "Broadcom BCM5482", 688 - .features = PHY_GBIT_FEATURES, 688 + /* PHY_GBIT_FEATURES */ 689 689 .config_init = bcm5482_config_init, 690 690 .read_status = bcm5482_read_status, 691 691 .ack_interrupt = bcm_phy_ack_intr, ··· 694 694 .phy_id = PHY_ID_BCM50610, 695 695 .phy_id_mask = 0xfffffff0, 696 696 .name = "Broadcom BCM50610", 697 - .features = PHY_GBIT_FEATURES, 697 + /* PHY_GBIT_FEATURES */ 698 698 .config_init = bcm54xx_config_init, 699 699 .ack_interrupt = bcm_phy_ack_intr, 700 700 .config_intr = bcm_phy_config_intr, ··· 702 702 .phy_id = PHY_ID_BCM50610M, 703 703 .phy_id_mask = 0xfffffff0, 704 704 .name = "Broadcom BCM50610M", 705 - .features = PHY_GBIT_FEATURES, 705 + /* PHY_GBIT_FEATURES */ 706 706 .config_init = bcm54xx_config_init, 707 707 .ack_interrupt = bcm_phy_ack_intr, 708 708 .config_intr = bcm_phy_config_intr, ··· 710 710 .phy_id = PHY_ID_BCM57780, 711 711 .phy_id_mask = 0xfffffff0, 712 712 .name = "Broadcom BCM57780", 713 - .features = PHY_GBIT_FEATURES, 713 + /* PHY_GBIT_FEATURES */ 714 714 .config_init = bcm54xx_config_init, 715 715 .ack_interrupt = bcm_phy_ack_intr, 716 716 .config_intr = bcm_phy_config_intr, ··· 718 718 .phy_id = PHY_ID_BCMAC131, 719 719 .phy_id_mask = 0xfffffff0, 720 720 .name = "Broadcom BCMAC131", 721 - .features = PHY_BASIC_FEATURES, 721 + /* PHY_BASIC_FEATURES */ 722 722 .config_init = brcm_fet_config_init, 723 723 .ack_interrupt = brcm_fet_ack_interrupt, 724 724 .config_intr = brcm_fet_config_intr, ··· 726 726 .phy_id = PHY_ID_BCM5241, 727 727 .phy_id_mask = 0xfffffff0, 728 728 .name = "Broadcom BCM5241", 729 - .features = PHY_BASIC_FEATURES, 729 + /* PHY_BASIC_FEATURES */ 730 730 .config_init = brcm_fet_config_init, 731 731 .ack_interrupt = brcm_fet_ack_interrupt, 732 732 .config_intr = brcm_fet_config_intr, ··· 735 735 .phy_id_mask = 0xfffffff0, 736 736 .name = "Broadcom BCM5395", 737 737 .flags = PHY_IS_INTERNAL, 738 - .features = PHY_GBIT_FEATURES, 738 + /* PHY_GBIT_FEATURES */ 739 739 .get_sset_count = bcm_phy_get_sset_count, 740 740 .get_strings = bcm_phy_get_strings, 741 741 .get_stats = bcm53xx_phy_get_stats, ··· 744 744 .phy_id = PHY_ID_BCM89610, 745 745 .phy_id_mask = 0xfffffff0, 746 746 .name = "Broadcom BCM89610", 747 - .features = PHY_GBIT_FEATURES, 747 + /* PHY_GBIT_FEATURES */ 748 748 .config_init = bcm54xx_config_init, 749 749 .ack_interrupt = bcm_phy_ack_intr, 750 750 .config_intr = bcm_phy_config_intr,
+2 -2
drivers/net/phy/cicada.c
··· 102 102 .phy_id = 0x000fc410, 103 103 .name = "Cicada Cis8201", 104 104 .phy_id_mask = 0x000ffff0, 105 - .features = PHY_GBIT_FEATURES, 105 + /* PHY_GBIT_FEATURES */ 106 106 .config_init = &cis820x_config_init, 107 107 .ack_interrupt = &cis820x_ack_interrupt, 108 108 .config_intr = &cis820x_config_intr, ··· 110 110 .phy_id = 0x000fc440, 111 111 .name = "Cicada Cis8204", 112 112 .phy_id_mask = 0x000fffc0, 113 - .features = PHY_GBIT_FEATURES, 113 + /* PHY_GBIT_FEATURES */ 114 114 .config_init = &cis820x_config_init, 115 115 .ack_interrupt = &cis820x_ack_interrupt, 116 116 .config_intr = &cis820x_config_intr,
+4 -4
drivers/net/phy/davicom.c
··· 144 144 .phy_id = 0x0181b880, 145 145 .name = "Davicom DM9161E", 146 146 .phy_id_mask = 0x0ffffff0, 147 - .features = PHY_BASIC_FEATURES, 147 + /* PHY_BASIC_FEATURES */ 148 148 .config_init = dm9161_config_init, 149 149 .config_aneg = dm9161_config_aneg, 150 150 .ack_interrupt = dm9161_ack_interrupt, ··· 153 153 .phy_id = 0x0181b8b0, 154 154 .name = "Davicom DM9161B/C", 155 155 .phy_id_mask = 0x0ffffff0, 156 - .features = PHY_BASIC_FEATURES, 156 + /* PHY_BASIC_FEATURES */ 157 157 .config_init = dm9161_config_init, 158 158 .config_aneg = dm9161_config_aneg, 159 159 .ack_interrupt = dm9161_ack_interrupt, ··· 162 162 .phy_id = 0x0181b8a0, 163 163 .name = "Davicom DM9161A", 164 164 .phy_id_mask = 0x0ffffff0, 165 - .features = PHY_BASIC_FEATURES, 165 + /* PHY_BASIC_FEATURES */ 166 166 .config_init = dm9161_config_init, 167 167 .config_aneg = dm9161_config_aneg, 168 168 .ack_interrupt = dm9161_ack_interrupt, ··· 171 171 .phy_id = 0x00181b80, 172 172 .name = "Davicom DM9131", 173 173 .phy_id_mask = 0x0ffffff0, 174 - .features = PHY_BASIC_FEATURES, 174 + /* PHY_BASIC_FEATURES */ 175 175 .ack_interrupt = dm9161_ack_interrupt, 176 176 .config_intr = dm9161_config_intr, 177 177 } };
+1 -1
drivers/net/phy/dp83640.c
··· 1514 1514 .phy_id = DP83640_PHY_ID, 1515 1515 .phy_id_mask = 0xfffffff0, 1516 1516 .name = "NatSemi DP83640", 1517 - .features = PHY_BASIC_FEATURES, 1517 + /* PHY_BASIC_FEATURES */ 1518 1518 .probe = dp83640_probe, 1519 1519 .remove = dp83640_remove, 1520 1520 .soft_reset = dp83640_soft_reset,
+1 -1
drivers/net/phy/dp83822.c
··· 310 310 { \ 311 311 PHY_ID_MATCH_MODEL(_id), \ 312 312 .name = (_name), \ 313 - .features = PHY_BASIC_FEATURES, \ 313 + /* PHY_BASIC_FEATURES */ \ 314 314 .soft_reset = dp83822_phy_reset, \ 315 315 .config_init = dp83822_config_init, \ 316 316 .get_wol = dp83822_get_wol, \
+1 -1
drivers/net/phy/dp83848.c
··· 99 99 .phy_id = _id, \ 100 100 .phy_id_mask = 0xfffffff0, \ 101 101 .name = _name, \ 102 - .features = PHY_BASIC_FEATURES, \ 102 + /* PHY_BASIC_FEATURES */ \ 103 103 \ 104 104 .soft_reset = genphy_soft_reset, \ 105 105 .config_init = _config_init, \
+1 -1
drivers/net/phy/dp83867.c
··· 315 315 .phy_id = DP83867_PHY_ID, 316 316 .phy_id_mask = 0xfffffff0, 317 317 .name = "TI DP83867", 318 - .features = PHY_GBIT_FEATURES, 318 + /* PHY_GBIT_FEATURES */ 319 319 320 320 .config_init = dp83867_config_init, 321 321 .soft_reset = dp83867_phy_reset,
+1 -1
drivers/net/phy/dp83tc811.c
··· 338 338 .phy_id = DP83TC811_PHY_ID, 339 339 .phy_id_mask = 0xfffffff0, 340 340 .name = "TI DP83TC811", 341 - .features = PHY_BASIC_FEATURES, 341 + /* PHY_BASIC_FEATURES */ 342 342 .config_init = dp83811_config_init, 343 343 .config_aneg = dp83811_config_aneg, 344 344 .soft_reset = dp83811_phy_reset,
+1 -1
drivers/net/phy/et1011c.c
··· 86 86 .phy_id = 0x0282f014, 87 87 .name = "ET1011C", 88 88 .phy_id_mask = 0xfffffff0, 89 - .features = PHY_GBIT_FEATURES, 89 + /* PHY_GBIT_FEATURES */ 90 90 .config_aneg = et1011c_config_aneg, 91 91 .read_status = et1011c_read_status, 92 92 } };
+3 -3
drivers/net/phy/icplus.c
··· 311 311 .phy_id = 0x02430d80, 312 312 .name = "ICPlus IP175C", 313 313 .phy_id_mask = 0x0ffffff0, 314 - .features = PHY_BASIC_FEATURES, 314 + /* PHY_BASIC_FEATURES */ 315 315 .config_init = &ip175c_config_init, 316 316 .config_aneg = &ip175c_config_aneg, 317 317 .read_status = &ip175c_read_status, ··· 321 321 .phy_id = 0x02430d90, 322 322 .name = "ICPlus IP1001", 323 323 .phy_id_mask = 0x0ffffff0, 324 - .features = PHY_GBIT_FEATURES, 324 + /* PHY_GBIT_FEATURES */ 325 325 .config_init = &ip1001_config_init, 326 326 .suspend = genphy_suspend, 327 327 .resume = genphy_resume, ··· 329 329 .phy_id = 0x02430c54, 330 330 .name = "ICPlus IP101A/G", 331 331 .phy_id_mask = 0x0ffffff0, 332 - .features = PHY_BASIC_FEATURES, 332 + /* PHY_BASIC_FEATURES */ 333 333 .probe = ip101a_g_probe, 334 334 .config_intr = ip101a_g_config_intr, 335 335 .did_interrupt = ip101a_g_did_interrupt,
+10 -10
drivers/net/phy/intel-xway.c
··· 232 232 .phy_id = PHY_ID_PHY11G_1_3, 233 233 .phy_id_mask = 0xffffffff, 234 234 .name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.3", 235 - .features = PHY_GBIT_FEATURES, 235 + /* PHY_GBIT_FEATURES */ 236 236 .config_init = xway_gphy_config_init, 237 237 .config_aneg = xway_gphy14_config_aneg, 238 238 .ack_interrupt = xway_gphy_ack_interrupt, ··· 244 244 .phy_id = PHY_ID_PHY22F_1_3, 245 245 .phy_id_mask = 0xffffffff, 246 246 .name = "Intel XWAY PHY22F (PEF 7061) v1.3", 247 - .features = PHY_BASIC_FEATURES, 247 + /* PHY_BASIC_FEATURES */ 248 248 .config_init = xway_gphy_config_init, 249 249 .config_aneg = xway_gphy14_config_aneg, 250 250 .ack_interrupt = xway_gphy_ack_interrupt, ··· 256 256 .phy_id = PHY_ID_PHY11G_1_4, 257 257 .phy_id_mask = 0xffffffff, 258 258 .name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.4", 259 - .features = PHY_GBIT_FEATURES, 259 + /* PHY_GBIT_FEATURES */ 260 260 .config_init = xway_gphy_config_init, 261 261 .config_aneg = xway_gphy14_config_aneg, 262 262 .ack_interrupt = xway_gphy_ack_interrupt, ··· 268 268 .phy_id = PHY_ID_PHY22F_1_4, 269 269 .phy_id_mask = 0xffffffff, 270 270 .name = "Intel XWAY PHY22F (PEF 7061) v1.4", 271 - .features = PHY_BASIC_FEATURES, 271 + /* PHY_BASIC_FEATURES */ 272 272 .config_init = xway_gphy_config_init, 273 273 .config_aneg = xway_gphy14_config_aneg, 274 274 .ack_interrupt = xway_gphy_ack_interrupt, ··· 280 280 .phy_id = PHY_ID_PHY11G_1_5, 281 281 .phy_id_mask = 0xffffffff, 282 282 .name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.5 / v1.6", 283 - .features = PHY_GBIT_FEATURES, 283 + /* PHY_GBIT_FEATURES */ 284 284 .config_init = xway_gphy_config_init, 285 285 .ack_interrupt = xway_gphy_ack_interrupt, 286 286 .did_interrupt = xway_gphy_did_interrupt, ··· 291 291 .phy_id = PHY_ID_PHY22F_1_5, 292 292 .phy_id_mask = 0xffffffff, 293 293 .name = "Intel XWAY PHY22F (PEF 7061) v1.5 / v1.6", 294 - .features = PHY_BASIC_FEATURES, 294 + /* PHY_BASIC_FEATURES */ 295 295 .config_init = xway_gphy_config_init, 296 296 .ack_interrupt = xway_gphy_ack_interrupt, 297 297 .did_interrupt = xway_gphy_did_interrupt, ··· 302 302 .phy_id = PHY_ID_PHY11G_VR9_1_1, 303 303 .phy_id_mask = 0xffffffff, 304 304 .name = "Intel XWAY PHY11G (xRX v1.1 integrated)", 305 - .features = PHY_GBIT_FEATURES, 305 + /* PHY_GBIT_FEATURES */ 306 306 .config_init = xway_gphy_config_init, 307 307 .ack_interrupt = xway_gphy_ack_interrupt, 308 308 .did_interrupt = xway_gphy_did_interrupt, ··· 313 313 .phy_id = PHY_ID_PHY22F_VR9_1_1, 314 314 .phy_id_mask = 0xffffffff, 315 315 .name = "Intel XWAY PHY22F (xRX v1.1 integrated)", 316 - .features = PHY_BASIC_FEATURES, 316 + /* PHY_BASIC_FEATURES */ 317 317 .config_init = xway_gphy_config_init, 318 318 .ack_interrupt = xway_gphy_ack_interrupt, 319 319 .did_interrupt = xway_gphy_did_interrupt, ··· 324 324 .phy_id = PHY_ID_PHY11G_VR9_1_2, 325 325 .phy_id_mask = 0xffffffff, 326 326 .name = "Intel XWAY PHY11G (xRX v1.2 integrated)", 327 - .features = PHY_GBIT_FEATURES, 327 + /* PHY_GBIT_FEATURES */ 328 328 .config_init = xway_gphy_config_init, 329 329 .ack_interrupt = xway_gphy_ack_interrupt, 330 330 .did_interrupt = xway_gphy_did_interrupt, ··· 335 335 .phy_id = PHY_ID_PHY22F_VR9_1_2, 336 336 .phy_id_mask = 0xffffffff, 337 337 .name = "Intel XWAY PHY22F (xRX v1.2 integrated)", 338 - .features = PHY_BASIC_FEATURES, 338 + /* PHY_BASIC_FEATURES */ 339 339 .config_init = xway_gphy_config_init, 340 340 .ack_interrupt = xway_gphy_ack_interrupt, 341 341 .did_interrupt = xway_gphy_did_interrupt,
+4 -4
drivers/net/phy/lxt.c
··· 251 251 .phy_id = 0x78100000, 252 252 .name = "LXT970", 253 253 .phy_id_mask = 0xfffffff0, 254 - .features = PHY_BASIC_FEATURES, 254 + /* PHY_BASIC_FEATURES */ 255 255 .config_init = lxt970_config_init, 256 256 .ack_interrupt = lxt970_ack_interrupt, 257 257 .config_intr = lxt970_config_intr, ··· 259 259 .phy_id = 0x001378e0, 260 260 .name = "LXT971", 261 261 .phy_id_mask = 0xfffffff0, 262 - .features = PHY_BASIC_FEATURES, 262 + /* PHY_BASIC_FEATURES */ 263 263 .ack_interrupt = lxt971_ack_interrupt, 264 264 .config_intr = lxt971_config_intr, 265 265 }, { 266 266 .phy_id = 0x00137a10, 267 267 .name = "LXT973-A2", 268 268 .phy_id_mask = 0xffffffff, 269 - .features = PHY_BASIC_FEATURES, 269 + /* PHY_BASIC_FEATURES */ 270 270 .flags = 0, 271 271 .probe = lxt973_probe, 272 272 .config_aneg = lxt973_config_aneg, ··· 275 275 .phy_id = 0x00137a10, 276 276 .name = "LXT973", 277 277 .phy_id_mask = 0xfffffff0, 278 - .features = PHY_BASIC_FEATURES, 278 + /* PHY_BASIC_FEATURES */ 279 279 .flags = 0, 280 280 .probe = lxt973_probe, 281 281 .config_aneg = lxt973_config_aneg,
+14 -14
drivers/net/phy/marvell.c
··· 2126 2126 .phy_id = MARVELL_PHY_ID_88E1101, 2127 2127 .phy_id_mask = MARVELL_PHY_ID_MASK, 2128 2128 .name = "Marvell 88E1101", 2129 - .features = PHY_GBIT_FEATURES, 2129 + /* PHY_GBIT_FEATURES */ 2130 2130 .probe = marvell_probe, 2131 2131 .config_init = &marvell_config_init, 2132 2132 .config_aneg = &m88e1101_config_aneg, ··· 2144 2144 .phy_id = MARVELL_PHY_ID_88E1112, 2145 2145 .phy_id_mask = MARVELL_PHY_ID_MASK, 2146 2146 .name = "Marvell 88E1112", 2147 - .features = PHY_GBIT_FEATURES, 2147 + /* PHY_GBIT_FEATURES */ 2148 2148 .probe = marvell_probe, 2149 2149 .config_init = &m88e1111_config_init, 2150 2150 .config_aneg = &marvell_config_aneg, ··· 2162 2162 .phy_id = MARVELL_PHY_ID_88E1111, 2163 2163 .phy_id_mask = MARVELL_PHY_ID_MASK, 2164 2164 .name = "Marvell 88E1111", 2165 - .features = PHY_GBIT_FEATURES, 2165 + /* PHY_GBIT_FEATURES */ 2166 2166 .probe = marvell_probe, 2167 2167 .config_init = &m88e1111_config_init, 2168 2168 .config_aneg = &marvell_config_aneg, ··· 2181 2181 .phy_id = MARVELL_PHY_ID_88E1118, 2182 2182 .phy_id_mask = MARVELL_PHY_ID_MASK, 2183 2183 .name = "Marvell 88E1118", 2184 - .features = PHY_GBIT_FEATURES, 2184 + /* PHY_GBIT_FEATURES */ 2185 2185 .probe = marvell_probe, 2186 2186 .config_init = &m88e1118_config_init, 2187 2187 .config_aneg = &m88e1118_config_aneg, ··· 2199 2199 .phy_id = MARVELL_PHY_ID_88E1121R, 2200 2200 .phy_id_mask = MARVELL_PHY_ID_MASK, 2201 2201 .name = "Marvell 88E1121R", 2202 - .features = PHY_GBIT_FEATURES, 2202 + /* PHY_GBIT_FEATURES */ 2203 2203 .probe = &m88e1121_probe, 2204 2204 .config_init = &marvell_config_init, 2205 2205 .config_aneg = &m88e1121_config_aneg, ··· 2219 2219 .phy_id = MARVELL_PHY_ID_88E1318S, 2220 2220 .phy_id_mask = MARVELL_PHY_ID_MASK, 2221 2221 .name = "Marvell 88E1318S", 2222 - .features = PHY_GBIT_FEATURES, 2222 + /* PHY_GBIT_FEATURES */ 2223 2223 .probe = marvell_probe, 2224 2224 .config_init = &m88e1318_config_init, 2225 2225 .config_aneg = &m88e1318_config_aneg, ··· 2241 2241 .phy_id = MARVELL_PHY_ID_88E1145, 2242 2242 .phy_id_mask = MARVELL_PHY_ID_MASK, 2243 2243 .name = "Marvell 88E1145", 2244 - .features = PHY_GBIT_FEATURES, 2244 + /* PHY_GBIT_FEATURES */ 2245 2245 .probe = marvell_probe, 2246 2246 .config_init = &m88e1145_config_init, 2247 2247 .config_aneg = &m88e1101_config_aneg, ··· 2260 2260 .phy_id = MARVELL_PHY_ID_88E1149R, 2261 2261 .phy_id_mask = MARVELL_PHY_ID_MASK, 2262 2262 .name = "Marvell 88E1149R", 2263 - .features = PHY_GBIT_FEATURES, 2263 + /* PHY_GBIT_FEATURES */ 2264 2264 .probe = marvell_probe, 2265 2265 .config_init = &m88e1149_config_init, 2266 2266 .config_aneg = &m88e1118_config_aneg, ··· 2278 2278 .phy_id = MARVELL_PHY_ID_88E1240, 2279 2279 .phy_id_mask = MARVELL_PHY_ID_MASK, 2280 2280 .name = "Marvell 88E1240", 2281 - .features = PHY_GBIT_FEATURES, 2281 + /* PHY_GBIT_FEATURES */ 2282 2282 .probe = marvell_probe, 2283 2283 .config_init = &m88e1111_config_init, 2284 2284 .config_aneg = &marvell_config_aneg, ··· 2296 2296 .phy_id = MARVELL_PHY_ID_88E1116R, 2297 2297 .phy_id_mask = MARVELL_PHY_ID_MASK, 2298 2298 .name = "Marvell 88E1116R", 2299 - .features = PHY_GBIT_FEATURES, 2299 + /* PHY_GBIT_FEATURES */ 2300 2300 .probe = marvell_probe, 2301 2301 .config_init = &m88e1116r_config_init, 2302 2302 .ack_interrupt = &marvell_ack_interrupt, ··· 2336 2336 .phy_id = MARVELL_PHY_ID_88E1540, 2337 2337 .phy_id_mask = MARVELL_PHY_ID_MASK, 2338 2338 .name = "Marvell 88E1540", 2339 - .features = PHY_GBIT_FEATURES, 2339 + /* PHY_GBIT_FEATURES */ 2340 2340 .probe = m88e1510_probe, 2341 2341 .config_init = &marvell_config_init, 2342 2342 .config_aneg = &m88e1510_config_aneg, ··· 2359 2359 .phy_id_mask = MARVELL_PHY_ID_MASK, 2360 2360 .name = "Marvell 88E1545", 2361 2361 .probe = m88e1510_probe, 2362 - .features = PHY_GBIT_FEATURES, 2362 + /* PHY_GBIT_FEATURES */ 2363 2363 .config_init = &marvell_config_init, 2364 2364 .config_aneg = &m88e1510_config_aneg, 2365 2365 .read_status = &marvell_read_status, ··· 2378 2378 .phy_id = MARVELL_PHY_ID_88E3016, 2379 2379 .phy_id_mask = MARVELL_PHY_ID_MASK, 2380 2380 .name = "Marvell 88E3016", 2381 - .features = PHY_BASIC_FEATURES, 2381 + /* PHY_BASIC_FEATURES */ 2382 2382 .probe = marvell_probe, 2383 2383 .config_init = &m88e3016_config_init, 2384 2384 .aneg_done = &marvell_aneg_done, ··· 2398 2398 .phy_id = MARVELL_PHY_ID_88E6390, 2399 2399 .phy_id_mask = MARVELL_PHY_ID_MASK, 2400 2400 .name = "Marvell 88E6390", 2401 - .features = PHY_GBIT_FEATURES, 2401 + /* PHY_GBIT_FEATURES */ 2402 2402 .probe = m88e6390_probe, 2403 2403 .config_init = &marvell_config_init, 2404 2404 .config_aneg = &m88e6390_config_aneg,
+2 -2
drivers/net/phy/meson-gxl.c
··· 226 226 { 227 227 PHY_ID_MATCH_EXACT(0x01814400), 228 228 .name = "Meson GXL Internal PHY", 229 - .features = PHY_BASIC_FEATURES, 229 + /* PHY_BASIC_FEATURES */ 230 230 .flags = PHY_IS_INTERNAL, 231 231 .soft_reset = genphy_soft_reset, 232 232 .config_init = meson_gxl_config_init, ··· 238 238 }, { 239 239 PHY_ID_MATCH_EXACT(0x01803301), 240 240 .name = "Meson G12A Internal PHY", 241 - .features = PHY_BASIC_FEATURES, 241 + /* PHY_BASIC_FEATURES */ 242 242 .flags = PHY_IS_INTERNAL, 243 243 .soft_reset = genphy_soft_reset, 244 244 .ack_interrupt = meson_gxl_ack_interrupt,
+16 -16
drivers/net/phy/micrel.c
··· 908 908 .phy_id = PHY_ID_KS8737, 909 909 .phy_id_mask = MICREL_PHY_ID_MASK, 910 910 .name = "Micrel KS8737", 911 - .features = PHY_BASIC_FEATURES, 911 + /* PHY_BASIC_FEATURES */ 912 912 .driver_data = &ks8737_type, 913 913 .config_init = kszphy_config_init, 914 914 .ack_interrupt = kszphy_ack_interrupt, ··· 919 919 .phy_id = PHY_ID_KSZ8021, 920 920 .phy_id_mask = 0x00ffffff, 921 921 .name = "Micrel KSZ8021 or KSZ8031", 922 - .features = PHY_BASIC_FEATURES, 922 + /* PHY_BASIC_FEATURES */ 923 923 .driver_data = &ksz8021_type, 924 924 .probe = kszphy_probe, 925 925 .config_init = kszphy_config_init, ··· 934 934 .phy_id = PHY_ID_KSZ8031, 935 935 .phy_id_mask = 0x00ffffff, 936 936 .name = "Micrel KSZ8031", 937 - .features = PHY_BASIC_FEATURES, 937 + /* PHY_BASIC_FEATURES */ 938 938 .driver_data = &ksz8021_type, 939 939 .probe = kszphy_probe, 940 940 .config_init = kszphy_config_init, ··· 949 949 .phy_id = PHY_ID_KSZ8041, 950 950 .phy_id_mask = MICREL_PHY_ID_MASK, 951 951 .name = "Micrel KSZ8041", 952 - .features = PHY_BASIC_FEATURES, 952 + /* PHY_BASIC_FEATURES */ 953 953 .driver_data = &ksz8041_type, 954 954 .probe = kszphy_probe, 955 955 .config_init = ksz8041_config_init, ··· 965 965 .phy_id = PHY_ID_KSZ8041RNLI, 966 966 .phy_id_mask = MICREL_PHY_ID_MASK, 967 967 .name = "Micrel KSZ8041RNLI", 968 - .features = PHY_BASIC_FEATURES, 968 + /* PHY_BASIC_FEATURES */ 969 969 .driver_data = &ksz8041_type, 970 970 .probe = kszphy_probe, 971 971 .config_init = kszphy_config_init, ··· 980 980 .phy_id = PHY_ID_KSZ8051, 981 981 .phy_id_mask = MICREL_PHY_ID_MASK, 982 982 .name = "Micrel KSZ8051", 983 - .features = PHY_BASIC_FEATURES, 983 + /* PHY_BASIC_FEATURES */ 984 984 .driver_data = &ksz8051_type, 985 985 .probe = kszphy_probe, 986 986 .config_init = kszphy_config_init, ··· 995 995 .phy_id = PHY_ID_KSZ8001, 996 996 .name = "Micrel KSZ8001 or KS8721", 997 997 .phy_id_mask = 0x00fffffc, 998 - .features = PHY_BASIC_FEATURES, 998 + /* PHY_BASIC_FEATURES */ 999 999 .driver_data = &ksz8041_type, 1000 1000 .probe = kszphy_probe, 1001 1001 .config_init = kszphy_config_init, ··· 1010 1010 .phy_id = PHY_ID_KSZ8081, 1011 1011 .name = "Micrel KSZ8081 or KSZ8091", 1012 1012 .phy_id_mask = MICREL_PHY_ID_MASK, 1013 - .features = PHY_BASIC_FEATURES, 1013 + /* PHY_BASIC_FEATURES */ 1014 1014 .driver_data = &ksz8081_type, 1015 1015 .probe = kszphy_probe, 1016 1016 .config_init = kszphy_config_init, ··· 1025 1025 .phy_id = PHY_ID_KSZ8061, 1026 1026 .name = "Micrel KSZ8061", 1027 1027 .phy_id_mask = MICREL_PHY_ID_MASK, 1028 - .features = PHY_BASIC_FEATURES, 1028 + /* PHY_BASIC_FEATURES */ 1029 1029 .config_init = ksz8061_config_init, 1030 1030 .ack_interrupt = kszphy_ack_interrupt, 1031 1031 .config_intr = kszphy_config_intr, ··· 1035 1035 .phy_id = PHY_ID_KSZ9021, 1036 1036 .phy_id_mask = 0x000ffffe, 1037 1037 .name = "Micrel KSZ9021 Gigabit PHY", 1038 - .features = PHY_GBIT_FEATURES, 1038 + /* PHY_GBIT_FEATURES */ 1039 1039 .driver_data = &ksz9021_type, 1040 1040 .probe = kszphy_probe, 1041 1041 .config_init = ksz9021_config_init, ··· 1052 1052 .phy_id = PHY_ID_KSZ9031, 1053 1053 .phy_id_mask = MICREL_PHY_ID_MASK, 1054 1054 .name = "Micrel KSZ9031 Gigabit PHY", 1055 - .features = PHY_GBIT_FEATURES, 1055 + /* PHY_GBIT_FEATURES */ 1056 1056 .driver_data = &ksz9021_type, 1057 1057 .probe = kszphy_probe, 1058 1058 .config_init = ksz9031_config_init, ··· 1069 1069 .phy_id = PHY_ID_KSZ9131, 1070 1070 .phy_id_mask = MICREL_PHY_ID_MASK, 1071 1071 .name = "Microchip KSZ9131 Gigabit PHY", 1072 - .features = PHY_GBIT_FEATURES, 1072 + /* PHY_GBIT_FEATURES */ 1073 1073 .driver_data = &ksz9021_type, 1074 1074 .probe = kszphy_probe, 1075 1075 .config_init = ksz9131_config_init, ··· 1085 1085 .phy_id = PHY_ID_KSZ8873MLL, 1086 1086 .phy_id_mask = MICREL_PHY_ID_MASK, 1087 1087 .name = "Micrel KSZ8873MLL Switch", 1088 - .features = PHY_BASIC_FEATURES, 1088 + /* PHY_BASIC_FEATURES */ 1089 1089 .config_init = kszphy_config_init, 1090 1090 .config_aneg = ksz8873mll_config_aneg, 1091 1091 .read_status = ksz8873mll_read_status, ··· 1095 1095 .phy_id = PHY_ID_KSZ886X, 1096 1096 .phy_id_mask = MICREL_PHY_ID_MASK, 1097 1097 .name = "Micrel KSZ886X Switch", 1098 - .features = PHY_BASIC_FEATURES, 1098 + /* PHY_BASIC_FEATURES */ 1099 1099 .config_init = kszphy_config_init, 1100 1100 .suspend = genphy_suspend, 1101 1101 .resume = genphy_resume, ··· 1103 1103 .phy_id = PHY_ID_KSZ8795, 1104 1104 .phy_id_mask = MICREL_PHY_ID_MASK, 1105 1105 .name = "Micrel KSZ8795", 1106 - .features = PHY_BASIC_FEATURES, 1106 + /* PHY_BASIC_FEATURES */ 1107 1107 .config_init = kszphy_config_init, 1108 1108 .config_aneg = ksz8873mll_config_aneg, 1109 1109 .read_status = ksz8873mll_read_status, ··· 1113 1113 .phy_id = PHY_ID_KSZ9477, 1114 1114 .phy_id_mask = MICREL_PHY_ID_MASK, 1115 1115 .name = "Microchip KSZ9477", 1116 - .features = PHY_GBIT_FEATURES, 1116 + /* PHY_GBIT_FEATURES */ 1117 1117 .config_init = kszphy_config_init, 1118 1118 .suspend = genphy_suspend, 1119 1119 .resume = genphy_resume,
+1 -1
drivers/net/phy/microchip.c
··· 333 333 .phy_id_mask = 0xfffffff0, 334 334 .name = "Microchip LAN88xx", 335 335 336 - .features = PHY_GBIT_FEATURES, 336 + /* PHY_GBIT_FEATURES */ 337 337 338 338 .probe = lan88xx_probe, 339 339 .remove = lan88xx_remove,
+6 -6
drivers/net/phy/mscc.c
··· 1882 1882 .phy_id = PHY_ID_VSC8530, 1883 1883 .name = "Microsemi FE VSC8530", 1884 1884 .phy_id_mask = 0xfffffff0, 1885 - .features = PHY_BASIC_FEATURES, 1885 + /* PHY_BASIC_FEATURES */ 1886 1886 .soft_reset = &genphy_soft_reset, 1887 1887 .config_init = &vsc85xx_config_init, 1888 1888 .config_aneg = &vsc85xx_config_aneg, ··· 1907 1907 .phy_id = PHY_ID_VSC8531, 1908 1908 .name = "Microsemi VSC8531", 1909 1909 .phy_id_mask = 0xfffffff0, 1910 - .features = PHY_GBIT_FEATURES, 1910 + /* PHY_GBIT_FEATURES */ 1911 1911 .soft_reset = &genphy_soft_reset, 1912 1912 .config_init = &vsc85xx_config_init, 1913 1913 .config_aneg = &vsc85xx_config_aneg, ··· 1932 1932 .phy_id = PHY_ID_VSC8540, 1933 1933 .name = "Microsemi FE VSC8540 SyncE", 1934 1934 .phy_id_mask = 0xfffffff0, 1935 - .features = PHY_BASIC_FEATURES, 1935 + /* PHY_BASIC_FEATURES */ 1936 1936 .soft_reset = &genphy_soft_reset, 1937 1937 .config_init = &vsc85xx_config_init, 1938 1938 .config_aneg = &vsc85xx_config_aneg, ··· 1957 1957 .phy_id = PHY_ID_VSC8541, 1958 1958 .name = "Microsemi VSC8541 SyncE", 1959 1959 .phy_id_mask = 0xfffffff0, 1960 - .features = PHY_GBIT_FEATURES, 1960 + /* PHY_GBIT_FEATURES */ 1961 1961 .soft_reset = &genphy_soft_reset, 1962 1962 .config_init = &vsc85xx_config_init, 1963 1963 .config_aneg = &vsc85xx_config_aneg, ··· 1982 1982 .phy_id = PHY_ID_VSC8574, 1983 1983 .name = "Microsemi GE VSC8574 SyncE", 1984 1984 .phy_id_mask = 0xfffffff0, 1985 - .features = PHY_GBIT_FEATURES, 1985 + /* PHY_GBIT_FEATURES */ 1986 1986 .soft_reset = &genphy_soft_reset, 1987 1987 .config_init = &vsc8584_config_init, 1988 1988 .config_aneg = &vsc85xx_config_aneg, ··· 2008 2008 .phy_id = PHY_ID_VSC8584, 2009 2009 .name = "Microsemi GE VSC8584 SyncE", 2010 2010 .phy_id_mask = 0xfffffff0, 2011 - .features = PHY_GBIT_FEATURES, 2011 + /* PHY_GBIT_FEATURES */ 2012 2012 .soft_reset = &genphy_soft_reset, 2013 2013 .config_init = &vsc8584_config_init, 2014 2014 .config_aneg = &vsc85xx_config_aneg,
+1 -1
drivers/net/phy/national.c
··· 128 128 .phy_id = DP83865_PHY_ID, 129 129 .phy_id_mask = 0xfffffff0, 130 130 .name = "NatSemi DP83865", 131 - .features = PHY_GBIT_FEATURES, 131 + /* PHY_GBIT_FEATURES */ 132 132 .config_init = ns_config_init, 133 133 .ack_interrupt = ns_ack_interrupt, 134 134 .config_intr = ns_config_intr,
+1 -1
drivers/net/phy/qsemi.c
··· 110 110 .phy_id = 0x00181440, 111 111 .name = "QS6612", 112 112 .phy_id_mask = 0xfffffff0, 113 - .features = PHY_BASIC_FEATURES, 113 + /* PHY_BASIC_FEATURES */ 114 114 .config_init = qs6612_config_init, 115 115 .ack_interrupt = qs6612_ack_interrupt, 116 116 .config_intr = qs6612_config_intr,
+1 -1
drivers/net/phy/rockchip.c
··· 175 175 .phy_id = INTERNAL_EPHY_ID, 176 176 .phy_id_mask = 0xfffffff0, 177 177 .name = "Rockchip integrated EPHY", 178 - .features = PHY_BASIC_FEATURES, 178 + /* PHY_BASIC_FEATURES */ 179 179 .flags = 0, 180 180 .link_change_notify = rockchip_link_change_notify, 181 181 .soft_reset = genphy_soft_reset,
+6 -6
drivers/net/phy/smsc.c
··· 214 214 .phy_id_mask = 0xfffffff0, 215 215 .name = "SMSC LAN83C185", 216 216 217 - .features = PHY_BASIC_FEATURES, 217 + /* PHY_BASIC_FEATURES */ 218 218 219 219 .probe = smsc_phy_probe, 220 220 ··· 233 233 .phy_id_mask = 0xfffffff0, 234 234 .name = "SMSC LAN8187", 235 235 236 - .features = PHY_BASIC_FEATURES, 236 + /* PHY_BASIC_FEATURES */ 237 237 238 238 .probe = smsc_phy_probe, 239 239 ··· 257 257 .phy_id_mask = 0xfffffff0, 258 258 .name = "SMSC LAN8700", 259 259 260 - .features = PHY_BASIC_FEATURES, 260 + /* PHY_BASIC_FEATURES */ 261 261 262 262 .probe = smsc_phy_probe, 263 263 ··· 282 282 .phy_id_mask = 0xfffffff0, 283 283 .name = "SMSC LAN911x Internal PHY", 284 284 285 - .features = PHY_BASIC_FEATURES, 285 + /* PHY_BASIC_FEATURES */ 286 286 287 287 .probe = smsc_phy_probe, 288 288 ··· 300 300 .phy_id_mask = 0xfffffff0, 301 301 .name = "SMSC LAN8710/LAN8720", 302 302 303 - .features = PHY_BASIC_FEATURES, 303 + /* PHY_BASIC_FEATURES */ 304 304 .flags = PHY_RST_AFTER_CLK_EN, 305 305 306 306 .probe = smsc_phy_probe, ··· 326 326 .phy_id_mask = 0xfffffff0, 327 327 .name = "SMSC LAN8740", 328 328 329 - .features = PHY_BASIC_FEATURES, 329 + /* PHY_BASIC_FEATURES */ 330 330 331 331 .probe = smsc_phy_probe, 332 332
+2 -2
drivers/net/phy/ste10Xp.c
··· 81 81 .phy_id = STE101P_PHY_ID, 82 82 .phy_id_mask = 0xfffffff0, 83 83 .name = "STe101p", 84 - .features = PHY_BASIC_FEATURES, 84 + /* PHY_BASIC_FEATURES */ 85 85 .config_init = ste10Xp_config_init, 86 86 .ack_interrupt = ste10Xp_ack_interrupt, 87 87 .config_intr = ste10Xp_config_intr, ··· 91 91 .phy_id = STE100P_PHY_ID, 92 92 .phy_id_mask = 0xffffffff, 93 93 .name = "STe100p", 94 - .features = PHY_BASIC_FEATURES, 94 + /* PHY_BASIC_FEATURES */ 95 95 .config_init = ste10Xp_config_init, 96 96 .ack_interrupt = ste10Xp_ack_interrupt, 97 97 .config_intr = ste10Xp_config_intr,
+1 -1
drivers/net/phy/uPD60620.c
··· 87 87 .phy_id = UPD60620_PHY_ID, 88 88 .phy_id_mask = 0xfffffffe, 89 89 .name = "Renesas uPD60620", 90 - .features = PHY_BASIC_FEATURES, 90 + /* PHY_BASIC_FEATURES */ 91 91 .flags = 0, 92 92 .config_init = upd60620_config_init, 93 93 .read_status = upd60620_read_status,
+11 -11
drivers/net/phy/vitesse.c
··· 389 389 .phy_id = PHY_ID_VSC8234, 390 390 .name = "Vitesse VSC8234", 391 391 .phy_id_mask = 0x000ffff0, 392 - .features = PHY_GBIT_FEATURES, 392 + /* PHY_GBIT_FEATURES */ 393 393 .config_init = &vsc824x_config_init, 394 394 .config_aneg = &vsc82x4_config_aneg, 395 395 .ack_interrupt = &vsc824x_ack_interrupt, ··· 398 398 .phy_id = PHY_ID_VSC8244, 399 399 .name = "Vitesse VSC8244", 400 400 .phy_id_mask = 0x000fffc0, 401 - .features = PHY_GBIT_FEATURES, 401 + /* PHY_GBIT_FEATURES */ 402 402 .config_init = &vsc824x_config_init, 403 403 .config_aneg = &vsc82x4_config_aneg, 404 404 .ack_interrupt = &vsc824x_ack_interrupt, ··· 416 416 .phy_id = PHY_ID_VSC8572, 417 417 .name = "Vitesse VSC8572", 418 418 .phy_id_mask = 0x000ffff0, 419 - .features = PHY_GBIT_FEATURES, 419 + /* PHY_GBIT_FEATURES */ 420 420 .config_init = &vsc824x_config_init, 421 421 .config_aneg = &vsc82x4_config_aneg, 422 422 .ack_interrupt = &vsc824x_ack_interrupt, ··· 425 425 .phy_id = PHY_ID_VSC8601, 426 426 .name = "Vitesse VSC8601", 427 427 .phy_id_mask = 0x000ffff0, 428 - .features = PHY_GBIT_FEATURES, 428 + /* PHY_GBIT_FEATURES */ 429 429 .config_init = &vsc8601_config_init, 430 430 .ack_interrupt = &vsc824x_ack_interrupt, 431 431 .config_intr = &vsc82xx_config_intr, ··· 433 433 .phy_id = PHY_ID_VSC7385, 434 434 .name = "Vitesse VSC7385", 435 435 .phy_id_mask = 0x000ffff0, 436 - .features = PHY_GBIT_FEATURES, 436 + /* PHY_GBIT_FEATURES */ 437 437 .config_init = vsc738x_config_init, 438 438 .config_aneg = vsc73xx_config_aneg, 439 439 .read_page = vsc73xx_read_page, ··· 442 442 .phy_id = PHY_ID_VSC7388, 443 443 .name = "Vitesse VSC7388", 444 444 .phy_id_mask = 0x000ffff0, 445 - .features = PHY_GBIT_FEATURES, 445 + /* PHY_GBIT_FEATURES */ 446 446 .config_init = vsc738x_config_init, 447 447 .config_aneg = vsc73xx_config_aneg, 448 448 .read_page = vsc73xx_read_page, ··· 451 451 .phy_id = PHY_ID_VSC7395, 452 452 .name = "Vitesse VSC7395", 453 453 .phy_id_mask = 0x000ffff0, 454 - .features = PHY_GBIT_FEATURES, 454 + /* PHY_GBIT_FEATURES */ 455 455 .config_init = vsc739x_config_init, 456 456 .config_aneg = vsc73xx_config_aneg, 457 457 .read_page = vsc73xx_read_page, ··· 460 460 .phy_id = PHY_ID_VSC7398, 461 461 .name = "Vitesse VSC7398", 462 462 .phy_id_mask = 0x000ffff0, 463 - .features = PHY_GBIT_FEATURES, 463 + /* PHY_GBIT_FEATURES */ 464 464 .config_init = vsc739x_config_init, 465 465 .config_aneg = vsc73xx_config_aneg, 466 466 .read_page = vsc73xx_read_page, ··· 469 469 .phy_id = PHY_ID_VSC8662, 470 470 .name = "Vitesse VSC8662", 471 471 .phy_id_mask = 0x000ffff0, 472 - .features = PHY_GBIT_FEATURES, 472 + /* PHY_GBIT_FEATURES */ 473 473 .config_init = &vsc824x_config_init, 474 474 .config_aneg = &vsc82x4_config_aneg, 475 475 .ack_interrupt = &vsc824x_ack_interrupt, ··· 479 479 .phy_id = PHY_ID_VSC8221, 480 480 .phy_id_mask = 0x000ffff0, 481 481 .name = "Vitesse VSC8221", 482 - .features = PHY_GBIT_FEATURES, 482 + /* PHY_GBIT_FEATURES */ 483 483 .config_init = &vsc8221_config_init, 484 484 .ack_interrupt = &vsc824x_ack_interrupt, 485 485 .config_intr = &vsc82xx_config_intr, ··· 488 488 .phy_id = PHY_ID_VSC8211, 489 489 .phy_id_mask = 0x000ffff0, 490 490 .name = "Vitesse VSC8211", 491 - .features = PHY_GBIT_FEATURES, 491 + /* PHY_GBIT_FEATURES */ 492 492 .config_init = &vsc8221_config_init, 493 493 .ack_interrupt = &vsc824x_ack_interrupt, 494 494 .config_intr = &vsc82xx_config_intr,