Re: [PATCH net-next 07/11] net: dsa: mv88e6xxx: add port link setter

From: Vivien Didelot
Date: Wed Nov 02 2016 - 18:32:31 EST


Hi Andrew,

Andrew Lunn <andrew@xxxxxxx> writes:

> On Wed, Nov 02, 2016 at 02:07:09AM +0100, Vivien Didelot wrote:
>> Hi Andrew,
>>
>> Andrew Lunn <andrew@xxxxxxx> writes:
>>
>> >> +#define LINK_UNKNOWN -1
>> >> +
>> >> + /* Port's MAC link state
>> >> + * LINK_UNKNOWN for normal link detection, 0 to force link down,
>> >> + * otherwise force link up.
>> >> + */
>> >> + int (*port_set_link)(struct mv88e6xxx_chip *chip, int port, int link);
>> >
>> > Maybe LINK_AUTO would be better than UNKNOWN? Or LINK_UNFORCED.
>>
>> I used LINK_UNKNOWN to be consistent with the supported SPEED_UNKNOWN
>> and DUPLEX_UNKNOWN values of PHY devices.
>
> These are i think for reporting back to user space what duplex or link
> is currently being used. But here you are setting, not
> reporting. Setting something to an unknown state is rather odd, and in
> fact, it is not unknown, it is unforced.

Do you expect to return an error if adjust_link is called with
phydev->duplex == DUPLEX_UNKNOWN, or, do you expect to fallback to
unforced duplex when setting such value?

Thanks,

Vivien