Hi Russell, Antoine,

Russell King - ARM Linux writes:
> On Tue, Dec 11, 2018 at 05:32:28PM +0100, Antoine Tenart wrote:
>> The mvpp2_phylink_validate() function sets all modes that are
>> supported by a given PPv2 port. A recent change made all ports to
>> advertise they support 10G modes in certain cases. This is not true,
>> as only the port #0 can do so. This patch fixes it.
>> 
>> Fixes: 01b3fd5ac97c ("net: mvpp2: fix detection of 10G SFP modules")
>> Cc: Baruch Siach <bar...@tkos.co.il>
>> Signed-off-by: Antoine Tenart <antoine.ten...@bootlin.com>
>> ---
>>  drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 14 ++++++++------
>>  1 file changed, 8 insertions(+), 6 deletions(-)
>> 
>> diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c 
>> b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
>> index 125ea99418df..88aa488054a8 100644
>> --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
>> +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
>> @@ -4405,12 +4405,14 @@ static void mvpp2_phylink_validate(struct net_device 
>> *dev,
>>      case PHY_INTERFACE_MODE_10GKR:
>>      case PHY_INTERFACE_MODE_XAUI:
>
> Are these modes supported on anything except port 0?  If not, you
> should be rejecting these, rather than just treating them as RGMII.

That is, something like this, right?

diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c 
b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
index 125ea99418df..04cb0241ca2b 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -4404,13 +4404,18 @@ static void mvpp2_phylink_validate(struct net_device 
*dev,
        switch (state->interface) {
        case PHY_INTERFACE_MODE_10GKR:
        case PHY_INTERFACE_MODE_XAUI:
+               if (port->gop_id != 0)
+                       goto empty_set;
+               /* Fall-through */
        case PHY_INTERFACE_MODE_NA:
-               phylink_set(mask, 10000baseCR_Full);
-               phylink_set(mask, 10000baseSR_Full);
-               phylink_set(mask, 10000baseLR_Full);
-               phylink_set(mask, 10000baseLRM_Full);
-               phylink_set(mask, 10000baseER_Full);
-               phylink_set(mask, 10000baseKR_Full);
+               if (port->gop_id == 0) {
+                       phylink_set(mask, 10000baseCR_Full);
+                       phylink_set(mask, 10000baseSR_Full);
+                       phylink_set(mask, 10000baseLR_Full);
+                       phylink_set(mask, 10000baseLRM_Full);
+                       phylink_set(mask, 10000baseER_Full);
+                       phylink_set(mask, 10000baseKR_Full);
+               }
                /* Fall-through */
        case PHY_INTERFACE_MODE_RGMII:
        case PHY_INTERFACE_MODE_RGMII_ID:

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - bar...@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

Reply via email to