mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
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>
This commit is contained in:
committed by
David S. Miller
parent
b6ed55cb72
commit
dcdecdcfe1
@@ -60,7 +60,7 @@ static struct phy_driver am79c_driver[] = { {
|
||||
.phy_id = PHY_ID_AM79C874,
|
||||
.name = "AM79C874",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = am79c_config_init,
|
||||
.ack_interrupt = am79c_ack_interrupt,
|
||||
.config_intr = am79c_config_intr,
|
||||
|
||||
@@ -43,7 +43,7 @@ static struct phy_driver asix_driver[] = { {
|
||||
.phy_id = PHY_ID_ASIX_AX88796B,
|
||||
.name = "Asix Electronics AX88796B",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.soft_reset = asix_soft_reset,
|
||||
} };
|
||||
|
||||
|
||||
@@ -389,7 +389,7 @@ static struct phy_driver at803x_driver[] = {
|
||||
.get_wol = at803x_get_wol,
|
||||
.suspend = at803x_suspend,
|
||||
.resume = at803x_resume,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.ack_interrupt = at803x_ack_interrupt,
|
||||
.config_intr = at803x_config_intr,
|
||||
}, {
|
||||
@@ -404,7 +404,7 @@ static struct phy_driver at803x_driver[] = {
|
||||
.get_wol = at803x_get_wol,
|
||||
.suspend = at803x_suspend,
|
||||
.resume = at803x_resume,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.ack_interrupt = at803x_ack_interrupt,
|
||||
.config_intr = at803x_config_intr,
|
||||
}, {
|
||||
@@ -418,7 +418,7 @@ static struct phy_driver at803x_driver[] = {
|
||||
.get_wol = at803x_get_wol,
|
||||
.suspend = at803x_suspend,
|
||||
.resume = at803x_resume,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.aneg_done = at803x_aneg_done,
|
||||
.ack_interrupt = &at803x_ack_interrupt,
|
||||
.config_intr = &at803x_config_intr,
|
||||
|
||||
@@ -254,7 +254,7 @@ static struct phy_driver bcm_cygnus_phy_driver[] = {
|
||||
.phy_id = PHY_ID_BCM_CYGNUS,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom Cygnus PHY",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm_cygnus_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -264,7 +264,7 @@ static struct phy_driver bcm_cygnus_phy_driver[] = {
|
||||
.phy_id = PHY_ID_BCM_OMEGA,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom Omega Combo GPHY",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.config_init = bcm_omega_config_init,
|
||||
.suspend = genphy_suspend,
|
||||
|
||||
@@ -64,7 +64,7 @@ static struct phy_driver bcm63xx_driver[] = {
|
||||
.phy_id = 0x00406000,
|
||||
.phy_id_mask = 0xfffffc00,
|
||||
.name = "Broadcom BCM63XX (1)",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.config_init = bcm63xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
@@ -73,7 +73,7 @@ static struct phy_driver bcm63xx_driver[] = {
|
||||
/* same phy as above, with just a different OUI */
|
||||
.phy_id = 0x002bdc00,
|
||||
.phy_id_mask = 0xfffffc00,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.config_init = bcm63xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
|
||||
@@ -538,7 +538,7 @@ static int bcm7xxx_28nm_probe(struct phy_device *phydev)
|
||||
.phy_id = (_oui), \
|
||||
.phy_id_mask = 0xfffffff0, \
|
||||
.name = _name, \
|
||||
.features = PHY_GBIT_FEATURES, \
|
||||
/* PHY_GBIT_FEATURES */ \
|
||||
.flags = PHY_IS_INTERNAL, \
|
||||
.config_init = bcm7xxx_28nm_config_init, \
|
||||
.resume = bcm7xxx_28nm_resume, \
|
||||
@@ -555,7 +555,7 @@ static int bcm7xxx_28nm_probe(struct phy_device *phydev)
|
||||
.phy_id = (_oui), \
|
||||
.phy_id_mask = 0xfffffff0, \
|
||||
.name = _name, \
|
||||
.features = PHY_BASIC_FEATURES, \
|
||||
/* PHY_BASIC_FEATURES */ \
|
||||
.flags = PHY_IS_INTERNAL, \
|
||||
.config_init = bcm7xxx_28nm_ephy_config_init, \
|
||||
.resume = bcm7xxx_28nm_ephy_resume, \
|
||||
@@ -570,7 +570,7 @@ static int bcm7xxx_28nm_probe(struct phy_device *phydev)
|
||||
.phy_id = (_oui), \
|
||||
.phy_id_mask = 0xfffffff0, \
|
||||
.name = _name, \
|
||||
.features = PHY_BASIC_FEATURES, \
|
||||
/* PHY_BASIC_FEATURES */ \
|
||||
.flags = PHY_IS_INTERNAL, \
|
||||
.config_init = bcm7xxx_config_init, \
|
||||
.suspend = bcm7xxx_suspend, \
|
||||
|
||||
@@ -610,7 +610,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM5411,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5411",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -618,7 +618,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM5421,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5421",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -626,7 +626,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM54210E,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54210E",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -634,7 +634,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM5461,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5461",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -642,7 +642,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM54612E,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54612E",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -650,7 +650,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM54616S,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54616S",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.config_aneg = bcm54616s_config_aneg,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
@@ -659,7 +659,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM5464,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5464",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -667,7 +667,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM5481,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5481",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.config_aneg = bcm5481_config_aneg,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
@@ -676,7 +676,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM54810,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54810",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.config_aneg = bcm5481_config_aneg,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
@@ -685,7 +685,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM5482,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5482",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm5482_config_init,
|
||||
.read_status = bcm5482_read_status,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
@@ -694,7 +694,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM50610,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM50610",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -702,7 +702,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM50610M,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM50610M",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -710,7 +710,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM57780,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM57780",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
@@ -718,7 +718,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCMAC131,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCMAC131",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = brcm_fet_config_init,
|
||||
.ack_interrupt = brcm_fet_ack_interrupt,
|
||||
.config_intr = brcm_fet_config_intr,
|
||||
@@ -726,7 +726,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM5241,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5241",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = brcm_fet_config_init,
|
||||
.ack_interrupt = brcm_fet_ack_interrupt,
|
||||
.config_intr = brcm_fet_config_intr,
|
||||
@@ -735,7 +735,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5395",
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.get_sset_count = bcm_phy_get_sset_count,
|
||||
.get_strings = bcm_phy_get_strings,
|
||||
.get_stats = bcm53xx_phy_get_stats,
|
||||
@@ -744,7 +744,7 @@ static struct phy_driver broadcom_drivers[] = {
|
||||
.phy_id = PHY_ID_BCM89610,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM89610",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
||||
@@ -102,7 +102,7 @@ static struct phy_driver cis820x_driver[] = {
|
||||
.phy_id = 0x000fc410,
|
||||
.name = "Cicada Cis8201",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = &cis820x_config_init,
|
||||
.ack_interrupt = &cis820x_ack_interrupt,
|
||||
.config_intr = &cis820x_config_intr,
|
||||
@@ -110,7 +110,7 @@ static struct phy_driver cis820x_driver[] = {
|
||||
.phy_id = 0x000fc440,
|
||||
.name = "Cicada Cis8204",
|
||||
.phy_id_mask = 0x000fffc0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = &cis820x_config_init,
|
||||
.ack_interrupt = &cis820x_ack_interrupt,
|
||||
.config_intr = &cis820x_config_intr,
|
||||
|
||||
@@ -144,7 +144,7 @@ static struct phy_driver dm91xx_driver[] = {
|
||||
.phy_id = 0x0181b880,
|
||||
.name = "Davicom DM9161E",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = dm9161_config_init,
|
||||
.config_aneg = dm9161_config_aneg,
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
@@ -153,7 +153,7 @@ static struct phy_driver dm91xx_driver[] = {
|
||||
.phy_id = 0x0181b8b0,
|
||||
.name = "Davicom DM9161B/C",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = dm9161_config_init,
|
||||
.config_aneg = dm9161_config_aneg,
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
@@ -162,7 +162,7 @@ static struct phy_driver dm91xx_driver[] = {
|
||||
.phy_id = 0x0181b8a0,
|
||||
.name = "Davicom DM9161A",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = dm9161_config_init,
|
||||
.config_aneg = dm9161_config_aneg,
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
@@ -171,7 +171,7 @@ static struct phy_driver dm91xx_driver[] = {
|
||||
.phy_id = 0x00181b80,
|
||||
.name = "Davicom DM9131",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
.config_intr = dm9161_config_intr,
|
||||
} };
|
||||
|
||||
@@ -1514,7 +1514,7 @@ static struct phy_driver dp83640_driver = {
|
||||
.phy_id = DP83640_PHY_ID,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "NatSemi DP83640",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.probe = dp83640_probe,
|
||||
.remove = dp83640_remove,
|
||||
.soft_reset = dp83640_soft_reset,
|
||||
|
||||
@@ -310,7 +310,7 @@ static int dp83822_resume(struct phy_device *phydev)
|
||||
{ \
|
||||
PHY_ID_MATCH_MODEL(_id), \
|
||||
.name = (_name), \
|
||||
.features = PHY_BASIC_FEATURES, \
|
||||
/* PHY_BASIC_FEATURES */ \
|
||||
.soft_reset = dp83822_phy_reset, \
|
||||
.config_init = dp83822_config_init, \
|
||||
.get_wol = dp83822_get_wol, \
|
||||
|
||||
@@ -99,7 +99,7 @@ MODULE_DEVICE_TABLE(mdio, dp83848_tbl);
|
||||
.phy_id = _id, \
|
||||
.phy_id_mask = 0xfffffff0, \
|
||||
.name = _name, \
|
||||
.features = PHY_BASIC_FEATURES, \
|
||||
/* PHY_BASIC_FEATURES */ \
|
||||
\
|
||||
.soft_reset = genphy_soft_reset, \
|
||||
.config_init = _config_init, \
|
||||
|
||||
@@ -315,7 +315,7 @@ static struct phy_driver dp83867_driver[] = {
|
||||
.phy_id = DP83867_PHY_ID,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "TI DP83867",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
|
||||
.config_init = dp83867_config_init,
|
||||
.soft_reset = dp83867_phy_reset,
|
||||
|
||||
@@ -338,7 +338,7 @@ static struct phy_driver dp83811_driver[] = {
|
||||
.phy_id = DP83TC811_PHY_ID,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "TI DP83TC811",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = dp83811_config_init,
|
||||
.config_aneg = dp83811_config_aneg,
|
||||
.soft_reset = dp83811_phy_reset,
|
||||
|
||||
@@ -86,7 +86,7 @@ static struct phy_driver et1011c_driver[] = { {
|
||||
.phy_id = 0x0282f014,
|
||||
.name = "ET1011C",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_aneg = et1011c_config_aneg,
|
||||
.read_status = et1011c_read_status,
|
||||
} };
|
||||
|
||||
@@ -311,7 +311,7 @@ static struct phy_driver icplus_driver[] = {
|
||||
.phy_id = 0x02430d80,
|
||||
.name = "ICPlus IP175C",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = &ip175c_config_init,
|
||||
.config_aneg = &ip175c_config_aneg,
|
||||
.read_status = &ip175c_read_status,
|
||||
@@ -321,7 +321,7 @@ static struct phy_driver icplus_driver[] = {
|
||||
.phy_id = 0x02430d90,
|
||||
.name = "ICPlus IP1001",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = &ip1001_config_init,
|
||||
.suspend = genphy_suspend,
|
||||
.resume = genphy_resume,
|
||||
@@ -329,7 +329,7 @@ static struct phy_driver icplus_driver[] = {
|
||||
.phy_id = 0x02430c54,
|
||||
.name = "ICPlus IP101A/G",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.probe = ip101a_g_probe,
|
||||
.config_intr = ip101a_g_config_intr,
|
||||
.did_interrupt = ip101a_g_did_interrupt,
|
||||
|
||||
@@ -232,7 +232,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY11G_1_3,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.3",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
@@ -244,7 +244,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY22F_1_3,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (PEF 7061) v1.3",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
@@ -256,7 +256,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY11G_1_4,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.4",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
@@ -268,7 +268,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY22F_1_4,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (PEF 7061) v1.4",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
@@ -280,7 +280,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY11G_1_5,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.5 / v1.6",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
@@ -291,7 +291,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY22F_1_5,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (PEF 7061) v1.5 / v1.6",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
@@ -302,7 +302,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY11G_VR9_1_1,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (xRX v1.1 integrated)",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
@@ -313,7 +313,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY22F_VR9_1_1,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (xRX v1.1 integrated)",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
@@ -324,7 +324,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY11G_VR9_1_2,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (xRX v1.2 integrated)",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
@@ -335,7 +335,7 @@ static struct phy_driver xway_gphy[] = {
|
||||
.phy_id = PHY_ID_PHY22F_VR9_1_2,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (xRX v1.2 integrated)",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
|
||||
@@ -251,7 +251,7 @@ static struct phy_driver lxt97x_driver[] = {
|
||||
.phy_id = 0x78100000,
|
||||
.name = "LXT970",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.config_init = lxt970_config_init,
|
||||
.ack_interrupt = lxt970_ack_interrupt,
|
||||
.config_intr = lxt970_config_intr,
|
||||
@@ -259,14 +259,14 @@ static struct phy_driver lxt97x_driver[] = {
|
||||
.phy_id = 0x001378e0,
|
||||
.name = "LXT971",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.ack_interrupt = lxt971_ack_interrupt,
|
||||
.config_intr = lxt971_config_intr,
|
||||
}, {
|
||||
.phy_id = 0x00137a10,
|
||||
.name = "LXT973-A2",
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.flags = 0,
|
||||
.probe = lxt973_probe,
|
||||
.config_aneg = lxt973_config_aneg,
|
||||
@@ -275,7 +275,7 @@ static struct phy_driver lxt97x_driver[] = {
|
||||
.phy_id = 0x00137a10,
|
||||
.name = "LXT973",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.flags = 0,
|
||||
.probe = lxt973_probe,
|
||||
.config_aneg = lxt973_config_aneg,
|
||||
|
||||
@@ -2126,7 +2126,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1101,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1101",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1101_config_aneg,
|
||||
@@ -2144,7 +2144,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1112,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1112",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1111_config_init,
|
||||
.config_aneg = &marvell_config_aneg,
|
||||
@@ -2162,7 +2162,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1111,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1111",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1111_config_init,
|
||||
.config_aneg = &marvell_config_aneg,
|
||||
@@ -2181,7 +2181,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1118,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1118",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1118_config_init,
|
||||
.config_aneg = &m88e1118_config_aneg,
|
||||
@@ -2199,7 +2199,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1121R,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1121R",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = &m88e1121_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1121_config_aneg,
|
||||
@@ -2219,7 +2219,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1318S,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1318S",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1318_config_init,
|
||||
.config_aneg = &m88e1318_config_aneg,
|
||||
@@ -2241,7 +2241,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1145,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1145",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1145_config_init,
|
||||
.config_aneg = &m88e1101_config_aneg,
|
||||
@@ -2260,7 +2260,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1149R,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1149R",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1149_config_init,
|
||||
.config_aneg = &m88e1118_config_aneg,
|
||||
@@ -2278,7 +2278,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1240,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1240",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1111_config_init,
|
||||
.config_aneg = &marvell_config_aneg,
|
||||
@@ -2296,7 +2296,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1116R,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1116R",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1116r_config_init,
|
||||
.ack_interrupt = &marvell_ack_interrupt,
|
||||
@@ -2336,7 +2336,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E1540,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1540",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = m88e1510_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1510_config_aneg,
|
||||
@@ -2359,7 +2359,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1545",
|
||||
.probe = m88e1510_probe,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1510_config_aneg,
|
||||
.read_status = &marvell_read_status,
|
||||
@@ -2378,7 +2378,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E3016,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E3016",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e3016_config_init,
|
||||
.aneg_done = &marvell_aneg_done,
|
||||
@@ -2398,7 +2398,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.phy_id = MARVELL_PHY_ID_88E6390,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E6390",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.probe = m88e6390_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e6390_config_aneg,
|
||||
|
||||
@@ -226,7 +226,7 @@ static struct phy_driver meson_gxl_phy[] = {
|
||||
{
|
||||
PHY_ID_MATCH_EXACT(0x01814400),
|
||||
.name = "Meson GXL Internal PHY",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.soft_reset = genphy_soft_reset,
|
||||
.config_init = meson_gxl_config_init,
|
||||
@@ -238,7 +238,7 @@ static struct phy_driver meson_gxl_phy[] = {
|
||||
}, {
|
||||
PHY_ID_MATCH_EXACT(0x01803301),
|
||||
.name = "Meson G12A Internal PHY",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
/* PHY_BASIC_FEATURES */
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.soft_reset = genphy_soft_reset,
|
||||
.ack_interrupt = meson_gxl_ack_interrupt,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user