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 >