[PATCH u-boot-net 14/14] net: phy: don't require PHY interface mode during PHY creation
Ramon Fried
rfried.dev at gmail.com
Fri Mar 18 09:12:21 CET 2022
On Thu, Mar 17, 2022 at 2:50 PM Marek Behún <kabel at kernel.org> wrote:
>
> From: Marek Behún <marek.behun at nic.cz>
>
> Currently we require PHY interface mode to be known when
> finding/creating the PHY - the functions
> * phy_device_create()
> * create_phy_by_mask()
> * search_for_existing_phy()
> * get_phy_device_by_mask()
> * phy_find_by_mask() (this is the only one global)
> all require the interface parameter, but the only thing done with it is
> that it is assigned to phydev->interface.
>
> This makes it impossible to find a PHY device without overwriting the
> set mode.
>
> Since the interface mode is not used during .probe() and should be used
> at first in .config(), drop the interface parameter from these
> functions. Make the default value of phydev->interface (in
> phy_device_create()) to be PHY_INTERFACE_MODE_NA. Move the interface
> parameter to phy_connect_dev(), where it should be.
>
> Change all occurrences treewide. In occurrences where we don't call
> phy_connect_dev() for some reason (they only configure the PHY without
> connecting it to an ethernet controller), set
> phydev->interface = value from phy_find_by_mask call.
>
> Signed-off-by: Marek Behún <marek.behun at nic.cz>
> ---
> board/CZ.NIC/turris_mox/turris_mox.c | 2 +-
> board/boundary/nitrogen6x/nitrogen6x.c | 2 +-
> board/gdsys/a38x/controlcenterdc.c | 7 ++-
> board/gdsys/a38x/ihs_phys.c | 6 +-
> drivers/net/altera_tse.c | 4 +-
> drivers/net/ethoc.c | 4 +-
> drivers/net/fec_mxc.c | 4 +-
> drivers/net/pch_gbe.c | 4 +-
> drivers/net/phy/phy.c | 86 +++++++++++---------------
> drivers/net/phy/xilinx_gmii2rgmii.c | 4 +-
> drivers/net/ravb.c | 4 +-
> drivers/net/sh_eth.c | 4 +-
> drivers/net/sni_ave.c | 4 +-
> drivers/net/sunxi_emac.c | 5 +-
> include/_exports.h | 3 +-
> include/exports.h | 3 +-
> include/phy.h | 12 ++--
> 17 files changed, 72 insertions(+), 86 deletions(-)
>
> diff --git a/board/CZ.NIC/turris_mox/turris_mox.c b/board/CZ.NIC/turris_mox/turris_mox.c
> index 8888a2dcab..9702d1fc78 100644
> --- a/board/CZ.NIC/turris_mox/turris_mox.c
> +++ b/board/CZ.NIC/turris_mox/turris_mox.c
> @@ -396,7 +396,7 @@ static void mox_phy_leds_start_blinking(void)
> return;
> }
>
> - phydev = phy_find_by_mask(bus, BIT(1), PHY_INTERFACE_MODE_RGMII);
> + phydev = phy_find_by_mask(bus, BIT(1));
> if (!phydev) {
> printf("Cannot get ethernet PHY!\n");
> return;
> diff --git a/board/boundary/nitrogen6x/nitrogen6x.c b/board/boundary/nitrogen6x/nitrogen6x.c
> index 84e14d1124..47784e9445 100644
> --- a/board/boundary/nitrogen6x/nitrogen6x.c
> +++ b/board/boundary/nitrogen6x/nitrogen6x.c
> @@ -345,7 +345,7 @@ int board_eth_init(struct bd_info *bis)
> if (!bus)
> return -EINVAL;
> /* scan phy 4,5,6,7 */
> - phydev = phy_find_by_mask(bus, (0xf << 4), PHY_INTERFACE_MODE_RGMII);
> + phydev = phy_find_by_mask(bus, (0xf << 4));
> if (!phydev) {
> ret = -EINVAL;
> goto free_bus;
> diff --git a/board/gdsys/a38x/controlcenterdc.c b/board/gdsys/a38x/controlcenterdc.c
> index 7d65400ccb..ccebba7272 100644
> --- a/board/gdsys/a38x/controlcenterdc.c
> +++ b/board/gdsys/a38x/controlcenterdc.c
> @@ -194,11 +194,12 @@ void init_host_phys(struct mii_dev *bus)
> for (k = 0; k < 2; ++k) {
> struct phy_device *phydev;
>
> - phydev = phy_find_by_mask(bus, 1 << k,
> - PHY_INTERFACE_MODE_SGMII);
> + phydev = phy_find_by_mask(bus, 1 << k);
>
> - if (phydev)
> + if (phydev) {
> + phydev->interface = PHY_INTERFACE_MODE_SGMII;
> phy_config(phydev);
> + }
> }
> }
>
> diff --git a/board/gdsys/a38x/ihs_phys.c b/board/gdsys/a38x/ihs_phys.c
> index e09c0006b7..60a5c37aef 100644
> --- a/board/gdsys/a38x/ihs_phys.c
> +++ b/board/gdsys/a38x/ihs_phys.c
> @@ -28,6 +28,7 @@ static void ihs_phy_config(struct phy_device *phydev, bool qinpn, bool qoutpn)
> {
> u16 reg;
>
> + phydev->interface = PHY_INTERFACE_MODE_MII;
> phy_config(phydev);
>
> /* enable QSGMII autonegotiation with flow control */
> @@ -142,10 +143,9 @@ struct porttype *get_porttype(uint octo_phy_mask, uint k)
> int init_single_phy(struct porttype *porttype, struct mii_dev *bus,
> uint bus_idx, uint m, uint phy_idx)
> {
> - struct phy_device *phydev = phy_find_by_mask(
> - bus, 1 << (m * 8 + phy_idx),
> - PHY_INTERFACE_MODE_MII);
> + struct phy_device *phydev;
>
> + phydev = phy_find_by_mask(bus, BIT(m * 8 + phy_idx));
> printf(" %u", bus_idx * 32 + m * 8 + phy_idx);
>
> if (!phydev)
> diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
> index b1e5c5890a..912d28fca2 100644
> --- a/drivers/net/altera_tse.c
> +++ b/drivers/net/altera_tse.c
> @@ -435,11 +435,11 @@ static int tse_phy_init(struct altera_tse_priv *priv, void *dev)
> if (priv->phyaddr)
> mask = 1 << priv->phyaddr;
>
> - phydev = phy_find_by_mask(priv->bus, mask, priv->interface);
> + phydev = phy_find_by_mask(priv->bus, mask);
> if (!phydev)
> return -ENODEV;
>
> - phy_connect_dev(phydev, dev);
> + phy_connect_dev(phydev, dev, priv->interface);
>
> phydev->supported &= PHY_GBIT_FEATURES;
> phydev->advertising = phydev->supported;
> diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
> index 7f146d4c8b..a219affb58 100644
> --- a/drivers/net/ethoc.c
> +++ b/drivers/net/ethoc.c
> @@ -614,11 +614,11 @@ static int ethoc_phy_init(struct ethoc *priv, void *dev)
> mask = 1 << CONFIG_PHY_ADDR;
> #endif
>
> - phydev = phy_find_by_mask(priv->bus, mask, PHY_INTERFACE_MODE_MII);
> + phydev = phy_find_by_mask(priv->bus, mask);
> if (!phydev)
> return -ENODEV;
>
> - phy_connect_dev(phydev, dev);
> + phy_connect_dev(phydev, dev, PHY_INTERFACE_MODE_MII);
>
> phydev->supported &= PHY_BASIC_FEATURES;
> phydev->advertising = phydev->supported;
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index 318568f256..f781e29f42 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -1172,7 +1172,7 @@ static int fec_probe(struct bd_info *bd, int dev_id, uint32_t base_addr,
> fec_mii_setspeed(bus->priv);
> #ifdef CONFIG_PHYLIB
> fec->phydev = phydev;
> - phy_connect_dev(phydev, edev);
> + phy_connect_dev(phydev, edev, PHY_INTERFACE_MODE_RGMII);
> /* Configure phy */
> phy_config(phydev);
> #else
> @@ -1234,7 +1234,7 @@ int fecmxc_initialize_multi(struct bd_info *bd, int dev_id, int phy_id,
> if (!bus)
> return -ENOMEM;
> #ifdef CONFIG_PHYLIB
> - phydev = phy_find_by_mask(bus, 1 << phy_id, PHY_INTERFACE_MODE_RGMII);
> + phydev = phy_find_by_mask(bus, 1 << phy_id);
> if (!phydev) {
> mdio_unregister(bus);
> free(bus);
> diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c
> index fabcf85c0d..f1895246b9 100644
> --- a/drivers/net/pch_gbe.c
> +++ b/drivers/net/pch_gbe.c
> @@ -416,13 +416,13 @@ static int pch_gbe_phy_init(struct udevice *dev)
> struct phy_device *phydev;
> int mask = 0xffffffff;
>
> - phydev = phy_find_by_mask(priv->bus, mask, plat->phy_interface);
> + phydev = phy_find_by_mask(priv->bus, mask);
> if (!phydev) {
> printf("pch_gbe: cannot find the phy\n");
> return -1;
> }
>
> - phy_connect_dev(phydev, dev);
> + phy_connect_dev(phydev, dev, plat->phy_interface);
>
> phydev->supported &= PHY_GBIT_FEATURES;
> phydev->advertising = phydev->supported;
> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> index 10c724388f..b6fcedc955 100644
> --- a/drivers/net/phy/phy.c
> +++ b/drivers/net/phy/phy.c
> @@ -642,8 +642,7 @@ static struct phy_driver *generic_for_phy(struct phy_device *phydev)
> return &genphy_driver;
> }
>
> -static struct phy_driver *get_phy_driver(struct phy_device *phydev,
> - phy_interface_t interface)
> +static struct phy_driver *get_phy_driver(struct phy_device *phydev)
> {
> struct list_head *entry;
> int phy_id = phydev->phy_id;
> @@ -660,8 +659,7 @@ static struct phy_driver *get_phy_driver(struct phy_device *phydev,
> }
>
> static struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
> - u32 phy_id, bool is_c45,
> - phy_interface_t interface)
> + u32 phy_id, bool is_c45)
> {
> struct phy_device *dev;
>
> @@ -680,7 +678,7 @@ static struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
>
> dev->duplex = -1;
> dev->link = 0;
> - dev->interface = interface;
> + dev->interface = PHY_INTERFACE_MODE_NA;
>
> #ifdef CONFIG_DM_ETH
> dev->node = ofnode_null();
> @@ -693,7 +691,7 @@ static struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
> dev->is_c45 = is_c45;
> dev->bus = bus;
>
> - dev->drv = get_phy_driver(dev, interface);
> + dev->drv = get_phy_driver(dev);
>
> if (phy_probe(dev)) {
> printf("%s, PHY probe failed\n", __func__);
> @@ -742,8 +740,7 @@ int __weak get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id)
> }
>
> static struct phy_device *create_phy_by_mask(struct mii_dev *bus,
> - uint phy_mask, int devad,
> - phy_interface_t interface)
> + uint phy_mask, int devad)
> {
> u32 phy_id = 0xffffffff;
> bool is_c45;
> @@ -764,8 +761,7 @@ static struct phy_device *create_phy_by_mask(struct mii_dev *bus,
> /* If the PHY ID is mostly f's, we didn't find anything */
> if (r == 0 && (phy_id & 0x1fffffff) != 0x1fffffff) {
> is_c45 = (devad == MDIO_DEVAD_NONE) ? false : true;
> - return phy_device_create(bus, addr, phy_id, is_c45,
> - interface);
> + return phy_device_create(bus, addr, phy_id, is_c45);
> }
> next:
> phy_mask &= ~(1 << addr);
> @@ -774,25 +770,22 @@ next:
> }
>
> static struct phy_device *search_for_existing_phy(struct mii_dev *bus,
> - uint phy_mask,
> - phy_interface_t interface)
> + uint phy_mask)
> {
> /* If we have one, return the existing device, with new interface */
> while (phy_mask) {
> int addr = ffs(phy_mask) - 1;
>
> - if (bus->phymap[addr]) {
> - bus->phymap[addr]->interface = interface;
> + if (bus->phymap[addr])
> return bus->phymap[addr];
> - }
> +
> phy_mask &= ~(1 << addr);
> }
> return NULL;
> }
>
> static struct phy_device *get_phy_device_by_mask(struct mii_dev *bus,
> - uint phy_mask,
> - phy_interface_t interface)
> + uint phy_mask)
> {
> struct phy_device *phydev;
> int devad[] = {
> @@ -808,13 +801,12 @@ static struct phy_device *get_phy_device_by_mask(struct mii_dev *bus,
> int i, devad_cnt;
>
> devad_cnt = sizeof(devad)/sizeof(int);
> - phydev = search_for_existing_phy(bus, phy_mask, interface);
> + phydev = search_for_existing_phy(bus, phy_mask);
> if (phydev)
> return phydev;
> /* try different access clauses */
> for (i = 0; i < devad_cnt; i++) {
> - phydev = create_phy_by_mask(bus, phy_mask,
> - devad[i], interface);
> + phydev = create_phy_by_mask(bus, phy_mask, devad[i]);
> if (IS_ERR(phydev))
> return NULL;
> if (phydev)
> @@ -842,10 +834,9 @@ static struct phy_device *get_phy_device_by_mask(struct mii_dev *bus,
> * Description: Reads the ID registers of the PHY at @addr on the
> * @bus, then allocates and returns the phy_device to represent it.
> */
> -static struct phy_device *get_phy_device(struct mii_dev *bus, int addr,
> - phy_interface_t interface)
> +static struct phy_device *get_phy_device(struct mii_dev *bus, int addr)
> {
> - return get_phy_device_by_mask(bus, 1 << addr, interface);
> + return get_phy_device_by_mask(bus, 1 << addr);
> }
>
> int phy_reset(struct phy_device *phydev)
> @@ -904,18 +895,12 @@ int miiphy_reset(const char *devname, unsigned char addr)
> struct mii_dev *bus = miiphy_get_dev_by_name(devname);
> struct phy_device *phydev;
>
> - /*
> - * miiphy_reset was only used on standard PHYs, so we'll fake it here.
> - * If later code tries to connect with the right interface, this will
> - * be corrected by get_phy_device in phy_connect()
> - */
> - phydev = get_phy_device(bus, addr, PHY_INTERFACE_MODE_MII);
> + phydev = get_phy_device(bus, addr);
>
> return phy_reset(phydev);
> }
>
> -struct phy_device *phy_find_by_mask(struct mii_dev *bus, uint phy_mask,
> - phy_interface_t interface)
> +struct phy_device *phy_find_by_mask(struct mii_dev *bus, uint phy_mask)
> {
> /* Reset the bus */
> if (bus->reset) {
> @@ -925,13 +910,15 @@ struct phy_device *phy_find_by_mask(struct mii_dev *bus, uint phy_mask,
> mdelay(15);
> }
>
> - return get_phy_device_by_mask(bus, phy_mask, interface);
> + return get_phy_device_by_mask(bus, phy_mask);
> }
>
> #ifdef CONFIG_DM_ETH
> -void phy_connect_dev(struct phy_device *phydev, struct udevice *dev)
> +void phy_connect_dev(struct phy_device *phydev, struct udevice *dev,
> + phy_interface_t interface)
> #else
> -void phy_connect_dev(struct phy_device *phydev, struct eth_device *dev)
> +void phy_connect_dev(struct phy_device *phydev, struct eth_device *dev,
> + phy_interface_t interface)
> #endif
> {
> /* Soft Reset the PHY */
> @@ -942,13 +929,14 @@ void phy_connect_dev(struct phy_device *phydev, struct eth_device *dev)
> phydev->dev->name, dev->name);
> }
> phydev->dev = dev;
> - debug("%s connected to %s\n", dev->name, phydev->drv->name);
> + phydev->interface = interface;
> + debug("%s connected to %s mode %s\n", dev->name, phydev->drv->name,
> + phy_string_for_interface(interface));
> }
>
> #ifdef CONFIG_PHY_XILINX_GMII2RGMII
> static struct phy_device *phy_connect_gmii2rgmii(struct mii_dev *bus,
> - struct udevice *dev,
> - phy_interface_t interface)
> + struct udevice *dev)
> {
> struct phy_device *phydev = NULL;
> ofnode node;
> @@ -957,8 +945,7 @@ static struct phy_device *phy_connect_gmii2rgmii(struct mii_dev *bus,
> node = ofnode_by_compatible(node, "xlnx,gmii-to-rgmii-1.0");
> if (ofnode_valid(node)) {
> phydev = phy_device_create(bus, 0,
> - PHY_GMII2RGMII_ID, false,
> - interface);
> + PHY_GMII2RGMII_ID, false);
> if (phydev)
> phydev->node = node;
> break;
> @@ -990,24 +977,23 @@ struct phy_device *fixed_phy_create(ofnode node)
> return NULL;
> }
>
> - phydev = phy_device_create(NULL, 0, PHY_FIXED_ID, false,
> - ofnode_read_phy_mode(node));
> + phydev = phy_device_create(NULL, 0, PHY_FIXED_ID, false);
> if (phydev)
> phydev->node = subnode;
>
> + phydev->interface = ofnode_read_phy_mode(node);
> +
> return phydev;
> }
>
> static struct phy_device *phy_connect_fixed(struct mii_dev *bus,
> - struct udevice *dev,
> - phy_interface_t interface)
> + struct udevice *dev)
> {
> ofnode node = dev_ofnode(dev), subnode;
> struct phy_device *phydev = NULL;
>
> if (ofnode_phy_is_fixed_link(node, &subnode)) {
> - phydev = phy_device_create(bus, 0, PHY_FIXED_ID,
> - false, interface);
> + phydev = phy_device_create(bus, 0, PHY_FIXED_ID, false);
> if (phydev)
> phydev->node = subnode;
> }
> @@ -1030,24 +1016,24 @@ struct phy_device *phy_connect(struct mii_dev *bus, int addr,
> uint mask = (addr >= 0) ? (1 << addr) : 0xffffffff;
>
> #ifdef CONFIG_PHY_FIXED
> - phydev = phy_connect_fixed(bus, dev, interface);
> + phydev = phy_connect_fixed(bus, dev);
> #endif
>
> #ifdef CONFIG_PHY_NCSI
> if (!phydev)
> - phydev = phy_device_create(bus, 0, PHY_NCSI_ID, false, interface);
> + phydev = phy_device_create(bus, 0, PHY_NCSI_ID, false);
> #endif
>
> #ifdef CONFIG_PHY_XILINX_GMII2RGMII
> if (!phydev)
> - phydev = phy_connect_gmii2rgmii(bus, dev, interface);
> + phydev = phy_connect_gmii2rgmii(bus, dev);
> #endif
>
> if (!phydev)
> - phydev = phy_find_by_mask(bus, mask, interface);
> + phydev = phy_find_by_mask(bus, mask);
>
> if (phydev)
> - phy_connect_dev(phydev, dev);
> + phy_connect_dev(phydev, dev, interface);
> else
> printf("Could not get PHY for %s: addr %d\n", bus->name, addr);
> return phydev;
> diff --git a/drivers/net/phy/xilinx_gmii2rgmii.c b/drivers/net/phy/xilinx_gmii2rgmii.c
> index d92a364365..7376283956 100644
> --- a/drivers/net/phy/xilinx_gmii2rgmii.c
> +++ b/drivers/net/phy/xilinx_gmii2rgmii.c
> @@ -42,13 +42,13 @@ static int xilinxgmiitorgmii_config(struct phy_device *phydev)
>
> ext_phyaddr = ofnode_read_u32_default(phandle.node, "reg", -1);
> ext_phydev = phy_find_by_mask(phydev->bus,
> - 1 << ext_phyaddr,
> - PHY_INTERFACE_MODE_RGMII);
> + 1 << ext_phyaddr);
> if (!ext_phydev) {
> printf("%s, No external phy device found\n", __func__);
> return -EINVAL;
> }
>
> + ext_phydev->interface = PHY_INTERFACE_MODE_RGMII;
> ext_phydev->node = phandle.node;
> phydev->priv = ext_phydev;
>
> diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c
> index 5c152d6e0a..c28680565f 100644
> --- a/drivers/net/ravb.c
> +++ b/drivers/net/ravb.c
> @@ -319,11 +319,11 @@ static int ravb_phy_config(struct udevice *dev)
> mdelay(1);
> }
>
> - phydev = phy_find_by_mask(eth->bus, mask, pdata->phy_interface);
> + phydev = phy_find_by_mask(eth->bus, mask);
> if (!phydev)
> return -ENODEV;
>
> - phy_connect_dev(phydev, dev);
> + phy_connect_dev(phydev, dev, pdata->phy_interface);
>
> eth->phydev = phydev;
>
> diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
> index 5c57e3dfcd..1de3ff8add 100644
> --- a/drivers/net/sh_eth.c
> +++ b/drivers/net/sh_eth.c
> @@ -762,11 +762,11 @@ static int sh_eth_phy_config(struct udevice *dev)
> struct phy_device *phydev;
> int mask = 0xffffffff;
>
> - phydev = phy_find_by_mask(priv->bus, mask, pdata->phy_interface);
> + phydev = phy_find_by_mask(priv->bus, mask);
> if (!phydev)
> return -ENODEV;
>
> - phy_connect_dev(phydev, dev);
> + phy_connect_dev(phydev, dev, pdata->phy_interface);
>
> port_info->phydev = phydev;
> phy_config(phydev);
> diff --git a/drivers/net/sni_ave.c b/drivers/net/sni_ave.c
> index d684e60e72..58276a40c7 100644
> --- a/drivers/net/sni_ave.c
> +++ b/drivers/net/sni_ave.c
> @@ -393,11 +393,11 @@ static int ave_phy_init(struct ave_private *priv, void *dev)
> struct phy_device *phydev;
> int mask = GENMASK(31, 0), ret;
>
> - phydev = phy_find_by_mask(priv->bus, mask, priv->phy_mode);
> + phydev = phy_find_by_mask(priv->bus, mask);
> if (!phydev)
> return -ENODEV;
>
> - phy_connect_dev(phydev, dev);
> + phy_connect_dev(phydev, dev, priv->phy_mode);
>
> phydev->supported &= PHY_GBIT_FEATURES;
> if (priv->max_speed) {
> diff --git a/drivers/net/sunxi_emac.c b/drivers/net/sunxi_emac.c
> index 17ad88e732..4c7ef2525b 100644
> --- a/drivers/net/sunxi_emac.c
> +++ b/drivers/net/sunxi_emac.c
> @@ -272,12 +272,11 @@ static int sunxi_emac_init_phy(struct emac_eth_dev *priv, void *dev)
> if (ret)
> return ret;
>
> - priv->phydev = phy_find_by_mask(priv->bus, mask,
> - PHY_INTERFACE_MODE_MII);
> + priv->phydev = phy_find_by_mask(priv->bus, mask);
> if (!priv->phydev)
> return -ENODEV;
>
> - phy_connect_dev(priv->phydev, dev);
> + phy_connect_dev(priv->phydev, dev, PHY_INTERFACE_MODE_MII);
> phy_config(priv->phydev);
>
> return 0;
> diff --git a/include/_exports.h b/include/_exports.h
> index 8030d70c0b..f6df8b6107 100644
> --- a/include/_exports.h
> +++ b/include/_exports.h
> @@ -77,8 +77,7 @@
> EXPORT_FUNC(mdio_get_current_dev, struct mii_dev *,
> mdio_get_current_dev, void)
> EXPORT_FUNC(phy_find_by_mask, struct phy_device *, phy_find_by_mask,
> - struct mii_dev *bus, unsigned phy_mask,
> - phy_interface_t interface)
> + struct mii_dev *bus, unsigned phy_mask)
> EXPORT_FUNC(mdio_phydev_for_ethname, struct phy_device *,
> mdio_phydev_for_ethname, const char *ethname)
> EXPORT_FUNC(miiphy_set_current_dev, int, miiphy_set_current_dev,
> diff --git a/include/exports.h b/include/exports.h
> index 550cafdc7a..6f8c9cf451 100644
> --- a/include/exports.h
> +++ b/include/exports.h
> @@ -55,8 +55,7 @@ int i2c_read (uchar, uint, int , uchar* , int);
> #endif
> #ifdef CONFIG_PHY_AQUANTIA
> struct mii_dev *mdio_get_current_dev(void);
> -struct phy_device *phy_find_by_mask(struct mii_dev *bus, unsigned phy_mask,
> - phy_interface_t interface);
> +struct phy_device *phy_find_by_mask(struct mii_dev *bus, unsigned phy_mask);
> struct phy_device *mdio_phydev_for_ethname(const char *ethname);
> int miiphy_set_current_dev(const char *devname);
> #endif
> diff --git a/include/phy.h b/include/phy.h
> index 9742ce6fe1..9473e5b694 100644
> --- a/include/phy.h
> +++ b/include/phy.h
> @@ -388,11 +388,9 @@ int phy_reset(struct phy_device *phydev);
> *
> * @bus: MII/MDIO bus to scan
> * @phy_mask: bitmap of PYH addresses to scan
> - * @interface: type of MAC-PHY interface
> * @return: pointer to phy_device if a PHY is found, or NULL otherwise
> */
> -struct phy_device *phy_find_by_mask(struct mii_dev *bus, unsigned phy_mask,
> - phy_interface_t interface);
> +struct phy_device *phy_find_by_mask(struct mii_dev *bus, unsigned phy_mask);
>
> #ifdef CONFIG_PHY_FIXED
>
> @@ -421,8 +419,10 @@ static inline struct phy_device *fixed_phy_create(ofnode node)
> * phy_connect_dev() - Associates the given pair of PHY and Ethernet devices
> * @phydev: PHY device
> * @dev: Ethernet device
> + * @interface: type of MAC-PHY interface
> */
> -void phy_connect_dev(struct phy_device *phydev, struct udevice *dev);
> +void phy_connect_dev(struct phy_device *phydev, struct udevice *dev,
> + phy_interface_t interface);
>
> /**
> * phy_connect() - Creates a PHY device for the Ethernet interface
> @@ -456,8 +456,10 @@ static inline ofnode phy_get_ofnode(struct phy_device *phydev)
> * phy_connect_dev() - Associates the given pair of PHY and Ethernet devices
> * @phydev: PHY device
> * @dev: Ethernet device
> + * @interface: type of MAC-PHY interface
> */
> -void phy_connect_dev(struct phy_device *phydev, struct eth_device *dev);
> +void phy_connect_dev(struct phy_device *phydev, struct eth_device *dev,
> + phy_interface_t interface);
>
> /**
> * phy_connect() - Creates a PHY device for the Ethernet interface
> --
> 2.34.1
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>
More information about the U-Boot
mailing list