Hi Nelson,

comment inline

On 03/10/2016 09:18, Nelson Chang wrote:
> Because hw lro started to be supported from MT7623, the proper way to check if
> the feature is capable is to judge by the chip id instead of by the dtsi.
> 
> Signed-off-by: Nelson Chang <nelson.ch...@mediatek.com>
> ---
>  drivers/net/ethernet/mediatek/mtk_eth_soc.c | 12 ++++++++++--
>  drivers/net/ethernet/mediatek/mtk_eth_soc.h |  1 +
>  2 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c 
> b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> index a3e4ae6..3d16a0c 100644
> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> @@ -2344,6 +2344,14 @@ static u32 mtk_get_chip_id(struct mtk_eth *eth)
>       return chip_id;
>  }
>  
> +static bool mtk_is_hwlro_supported(struct mtk_eth *eth)
> +{
> +     if (eth->chip_id == MT7623_ETH)
> +             return true;
> +     else
> +             return false;
> +}
> +
>  static int mtk_probe(struct platform_device *pdev)
>  {
>       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> @@ -2383,8 +2391,6 @@ static int mtk_probe(struct platform_device *pdev)
>               return PTR_ERR(eth->pctl);
>       }
>  
> -     eth->hwlro = of_property_read_bool(pdev->dev.of_node, "mediatek,hwlro");
> -
>       for (i = 0; i < 3; i++) {
>               eth->irq[i] = platform_get_irq(pdev, i);
>               if (eth->irq[i] < 0) {
> @@ -2415,6 +2421,8 @@ static int mtk_probe(struct platform_device *pdev)
>               return -ENODEV;
>       }
>  
> +     eth->hwlro = mtk_is_hwlro_supported(eth);
> +

do you plan to add more chips to the mtk_is_hwlro_supporte() function ?
if not a simple

        eth->hwlro = (eth->chip_id == MT7623_ETH);

might be enough

        John


>       for_each_child_of_node(pdev->dev.of_node, mac_np) {
>               if (!of_device_is_compatible(mac_np,
>                                            "mediatek,eth-mac"))
> diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h 
> b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
> index a5b422b..58738fd 100644
> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
> +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
> @@ -345,6 +345,7 @@
>  /* ethernet subsystem chip id register */
>  #define ETHSYS_CHIPID0_3     0x0
>  #define ETHSYS_CHIPID4_7     0x4
> +#define MT7623_ETH           (7623)
>  
>  /* ethernet subsystem config register */
>  #define ETHSYS_SYSCFG0               0x14
> 

Reply via email to