[asahilinux:bits/110-smc 4/17] drivers/platform/apple/smc_rtkit.c:74:16: error: implicit declaration of function 'FIELD_PREP'

From: kernel test robot
Date: Sat Jul 30 2022 - 16:19:32 EST


tree: https://github.com/AsahiLinux/linux bits/110-smc
head: b1ba46a24716bd39ca22059fc93705a727c39890
commit: 58a839ca536e6de7bf1b2dff7441509c3ac9c8e7 [4/17] platform/apple: Add new Apple Mac SMC driver
config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20220731/202207310431.oMcYjPWN-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/AsahiLinux/linux/commit/58a839ca536e6de7bf1b2dff7441509c3ac9c8e7
git remote add asahilinux https://github.com/AsahiLinux/linux
git fetch --no-tags asahilinux bits/110-smc
git checkout 58a839ca536e6de7bf1b2dff7441509c3ac9c8e7
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

drivers/platform/apple/smc_rtkit.c: In function 'apple_smc_rtkit_write_key_atomic':
>> drivers/platform/apple/smc_rtkit.c:74:16: error: implicit declaration of function 'FIELD_PREP' [-Werror=implicit-function-declaration]
74 | msg = (FIELD_PREP(SMC_MSG, SMC_MSG_WRITE_KEY) |
| ^~~~~~~~~~
In file included from include/linux/bitops.h:6,
from include/linux/log2.h:12,
from include/asm-generic/div64.h:55,
from arch/arm/include/asm/div64.h:107,
from include/linux/math.h:6,
from include/linux/delay.h:22,
from drivers/platform/apple/smc_rtkit.c:8:
include/linux/bits.h:35:29: warning: left shift count >= width of type [-Wshift-count-overflow]
35 | (((~UL(0)) - (UL(1) << (l)) + 1) & \
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:77:27: note: in expansion of macro 'SMC_DATA'
77 | FIELD_PREP(SMC_DATA, key));
| ^~~~~~~~
include/linux/bits.h:36:18: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:77:27: note: in expansion of macro 'SMC_DATA'
77 | FIELD_PREP(SMC_DATA, key));
| ^~~~~~~~
>> drivers/platform/apple/smc_rtkit.c:95:13: error: implicit declaration of function 'FIELD_GET' [-Werror=implicit-function-declaration]
95 | if (FIELD_GET(SMC_ID, smc->cmd_ret) != smc->msg_id) {
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c: In function 'apple_smc_cmd':
include/linux/bits.h:35:29: warning: left shift count >= width of type [-Wshift-count-overflow]
35 | (((~UL(0)) - (UL(1) << (l)) + 1) & \
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:125:27: note: in expansion of macro 'SMC_DATA'
125 | FIELD_PREP(SMC_DATA, arg));
| ^~~~~~~~
include/linux/bits.h:36:18: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:125:27: note: in expansion of macro 'SMC_DATA'
125 | FIELD_PREP(SMC_DATA, arg));
| ^~~~~~~~
include/linux/bits.h:35:29: warning: left shift count >= width of type [-Wshift-count-overflow]
35 | (((~UL(0)) - (UL(1) << (l)) + 1) & \
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:150:39: note: in expansion of macro 'SMC_DATA'
150 | *ret_data = FIELD_GET(SMC_DATA, smc->cmd_ret);
| ^~~~~~~~
include/linux/bits.h:36:18: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:150:39: note: in expansion of macro 'SMC_DATA'
150 | *ret_data = FIELD_GET(SMC_DATA, smc->cmd_ret);
| ^~~~~~~~
drivers/platform/apple/smc_rtkit.c: In function 'apple_smc_rtkit_recv':
include/linux/bits.h:35:29: warning: left shift count >= width of type [-Wshift-count-overflow]
35 | (((~UL(0)) - (UL(1) << (l)) + 1) & \
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:332:55: note: in expansion of macro 'SMC_DATA'
332 | apple_smc_event_received(smc->core, FIELD_GET(SMC_DATA, message));
| ^~~~~~~~
include/linux/bits.h:36:18: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/platform/apple/smc_rtkit.c:30:41: note: in expansion of macro 'GENMASK'
30 | #define SMC_DATA GENMASK(63, 32)
| ^~~~~~~
drivers/platform/apple/smc_rtkit.c:332:55: note: in expansion of macro 'SMC_DATA'
332 | apple_smc_event_received(smc->core, FIELD_GET(SMC_DATA, message));
| ^~~~~~~~
cc1: some warnings being treated as errors


vim +/FIELD_PREP +74 drivers/platform/apple/smc_rtkit.c

58
59 static int apple_smc_rtkit_write_key_atomic(void *cookie, smc_key key, void *buf, size_t size)
60 {
61 struct apple_smc_rtkit *smc = cookie;
62 int ret;
63 u64 msg;
64 u8 result;
65
66 if (size > SMC_SHMEM_SIZE || size == 0)
67 return -EINVAL;
68
69 if (!smc->alive)
70 return -EIO;
71
72 memcpy_toio(smc->shmem.iomem, buf, size);
73 smc->msg_id = (smc->msg_id + 1) & 0xf;
> 74 msg = (FIELD_PREP(SMC_MSG, SMC_MSG_WRITE_KEY) |
75 FIELD_PREP(SMC_SIZE, size) |
76 FIELD_PREP(SMC_ID, smc->msg_id) |
77 FIELD_PREP(SMC_DATA, key));
78 smc->atomic_pending = true;
79
80 ret = apple_rtkit_send_message(smc->rtk, SMC_ENDPOINT, msg, NULL, true);
81 if (ret < 0) {
82 dev_err(smc->dev, "Failed to send command (%d)\n", ret);
83 return ret;
84 }
85
86 while (smc->atomic_pending) {
87 ret = apple_rtkit_poll(smc->rtk);
88 if (ret < 0) {
89 dev_err(smc->dev, "RTKit poll failed (%llx)", msg);
90 return ret;
91 }
92 udelay(100);
93 }
94
> 95 if (FIELD_GET(SMC_ID, smc->cmd_ret) != smc->msg_id) {
96 dev_err(smc->dev, "Command sequence mismatch (expected %d, got %d)\n",
97 smc->msg_id, (unsigned int)FIELD_GET(SMC_ID, smc->cmd_ret));
98 return -EIO;
99 }
100
101 result = FIELD_GET(SMC_RESULT, smc->cmd_ret);
102 if (result != 0)
103 return -result;
104
105 return FIELD_GET(SMC_SIZE, smc->cmd_ret);
106 }
107

--
0-DAY CI Kernel Test Service
https://01.org/lkp