>
>>      switch (state->interface) {
>> +    case PHY_INTERFACE_MODE_NA:
>
>I would not list PHY_INTERFACE_MODE_NA here.
>
This was to experiment in band mode with sfp. 
phylink_sfp_module_insert call phylink_validate with interface set to 
PHY_INTERFACE_MODE_NA
, if it is not listed in validate method supported bitmask will be empty.  
But anyway since I am configuring fixed mode, removing this case.

>> +    case PHY_INTERFACE_MODE_USXGMII:
>> +    case PHY_INTERFACE_MODE_10GKR:
>> +            if (bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE) {
>> +                    phylink_set(mask, 10000baseCR_Full);
>> +                    phylink_set(mask, 10000baseER_Full);
>> +                    phylink_set(mask, 10000baseKR_Full);
>> +                    phylink_set(mask, 10000baseLR_Full);
>> +                    phylink_set(mask, 10000baseLRM_Full);
>> +                    phylink_set(mask, 10000baseSR_Full);
>> +                    phylink_set(mask, 10000baseT_Full);
>> +                    phylink_set(mask, 5000baseT_Full);
>> +                    phylink_set(mask, 2500baseX_Full);
>> +                    phylink_set(mask, 1000baseX_Full);
>> +            }
>> +            /* Fall-through */
>>      case PHY_INTERFACE_MODE_SGMII:
>>              if (bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE)
>>                      phylink_set(mask, 2500baseT_Full); @@ -594,17 +639,55
>@@ static
>> void gem_mac_config(struct phylink_config *pl_config, unsigned int mode,
>>                      reg |= MACB_BIT(FD);
>>              macb_or_gem_writel(bp, NCFGR, reg);
>>
>> -            if (state->speed == SPEED_2500) {
>> -                    gem_writel(bp, NCFGR, GEM_BIT(GBE) |
>> -                               gem_readl(bp, NCFGR));
>> -                    gem_writel(bp, NCR, GEM_BIT(TWO_PT_FIVE_GIG) |
>> -                               gem_readl(bp, NCR));
>> -            } else if (state->speed == SPEED_1000) {
>> -                    gem_writel(bp, NCFGR, GEM_BIT(GBE) |
>> -                               gem_readl(bp, NCFGR));
>> -            } else if (state->speed == SPEED_100) {
>> -                    macb_writel(bp, NCFGR, MACB_BIT(SPD) |
>> -                                macb_readl(bp, NCFGR));
>> +            if (bp->phy_interface == PHY_INTERFACE_MODE_USXGMII) {
>> +                    u32 speed;
>> +
>> +                    switch (state->speed) {
>> +                    case SPEED_10000:
>> +                            if (bp->serdes_rate ==
>> +                                MACB_SERDES_RATE_10_PT_3125Gbps) {
>> +                                    speed = HS_MAC_SPEED_10000M;
>> +                            } else {
>> +                                    netdev_warn(netdev,
>> +                                                "10G not supported by HW");
>> +                                    netdev_warn(netdev, "Setting speed to
>1G");
>> +                                    speed = HS_MAC_SPEED_1000M;
>> +                            }
>> +                            break;
>> +                    case SPEED_5000:
>> +                            speed = HS_MAC_SPEED_5000M;
>> +                            break;
>> +                    case SPEED_2500:
>> +                            speed = HS_MAC_SPEED_2500M;
>> +                            break;
>> +                    case SPEED_1000:
>> +                            speed = HS_MAC_SPEED_1000M;
>> +                            break;
>> +                    default:
>> +                    case SPEED_100:
>> +                            speed = HS_MAC_SPEED_100M;
>> +                            break;
>> +                    }
>> +
>> +                    gem_writel(bp, HS_MAC_CONFIG,
>> +                               GEM_BFINS(HS_MAC_SPEED, speed,
>> +                                         gem_readl(bp, HS_MAC_CONFIG)));
>> +                    gem_writel(bp, USX_CONTROL,
>> +                               GEM_BFINS(USX_CTRL_SPEED, speed,
>> +                                         gem_readl(bp, USX_CONTROL)));
>> +            } else {
>> +                    if (state->speed == SPEED_2500) {
>> +                            gem_writel(bp, NCFGR, GEM_BIT(GBE) |
>> +                                       gem_readl(bp, NCFGR));
>> +                            gem_writel(bp, NCR,
>GEM_BIT(TWO_PT_FIVE_GIG) |
>> +                                       gem_readl(bp, NCR));
>> +                    } else if (state->speed == SPEED_1000) {
>> +                            gem_writel(bp, NCFGR, GEM_BIT(GBE) |
>> +                                       gem_readl(bp, NCFGR));
>> +                    } else if (state->speed == SPEED_100) {
>> +                            macb_writel(bp, NCFGR, MACB_BIT(SPD) |
>> +                                        macb_readl(bp, NCFGR));
>> +                    }
>
>Maybe split this up into two helper functions?
Ok 
>
>      Andrew


Regards,
Parshuram Thombare

Reply via email to