Subject: Re: [PATCH 1/3] net: thunderx: Cleanup PHY probing code.

From: David Daney <[email-masked]>
Date: Fri, 11 Mar 2016 11:34:24 -0800

On 03/11/2016 11:06 AM, Andrew Lunn wrote:
>>> I don't see why it should wait around forever. I have boards with
>>> Marvell PHYs, yet if i don't build the Marvell driver, the Ethernet
>>> driver still loads, because the generic PHY driver is used instead.
>>> Why does this not work here?
>>
>> As I said before, there is no driver for the device, so
>> of_phy_find_device() will always return NULL.
>
> I'm not yet convinced this is true.

Which part don't you believe?  Is it:

   - there is no driver for the device.

or

   - for PHYs with no driver, of_phy_find_device() will return NULL

> I really do expect that the
> generic PHY driver will bind to it. It might then go horribly wrong,
> because it is not standard compliant, but that is a different issue.
>

At a higher level, the way we handle either of:

   - Lack of a driver.

   - "Horribly wrong" driver

is the same, we cannot use a PHY driver.

> The generic driver should probably have a black list for such devices.
> This is a PHY issue, not an MDIO issue, and the problem should be
> solved in the PHY layer, not in one MDIO driver.

This isn't an MDIO driver patch.  This is more about handling a 
defective device tree in the only driver (a non-MDIO driver) that will 
ever see such a device tree node.

>
> We should also consider what happens when somebody actually writes a
> driver for this PHY.   Are you not going to use it?

Easy to answer: We remove the "&& !of_device_is_compatible(phy_np, 
"cortina,cs4223-slice")" clause from this driver.

>
> Before this patchset, you did not special case this compatible
> string. So at the very least, you need to split this into a separate
> patch, so the maintainers can ACK/NACK it, independent of the other
> change it is embedded in.
>

I can, and will, do that.

Thanks,
David Daney