mirror of https://gitee.com/openkylin/linux.git
Merge branch 'remove-PHY_HAS_INTERRUPT'
Heiner Kallweit says: ==================== net: phy: replace PHY_HAS_INTERRUPT with a check for config_intr and ack_interrupt Flag PHY_HAS_INTERRUPT is used only here for this small check. I think using interrupts isn't possible if a driver defines neither config_intr nor ack_interrupts callback. So we can replace checking flag PHY_HAS_INTERRUPT with checking for these callbacks. This allows to remove this flag from all driver configs. v2: - add helper for check in patch 1 - remove PHY_HAS_INTERRUPT from all drivers, not only Realtek - remove flag PHY_HAS_INTERRUPT completely v3: - rebase patch 2 ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
d79e26a7ef
|
@ -66,7 +66,6 @@ static struct phy_driver am79c_driver[] = { {
|
|||
.name = "AM79C874",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = am79c_config_init,
|
||||
.ack_interrupt = am79c_ack_interrupt,
|
||||
.config_intr = am79c_config_intr,
|
||||
|
|
|
@ -116,7 +116,6 @@ static struct phy_driver aquantia_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Aquantia AQ1202",
|
||||
.features = PHY_10GBIT_FULL_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.aneg_done = genphy_c45_aneg_done,
|
||||
.config_aneg = aquantia_config_aneg,
|
||||
.config_intr = aquantia_config_intr,
|
||||
|
@ -128,7 +127,6 @@ static struct phy_driver aquantia_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Aquantia AQ2104",
|
||||
.features = PHY_10GBIT_FULL_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.aneg_done = genphy_c45_aneg_done,
|
||||
.config_aneg = aquantia_config_aneg,
|
||||
.config_intr = aquantia_config_intr,
|
||||
|
@ -140,7 +138,6 @@ static struct phy_driver aquantia_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Aquantia AQR105",
|
||||
.features = PHY_10GBIT_FULL_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.aneg_done = genphy_c45_aneg_done,
|
||||
.config_aneg = aquantia_config_aneg,
|
||||
.config_intr = aquantia_config_intr,
|
||||
|
@ -152,7 +149,6 @@ static struct phy_driver aquantia_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Aquantia AQR106",
|
||||
.features = PHY_10GBIT_FULL_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.aneg_done = genphy_c45_aneg_done,
|
||||
.config_aneg = aquantia_config_aneg,
|
||||
.config_intr = aquantia_config_intr,
|
||||
|
@ -164,7 +160,6 @@ static struct phy_driver aquantia_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Aquantia AQR107",
|
||||
.features = PHY_10GBIT_FULL_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.aneg_done = genphy_c45_aneg_done,
|
||||
.config_aneg = aquantia_config_aneg,
|
||||
.config_intr = aquantia_config_intr,
|
||||
|
@ -176,7 +171,6 @@ static struct phy_driver aquantia_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Aquantia AQR405",
|
||||
.features = PHY_10GBIT_FULL_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.aneg_done = genphy_c45_aneg_done,
|
||||
.config_aneg = aquantia_config_aneg,
|
||||
.config_intr = aquantia_config_intr,
|
||||
|
|
|
@ -379,7 +379,6 @@ static struct phy_driver at803x_driver[] = {
|
|||
.suspend = at803x_suspend,
|
||||
.resume = at803x_resume,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = at803x_ack_interrupt,
|
||||
.config_intr = at803x_config_intr,
|
||||
}, {
|
||||
|
@ -395,7 +394,6 @@ static struct phy_driver at803x_driver[] = {
|
|||
.suspend = at803x_suspend,
|
||||
.resume = at803x_resume,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = at803x_ack_interrupt,
|
||||
.config_intr = at803x_config_intr,
|
||||
}, {
|
||||
|
@ -410,7 +408,6 @@ static struct phy_driver at803x_driver[] = {
|
|||
.suspend = at803x_suspend,
|
||||
.resume = at803x_resume,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.aneg_done = at803x_aneg_done,
|
||||
.ack_interrupt = &at803x_ack_interrupt,
|
||||
.config_intr = &at803x_config_intr,
|
||||
|
|
|
@ -69,7 +69,7 @@ static struct phy_driver bcm63xx_driver[] = {
|
|||
.phy_id_mask = 0xfffffc00,
|
||||
.name = "Broadcom BCM63XX (1)",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT | PHY_IS_INTERNAL,
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.config_init = bcm63xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm63xx_config_intr,
|
||||
|
@ -78,7 +78,7 @@ static struct phy_driver bcm63xx_driver[] = {
|
|||
.phy_id = 0x002bdc00,
|
||||
.phy_id_mask = 0xfffffc00,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT | PHY_IS_INTERNAL,
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.config_init = bcm63xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm63xx_config_intr,
|
||||
|
|
|
@ -193,7 +193,6 @@ static struct phy_driver bcm87xx_driver[] = {
|
|||
.phy_id = PHY_ID_BCM8706,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Broadcom BCM8706",
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm87xx_config_init,
|
||||
.config_aneg = bcm87xx_config_aneg,
|
||||
.read_status = bcm87xx_read_status,
|
||||
|
@ -205,7 +204,6 @@ static struct phy_driver bcm87xx_driver[] = {
|
|||
.phy_id = PHY_ID_BCM8727,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Broadcom BCM8727",
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm87xx_config_init,
|
||||
.config_aneg = bcm87xx_config_aneg,
|
||||
.read_status = bcm87xx_read_status,
|
||||
|
|
|
@ -589,7 +589,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5411",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -598,7 +597,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5421",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -607,7 +605,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54210E",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -616,7 +613,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5461",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -625,7 +621,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54612E",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -634,7 +629,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54616S",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -643,7 +637,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5464",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -652,7 +645,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5481",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.config_aneg = bcm5481_config_aneg,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
|
@ -662,7 +654,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM54810",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.config_aneg = bcm5481_config_aneg,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
|
@ -672,7 +663,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5482",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm5482_config_init,
|
||||
.read_status = bcm5482_read_status,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
|
@ -682,7 +672,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM50610",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -691,7 +680,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM50610M",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -700,7 +688,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM57780",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
@ -709,7 +696,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCMAC131",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = brcm_fet_config_init,
|
||||
.ack_interrupt = brcm_fet_ack_interrupt,
|
||||
.config_intr = brcm_fet_config_intr,
|
||||
|
@ -718,7 +704,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5241",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = brcm_fet_config_init,
|
||||
.ack_interrupt = brcm_fet_ack_interrupt,
|
||||
.config_intr = brcm_fet_config_intr,
|
||||
|
@ -737,7 +722,6 @@ static struct phy_driver broadcom_drivers[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM89610",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = bcm54xx_config_init,
|
||||
.ack_interrupt = bcm_phy_ack_intr,
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
|
|
|
@ -108,7 +108,6 @@ static struct phy_driver cis820x_driver[] = {
|
|||
.name = "Cicada Cis8201",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &cis820x_config_init,
|
||||
.ack_interrupt = &cis820x_ack_interrupt,
|
||||
.config_intr = &cis820x_config_intr,
|
||||
|
@ -117,7 +116,6 @@ static struct phy_driver cis820x_driver[] = {
|
|||
.name = "Cicada Cis8204",
|
||||
.phy_id_mask = 0x000fffc0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &cis820x_config_init,
|
||||
.ack_interrupt = &cis820x_ack_interrupt,
|
||||
.config_intr = &cis820x_config_intr,
|
||||
|
|
|
@ -150,7 +150,6 @@ static struct phy_driver dm91xx_driver[] = {
|
|||
.name = "Davicom DM9161E",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = dm9161_config_init,
|
||||
.config_aneg = dm9161_config_aneg,
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
|
@ -160,7 +159,6 @@ static struct phy_driver dm91xx_driver[] = {
|
|||
.name = "Davicom DM9161B/C",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = dm9161_config_init,
|
||||
.config_aneg = dm9161_config_aneg,
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
|
@ -170,7 +168,6 @@ static struct phy_driver dm91xx_driver[] = {
|
|||
.name = "Davicom DM9161A",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = dm9161_config_init,
|
||||
.config_aneg = dm9161_config_aneg,
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
|
@ -180,7 +177,6 @@ static struct phy_driver dm91xx_driver[] = {
|
|||
.name = "Davicom DM9131",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = dm9161_ack_interrupt,
|
||||
.config_intr = dm9161_config_intr,
|
||||
} };
|
||||
|
|
|
@ -1521,7 +1521,6 @@ static struct phy_driver dp83640_driver = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "NatSemi DP83640",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = dp83640_probe,
|
||||
.remove = dp83640_remove,
|
||||
.soft_reset = dp83640_soft_reset,
|
||||
|
|
|
@ -318,7 +318,6 @@ static struct phy_driver dp83822_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "TI DP83822",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = dp83822_config_init,
|
||||
.soft_reset = dp83822_phy_reset,
|
||||
.get_wol = dp83822_get_wol,
|
||||
|
|
|
@ -108,7 +108,6 @@ MODULE_DEVICE_TABLE(mdio, dp83848_tbl);
|
|||
.phy_id_mask = 0xfffffff0, \
|
||||
.name = _name, \
|
||||
.features = PHY_BASIC_FEATURES, \
|
||||
.flags = PHY_HAS_INTERRUPT, \
|
||||
\
|
||||
.soft_reset = genphy_soft_reset, \
|
||||
.config_init = _config_init, \
|
||||
|
|
|
@ -334,7 +334,6 @@ static struct phy_driver dp83867_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "TI DP83867",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.config_init = dp83867_config_init,
|
||||
.soft_reset = dp83867_phy_reset,
|
||||
|
|
|
@ -346,7 +346,6 @@ static struct phy_driver dp83811_driver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "TI DP83TC811",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = dp83811_config_init,
|
||||
.config_aneg = dp83811_config_aneg,
|
||||
.soft_reset = dp83811_phy_reset,
|
||||
|
|
|
@ -234,7 +234,6 @@ static struct phy_driver icplus_driver[] = {
|
|||
.name = "ICPlus IP101A/G",
|
||||
.phy_id_mask = 0x0ffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = ip101a_g_ack_interrupt,
|
||||
.config_init = &ip101a_g_config_init,
|
||||
.suspend = genphy_suspend,
|
||||
|
|
|
@ -242,7 +242,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.3",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
|
@ -255,7 +254,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (PEF 7061) v1.3",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
|
@ -268,7 +266,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.4",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
|
@ -281,7 +278,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (PEF 7061) v1.4",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.config_aneg = xway_gphy14_config_aneg,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
|
@ -294,7 +290,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.5 / v1.6",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
|
@ -306,7 +301,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (PEF 7061) v1.5 / v1.6",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
|
@ -318,7 +312,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (xRX v1.1 integrated)",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
|
@ -330,7 +323,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (xRX v1.1 integrated)",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
|
@ -342,7 +334,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY11G (xRX v1.2 integrated)",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
|
@ -354,7 +345,6 @@ static struct phy_driver xway_gphy[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Intel XWAY PHY22F (xRX v1.2 integrated)",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = xway_gphy_config_init,
|
||||
.ack_interrupt = xway_gphy_ack_interrupt,
|
||||
.did_interrupt = xway_gphy_did_interrupt,
|
||||
|
|
|
@ -257,7 +257,6 @@ static struct phy_driver lxt97x_driver[] = {
|
|||
.name = "LXT970",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = lxt970_config_init,
|
||||
.ack_interrupt = lxt970_ack_interrupt,
|
||||
.config_intr = lxt970_config_intr,
|
||||
|
@ -266,7 +265,6 @@ static struct phy_driver lxt97x_driver[] = {
|
|||
.name = "LXT971",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = lxt971_ack_interrupt,
|
||||
.config_intr = lxt971_config_intr,
|
||||
}, {
|
||||
|
|
|
@ -2005,7 +2005,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1101",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1101_config_aneg,
|
||||
|
@ -2024,7 +2023,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1112",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1111_config_init,
|
||||
.config_aneg = &marvell_config_aneg,
|
||||
|
@ -2043,7 +2041,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1111",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1111_config_init,
|
||||
.config_aneg = &marvell_config_aneg,
|
||||
|
@ -2063,7 +2060,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1118",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1118_config_init,
|
||||
.config_aneg = &m88e1118_config_aneg,
|
||||
|
@ -2082,7 +2078,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1121R",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = &m88e1121_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1121_config_aneg,
|
||||
|
@ -2103,7 +2098,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1318S",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1318_config_init,
|
||||
.config_aneg = &m88e1318_config_aneg,
|
||||
|
@ -2126,7 +2120,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1145",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1145_config_init,
|
||||
.config_aneg = &m88e1101_config_aneg,
|
||||
|
@ -2146,7 +2139,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1149R",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1149_config_init,
|
||||
.config_aneg = &m88e1118_config_aneg,
|
||||
|
@ -2165,7 +2157,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1240",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1111_config_init,
|
||||
.config_aneg = &marvell_config_aneg,
|
||||
|
@ -2184,7 +2175,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1116R",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1116r_config_init,
|
||||
.ack_interrupt = &marvell_ack_interrupt,
|
||||
|
@ -2202,7 +2192,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1510",
|
||||
.features = PHY_GBIT_FIBRE_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = &m88e1510_probe,
|
||||
.config_init = &m88e1510_config_init,
|
||||
.config_aneg = &m88e1510_config_aneg,
|
||||
|
@ -2226,7 +2215,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1540",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = m88e1510_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1510_config_aneg,
|
||||
|
@ -2248,7 +2236,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.name = "Marvell 88E1545",
|
||||
.probe = m88e1510_probe,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1510_config_aneg,
|
||||
.read_status = &marvell_read_status,
|
||||
|
@ -2268,7 +2255,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E3016",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e3016_config_init,
|
||||
.aneg_done = &marvell_aneg_done,
|
||||
|
@ -2289,7 +2275,6 @@ static struct phy_driver marvell_drivers[] = {
|
|||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E6390",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = m88e6390_probe,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1510_config_aneg,
|
||||
|
|
|
@ -232,7 +232,7 @@ static struct phy_driver meson_gxl_phy[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Meson GXL Internal PHY",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_IS_INTERNAL | PHY_HAS_INTERRUPT,
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.config_init = meson_gxl_config_init,
|
||||
.aneg_done = genphy_aneg_done,
|
||||
.read_status = meson_gxl_read_status,
|
||||
|
|
|
@ -918,7 +918,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Micrel KS8737",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ks8737_type,
|
||||
.config_init = kszphy_config_init,
|
||||
.ack_interrupt = kszphy_ack_interrupt,
|
||||
|
@ -930,7 +929,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = 0x00ffffff,
|
||||
.name = "Micrel KSZ8021 or KSZ8031",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz8021_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = kszphy_config_init,
|
||||
|
@ -946,7 +944,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = 0x00ffffff,
|
||||
.name = "Micrel KSZ8031",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz8021_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = kszphy_config_init,
|
||||
|
@ -962,7 +959,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Micrel KSZ8041",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz8041_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = ksz8041_config_init,
|
||||
|
@ -979,7 +975,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Micrel KSZ8041RNLI",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz8041_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = kszphy_config_init,
|
||||
|
@ -995,7 +990,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Micrel KSZ8051",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz8051_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = kszphy_config_init,
|
||||
|
@ -1011,7 +1005,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.name = "Micrel KSZ8001 or KS8721",
|
||||
.phy_id_mask = 0x00fffffc,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz8041_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = kszphy_config_init,
|
||||
|
@ -1027,7 +1020,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.name = "Micrel KSZ8081 or KSZ8091",
|
||||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz8081_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = kszphy_config_init,
|
||||
|
@ -1043,7 +1035,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.name = "Micrel KSZ8061",
|
||||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = kszphy_config_init,
|
||||
.ack_interrupt = kszphy_ack_interrupt,
|
||||
.config_intr = kszphy_config_intr,
|
||||
|
@ -1054,7 +1045,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = 0x000ffffe,
|
||||
.name = "Micrel KSZ9021 Gigabit PHY",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz9021_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = ksz9021_config_init,
|
||||
|
@ -1072,7 +1062,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Micrel KSZ9031 Gigabit PHY",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz9021_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = ksz9031_config_init,
|
||||
|
@ -1089,7 +1078,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Microchip KSZ9131 Gigabit PHY",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.driver_data = &ksz9021_type,
|
||||
.probe = kszphy_probe,
|
||||
.config_init = ksz9131_config_init,
|
||||
|
@ -1115,7 +1103,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Micrel KSZ886X Switch",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = kszphy_config_init,
|
||||
.suspend = genphy_suspend,
|
||||
.resume = genphy_resume,
|
||||
|
@ -1124,7 +1111,6 @@ static struct phy_driver ksphy_driver[] = {
|
|||
.phy_id_mask = MICREL_PHY_ID_MASK,
|
||||
.name = "Micrel KSZ8795",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = kszphy_config_init,
|
||||
.config_aneg = ksz8873mll_config_aneg,
|
||||
.read_status = ksz8873mll_read_status,
|
||||
|
|
|
@ -346,7 +346,6 @@ static struct phy_driver microchip_phy_driver[] = {
|
|||
.name = "Microchip LAN88xx",
|
||||
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.probe = lan88xx_probe,
|
||||
.remove = lan88xx_remove,
|
||||
|
|
|
@ -47,7 +47,6 @@ static struct phy_driver microchip_t1_phy_driver[] = {
|
|||
.name = "Microchip LAN87xx T1",
|
||||
|
||||
.features = PHY_BASIC_T1_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.config_init = genphy_config_init,
|
||||
.config_aneg = genphy_config_aneg,
|
||||
|
|
|
@ -1833,7 +1833,6 @@ static struct phy_driver vsc85xx_driver[] = {
|
|||
.name = "Microsemi FE VSC8530",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.soft_reset = &genphy_soft_reset,
|
||||
.config_init = &vsc85xx_config_init,
|
||||
.config_aneg = &vsc85xx_config_aneg,
|
||||
|
@ -1859,7 +1858,6 @@ static struct phy_driver vsc85xx_driver[] = {
|
|||
.name = "Microsemi VSC8531",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.soft_reset = &genphy_soft_reset,
|
||||
.config_init = &vsc85xx_config_init,
|
||||
.config_aneg = &vsc85xx_config_aneg,
|
||||
|
@ -1885,7 +1883,6 @@ static struct phy_driver vsc85xx_driver[] = {
|
|||
.name = "Microsemi FE VSC8540 SyncE",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.soft_reset = &genphy_soft_reset,
|
||||
.config_init = &vsc85xx_config_init,
|
||||
.config_aneg = &vsc85xx_config_aneg,
|
||||
|
@ -1911,7 +1908,6 @@ static struct phy_driver vsc85xx_driver[] = {
|
|||
.name = "Microsemi VSC8541 SyncE",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.soft_reset = &genphy_soft_reset,
|
||||
.config_init = &vsc85xx_config_init,
|
||||
.config_aneg = &vsc85xx_config_aneg,
|
||||
|
@ -1937,7 +1933,6 @@ static struct phy_driver vsc85xx_driver[] = {
|
|||
.name = "Microsemi GE VSC8574 SyncE",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.soft_reset = &genphy_soft_reset,
|
||||
.config_init = &vsc8584_config_init,
|
||||
.config_aneg = &vsc85xx_config_aneg,
|
||||
|
@ -1964,7 +1959,6 @@ static struct phy_driver vsc85xx_driver[] = {
|
|||
.name = "Microsemi GE VSC8584 SyncE",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.soft_reset = &genphy_soft_reset,
|
||||
.config_init = &vsc8584_config_init,
|
||||
.config_aneg = &vsc85xx_config_aneg,
|
||||
|
|
|
@ -134,7 +134,6 @@ static struct phy_driver dp83865_driver[] = { {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "NatSemi DP83865",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = ns_config_init,
|
||||
.ack_interrupt = ns_ack_interrupt,
|
||||
.config_intr = ns_config_intr,
|
||||
|
|
|
@ -2074,6 +2074,11 @@ static void of_set_phy_eee_broken(struct phy_device *phydev)
|
|||
phydev->eee_broken_modes = broken;
|
||||
}
|
||||
|
||||
static bool phy_drv_supports_irq(struct phy_driver *phydrv)
|
||||
{
|
||||
return phydrv->config_intr || phydrv->ack_interrupt;
|
||||
}
|
||||
|
||||
/**
|
||||
* phy_probe - probe and init a PHY device
|
||||
* @dev: device to probe and init
|
||||
|
@ -2095,8 +2100,7 @@ static int phy_probe(struct device *dev)
|
|||
/* Disable the interrupt if the PHY doesn't support it
|
||||
* but the interrupt is still a valid one
|
||||
*/
|
||||
if (!(phydrv->flags & PHY_HAS_INTERRUPT) &&
|
||||
phy_interrupt_is_valid(phydev))
|
||||
if (!phy_drv_supports_irq(phydrv) && phy_interrupt_is_valid(phydev))
|
||||
phydev->irq = PHY_POLL;
|
||||
|
||||
if (phydrv->flags & PHY_IS_INTERNAL)
|
||||
|
|
|
@ -116,7 +116,6 @@ static struct phy_driver qs6612_driver[] = { {
|
|||
.name = "QS6612",
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = qs6612_config_init,
|
||||
.ack_interrupt = qs6612_ack_interrupt,
|
||||
.config_intr = qs6612_config_intr,
|
||||
|
|
|
@ -217,13 +217,11 @@ static struct phy_driver realtek_drvs[] = {
|
|||
.name = "RTL8201CP Ethernet",
|
||||
.phy_id_mask = 0x0000ffff,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
}, {
|
||||
.phy_id = 0x001cc816,
|
||||
.name = "RTL8201F Fast Ethernet",
|
||||
.phy_id_mask = 0x001fffff,
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = &rtl8201_ack_interrupt,
|
||||
.config_intr = &rtl8201_config_intr,
|
||||
.suspend = genphy_suspend,
|
||||
|
@ -243,7 +241,6 @@ static struct phy_driver realtek_drvs[] = {
|
|||
.name = "RTL8211B Gigabit Ethernet",
|
||||
.phy_id_mask = 0x001fffff,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = &rtl821x_ack_interrupt,
|
||||
.config_intr = &rtl8211b_config_intr,
|
||||
.read_mmd = &genphy_read_mmd_unsupported,
|
||||
|
@ -263,7 +260,6 @@ static struct phy_driver realtek_drvs[] = {
|
|||
.name = "RTL8211DN Gigabit Ethernet",
|
||||
.phy_id_mask = 0x001fffff,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = rtl821x_ack_interrupt,
|
||||
.config_intr = rtl8211e_config_intr,
|
||||
.suspend = genphy_suspend,
|
||||
|
@ -273,7 +269,6 @@ static struct phy_driver realtek_drvs[] = {
|
|||
.name = "RTL8211E Gigabit Ethernet",
|
||||
.phy_id_mask = 0x001fffff,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.ack_interrupt = &rtl821x_ack_interrupt,
|
||||
.config_intr = &rtl8211e_config_intr,
|
||||
.suspend = genphy_suspend,
|
||||
|
@ -283,7 +278,6 @@ static struct phy_driver realtek_drvs[] = {
|
|||
.name = "RTL8211F Gigabit Ethernet",
|
||||
.phy_id_mask = 0x001fffff,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &rtl8211f_config_init,
|
||||
.ack_interrupt = &rtl8211f_ack_interrupt,
|
||||
.config_intr = &rtl8211f_config_intr,
|
||||
|
@ -296,7 +290,6 @@ static struct phy_driver realtek_drvs[] = {
|
|||
.name = "RTL8366RB Gigabit Ethernet",
|
||||
.phy_id_mask = 0x001fffff,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &rtl8366rb_config_init,
|
||||
.suspend = genphy_suspend,
|
||||
.resume = genphy_resume,
|
||||
|
|
|
@ -219,7 +219,6 @@ static struct phy_driver smsc_phy_driver[] = {
|
|||
.name = "SMSC LAN83C185",
|
||||
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.probe = smsc_phy_probe,
|
||||
|
||||
|
@ -239,7 +238,6 @@ static struct phy_driver smsc_phy_driver[] = {
|
|||
.name = "SMSC LAN8187",
|
||||
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.probe = smsc_phy_probe,
|
||||
|
||||
|
@ -264,7 +262,6 @@ static struct phy_driver smsc_phy_driver[] = {
|
|||
.name = "SMSC LAN8700",
|
||||
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.probe = smsc_phy_probe,
|
||||
|
||||
|
@ -290,7 +287,6 @@ static struct phy_driver smsc_phy_driver[] = {
|
|||
.name = "SMSC LAN911x Internal PHY",
|
||||
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.probe = smsc_phy_probe,
|
||||
|
||||
|
@ -309,7 +305,7 @@ static struct phy_driver smsc_phy_driver[] = {
|
|||
.name = "SMSC LAN8710/LAN8720",
|
||||
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT | PHY_RST_AFTER_CLK_EN,
|
||||
.flags = PHY_RST_AFTER_CLK_EN,
|
||||
|
||||
.probe = smsc_phy_probe,
|
||||
|
||||
|
@ -335,7 +331,6 @@ static struct phy_driver smsc_phy_driver[] = {
|
|||
.name = "SMSC LAN8740",
|
||||
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
|
||||
.probe = smsc_phy_probe,
|
||||
|
||||
|
|
|
@ -87,7 +87,6 @@ static struct phy_driver ste10xp_pdriver[] = {
|
|||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "STe101p",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = ste10Xp_config_init,
|
||||
.ack_interrupt = ste10Xp_ack_interrupt,
|
||||
.config_intr = ste10Xp_config_intr,
|
||||
|
@ -98,7 +97,6 @@ static struct phy_driver ste10xp_pdriver[] = {
|
|||
.phy_id_mask = 0xffffffff,
|
||||
.name = "STe100p",
|
||||
.features = PHY_BASIC_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = ste10Xp_config_init,
|
||||
.ack_interrupt = ste10Xp_ack_interrupt,
|
||||
.config_intr = ste10Xp_config_intr,
|
||||
|
|
|
@ -399,7 +399,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.name = "Vitesse VSC8234",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc824x_config_init,
|
||||
.config_aneg = &vsc82x4_config_aneg,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
|
@ -409,7 +408,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.name = "Vitesse VSC8244",
|
||||
.phy_id_mask = 0x000fffc0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc824x_config_init,
|
||||
.config_aneg = &vsc82x4_config_aneg,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
|
@ -419,7 +417,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.name = "Vitesse VSC8514",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc824x_config_init,
|
||||
.config_aneg = &vsc82x4_config_aneg,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
|
@ -429,7 +426,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.name = "Vitesse VSC8572",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc824x_config_init,
|
||||
.config_aneg = &vsc82x4_config_aneg,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
|
@ -439,7 +435,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.name = "Vitesse VSC8574",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc824x_config_init,
|
||||
.config_aneg = &vsc82x4_config_aneg,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
|
@ -449,7 +444,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.name = "Vitesse VSC8601",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc8601_config_init,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
.config_intr = &vsc82xx_config_intr,
|
||||
|
@ -494,7 +488,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.name = "Vitesse VSC8662",
|
||||
.phy_id_mask = 0x000ffff0,
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc824x_config_init,
|
||||
.config_aneg = &vsc82x4_config_aneg,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
|
@ -505,7 +498,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.phy_id_mask = 0x000ffff0,
|
||||
.name = "Vitesse VSC8221",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc8221_config_init,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
.config_intr = &vsc82xx_config_intr,
|
||||
|
@ -515,7 +507,6 @@ static struct phy_driver vsc82xx_driver[] = {
|
|||
.phy_id_mask = 0x000ffff0,
|
||||
.name = "Vitesse VSC8211",
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.config_init = &vsc8221_config_init,
|
||||
.ack_interrupt = &vsc824x_ack_interrupt,
|
||||
.config_intr = &vsc82xx_config_intr,
|
||||
|
|
|
@ -66,9 +66,8 @@ extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_10gbit_full_features) __ro_after_ini
|
|||
#define PHY_POLL -1
|
||||
#define PHY_IGNORE_INTERRUPT -2
|
||||
|
||||
#define PHY_HAS_INTERRUPT 0x00000001
|
||||
#define PHY_IS_INTERNAL 0x00000002
|
||||
#define PHY_RST_AFTER_CLK_EN 0x00000004
|
||||
#define PHY_IS_INTERNAL 0x00000001
|
||||
#define PHY_RST_AFTER_CLK_EN 0x00000002
|
||||
#define MDIO_DEVICE_IS_PHY 0x80000000
|
||||
|
||||
/* Interface Mode definitions */
|
||||
|
|
Loading…
Reference in New Issue