Re: [PATCH] extcon: extcon-axp288: use low level P-Unit semaphore lock for axp288 register accesses
From: kernel test robot
Date: Thu Sep 09 2021 - 21:05:52 EST
Hi Fabio,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on chanwoo-extcon/extcon-next]
[also build test ERROR on v5.14 next-20210909]
[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]
url: https://github.com/0day-ci/linux/commits/Fabio-Aiuto/extcon-extcon-axp288-use-low-level-P-Unit-semaphore-lock-for-axp288-register-accesses/20210909-232054
base: https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon.git extcon-next
config: x86_64-randconfig-a011-20210908 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
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/0day-ci/linux/commit/ecccd5dd3a8acfd5085a5cf9f9c97ed3d4b42a1f
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Fabio-Aiuto/extcon-extcon-axp288-use-low-level-P-Unit-semaphore-lock-for-axp288-register-accesses/20210909-232054
git checkout ecccd5dd3a8acfd5085a5cf9f9c97ed3d4b42a1f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All errors (new ones prefixed by >>):
>> drivers/extcon/extcon-axp288.c:219:2: error: implicit declaration of function 'iosf_mbi_block_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
iosf_mbi_block_punit_i2c_access();
^
>> drivers/extcon/extcon-axp288.c:259:2: error: implicit declaration of function 'iosf_mbi_unblock_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
iosf_mbi_unblock_punit_i2c_access();
^
drivers/extcon/extcon-axp288.c:259:2: note: did you mean 'iosf_mbi_block_punit_i2c_access'?
drivers/extcon/extcon-axp288.c:219:2: note: 'iosf_mbi_block_punit_i2c_access' declared here
iosf_mbi_block_punit_i2c_access();
^
drivers/extcon/extcon-axp288.c:317:2: error: implicit declaration of function 'iosf_mbi_block_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
iosf_mbi_block_punit_i2c_access();
^
drivers/extcon/extcon-axp288.c:324:2: error: implicit declaration of function 'iosf_mbi_unblock_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
iosf_mbi_unblock_punit_i2c_access();
^
drivers/extcon/extcon-axp288.c:397:2: error: implicit declaration of function 'iosf_mbi_block_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
iosf_mbi_block_punit_i2c_access();
^
drivers/extcon/extcon-axp288.c:403:2: error: implicit declaration of function 'iosf_mbi_unblock_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
iosf_mbi_unblock_punit_i2c_access();
^
6 errors generated.
vim +/iosf_mbi_block_punit_i2c_access +219 drivers/extcon/extcon-axp288.c
211
212 static int axp288_handle_chrg_det_event(struct axp288_extcon_info *info)
213 {
214 int ret, stat, cfg;
215 u8 chrg_type;
216 unsigned int cable = info->previous_cable;
217 bool vbus_attach = false;
218
> 219 iosf_mbi_block_punit_i2c_access();
220
221 vbus_attach = axp288_get_vbus_attach(info);
222 if (!vbus_attach)
223 goto no_vbus;
224
225 /* Check charger detection completion status */
226 ret = regmap_read(info->regmap, AXP288_BC_GLOBAL_REG, &cfg);
227 if (ret < 0)
228 goto dev_det_ret;
229 if (cfg & BC_GLOBAL_DET_STAT) {
230 dev_dbg(info->dev, "can't complete the charger detection\n");
231 goto dev_det_ret;
232 }
233
234 ret = regmap_read(info->regmap, AXP288_BC_DET_STAT_REG, &stat);
235 if (ret < 0)
236 goto dev_det_ret;
237
238 chrg_type = (stat & DET_STAT_MASK) >> DET_STAT_SHIFT;
239
240 switch (chrg_type) {
241 case DET_STAT_SDP:
242 dev_dbg(info->dev, "sdp cable is connected\n");
243 cable = EXTCON_CHG_USB_SDP;
244 break;
245 case DET_STAT_CDP:
246 dev_dbg(info->dev, "cdp cable is connected\n");
247 cable = EXTCON_CHG_USB_CDP;
248 break;
249 case DET_STAT_DCP:
250 dev_dbg(info->dev, "dcp cable is connected\n");
251 cable = EXTCON_CHG_USB_DCP;
252 break;
253 default:
254 dev_warn(info->dev, "unknown (reserved) bc detect result\n");
255 cable = EXTCON_CHG_USB_SDP;
256 }
257
258 no_vbus:
> 259 iosf_mbi_unblock_punit_i2c_access();
260
261 extcon_set_state_sync(info->edev, info->previous_cable, false);
262 if (info->previous_cable == EXTCON_CHG_USB_SDP)
263 extcon_set_state_sync(info->edev, EXTCON_USB, false);
264
265 if (vbus_attach) {
266 extcon_set_state_sync(info->edev, cable, vbus_attach);
267 if (cable == EXTCON_CHG_USB_SDP)
268 extcon_set_state_sync(info->edev, EXTCON_USB,
269 vbus_attach);
270
271 info->previous_cable = cable;
272 }
273
274 if (info->role_sw && info->vbus_attach != vbus_attach) {
275 info->vbus_attach = vbus_attach;
276 /* Setting the role can take a while */
277 queue_work(system_long_wq, &info->role_work);
278 }
279
280 return 0;
281
282 dev_det_ret:
283 iosf_mbi_unblock_punit_i2c_access();
284
285 if (ret < 0)
286 dev_err(info->dev, "failed to detect BC Mod\n");
287
288 return ret;
289 }
290
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip