> Fix this by moving the of_mdiobus_register() call earlier.
>
> Cc: Andy Fleming <aflem...@freescale.com>
> Signed-off-by: Baruch Siach <bar...@tkos.co.il>
> ---
>  drivers/net/ethernet/freescale/fsl_pq_mdio.c |   14 +++++++-------
>  1 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/fsl_pq_mdio.c 
> b/drivers/net/ethernet/freescale/fsl_pq_mdio.c
> index 52f4e8a..e17fd2f 100644
> --- a/drivers/net/ethernet/freescale/fsl_pq_mdio.c
> +++ b/drivers/net/ethernet/freescale/fsl_pq_mdio.c
> @@ -385,6 +385,13 @@ static int fsl_pq_mdio_probe(struct platform_device 
> *ofdev)
>                        tbiaddr = *prop;
>        }
>
> +       err = of_mdiobus_register(new_bus, np);
> +       if (err) {
> +               printk (KERN_ERR "%s: Cannot register as MDIO bus\n",
> +                               new_bus->name);
> +               goto err_free_irqs;
> +       }
> +


This fix totally breaks the point of setting tbipa beforehand.
mdiobus_register will cause the bus to be scanned, and if any of the
PHYs are at the default address for tbipa, they won't be found. I have
a different fix which I will (re)submit today.


>        if (tbiaddr == -1) {
>                out_be32(tbipa, 0);


Andy
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to