> Fix this by moving the of_mdiobus_register() call earlier.
>
> Cc: Andy Fleming <[email protected]>
> Signed-off-by: Baruch Siach <[email protected]>
> ---
> 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
[email protected]
https://lists.ozlabs.org/listinfo/linuxppc-dev