[PATCH 2/2] fbdev/simplefb: Add support for generic power-domains
kernel test robot
lkp at intel.com
Thu Oct 12 12:04:17 UTC 2023
Hi Thierry,
kernel test robot noticed the following build errors:
[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on drm-tip/drm-tip linus/master v6.6-rc5 next-20231012]
[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/Thierry-Reding/fbdev-simplefb-Support-memory-region-property/20231011-223908
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link: https://lore.kernel.org/r/20231011143809.1108034-3-thierry.reding%40gmail.com
patch subject: [PATCH 2/2] fbdev/simplefb: Add support for generic power-domains
config: sparc64-randconfig-001-20231012 (https://download.01.org/0day-ci/archive/20231012/202310121911.nusbPhr5-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231012/202310121911.nusbPhr5-lkp@intel.com/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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310121911.nusbPhr5-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/video/fbdev/simplefb.c: In function 'simplefb_probe':
>> drivers/video/fbdev/simplefb.c:637:9: error: implicit declaration of function 'simplefb_detach_genpds'; did you mean 'simplefb_attach_genpd'? [-Werror=implicit-function-declaration]
637 | simplefb_detach_genpds(par);
| ^~~~~~~~~~~~~~~~~~~~~~
| simplefb_attach_genpd
cc1: some warnings being treated as errors
vim +637 drivers/video/fbdev/simplefb.c
517
518 static int simplefb_probe(struct platform_device *pdev)
519 {
520 int ret;
521 struct simplefb_params params;
522 struct fb_info *info;
523 struct simplefb_par *par;
524 struct resource *res, *mem;
525
526 if (fb_get_options("simplefb", NULL))
527 return -ENODEV;
528
529 ret = -ENODEV;
530 if (dev_get_platdata(&pdev->dev))
531 ret = simplefb_parse_pd(pdev, ¶ms);
532 else if (pdev->dev.of_node)
533 ret = simplefb_parse_dt(pdev, ¶ms);
534
535 if (ret)
536 return ret;
537
538 if (params.memory.start == 0 && params.memory.end == 0) {
539 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
540 if (!res) {
541 dev_err(&pdev->dev, "No memory resource\n");
542 return -EINVAL;
543 }
544 } else {
545 res = ¶ms.memory;
546 }
547
548 mem = request_mem_region(res->start, resource_size(res), "simplefb");
549 if (!mem) {
550 /*
551 * We cannot make this fatal. Sometimes this comes from magic
552 * spaces our resource handlers simply don't know about. Use
553 * the I/O-memory resource as-is and try to map that instead.
554 */
555 dev_warn(&pdev->dev, "simplefb: cannot reserve video memory at %pR\n", res);
556 mem = res;
557 }
558
559 info = framebuffer_alloc(sizeof(struct simplefb_par), &pdev->dev);
560 if (!info) {
561 ret = -ENOMEM;
562 goto error_release_mem_region;
563 }
564 platform_set_drvdata(pdev, info);
565
566 par = info->par;
567
568 info->fix = simplefb_fix;
569 info->fix.smem_start = mem->start;
570 info->fix.smem_len = resource_size(mem);
571 info->fix.line_length = params.stride;
572
573 info->var = simplefb_var;
574 info->var.xres = params.width;
575 info->var.yres = params.height;
576 info->var.xres_virtual = params.width;
577 info->var.yres_virtual = params.height;
578 info->var.bits_per_pixel = params.format->bits_per_pixel;
579 info->var.red = params.format->red;
580 info->var.green = params.format->green;
581 info->var.blue = params.format->blue;
582 info->var.transp = params.format->transp;
583
584 par->base = info->fix.smem_start;
585 par->size = info->fix.smem_len;
586
587 info->fbops = &simplefb_ops;
588 info->screen_base = ioremap_wc(info->fix.smem_start,
589 info->fix.smem_len);
590 if (!info->screen_base) {
591 ret = -ENOMEM;
592 goto error_fb_release;
593 }
594 info->pseudo_palette = par->palette;
595
596 ret = simplefb_clocks_get(par, pdev);
597 if (ret < 0)
598 goto error_unmap;
599
600 ret = simplefb_regulators_get(par, pdev);
601 if (ret < 0)
602 goto error_clocks;
603
604 ret = simplefb_attach_genpd(par, pdev);
605 if (ret < 0)
606 goto error_regulators;
607
608 simplefb_clocks_enable(par, pdev);
609 simplefb_regulators_enable(par, pdev);
610
611 dev_info(&pdev->dev, "framebuffer at 0x%lx, 0x%x bytes\n",
612 info->fix.smem_start, info->fix.smem_len);
613 dev_info(&pdev->dev, "format=%s, mode=%dx%dx%d, linelength=%d\n",
614 params.format->name,
615 info->var.xres, info->var.yres,
616 info->var.bits_per_pixel, info->fix.line_length);
617
618 if (mem != res)
619 par->mem = mem; /* release in clean-up handler */
620
621 ret = devm_aperture_acquire_for_platform_device(pdev, par->base, par->size);
622 if (ret) {
623 dev_err(&pdev->dev, "Unable to acquire aperture: %d\n", ret);
624 goto error_genpds;
625 }
626 ret = register_framebuffer(info);
627 if (ret < 0) {
628 dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
629 goto error_genpds;
630 }
631
632 dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);
633
634 return 0;
635
636 error_genpds:
> 637 simplefb_detach_genpds(par);
638 error_regulators:
639 simplefb_regulators_destroy(par);
640 error_clocks:
641 simplefb_clocks_destroy(par);
642 error_unmap:
643 iounmap(info->screen_base);
644 error_fb_release:
645 framebuffer_release(info);
646 error_release_mem_region:
647 if (mem != res)
648 release_mem_region(mem->start, resource_size(mem));
649 return ret;
650 }
651
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the dri-devel
mailing list