Hi Wang, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on hwmon/hwmon-next] [also build test WARNING on soc/for-next linus/master v5.12-rc8 next-20210420] [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/Wang-Qing/watchdog-mtk-support-dual-mode-when-the-bark-irq-is-available/20210421-160730 base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next config: arc-allyesconfig (attached as .config) compiler: arceb-elf-gcc (GCC) 9.3.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/0day-ci/linux/commit/bb28c4d8391120b54c691e2407dae46761ef69af git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Wang-Qing/watchdog-mtk-support-dual-mode-when-the-bark-irq-is-available/20210421-160730 git checkout bb28c4d8391120b54c691e2407dae46761ef69af # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=arc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): drivers/watchdog/mtk_wdt.c: In function 'mtk_wdt_probe': >> drivers/watchdog/mtk_wdt.c:327:16: warning: missing terminating " character 327 | dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d, | ^ In file included from include/linux/device.h:15, from include/linux/node.h:18, from include/linux/cpu.h:17, from include/linux/of_device.h:5, from drivers/watchdog/mtk_wdt.c:23: drivers/watchdog/mtk_wdt.c:327:16: error: missing terminating " character 327 | dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt' 19 | #define dev_fmt(fmt) fmt | ^~~ drivers/watchdog/mtk_wdt.c:327:2: note: in expansion of macro 'dev_info' 327 | dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d, | ^~~~~~~~ drivers/watchdog/mtk_wdt.c:328:14: error: expected expression before '%' token 328 | dual_mode=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout, dual_mode); | ^ include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt' 19 | #define dev_fmt(fmt) fmt | ^~~ drivers/watchdog/mtk_wdt.c:327:2: note: in expansion of macro 'dev_info' 327 | dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d, | ^~~~~~~~ drivers/watchdog/mtk_wdt.c:328:17: error: stray '\' in program 328 | dual_mode=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout, dual_mode); | ^ drivers/watchdog/mtk_wdt.c:328:18: error: expected ';' before 'n' 328 | dual_mode=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout, dual_mode); | ^ drivers/watchdog/mtk_wdt.c:328:19: warning: missing terminating " character 328 | dual_mode=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout, dual_mode); | ^ drivers/watchdog/mtk_wdt.c:328:19: error: missing terminating " character 328 | dual_mode=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout, dual_mode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vim +327 drivers/watchdog/mtk_wdt.c 276 277 static int mtk_wdt_probe(struct platform_device *pdev) 278 { 279 struct device *dev = &pdev->dev; 280 struct mtk_wdt_dev *mtk_wdt; 281 const struct mtk_wdt_data *wdt_data; 282 int err, irq; 283 284 mtk_wdt = devm_kzalloc(dev, sizeof(*mtk_wdt), GFP_KERNEL); 285 if (!mtk_wdt) 286 return -ENOMEM; 287 288 platform_set_drvdata(pdev, mtk_wdt); 289 290 mtk_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0); 291 if (IS_ERR(mtk_wdt->wdt_base)) 292 return PTR_ERR(mtk_wdt->wdt_base); 293 294 if (dual_mode) { 295 irq = platform_get_irq(pdev, 0); 296 if (irq > 0) { 297 err = devm_request_irq(&pdev->dev, irq, mtk_wdt_isr, 0, "wdt_bark", 298 &mtk_wdt->wdt_dev); 299 if (err) 300 return err; 301 } else { 302 dual_mode = 0; 303 dev_info(&pdev->dev, "couldn't get wdt irq, set dual_mode = 0\n"); 304 } 305 } 306 307 mtk_wdt->wdt_dev.info = &mtk_wdt_info; 308 mtk_wdt->wdt_dev.ops = &mtk_wdt_ops; 309 mtk_wdt->wdt_dev.timeout = WDT_MAX_TIMEOUT; 310 mtk_wdt->wdt_dev.max_hw_heartbeat_ms = WDT_MAX_TIMEOUT * 1000; 311 mtk_wdt->wdt_dev.min_timeout = WDT_MIN_TIMEOUT; 312 mtk_wdt->wdt_dev.parent = dev; 313 314 watchdog_init_timeout(&mtk_wdt->wdt_dev, timeout, dev); 315 watchdog_set_nowayout(&mtk_wdt->wdt_dev, nowayout); 316 watchdog_set_restart_priority(&mtk_wdt->wdt_dev, 128); 317 318 watchdog_set_drvdata(&mtk_wdt->wdt_dev, mtk_wdt); 319 320 mtk_wdt_init(&mtk_wdt->wdt_dev); 321 322 watchdog_stop_on_reboot(&mtk_wdt->wdt_dev); 323 err = devm_watchdog_register_device(dev, &mtk_wdt->wdt_dev); 324 if (unlikely(err)) 325 return err; 326 > 327 dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d, 328 dual_mode=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout, dual_mode); 329 330 wdt_data = of_device_get_match_data(dev); 331 if (wdt_data) { 332 err = toprgu_register_reset_controller(pdev, 333 wdt_data->toprgu_sw_rst_num); 334 if (err) 335 return err; 336 } 337 return 0; 338 } 339 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org