Hi Andrew, > -----Original Message----- > From: Andrew Lunn [mailto:and...@lunn.ch] > Sent: Sunday, June 11, 2017 3:43 AM > To: Florian Fainelli > Cc: Salil Mehta; da...@davemloft.net; Zhuangyuzeng (Yisen); huangdaode; > lipeng (Y); mehta.salil....@gmail.com; netdev@vger.kernel.org; linux- > ker...@vger.kernel.org; Linuxarm > Subject: Re: [PATCH net-next 6/9] net: hns3: Add MDIO support to HNS3 > Ethernet driver for hip08 SoC > > > > +int hclge_mac_mdio_config(struct hclge_dev *hdev) > > > +{ > > > + struct hclge_mac *mac = &hdev->hw.mac; > > > + struct mii_bus *mdio_bus; > > > + struct net_device *ndev = &mac->ndev; > > > + struct phy_device *phy; > > > + bool is_c45; > > > + int ret; > > > + > > > + if (hdev->hw.mac.phy_addr >= PHY_MAX_ADDR) > > > + return 0; > > > + > > > + if (hdev->hw.mac.phy_if == PHY_INTERFACE_MODE_NA) > > > + return 0; > > > + else if (mac->phy_if == PHY_INTERFACE_MODE_SGMII) > > > + is_c45 = 0; > > > + else if (mac->phy_if == PHY_INTERFACE_MODE_XGMII) > > > + is_c45 = 1; > > > + else > > > + return -ENODATA; > > > > Can you consider using a switch () case statement here? > > Does this concept even make sense? The Marvell 10G phy will use SGMII > for 10/100/1000Mbs and swap to XGMII for 10Gbps. It however stays a > c45 device all the time. > > In general, i don't think PHY mode is related to C22/C45. You are correct is_c45 should not be derived from the type of PHY like it is being done here. I have changed this code and now we are getting this information from the IMP(Integrated Management Processor) which handles the NIC commands and also maintains Ethernet specific configuration.
Thanks Salil > > Andrew