[U-Boot] [PATCH 3/7] net: mvpp2: mark phy as invalid in case of missing appropriate driver
Joe Hershberger
joe.hershberger at gmail.com
Wed Aug 14 15:43:38 UTC 2019
On Fri, Aug 2, 2019 at 12:54 PM <nhed+uboot at starry.com> wrote:
>
> From: Grzegorz Jaszczyk <jaz at semihalf.com>
>
> If the phy doesn't match with any existing u-boot drivers the phy
> framework will connect it to generic one which uid == 0xffffffff. In
> this case act as if the phy wouldn't be declared in dts. Otherwise in
> case of 3310 (for which the driver doesn't exist) the link will be
> marked as always down. Removing phy entry from dts in case of 3310 is
> not good option because it is required for the phy_fw_down procedure.
>
> This patch fixes the issue with the link always down on MCBIN board.
>
> Signed-off-by: Grzegorz Jaszczyk <jaz at semihalf.com>
> Reviewed-by: Igal Liberman <igall at marvell.com>
> Tested-by: Igal Liberman <igall at marvell.com>
> Signed-off-by: Nevo Hed <nhed+github at starry.com>
> ---
>
> drivers/net/mvpp2.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c
> index b6dfed5c54..fae7090121 100644
> --- a/drivers/net/mvpp2.c
> +++ b/drivers/net/mvpp2.c
> @@ -4484,6 +4484,27 @@ static void mvpp2_phy_connect(struct udevice *dev, struct mvpp2_port *port)
> if (!port->init || port->link == 0) {
> phy_dev = phy_connect(port->bus, port->phyaddr, dev,
> port->phy_interface);
> +
> + /* If the phy doesn't match with any existing u-boot drivers the
Please use the project multi-line comment format. First line should be just: /*
> + * phy framework will connect it to generic one which
> + * uid == 0xffffffff. In this case act as if the phy wouldn't be
> + * declared in dts. Otherwise in case of 3310 (for which the
> + * driver doesn't exist) the link will not be correctly
> + * detected. Removing phy entry from dts in case of 3310 is not
> + * an option because it is required for the phy_fw_down
> + * procedure.
> + */
> + if (phy_dev->drv->uid == 0xffffffff) {/* Generic phy */
> + netdev_warn(port->dev,
> + "Marking phy as invalid, link will not be checked\n");
> + /* set phy_addr to invalid value */
> + port->phyaddr = PHY_MAX_ADDR;
> + mvpp2_egress_enable(port);
> + mvpp2_ingress_enable(port);
> +
> + return;
> + }
> +
> port->phy_dev = phy_dev;
> if (!phy_dev) {
> netdev_err(port->dev, "cannot connect to phy\n");
> --
> 2.21.0
>
More information about the U-Boot
mailing list