Commit d79e26a7 authored by David S. Miller's avatar David S. Miller

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