@@ -731,6 +731,34 @@ static unsigned int m88e1111_inband_caps(struct phy_device *phydev,
731
731
return 0 ;
732
732
}
733
733
734
+ static int m88e1111_config_inband (struct phy_device * phydev , unsigned int modes )
735
+ {
736
+ u16 extsr , bmcr ;
737
+ int err ;
738
+
739
+ if (phydev -> interface != PHY_INTERFACE_MODE_1000BASEX &&
740
+ phydev -> interface != PHY_INTERFACE_MODE_SGMII )
741
+ return - EINVAL ;
742
+
743
+ if (modes == LINK_INBAND_BYPASS )
744
+ extsr = MII_M1111_HWCFG_SERIAL_AN_BYPASS ;
745
+ else
746
+ extsr = 0 ;
747
+
748
+ if (modes == LINK_INBAND_DISABLE )
749
+ bmcr = 0 ;
750
+ else
751
+ bmcr = BMCR_ANENABLE ;
752
+
753
+ err = phy_modify (phydev , MII_M1111_PHY_EXT_SR ,
754
+ MII_M1111_HWCFG_SERIAL_AN_BYPASS , extsr );
755
+ if (err < 0 )
756
+ return extsr ;
757
+
758
+ return phy_modify_paged (phydev , MII_MARVELL_FIBER_PAGE , MII_BMCR ,
759
+ BMCR_ANENABLE , bmcr );
760
+ }
761
+
734
762
static int m88e1111_config_aneg (struct phy_device * phydev )
735
763
{
736
764
int extsr = phy_read (phydev , MII_M1111_PHY_EXT_SR );
@@ -3692,6 +3720,7 @@ static struct phy_driver marvell_drivers[] = {
3692
3720
/* PHY_GBIT_FEATURES */
3693
3721
.probe = marvell_probe ,
3694
3722
.inband_caps = m88e1111_inband_caps ,
3723
+ .config_inband = m88e1111_config_inband ,
3695
3724
.config_init = m88e1112_config_init ,
3696
3725
.config_aneg = marvell_config_aneg ,
3697
3726
.config_intr = marvell_config_intr ,
@@ -3714,6 +3743,7 @@ static struct phy_driver marvell_drivers[] = {
3714
3743
.flags = PHY_POLL_CABLE_TEST ,
3715
3744
.probe = marvell_probe ,
3716
3745
.inband_caps = m88e1111_inband_caps ,
3746
+ .config_inband = m88e1111_config_inband ,
3717
3747
.config_init = m88e1111gbe_config_init ,
3718
3748
.config_aneg = m88e1111_config_aneg ,
3719
3749
.read_status = marvell_read_status ,
@@ -3738,6 +3768,7 @@ static struct phy_driver marvell_drivers[] = {
3738
3768
/* PHY_GBIT_FEATURES */
3739
3769
.probe = marvell_probe ,
3740
3770
.inband_caps = m88e1111_inband_caps ,
3771
+ .config_inband = m88e1111_config_inband ,
3741
3772
.config_init = m88e1111gbe_config_init ,
3742
3773
.config_aneg = m88e1111_config_aneg ,
3743
3774
.read_status = marvell_read_status ,
0 commit comments