[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202512030728.3yMG8FZJ-lkp@intel.com>
Date: Wed, 3 Dec 2025 07:41:18 +0800
From: kernel test robot <lkp@...el.com>
To: adrianhoyin.ng@...era.com, alexandre.belloni@...tlin.com,
Frank.Li@....com, linux-i3c@...ts.infradead.org,
linux-kernel@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
adrianhoyin.ng@...era.com
Subject: Re: [PATCH v5 4/5] i3c: dw: use FIELD_PREP for device address table
macros
Hi,
kernel test robot noticed the following build errors:
[auto build test ERROR on i3c/i3c/next]
[also build test ERROR on linus/master v6.18 next-20251202]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/adrianhoyin-ng-altera-com/i3c-add-sysfs-entry-for-Device-NACK-Retry-count/20251202-163150
base: https://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux.git i3c/next
patch link: https://lore.kernel.org/r/4c4791c018d61beb9ff85ca68c5bf48940d2398e.1764663888.git.adrianhoyin.ng%40altera.com
patch subject: [PATCH v5 4/5] i3c: dw: use FIELD_PREP for device address table macros
config: i386-buildonly-randconfig-005-20251203 (https://download.01.org/0day-ci/archive/20251203/202512030728.3yMG8FZJ-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251203/202512030728.3yMG8FZJ-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512030728.3yMG8FZJ-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/i3c/master/dw-i3c-master.c:862:10: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
862 | writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(ret),
| ^
drivers/i3c/master/dw-i3c-master.c:214:40: note: expanded from macro 'DEV_ADDR_TABLE_DYNAMIC_ADDR'
214 | #define DEV_ADDR_TABLE_DYNAMIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_DYNAMIC_MASK, x)
| ^
drivers/i3c/master/dw-i3c-master.c:1017:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1017 | writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(dev->info.dyn_addr),
| ^
drivers/i3c/master/dw-i3c-master.c:214:40: note: expanded from macro 'DEV_ADDR_TABLE_DYNAMIC_ADDR'
214 | #define DEV_ADDR_TABLE_DYNAMIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_DYNAMIC_MASK, x)
| ^
drivers/i3c/master/dw-i3c-master.c:1046:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1046 | writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(master->devs[pos].addr),
| ^
drivers/i3c/master/dw-i3c-master.c:214:40: note: expanded from macro 'DEV_ADDR_TABLE_DYNAMIC_ADDR'
214 | #define DEV_ADDR_TABLE_DYNAMIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_DYNAMIC_MASK, x)
| ^
drivers/i3c/master/dw-i3c-master.c:1165:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1165 | DEV_ADDR_TABLE_STATIC_ADDR(dev->addr),
| ^
drivers/i3c/master/dw-i3c-master.c:215:39: note: expanded from macro 'DEV_ADDR_TABLE_STATIC_ADDR'
215 | #define DEV_ADDR_TABLE_STATIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_STATIC_MASK, x)
| ^
drivers/i3c/master/dw-i3c-master.c:1719:11: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1719 | DEV_ADDR_TABLE_STATIC_ADDR(master->devs[pos].addr);
| ^
drivers/i3c/master/dw-i3c-master.c:215:39: note: expanded from macro 'DEV_ADDR_TABLE_STATIC_ADDR'
215 | #define DEV_ADDR_TABLE_STATIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_STATIC_MASK, x)
| ^
5 errors generated.
vim +/FIELD_PREP +862 drivers/i3c/master/dw-i3c-master.c
1dd728f5d4d4b8 Vitor Soares 2018-11-13 826
1dd728f5d4d4b8 Vitor Soares 2018-11-13 827 static int dw_i3c_master_daa(struct i3c_master_controller *m)
1dd728f5d4d4b8 Vitor Soares 2018-11-13 828 {
1dd728f5d4d4b8 Vitor Soares 2018-11-13 829 struct dw_i3c_master *master = to_dw_i3c_master(m);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 830 struct dw_i3c_xfer *xfer;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 831 struct dw_i3c_cmd *cmd;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 832 u32 olddevs, newdevs;
e89cc14e96a99c Wolfram Sang 2025-01-07 833 u8 last_addr = 0;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 834 int ret, pos;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 835
62fe9d06f5709c Aniket 2024-07-08 836 ret = pm_runtime_resume_and_get(master->dev);
62fe9d06f5709c Aniket 2024-07-08 837 if (ret < 0) {
62fe9d06f5709c Aniket 2024-07-08 838 dev_err(master->dev,
62fe9d06f5709c Aniket 2024-07-08 839 "<%s> cannot resume i3c bus master, err: %d\n",
62fe9d06f5709c Aniket 2024-07-08 840 __func__, ret);
62fe9d06f5709c Aniket 2024-07-08 841 return ret;
62fe9d06f5709c Aniket 2024-07-08 842 }
62fe9d06f5709c Aniket 2024-07-08 843
1dd728f5d4d4b8 Vitor Soares 2018-11-13 844 olddevs = ~(master->free_pos);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 845
1dd728f5d4d4b8 Vitor Soares 2018-11-13 846 /* Prepare DAT before launching DAA. */
1dd728f5d4d4b8 Vitor Soares 2018-11-13 847 for (pos = 0; pos < master->maxdevs; pos++) {
1dd728f5d4d4b8 Vitor Soares 2018-11-13 848 if (olddevs & BIT(pos))
1dd728f5d4d4b8 Vitor Soares 2018-11-13 849 continue;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 850
1dd728f5d4d4b8 Vitor Soares 2018-11-13 851 ret = i3c_master_get_free_addr(m, last_addr + 1);
62fe9d06f5709c Aniket 2024-07-08 852 if (ret < 0) {
62fe9d06f5709c Aniket 2024-07-08 853 ret = -ENOSPC;
62fe9d06f5709c Aniket 2024-07-08 854 goto rpm_out;
62fe9d06f5709c Aniket 2024-07-08 855 }
1dd728f5d4d4b8 Vitor Soares 2018-11-13 856
e2d43101f61d6e Jeremy Kerr 2023-03-30 857 master->devs[pos].addr = ret;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 858 last_addr = ret;
e89cc14e96a99c Wolfram Sang 2025-01-07 859
e89cc14e96a99c Wolfram Sang 2025-01-07 860 ret |= parity8(ret) ? 0 : BIT(7);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 861
1dd728f5d4d4b8 Vitor Soares 2018-11-13 @862 writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(ret),
1dd728f5d4d4b8 Vitor Soares 2018-11-13 863 master->regs +
1dd728f5d4d4b8 Vitor Soares 2018-11-13 864 DEV_ADDR_TABLE_LOC(master->datstartaddr, pos));
62fe9d06f5709c Aniket 2024-07-08 865
62fe9d06f5709c Aniket 2024-07-08 866 ret = 0;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 867 }
1dd728f5d4d4b8 Vitor Soares 2018-11-13 868
1dd728f5d4d4b8 Vitor Soares 2018-11-13 869 xfer = dw_i3c_master_alloc_xfer(master, 1);
62fe9d06f5709c Aniket 2024-07-08 870 if (!xfer) {
62fe9d06f5709c Aniket 2024-07-08 871 ret = -ENOMEM;
62fe9d06f5709c Aniket 2024-07-08 872 goto rpm_out;
62fe9d06f5709c Aniket 2024-07-08 873 }
1dd728f5d4d4b8 Vitor Soares 2018-11-13 874
1dd728f5d4d4b8 Vitor Soares 2018-11-13 875 pos = dw_i3c_master_get_free_pos(master);
13462ba1815db5 Tom Rix 2022-01-08 876 if (pos < 0) {
13462ba1815db5 Tom Rix 2022-01-08 877 dw_i3c_master_free_xfer(xfer);
62fe9d06f5709c Aniket 2024-07-08 878 ret = pos;
62fe9d06f5709c Aniket 2024-07-08 879 goto rpm_out;
13462ba1815db5 Tom Rix 2022-01-08 880 }
1dd728f5d4d4b8 Vitor Soares 2018-11-13 881 cmd = &xfer->cmds[0];
1dd728f5d4d4b8 Vitor Soares 2018-11-13 882 cmd->cmd_hi = 0x1;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 883 cmd->cmd_lo = COMMAND_PORT_DEV_COUNT(master->maxdevs - pos) |
1dd728f5d4d4b8 Vitor Soares 2018-11-13 884 COMMAND_PORT_DEV_INDEX(pos) |
1dd728f5d4d4b8 Vitor Soares 2018-11-13 885 COMMAND_PORT_CMD(I3C_CCC_ENTDAA) |
1dd728f5d4d4b8 Vitor Soares 2018-11-13 886 COMMAND_PORT_ADDR_ASSGN_CMD |
1dd728f5d4d4b8 Vitor Soares 2018-11-13 887 COMMAND_PORT_TOC |
1dd728f5d4d4b8 Vitor Soares 2018-11-13 888 COMMAND_PORT_ROC;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 889
1dd728f5d4d4b8 Vitor Soares 2018-11-13 890 dw_i3c_master_enqueue_xfer(master, xfer);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 891 if (!wait_for_completion_timeout(&xfer->comp, XFER_TIMEOUT))
1dd728f5d4d4b8 Vitor Soares 2018-11-13 892 dw_i3c_master_dequeue_xfer(master, xfer);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 893
1dd728f5d4d4b8 Vitor Soares 2018-11-13 894 newdevs = GENMASK(master->maxdevs - cmd->rx_len - 1, 0);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 895 newdevs &= ~olddevs;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 896
1dd728f5d4d4b8 Vitor Soares 2018-11-13 897 for (pos = 0; pos < master->maxdevs; pos++) {
1dd728f5d4d4b8 Vitor Soares 2018-11-13 898 if (newdevs & BIT(pos))
e2d43101f61d6e Jeremy Kerr 2023-03-30 899 i3c_master_add_i3c_dev_locked(m, master->devs[pos].addr);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 900 }
1dd728f5d4d4b8 Vitor Soares 2018-11-13 901
1dd728f5d4d4b8 Vitor Soares 2018-11-13 902 dw_i3c_master_free_xfer(xfer);
1dd728f5d4d4b8 Vitor Soares 2018-11-13 903
62fe9d06f5709c Aniket 2024-07-08 904 rpm_out:
62fe9d06f5709c Aniket 2024-07-08 905 pm_runtime_put_autosuspend(master->dev);
62fe9d06f5709c Aniket 2024-07-08 906 return ret;
1dd728f5d4d4b8 Vitor Soares 2018-11-13 907 }
1dd728f5d4d4b8 Vitor Soares 2018-11-13 908
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists