Re: [PATCH] drm/meson: clean up KMS polling on register failure
From: kernel test robot
Date: Tue May 26 2026 - 23:23:24 EST
Hi Myeonghun,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on linus/master v7.1-rc5 next-20260526]
[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/Myeonghun-Pak/drm-meson-clean-up-KMS-polling-on-register-failure/20260525-000807
base: https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next
patch link: https://lore.kernel.org/r/20260524160657.17802-1-mhun512%40gmail.com
patch subject: [PATCH] drm/meson: clean up KMS polling on register failure
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20260527/202605271153.rpsbxgdB-lkp@xxxxxxxxx/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260527/202605271153.rpsbxgdB-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605271153.rpsbxgdB-lkp@xxxxxxxxx/
All warnings (new ones prefixed by >>):
drivers/gpu/drm/meson/meson_drv.c: In function 'meson_drv_bind_master':
>> drivers/gpu/drm/meson/meson_drv.c:363:1: warning: label 'uninstall_irq' defined but not used [-Wunused-label]
363 | uninstall_irq:
| ^~~~~~~~~~~~~
vim +/uninstall_irq +363 drivers/gpu/drm/meson/meson_drv.c
8976eeee8de05f Neil Armstrong 2020-04-28 180
8604889f83381c Neil Armstrong 2017-05-29 181 static int meson_drv_bind_master(struct device *dev, bool has_components)
bbbe775ec5b5da Neil Armstrong 2016-11-10 182 {
a41e82e6c4575b Neil Armstrong 2017-04-04 183 struct platform_device *pdev = to_platform_device(dev);
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 184 const struct meson_drm_match_data *match;
bbbe775ec5b5da Neil Armstrong 2016-11-10 185 struct meson_drm *priv;
bbbe775ec5b5da Neil Armstrong 2016-11-10 186 struct drm_device *drm;
bbbe775ec5b5da Neil Armstrong 2016-11-10 187 struct resource *res;
bbbe775ec5b5da Neil Armstrong 2016-11-10 188 void __iomem *regs;
8976eeee8de05f Neil Armstrong 2020-04-28 189 int ret, i;
bbbe775ec5b5da Neil Armstrong 2016-11-10 190
bbbe775ec5b5da Neil Armstrong 2016-11-10 191 /* Checks if an output connector is available */
bbbe775ec5b5da Neil Armstrong 2016-11-10 192 if (!meson_vpu_has_available_connectors(dev)) {
bbbe775ec5b5da Neil Armstrong 2016-11-10 193 dev_err(dev, "No output connector available\n");
bbbe775ec5b5da Neil Armstrong 2016-11-10 194 return -ENODEV;
bbbe775ec5b5da Neil Armstrong 2016-11-10 195 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 196
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 197 match = of_device_get_match_data(dev);
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 198 if (!match)
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 199 return -ENODEV;
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 200
bbbe775ec5b5da Neil Armstrong 2016-11-10 201 drm = drm_dev_alloc(&meson_driver, dev);
bbbe775ec5b5da Neil Armstrong 2016-11-10 202 if (IS_ERR(drm))
bbbe775ec5b5da Neil Armstrong 2016-11-10 203 return PTR_ERR(drm);
bbbe775ec5b5da Neil Armstrong 2016-11-10 204
bbbe775ec5b5da Neil Armstrong 2016-11-10 205 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
bbbe775ec5b5da Neil Armstrong 2016-11-10 206 if (!priv) {
bbbe775ec5b5da Neil Armstrong 2016-11-10 207 ret = -ENOMEM;
bbbe775ec5b5da Neil Armstrong 2016-11-10 208 goto free_drm;
bbbe775ec5b5da Neil Armstrong 2016-11-10 209 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 210 drm->dev_private = priv;
bbbe775ec5b5da Neil Armstrong 2016-11-10 211 priv->drm = drm;
bbbe775ec5b5da Neil Armstrong 2016-11-10 212 priv->dev = dev;
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 213 priv->compat = match->compat;
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 214 priv->afbcd.ops = match->afbcd_ops;
528a25d040bc21 Julien Masson 2019-08-22 215
d4cb82aa2e4bc0 Cai Huoqing 2021-08-31 216 regs = devm_platform_ioremap_resource_byname(pdev, "vpu");
2c18107b9d5897 Christophe JAILLET 2018-03-12 217 if (IS_ERR(regs)) {
2c18107b9d5897 Christophe JAILLET 2018-03-12 218 ret = PTR_ERR(regs);
2c18107b9d5897 Christophe JAILLET 2018-03-12 219 goto free_drm;
2c18107b9d5897 Christophe JAILLET 2018-03-12 220 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 221
bbbe775ec5b5da Neil Armstrong 2016-11-10 222 priv->io_base = regs;
bbbe775ec5b5da Neil Armstrong 2016-11-10 223
bbbe775ec5b5da Neil Armstrong 2016-11-10 224 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hhi");
01a9e9493fb3f6 Christophe JAILLET 2018-06-11 225 if (!res) {
01a9e9493fb3f6 Christophe JAILLET 2018-06-11 226 ret = -EINVAL;
01a9e9493fb3f6 Christophe JAILLET 2018-06-11 227 goto free_drm;
01a9e9493fb3f6 Christophe JAILLET 2018-06-11 228 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 229 /* Simply ioremap since it may be a shared register zone */
bbbe775ec5b5da Neil Armstrong 2016-11-10 230 regs = devm_ioremap(dev, res->start, resource_size(res));
2c18107b9d5897 Christophe JAILLET 2018-03-12 231 if (!regs) {
2c18107b9d5897 Christophe JAILLET 2018-03-12 232 ret = -EADDRNOTAVAIL;
2c18107b9d5897 Christophe JAILLET 2018-03-12 233 goto free_drm;
2c18107b9d5897 Christophe JAILLET 2018-03-12 234 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 235
bbbe775ec5b5da Neil Armstrong 2016-11-10 236 priv->hhi = devm_regmap_init_mmio(dev, regs,
bbbe775ec5b5da Neil Armstrong 2016-11-10 237 &meson_regmap_config);
bbbe775ec5b5da Neil Armstrong 2016-11-10 238 if (IS_ERR(priv->hhi)) {
bbbe775ec5b5da Neil Armstrong 2016-11-10 239 dev_err(&pdev->dev, "Couldn't create the HHI regmap\n");
2c18107b9d5897 Christophe JAILLET 2018-03-12 240 ret = PTR_ERR(priv->hhi);
2c18107b9d5897 Christophe JAILLET 2018-03-12 241 goto free_drm;
bbbe775ec5b5da Neil Armstrong 2016-11-10 242 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 243
66cae477c380d1 Maxime Jourdan 2018-11-05 244 priv->canvas = meson_canvas_get(dev);
2bf6b5b0e374fc Maxime Jourdan 2019-03-11 245 if (IS_ERR(priv->canvas)) {
2bf6b5b0e374fc Maxime Jourdan 2019-03-11 246 ret = PTR_ERR(priv->canvas);
2bf6b5b0e374fc Maxime Jourdan 2019-03-11 247 goto free_drm;
2bf6b5b0e374fc Maxime Jourdan 2019-03-11 248 }
2bf6b5b0e374fc Maxime Jourdan 2019-03-11 249
66cae477c380d1 Maxime Jourdan 2018-11-05 250 ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_osd1);
66cae477c380d1 Maxime Jourdan 2018-11-05 251 if (ret)
66cae477c380d1 Maxime Jourdan 2018-11-05 252 goto free_drm;
f9a2348196d1ab Neil Armstrong 2018-11-06 253 ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_vd1_0);
a695949b2e9bb6 Yao Zi 2024-07-03 254 if (ret)
a695949b2e9bb6 Yao Zi 2024-07-03 255 goto free_canvas_osd1;
f9a2348196d1ab Neil Armstrong 2018-11-06 256 ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_vd1_1);
a695949b2e9bb6 Yao Zi 2024-07-03 257 if (ret)
a695949b2e9bb6 Yao Zi 2024-07-03 258 goto free_canvas_vd1_0;
f9a2348196d1ab Neil Armstrong 2018-11-06 259 ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_vd1_2);
a695949b2e9bb6 Yao Zi 2024-07-03 260 if (ret)
a695949b2e9bb6 Yao Zi 2024-07-03 261 goto free_canvas_vd1_1;
bbbe775ec5b5da Neil Armstrong 2016-11-10 262
bbbe775ec5b5da Neil Armstrong 2016-11-10 263 priv->vsync_irq = platform_get_irq(pdev, 0);
bbbe775ec5b5da Neil Armstrong 2016-11-10 264
e770f6bf18182b Christophe JAILLET 2018-03-12 265 ret = drm_vblank_init(drm, 1);
e770f6bf18182b Christophe JAILLET 2018-03-12 266 if (ret)
a695949b2e9bb6 Yao Zi 2024-07-03 267 goto free_canvas_vd1_2;
e770f6bf18182b Christophe JAILLET 2018-03-12 268
8976eeee8de05f Neil Armstrong 2020-04-28 269 /* Assign limits per soc revision/package */
8976eeee8de05f Neil Armstrong 2020-04-28 270 for (i = 0 ; i < ARRAY_SIZE(meson_drm_soc_attrs) ; ++i) {
8976eeee8de05f Neil Armstrong 2020-04-28 271 if (soc_device_match(meson_drm_soc_attrs[i].attrs)) {
8976eeee8de05f Neil Armstrong 2020-04-28 272 priv->limits = &meson_drm_soc_attrs[i].limits;
8976eeee8de05f Neil Armstrong 2020-04-28 273 break;
8976eeee8de05f Neil Armstrong 2020-04-28 274 }
8976eeee8de05f Neil Armstrong 2020-04-28 275 }
8976eeee8de05f Neil Armstrong 2020-04-28 276
6848c291a54f8c Thomas Zimmermann 2021-04-12 277 /*
6848c291a54f8c Thomas Zimmermann 2021-04-12 278 * Remove early framebuffers (ie. simplefb). The framebuffer can be
6848c291a54f8c Thomas Zimmermann 2021-04-12 279 * located anywhere in RAM
6848c291a54f8c Thomas Zimmermann 2021-04-12 280 */
736db96696b623 Thomas Zimmermann 2024-09-30 281 ret = aperture_remove_all_conflicting_devices(meson_driver.name);
6848c291a54f8c Thomas Zimmermann 2021-04-12 282 if (ret)
a695949b2e9bb6 Yao Zi 2024-07-03 283 goto free_canvas_vd1_2;
e3de0aa6c9afdc Maxime Jourdan 2018-12-10 284
bd9ff7b521a647 Simona Vetter 2020-03-23 285 ret = drmm_mode_config_init(drm);
bd9ff7b521a647 Simona Vetter 2020-03-23 286 if (ret)
a695949b2e9bb6 Yao Zi 2024-07-03 287 goto free_canvas_vd1_2;
a41e82e6c4575b Neil Armstrong 2017-04-04 288 drm->mode_config.max_width = 3840;
a41e82e6c4575b Neil Armstrong 2017-04-04 289 drm->mode_config.max_height = 2160;
a41e82e6c4575b Neil Armstrong 2017-04-04 290 drm->mode_config.funcs = &meson_mode_config_funcs;
ce0210c1243303 Neil Armstrong 2019-01-14 291 drm->mode_config.helper_private = &meson_mode_config_helpers;
a41e82e6c4575b Neil Armstrong 2017-04-04 292
a41e82e6c4575b Neil Armstrong 2017-04-04 293 /* Hardware Initialization */
a41e82e6c4575b Neil Armstrong 2017-04-04 294
09762525d6eafb Neil Armstrong 2017-12-06 295 meson_vpu_init(priv);
a41e82e6c4575b Neil Armstrong 2017-04-04 296 meson_venc_init(priv);
a41e82e6c4575b Neil Armstrong 2017-04-04 297 meson_vpp_init(priv);
a41e82e6c4575b Neil Armstrong 2017-04-04 298 meson_viu_init(priv);
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 299 if (priv->afbcd.ops) {
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 300 ret = priv->afbcd.ops->init(priv);
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 301 if (ret)
a695949b2e9bb6 Yao Zi 2024-07-03 302 goto free_canvas_vd1_2;
d1b5e41e13a7e9 Neil Armstrong 2019-10-21 303 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 304
bbbe775ec5b5da Neil Armstrong 2016-11-10 305 /* Encoder Initialization */
bbbe775ec5b5da Neil Armstrong 2016-11-10 306
1a9e51bef89af0 Martin Blumenstingl 2024-02-18 307 ret = meson_encoder_cvbs_probe(priv);
bbbe775ec5b5da Neil Armstrong 2016-11-10 308 if (ret)
fa747d75f65d1b Martin Blumenstingl 2021-12-31 309 goto exit_afbcd;
bbbe775ec5b5da Neil Armstrong 2016-11-10 310
8604889f83381c Neil Armstrong 2017-05-29 311 if (has_components) {
6a044642988b5f Neil Armstrong 2023-05-30 312 ret = component_bind_all(dev, drm);
a41e82e6c4575b Neil Armstrong 2017-04-04 313 if (ret) {
a41e82e6c4575b Neil Armstrong 2017-04-04 314 dev_err(drm->dev, "Couldn't bind all components\n");
6a044642988b5f Neil Armstrong 2023-05-30 315 /* Do not try to unbind */
6a044642988b5f Neil Armstrong 2023-05-30 316 has_components = false;
fa747d75f65d1b Martin Blumenstingl 2021-12-31 317 goto exit_afbcd;
a41e82e6c4575b Neil Armstrong 2017-04-04 318 }
8604889f83381c Neil Armstrong 2017-05-29 319 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 320
1a9e51bef89af0 Martin Blumenstingl 2024-02-18 321 ret = meson_encoder_hdmi_probe(priv);
e67f6037ae1be3 Neil Armstrong 2021-10-20 322 if (ret)
6a044642988b5f Neil Armstrong 2023-05-30 323 goto exit_afbcd;
e67f6037ae1be3 Neil Armstrong 2021-10-20 324
42dcf15f901c82 Neil Armstrong 2023-05-30 325 if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
1a9e51bef89af0 Martin Blumenstingl 2024-02-18 326 ret = meson_encoder_dsi_probe(priv);
42dcf15f901c82 Neil Armstrong 2023-05-30 327 if (ret)
42dcf15f901c82 Neil Armstrong 2023-05-30 328 goto exit_afbcd;
42dcf15f901c82 Neil Armstrong 2023-05-30 329 }
42dcf15f901c82 Neil Armstrong 2023-05-30 330
bbbe775ec5b5da Neil Armstrong 2016-11-10 331 ret = meson_plane_create(priv);
bbbe775ec5b5da Neil Armstrong 2016-11-10 332 if (ret)
6a044642988b5f Neil Armstrong 2023-05-30 333 goto exit_afbcd;
bbbe775ec5b5da Neil Armstrong 2016-11-10 334
f9a2348196d1ab Neil Armstrong 2018-11-06 335 ret = meson_overlay_create(priv);
f9a2348196d1ab Neil Armstrong 2018-11-06 336 if (ret)
6a044642988b5f Neil Armstrong 2023-05-30 337 goto exit_afbcd;
f9a2348196d1ab Neil Armstrong 2018-11-06 338
bbbe775ec5b5da Neil Armstrong 2016-11-10 339 ret = meson_crtc_create(priv);
bbbe775ec5b5da Neil Armstrong 2016-11-10 340 if (ret)
6a044642988b5f Neil Armstrong 2023-05-30 341 goto exit_afbcd;
bbbe775ec5b5da Neil Armstrong 2016-11-10 342
65a969655cb91f Thomas Zimmermann 2021-07-06 343 ret = request_irq(priv->vsync_irq, meson_irq, 0, drm->driver->name, drm);
bbbe775ec5b5da Neil Armstrong 2016-11-10 344 if (ret)
6a044642988b5f Neil Armstrong 2023-05-30 345 goto exit_afbcd;
bbbe775ec5b5da Neil Armstrong 2016-11-10 346
bbbe775ec5b5da Neil Armstrong 2016-11-10 347 drm_mode_config_reset(drm);
bbbe775ec5b5da Neil Armstrong 2016-11-10 348
bbbe775ec5b5da Neil Armstrong 2016-11-10 349 drm_kms_helper_poll_init(drm);
bbbe775ec5b5da Neil Armstrong 2016-11-10 350
bbbe775ec5b5da Neil Armstrong 2016-11-10 351 platform_set_drvdata(pdev, priv);
bbbe775ec5b5da Neil Armstrong 2016-11-10 352
bbbe775ec5b5da Neil Armstrong 2016-11-10 353 ret = drm_dev_register(drm, 0);
bbbe775ec5b5da Neil Armstrong 2016-11-10 354 if (ret)
e31803f51415af Myeonghun Pak 2026-05-25 355 goto uninstall_poll;
bbbe775ec5b5da Neil Armstrong 2016-11-10 356
57a03512c49a2e Thomas Zimmermann 2024-09-24 357 drm_client_setup(drm, NULL);
efbb9df91e03b3 Noralf Trønnes 2018-09-08 358
bbbe775ec5b5da Neil Armstrong 2016-11-10 359 return 0;
bbbe775ec5b5da Neil Armstrong 2016-11-10 360
e31803f51415af Myeonghun Pak 2026-05-25 361 uninstall_poll:
e31803f51415af Myeonghun Pak 2026-05-25 362 drm_kms_helper_poll_fini(drm);
2d8f92897ad816 Jean-Philippe Brucker 2019-03-22 @363 uninstall_irq:
65a969655cb91f Thomas Zimmermann 2021-07-06 364 free_irq(priv->vsync_irq, drm);
fa747d75f65d1b Martin Blumenstingl 2021-12-31 365 exit_afbcd:
fa747d75f65d1b Martin Blumenstingl 2021-12-31 366 if (priv->afbcd.ops)
fa747d75f65d1b Martin Blumenstingl 2021-12-31 367 priv->afbcd.ops->exit(priv);
a695949b2e9bb6 Yao Zi 2024-07-03 368 free_canvas_vd1_2:
a695949b2e9bb6 Yao Zi 2024-07-03 369 meson_canvas_free(priv->canvas, priv->canvas_id_vd1_2);
a695949b2e9bb6 Yao Zi 2024-07-03 370 free_canvas_vd1_1:
a695949b2e9bb6 Yao Zi 2024-07-03 371 meson_canvas_free(priv->canvas, priv->canvas_id_vd1_1);
a695949b2e9bb6 Yao Zi 2024-07-03 372 free_canvas_vd1_0:
a695949b2e9bb6 Yao Zi 2024-07-03 373 meson_canvas_free(priv->canvas, priv->canvas_id_vd1_0);
a695949b2e9bb6 Yao Zi 2024-07-03 374 free_canvas_osd1:
a695949b2e9bb6 Yao Zi 2024-07-03 375 meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
bbbe775ec5b5da Neil Armstrong 2016-11-10 376 free_drm:
dcacf65139e3de Christophe JAILLET 2018-03-12 377 drm_dev_put(drm);
bbbe775ec5b5da Neil Armstrong 2016-11-10 378
42dcf15f901c82 Neil Armstrong 2023-05-30 379 meson_encoder_dsi_remove(priv);
6a044642988b5f Neil Armstrong 2023-05-30 380 meson_encoder_hdmi_remove(priv);
6a044642988b5f Neil Armstrong 2023-05-30 381 meson_encoder_cvbs_remove(priv);
6a044642988b5f Neil Armstrong 2023-05-30 382
6a044642988b5f Neil Armstrong 2023-05-30 383 if (has_components)
6a044642988b5f Neil Armstrong 2023-05-30 384 component_unbind_all(dev, drm);
6a044642988b5f Neil Armstrong 2023-05-30 385
bbbe775ec5b5da Neil Armstrong 2016-11-10 386 return ret;
bbbe775ec5b5da Neil Armstrong 2016-11-10 387 }
bbbe775ec5b5da Neil Armstrong 2016-11-10 388
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki