On 6/10/19 10:53 PM, Vladimir Oltean wrote:
> On Mon, 10 Jun 2019 at 22:31, Florian Fainelli <[email protected]> wrote:
>>
>> We need to specifically deal with phylink_of_phy_connect() returning
>> -ENODEV, because this can happen when a CPU/DSA port does connect
>> neither to a PHY, nor has a fixed-link property. This is a valid use
>> case that is permitted by the binding and indicates to the switch:
>> auto-configure port with maximum capabilities.
>>
>> Fixes: 0e27921816ad ("net: dsa: Use PHYLINK for the CPU/DSA ports")
>> Signed-off-by: Florian Fainelli <[email protected]>
>> ---
>>   net/dsa/port.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/dsa/port.c b/net/dsa/port.c
>> index d74bc9df1359..dde3085ff065 100644
>> --- a/net/dsa/port.c
>> +++ b/net/dsa/port.c
>> @@ -622,7 +622,7 @@ static int dsa_port_phylink_register(struct dsa_port *dp)
>>          }
>>
>>          err = phylink_of_phy_connect(dp->pl, port_dn, 0);
>> -       if (err) {
>> +       if (err && err != -ENODEV) {
>>                  pr_err("could not attach to PHY: %d\n", err);
>>                  goto err_phy_connect;
>>          }
>> --
>> 2.17.1
>>
> 
> Hi Florian,
> 
> Can you give an example of when this is a valid use case, and why
> fixed-link is not appropriate?
> 
> Regards,
> -Vladimir
> 

Hi,

This reminds me of a previous discussion on what to do when the DSA CPU 
port does not have a device_tree node at all: 
https://www.spinics.net/lists/netdev/msg573554.html.

This was the case of the dsa-loop driver that probes as a platform 
device. I'm still not clear how the PHYLINK callbacks are supposed to 
work in that case though.

--
Ioana


Reply via email to