.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,
 
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
 
        .suspend                = at803x_suspend,
        .resume                 = at803x_resume,
        .features               = PHY_GBIT_FEATURES,
-       .flags                  = PHY_HAS_INTERRUPT,
        .ack_interrupt          = at803x_ack_interrupt,
        .config_intr            = at803x_config_intr,
 }, {
        .suspend                = at803x_suspend,
        .resume                 = at803x_resume,
        .features               = PHY_BASIC_FEATURES,
-       .flags                  = PHY_HAS_INTERRUPT,
        .ack_interrupt          = at803x_ack_interrupt,
        .config_intr            = at803x_config_intr,
 }, {
        .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,
 
        .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,
        .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,
 
        .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,
        .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,
 
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
 
        .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,
        .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,
 
        .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,
        .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,
        .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,
        .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,
 } };
 
        .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,
 
                .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,
 
                .phy_id_mask    = 0xfffffff0,                   \
                .name           = _name,                        \
                .features       = PHY_BASIC_FEATURES,           \
-               .flags          = PHY_HAS_INTERRUPT,            \
                                                                \
                .soft_reset     = genphy_soft_reset,            \
                .config_init    = _config_init,                 \
 
                .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,
 
                .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,
 
        .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,
 
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
 
        .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,
        .name           = "LXT971",
        .phy_id_mask    = 0xfffffff0,
        .features       = PHY_BASIC_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
        .ack_interrupt  = lxt971_ack_interrupt,
        .config_intr    = lxt971_config_intr,
 }, {
 
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
 
                .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,
 
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
 
        .name           = "Microchip LAN88xx",
 
        .features       = PHY_GBIT_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
 
        .probe          = lan88xx_probe,
        .remove         = lan88xx_remove,
 
                .name           = "Microchip LAN87xx T1",
 
                .features       = PHY_BASIC_T1_FEATURES,
-               .flags          = PHY_HAS_INTERRUPT,
 
                .config_init    = genphy_config_init,
                .config_aneg    = genphy_config_aneg,
 
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
 
        .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,
 
        .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,
 
                .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,
                .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,
                .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,
                .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,
                .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,
                .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,
 
        .name           = "SMSC LAN83C185",
 
        .features       = PHY_BASIC_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
 
        .probe          = smsc_phy_probe,
 
        .name           = "SMSC LAN8187",
 
        .features       = PHY_BASIC_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
 
        .probe          = smsc_phy_probe,
 
        .name           = "SMSC LAN8700",
 
        .features       = PHY_BASIC_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
 
        .probe          = smsc_phy_probe,
 
        .name           = "SMSC LAN911x Internal PHY",
 
        .features       = PHY_BASIC_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
 
        .probe          = smsc_phy_probe,
 
        .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,
 
        .name           = "SMSC LAN8740",
 
        .features       = PHY_BASIC_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
 
        .probe          = smsc_phy_probe,
 
 
        .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,
        .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,
 
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
        .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,
 
 #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 */