Re: [PATCHv2] rtc: stmp3xxx: use devm_platform_ioremap_resource()
kernel test robot <[email protected]>
| Newsgroups | org.kernel.vger.linux-rtc,dev.linux.lists.oe-kbuild-all,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hi Rosen, kernel test robot noticed the following build errors: [auto build test ERROR on abelloni/rtc-next] [also build test ERROR on linus/master v7.2-rc7 next-20260813] [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/Rosen-Penev/rtc-stmp3xxx-use-devm_platform_ioremap_resource/20260814-172225 base: https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next patch link: https://lore.kernel.org/r/20260728005303.574936-1-rosenp%40gmail.com patch subject: [PATCHv2] rtc: stmp3xxx: use devm_platform_ioremap_resource() config: alpha-allmodconfig (https://download.01.org/0day-ci/archive/20260815/[email protected]/config) compiler: alpha-linux-gcc (GCC) 16.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260815/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All errors (new ones prefixed by >>): drivers/rtc/rtc-stmp3xxx.c: In function 'stmp3xxx_rtc_probe': >> drivers/rtc/rtc-stmp3xxx.c:253:9: error: 'irq_alarm' undeclared (first use in this function) 253 | irq_alarm = platform_get_irq(pdev, 0); | ^~~~~~~~~ drivers/rtc/rtc-stmp3xxx.c:253:9: note: each undeclared identifier is reported only once for each function it appears in vim +/irq_alarm +253 drivers/rtc/rtc-stmp3xxx.c 243 244 static int stmp3xxx_rtc_probe(struct platform_device *pdev) 245 { 246 struct stmp3xxx_rtc_data *rtc_data; 247 void __iomem *io; 248 u32 rtc_stat; 249 u32 pers0_set, pers0_clr; 250 u32 crystalfreq = 0; 251 int err; 252 > 253 irq_alarm = platform_get_irq(pdev, 0); 254 if (irq_alarm < 0) 255 return irq_alarm; 256 257 io = devm_platform_ioremap_resource(pdev, 0); 258 if (IS_ERR(io)) 259 return PTR_ERR(io); 260 261 rtc_data = devm_kzalloc(&pdev->dev, sizeof(*rtc_data), GFP_KERNEL); 262 if (!rtc_data) 263 return -ENOMEM; 264 265 rtc_data->io = io; 266 267 rtc_stat = readl(rtc_data->io + STMP3XXX_RTC_STAT); 268 if (!(rtc_stat & STMP3XXX_RTC_STAT_RTC_PRESENT)) { 269 dev_err(&pdev->dev, "no device onboard\n"); 270 return -ENODEV; 271 } 272 273 platform_set_drvdata(pdev, rtc_data); 274 275 /* 276 * Resetting the rtc stops the watchdog timer that is potentially 277 * running. So (assuming it is running on purpose) don't reset if the 278 * watchdog is enabled. 279 */ 280 if (readl(rtc_data->io + STMP3XXX_RTC_CTRL) & 281 STMP3XXX_RTC_CTRL_WATCHDOGEN) { 282 dev_info(&pdev->dev, 283 "Watchdog is running, skip resetting rtc\n"); 284 } else { 285 err = stmp_reset_block(rtc_data->io); 286 if (err) { 287 dev_err(&pdev->dev, "stmp_reset_block failed: %d\n", 288 err); 289 return err; 290 } 291 } 292 293 /* 294 * Obviously the rtc needs a clock input to be able to run. 295 * This clock can be provided by an external 32k crystal. If that one is 296 * missing XTAL must not be disabled in suspend which consumes a 297 * lot of power. Normally the presence and exact frequency (supported 298 * are 32000 Hz and 32768 Hz) is detectable from fuses, but as reality 299 * proves these fuses are not blown correctly on all machines, so the 300 * frequency can be overridden in the device tree. 301 */ 302 if (rtc_stat & STMP3XXX_RTC_STAT_XTAL32000_PRESENT) 303 crystalfreq = 32000; 304 else if (rtc_stat & STMP3XXX_RTC_STAT_XTAL32768_PRESENT) 305 crystalfreq = 32768; 306 307 of_property_read_u32(pdev->dev.of_node, "stmp,crystal-freq", 308 &crystalfreq); 309 310 switch (crystalfreq) { 311 case 32000: 312 /* keep 32kHz crystal running in low-power mode */ 313 pers0_set = STMP3XXX_RTC_PERSISTENT0_XTAL32_FREQ | 314 STMP3XXX_RTC_PERSISTENT0_XTAL32KHZ_PWRUP | 315 STMP3XXX_RTC_PERSISTENT0_CLOCKSOURCE; 316 pers0_clr = STMP3XXX_RTC_PERSISTENT0_XTAL24MHZ_PWRUP; 317 break; 318 case 32768: 319 /* keep 32.768kHz crystal running in low-power mode */ 320 pers0_set = STMP3XXX_RTC_PERSISTENT0_XTAL32KHZ_PWRUP | 321 STMP3XXX_RTC_PERSISTENT0_CLOCKSOURCE; 322 pers0_clr = STMP3XXX_RTC_PERSISTENT0_XTAL24MHZ_PWRUP | 323 STMP3XXX_RTC_PERSISTENT0_XTAL32_FREQ; 324 break; 325 default: 326 dev_warn(&pdev->dev, 327 "invalid crystal-freq specified in device-tree. Assuming no crystal\n"); 328 fallthrough; 329 case 0: 330 /* keep XTAL on in low-power mode */ 331 pers0_set = STMP3XXX_RTC_PERSISTENT0_XTAL24MHZ_PWRUP; 332 pers0_clr = STMP3XXX_RTC_PERSISTENT0_XTAL32KHZ_PWRUP | 333 STMP3XXX_RTC_PERSISTENT0_CLOCKSOURCE; 334 } 335 336 writel(pers0_set, rtc_data->io + STMP3XXX_RTC_PERSISTENT0 + 337 STMP_OFFSET_REG_SET); 338 339 writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | 340 STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN | 341 STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE | pers0_clr, 342 rtc_data->io + STMP3XXX_RTC_PERSISTENT0 + STMP_OFFSET_REG_CLR); 343 344 writel(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | 345 STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, 346 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); 347 348 rtc_data->rtc = devm_rtc_allocate_device(&pdev->dev); 349 if (IS_ERR(rtc_data->rtc)) 350 return PTR_ERR(rtc_data->rtc); 351 352 err = devm_request_irq(&pdev->dev, irq_alarm, 353 stmp3xxx_rtc_interrupt, 0, "RTC alarm", &pdev->dev); 354 if (err) 355 return err; 356 357 rtc_data->rtc->ops = &stmp3xxx_rtc_ops; 358 rtc_data->rtc->range_max = U32_MAX; 359 360 err = devm_rtc_register_device(rtc_data->rtc); 361 if (err) 362 return err; 363 364 stmp3xxx_wdt_register(pdev); 365 return 0; 366 } 367 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki