[PATCH net-next v3 4/4] net: ftgmac100: Add RGMII delay support for AST2600
kernel test robot
lkp at intel.com
Tue Nov 4 14:07:35 AEDT 2025
Hi Jacky,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 01cc760632b875c4ad0d8fec0b0c01896b8a36d4]
url: https://github.com/intel-lab-lkp/linux/commits/Jacky-Chou/dt-bindings-net-ftgmac100-Add-delay-properties-for-AST2600/20251103-154258
base: 01cc760632b875c4ad0d8fec0b0c01896b8a36d4
patch link: https://lore.kernel.org/r/20251103-rgmii_delay_2600-v3-4-e2af2656f7d7%40aspeedtech.com
patch subject: [PATCH net-next v3 4/4] net: ftgmac100: Add RGMII delay support for AST2600
config: arm-defconfig (https://download.01.org/0day-ci/archive/20251104/202511041023.QGAHaAZ3-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project d2625a438020ad35330cda29c3def102c1687b1b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251104/202511041023.QGAHaAZ3-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511041023.QGAHaAZ3-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/faraday/ftgmac100.c:1865:13: warning: variable 'rgmii_delay_unit' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
1865 | } else if (of_device_is_compatible(np, "aspeed,ast2600-mac23")) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/faraday/ftgmac100.c:1870:53: note: uninitialized use occurs here
1870 | rgmii_tx_delay = DIV_ROUND_CLOSEST(rgmii_tx_delay, rgmii_delay_unit);
| ^~~~~~~~~~~~~~~~
drivers/net/ethernet/faraday/ftgmac100.c:1865:9: note: remove the 'if' if its condition is always true
1865 | } else if (of_device_is_compatible(np, "aspeed,ast2600-mac23")) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/faraday/ftgmac100.c:1844:22: note: initialize the variable 'rgmii_delay_unit' to silence this warning
1844 | u32 rgmii_delay_unit;
| ^
| = 0
1 warning generated.
vim +1865 drivers/net/ethernet/faraday/ftgmac100.c
1838
1839 static int ftgmac100_set_ast2600_rgmii_delay(struct platform_device *pdev,
1840 u32 rgmii_tx_delay,
1841 u32 rgmii_rx_delay)
1842 {
1843 struct device_node *np = pdev->dev.of_node;
1844 u32 rgmii_delay_unit;
1845 struct regmap *scu;
1846 int dly_mask;
1847 int dly_reg;
1848 int id;
1849
1850 scu = syscon_regmap_lookup_by_phandle(np, "scu");
1851 if (IS_ERR(scu)) {
1852 dev_err(&pdev->dev, "failed to get scu");
1853 return PTR_ERR(scu);
1854 }
1855
1856 id = of_alias_get_id(np, "ethernet");
1857 if (id < 0 || id > 3) {
1858 dev_err(&pdev->dev, "get wrong alise id %d\n", id);
1859 return -EINVAL;
1860 }
1861
1862 if (of_device_is_compatible(np, "aspeed,ast2600-mac01")) {
1863 dly_reg = AST2600_MAC01_CLK_DLY;
1864 rgmii_delay_unit = AST2600_MAC01_CLK_DLY_UNIT;
> 1865 } else if (of_device_is_compatible(np, "aspeed,ast2600-mac23")) {
1866 dly_reg = AST2600_MAC23_CLK_DLY;
1867 rgmii_delay_unit = AST2600_MAC23_CLK_DLY_UNIT;
1868 }
1869
1870 rgmii_tx_delay = DIV_ROUND_CLOSEST(rgmii_tx_delay, rgmii_delay_unit);
1871 if (rgmii_tx_delay >= 32) {
1872 dev_err(&pdev->dev,
1873 "The index %u of TX delay setting is out of range\n",
1874 rgmii_tx_delay);
1875 return -EINVAL;
1876 }
1877
1878 rgmii_rx_delay = DIV_ROUND_CLOSEST(rgmii_rx_delay, rgmii_delay_unit);
1879 if (rgmii_rx_delay >= 32) {
1880 dev_err(&pdev->dev,
1881 "The index %u of RX delay setting is out of range\n",
1882 rgmii_rx_delay);
1883 return -EINVAL;
1884 }
1885
1886 /* Due to the hardware design reason, for MAC23 on AST2600, the zero
1887 * delay ns on RX is configured by setting value 0x1a.
1888 * List as below:
1889 * 0x1a -> 0 ns, 0x1b -> 0.25 ns, ... , 0x1f -> 1.25 ns,
1890 * 0x00 -> 1.5 ns, 0x01 -> 1.75 ns, ... , 0x19 -> 7.75 ns, 0x1a -> 0 ns
1891 */
1892 if (of_device_is_compatible(np, "aspeed,ast2600-mac23"))
1893 rgmii_rx_delay = (AST2600_MAC23_RX_DLY_0_NS + rgmii_rx_delay) &
1894 AST2600_MAC_TX_RX_DLY_MASK;
1895
1896 if (id == 0 || id == 2) {
1897 dly_mask = ASPEED_MAC0_2_TX_DLY | ASPEED_MAC0_2_RX_DLY;
1898 rgmii_tx_delay = FIELD_PREP(ASPEED_MAC0_2_TX_DLY, rgmii_tx_delay);
1899 rgmii_rx_delay = FIELD_PREP(ASPEED_MAC0_2_RX_DLY, rgmii_rx_delay);
1900 } else {
1901 dly_mask = ASPEED_MAC1_3_TX_DLY | ASPEED_MAC1_3_RX_DLY;
1902 rgmii_tx_delay = FIELD_PREP(ASPEED_MAC1_3_TX_DLY, rgmii_tx_delay);
1903 rgmii_rx_delay = FIELD_PREP(ASPEED_MAC1_3_RX_DLY, rgmii_rx_delay);
1904 }
1905
1906 regmap_update_bits(scu, dly_reg, dly_mask, rgmii_tx_delay | rgmii_rx_delay);
1907
1908 return 0;
1909 }
1910
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the Linux-aspeed
mailing list