Now that the GENET and SF2 drivers have been updated to communicate us
what is the revision of the BCM7xxx integrated PHY, utilize that
information in the config_init() callback to call into the appropriate
workaround function based on our revision.
While at it, we also print the revision and patch level to help debug
new chips.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 
 static int bcm7xxx_28nm_config_init(struct phy_device *phydev)
 {
-       int ret;
-
-       ret = bcm7445_config_init(phydev);
-       if (ret)
-               return ret;
+       u8 rev = PHY_BRCM_7XXX_REV(phydev->dev_flags);
+       u8 patch = PHY_BRCM_7XXX_PATCH(phydev->dev_flags);
+       int ret = 0;
+
+       dev_info(&phydev->dev, "PHY revision: 0x%02x, patch: %d\n", rev, patch);
+
+       switch (rev) {
+       case 0xa0:
+       case 0xb0:
+               ret = bcm7445_config_init(phydev);
+               break;
+       default:
+               ret = bcm7xxx_28nm_afe_config_init(phydev);
+               break;
+       }
 
-       ret = bcm7xxx_28nm_afe_config_init(phydev);
        if (ret)
                return ret;