On 11/13/2024 6:51 PM, Andrew Lunn wrote: > On Tue, Nov 12, 2024 at 06:08:10PM -0800, Sagar Cheluvegowda wrote: >> All Qualcomm platforms have only supported EMAC version 4 until >> now whereas in future we will also be supporting XGMAC version >> which has higher capabilities than its peer. As both has_gmac4 >> and has_xgmac fields cannot co-exist, make sure to disable the >> former flag when has_xgmac is enabled. > > If you say they are mutually exclusive, how can it happen that both > are enabled? > > To me, this feels like you are papering over a bug somewhere else. > > Andrew We can set either has_gmac4 or has_xgmac flags by using below dtsi properties as well. But since Qualcomm only supported GMAC4 version in all of its chipsets until now, we had enabled has_gmac4 flag by default within dwmac_qcom_ethqos.c instead of adding any of the below entries in the dtsi. But this will create problem for us as we start supporting Xgmac version in the future, so we are trying to add this change so that our driver can support Xgmac version when "snps,dwxgmac" is defined in the dtsi and we are keeping the default supported configuration as gmac4. if (of_device_is_compatible(np, "snps,dwmac-4.00") || of_device_is_compatible(np, "snps,dwmac-4.10a") || of_device_is_compatible(np, "snps,dwmac-4.20a") || of_device_is_compatible(np, "snps,dwmac-5.10a") || of_device_is_compatible(np, "snps,dwmac-5.20")) { plat->has_gmac4 = 1; plat->has_gmac = 0; plat->pmt = 1; if (of_property_read_bool(np, "snps,tso")) plat->flags |= STMMAC_FLAG_TSO_EN; } if (of_device_is_compatible(np, "snps,dwxgmac")) { plat->has_xgmac = 1; plat->pmt = 1; if (of_property_read_bool(np, "snps,tso")) plat->flags |= STMMAC_FLAG_TSO_EN; }