[PATCH v2 1/4] fbdev/efifb: Replace references to global screen_info by local pointer
Thomas Zimmermann
tzimmermann at suse.de
Wed Dec 6 08:32:40 UTC 2023
Hi
Am 06.12.23 um 01:19 schrieb kernel test robot:
> Hi Thomas,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on drm-misc/drm-misc-next]
> [also build test ERROR on linus/master v6.7-rc4 next-20231205]
> [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/Thomas-Zimmermann/fbdev-efifb-Replace-references-to-global-screen_info-by-local-pointer/20231204-173019
> base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
> patch link: https://lore.kernel.org/r/20231204092812.2612-2-tzimmermann%40suse.de
> patch subject: [PATCH v2 1/4] fbdev/efifb: Replace references to global screen_info by local pointer
> config: x86_64-randconfig-006-20231206 (https://download.01.org/0day-ci/archive/20231206/202312060820.0Kjx88on-lkp@intel.com/config)
> compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231206/202312060820.0Kjx88on-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/202312060820.0Kjx88on-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> drivers/video/fbdev/efifb.c: In function 'efifb_probe':
>>> drivers/video/fbdev/efifb.c:511:2: error: too few arguments to function 'efifb_show_boot_graphics'
> efifb_show_boot_graphics(info);
> ^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/video/fbdev/efifb.c:150:13: note: declared here
> static void efifb_show_boot_graphics(struct fb_info *info, struct screen_info *si)
> ^~~~~~~~~~~~~~~~~~~~~~~~
I had deferred takeover disabled, so I didn't notice. Will be fixed
before merging the patchset.
Best regards
Thomas
>
>
> vim +/efifb_show_boot_graphics +511 drivers/video/fbdev/efifb.c
>
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 358
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 359 static int efifb_probe(struct platform_device *dev)
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 360 {
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 361 struct screen_info *si = &screen_info;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 362 struct fb_info *info;
> 82dcb90b651bcb drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 363 struct efifb_par *par;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 364 int err, orientation;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 365 unsigned int size_vmode;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 366 unsigned int size_remap;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 367 unsigned int size_total;
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 368 char *option = NULL;
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 369 efi_memory_desc_t md;
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 370
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 371 if (si->orig_video_isVGA != VIDEO_TYPE_EFI || pci_dev_disabled)
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 372 return -ENODEV;
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 373
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 374 if (fb_get_options("efifb", &option))
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 375 return -ENODEV;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 376 efifb_setup(si, option);
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 377
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 378 /* We don't get linelength from UGA Draw Protocol, only from
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 379 * EFI Graphics Protocol. So if it's not in DMI, and it's not
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 380 * passed in from the user, we really can't use the framebuffer.
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 381 */
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 382 if (!si->lfb_linelength)
> e6816a8d855494 drivers/video/efifb.c David Rheinsberg 2013-08-02 383 return -ENODEV;
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 384
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 385 if (!si->lfb_depth)
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 386 si->lfb_depth = 32;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 387 if (!si->pages)
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 388 si->pages = 1;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 389 if (!fb_base_is_valid(si)) {
> 133bb070e94ab4 drivers/video/efifb.c Matthew Garrett 2009-04-13 390 printk(KERN_DEBUG "efifb: invalid framebuffer address\n");
> 133bb070e94ab4 drivers/video/efifb.c Matthew Garrett 2009-04-13 391 return -ENODEV;
> 133bb070e94ab4 drivers/video/efifb.c Matthew Garrett 2009-04-13 392 }
> 133bb070e94ab4 drivers/video/efifb.c Matthew Garrett 2009-04-13 393 printk(KERN_INFO "efifb: probing for efifb\n");
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 394
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 395 /* just assume they're all unset if any are */
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 396 if (!si->blue_size) {
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 397 si->blue_size = 8;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 398 si->blue_pos = 0;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 399 si->green_size = 8;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 400 si->green_pos = 8;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 401 si->red_size = 8;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 402 si->red_pos = 16;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 403 si->rsvd_size = 8;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 404 si->rsvd_pos = 24;
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 405 }
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 406
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 407 efifb_fix.smem_start = si->lfb_base;
> ae2ee627dc87a7 drivers/video/fbdev/efifb.c Matt Fleming 2015-08-25 408
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 409 if (si->capabilities & VIDEO_CAPABILITY_64BIT_BASE) {
> ae2ee627dc87a7 drivers/video/fbdev/efifb.c Matt Fleming 2015-08-25 410 u64 ext_lfb_base;
> ae2ee627dc87a7 drivers/video/fbdev/efifb.c Matt Fleming 2015-08-25 411
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 412 ext_lfb_base = (u64)(unsigned long)si->ext_lfb_base << 32;
> ae2ee627dc87a7 drivers/video/fbdev/efifb.c Matt Fleming 2015-08-25 413 efifb_fix.smem_start |= ext_lfb_base;
> ae2ee627dc87a7 drivers/video/fbdev/efifb.c Matt Fleming 2015-08-25 414 }
> ae2ee627dc87a7 drivers/video/fbdev/efifb.c Matt Fleming 2015-08-25 415
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 416 if (bar_resource &&
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 417 bar_resource->start + bar_offset != efifb_fix.smem_start) {
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 418 dev_info(&efifb_pci_dev->dev,
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 419 "BAR has moved, updating efifb address\n");
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 420 efifb_fix.smem_start = bar_resource->start + bar_offset;
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 421 }
> dcf8f5ce316565 drivers/video/fbdev/efifb.c Ard Biesheuvel 2017-08-18 422
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 423 efifb_defined.bits_per_pixel = si->lfb_depth;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 424 efifb_defined.xres = si->lfb_width;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 425 efifb_defined.yres = si->lfb_height;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 426 efifb_fix.line_length = si->lfb_linelength;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 427
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 428 /* size_vmode -- that is the amount of memory needed for the
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 429 * used video mode, i.e. the minimum amount of
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 430 * memory we need. */
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 431 size_vmode = efifb_defined.yres * efifb_fix.line_length;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 432
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 433 /* size_total -- all video memory we have. Used for
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 434 * entries, ressource allocation and bounds
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 435 * checking. */
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 436 size_total = si->lfb_size;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 437 if (size_total < size_vmode)
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 438 size_total = size_vmode;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 439
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 440 /* size_remap -- the amount of video memory we are going to
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 441 * use for efifb. With modern cards it is no
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 442 * option to simply use size_total as that
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 443 * wastes plenty of kernel address space. */
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 444 size_remap = size_vmode * 2;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 445 if (size_remap > size_total)
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 446 size_remap = size_total;
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 447 if (size_remap % PAGE_SIZE)
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 448 size_remap += PAGE_SIZE - (size_remap % PAGE_SIZE);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 449 efifb_fix.smem_len = size_remap;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 450
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 451 if (request_mem_region(efifb_fix.smem_start, size_remap, "efifb")) {
> da0241f12bf785 drivers/video/efifb.c Andy Lutomirski 2011-05-26 452 request_mem_succeeded = true;
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 453 } else {
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 454 /* We cannot make this fatal. Sometimes this comes from magic
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 455 spaces our resource handlers simply don't know about */
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 456 pr_warn("efifb: cannot reserve video memory at 0x%lx\n",
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 457 efifb_fix.smem_start);
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 458 }
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 459
> 82dcb90b651bcb drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 460 info = framebuffer_alloc(sizeof(*par), &dev->dev);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 461 if (!info) {
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 462 err = -ENOMEM;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 463 goto err_release_mem;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 464 }
> 65b4021ed67622 drivers/video/efifb.c David Rheinsberg 2014-01-23 465 platform_set_drvdata(dev, info);
> 82dcb90b651bcb drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 466 par = info->par;
> 82dcb90b651bcb drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 467 info->pseudo_palette = par->pseudo_palette;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 468
> 7191ec8015f363 drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 469 par->base = efifb_fix.smem_start;
> 7191ec8015f363 drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 470 par->size = size_remap;
> 4410f3910947dc drivers/video/efifb.c Dave Airlie 2009-06-16 471
> 6163a985e50cb1 drivers/video/fbdev/efifb.c Juergen Gross 2020-07-10 472 if (efi_enabled(EFI_MEMMAP) &&
> c2999c281ea2d2 drivers/video/fbdev/efifb.c Ard Biesheuvel 2019-03-28 473 !efi_mem_desc_lookup(efifb_fix.smem_start, &md)) {
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 474 if ((efifb_fix.smem_start + efifb_fix.smem_len) >
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 475 (md.phys_addr + (md.num_pages << EFI_PAGE_SHIFT))) {
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 476 pr_err("efifb: video memory @ 0x%lx spans multiple EFI memory regions\n",
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 477 efifb_fix.smem_start);
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 478 err = -EIO;
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 479 goto err_release_fb;
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 480 }
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 481 /*
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 482 * If the UEFI memory map covers the efifb region, we may only
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 483 * remap it using the attributes the memory map prescribes.
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 484 */
> f8585539df0a15 drivers/video/fbdev/efifb.c Ard Biesheuvel 2019-05-16 485 md.attribute &= EFI_MEMORY_UC | EFI_MEMORY_WC |
> f8585539df0a15 drivers/video/fbdev/efifb.c Ard Biesheuvel 2019-05-16 486 EFI_MEMORY_WT | EFI_MEMORY_WB;
> f8585539df0a15 drivers/video/fbdev/efifb.c Ard Biesheuvel 2019-05-16 487 if (md.attribute) {
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 488 mem_flags |= EFI_MEMORY_WT | EFI_MEMORY_WB;
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 489 mem_flags &= md.attribute;
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 490 }
> f8585539df0a15 drivers/video/fbdev/efifb.c Ard Biesheuvel 2019-05-16 491 }
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 492 if (mem_flags & EFI_MEMORY_WC)
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 493 info->screen_base = ioremap_wc(efifb_fix.smem_start,
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 494 efifb_fix.smem_len);
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 495 else if (mem_flags & EFI_MEMORY_UC)
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 496 info->screen_base = ioremap(efifb_fix.smem_start,
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 497 efifb_fix.smem_len);
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 498 else if (mem_flags & EFI_MEMORY_WT)
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 499 info->screen_base = memremap(efifb_fix.smem_start,
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 500 efifb_fix.smem_len, MEMREMAP_WT);
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 501 else if (mem_flags & EFI_MEMORY_WB)
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 502 info->screen_base = memremap(efifb_fix.smem_start,
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 503 efifb_fix.smem_len, MEMREMAP_WB);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 504 if (!info->screen_base) {
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 505 pr_err("efifb: abort, cannot remap video memory 0x%x @ 0x%lx\n",
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 506 efifb_fix.smem_len, efifb_fix.smem_start);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 507 err = -EIO;
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 508 goto err_release_fb;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 509 }
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 510
> 34db50e5565662 drivers/video/fbdev/efifb.c Hans de Goede 2018-07-03 @511 efifb_show_boot_graphics(info);
> 34db50e5565662 drivers/video/fbdev/efifb.c Hans de Goede 2018-07-03 512
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 513 pr_info("efifb: framebuffer at 0x%lx, using %dk, total %dk\n",
> a53dd258279c1e drivers/video/fbdev/efifb.c Andy Lutomirski 2016-05-11 514 efifb_fix.smem_start, size_remap/1024, size_total/1024);
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 515 pr_info("efifb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 516 efifb_defined.xres, efifb_defined.yres,
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 517 efifb_defined.bits_per_pixel, efifb_fix.line_length,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 518 si->pages);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 519
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 520 efifb_defined.xres_virtual = efifb_defined.xres;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 521 efifb_defined.yres_virtual = efifb_fix.smem_len /
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 522 efifb_fix.line_length;
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 523 pr_info("efifb: scrolling: redraw\n");
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 524 efifb_defined.yres_virtual = efifb_defined.yres;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 525
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 526 /* some dummy values for timing to make fbset happy */
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 527 efifb_defined.pixclock = 10000000 / efifb_defined.xres *
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 528 1000 / efifb_defined.yres;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 529 efifb_defined.left_margin = (efifb_defined.xres / 8) & 0xf8;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 530 efifb_defined.hsync_len = (efifb_defined.xres / 8) & 0xf8;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 531
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 532 efifb_defined.red.offset = si->red_pos;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 533 efifb_defined.red.length = si->red_size;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 534 efifb_defined.green.offset = si->green_pos;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 535 efifb_defined.green.length = si->green_size;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 536 efifb_defined.blue.offset = si->blue_pos;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 537 efifb_defined.blue.length = si->blue_size;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 538 efifb_defined.transp.offset = si->rsvd_pos;
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 539 efifb_defined.transp.length = si->rsvd_size;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 540
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 541 pr_info("efifb: %s: "
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 542 "size=%d:%d:%d:%d, shift=%d:%d:%d:%d\n",
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 543 "Truecolor",
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 544 si->rsvd_size,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 545 si->red_size,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 546 si->green_size,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 547 si->blue_size,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 548 si->rsvd_pos,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 549 si->red_pos,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 550 si->green_pos,
> c1c324fc4ecca7 drivers/video/fbdev/efifb.c Thomas Zimmermann 2023-12-04 551 si->blue_pos);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 552
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 553 efifb_fix.ypanstep = 0;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 554 efifb_fix.ywrapstep = 0;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 555
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 556 info->fbops = &efifb_ops;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 557 info->var = efifb_defined;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 558 info->fix = efifb_fix;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 559
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 560 orientation = drm_get_panel_orientation_quirk(efifb_defined.xres,
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 561 efifb_defined.yres);
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 562 switch (orientation) {
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 563 default:
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 564 info->fbcon_rotate_hint = FB_ROTATE_UR;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 565 break;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 566 case DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP:
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 567 info->fbcon_rotate_hint = FB_ROTATE_UD;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 568 break;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 569 case DRM_MODE_PANEL_ORIENTATION_LEFT_UP:
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 570 info->fbcon_rotate_hint = FB_ROTATE_CCW;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 571 break;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 572 case DRM_MODE_PANEL_ORIENTATION_RIGHT_UP:
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 573 info->fbcon_rotate_hint = FB_ROTATE_CW;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 574 break;
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 575 }
> 028b186f4489dc drivers/video/fbdev/efifb.c Hans de Goede 2017-11-25 576
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 577 err = sysfs_create_groups(&dev->dev.kobj, efifb_groups);
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 578 if (err) {
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 579 pr_err("efifb: cannot add sysfs attrs\n");
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 580 goto err_unmap;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 581 }
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 582 err = fb_alloc_cmap(&info->cmap, 256, 0);
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 583 if (err < 0) {
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 584 pr_err("efifb: cannot allocate colormap\n");
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 585 goto err_groups;
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 586 }
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 587
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 588 if (efifb_pci_dev)
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 589 WARN_ON(pm_runtime_get_sync(&efifb_pci_dev->dev) < 0);
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 590
> 7191ec8015f363 drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 591 err = devm_aperture_acquire_for_platform_device(dev, par->base, par->size);
> 7191ec8015f363 drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 592 if (err) {
> 7191ec8015f363 drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 593 pr_err("efifb: cannot acquire aperture\n");
> 7191ec8015f363 drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 594 goto err_put_rpm_ref;
> 7191ec8015f363 drivers/video/fbdev/efifb.c Thomas Zimmermann 2022-12-19 595 }
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 596 err = register_framebuffer(info);
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 597 if (err < 0) {
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 598 pr_err("efifb: cannot register framebuffer\n");
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 599 goto err_put_rpm_ref;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 600 }
> 31b6780c15a4e3 drivers/video/efifb.c Joe Perches 2013-09-19 601 fb_info(info, "%s frame buffer device\n", info->fix.id);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 602 return 0;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 603
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 604 err_put_rpm_ref:
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 605 if (efifb_pci_dev)
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 606 pm_runtime_put(&efifb_pci_dev->dev);
> 55285e21f04517 drivers/video/fbdev/efifb.c Imre Deak 2021-08-09 607
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 608 fb_dealloc_cmap(&info->cmap);
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 609 err_groups:
> 753375a881caa0 drivers/video/fbdev/efifb.c Peter Jones 2016-10-18 610 sysfs_remove_groups(&dev->dev.kobj, efifb_groups);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 611 err_unmap:
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 612 if (mem_flags & (EFI_MEMORY_UC | EFI_MEMORY_WC))
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 613 iounmap(info->screen_base);
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 614 else
> 38ac0287b7f4f3 drivers/video/fbdev/efifb.c Ard Biesheuvel 2018-07-11 615 memunmap(info->screen_base);
> 7c08c9ae0c1458 drivers/video/efifb.c Peter Jones 2008-10-15 616 err_release_fb:
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 617 framebuffer_release(info);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 618 err_release_mem:
> da0241f12bf785 drivers/video/efifb.c Andy Lutomirski 2011-05-26 619 if (request_mem_succeeded)
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 620 release_mem_region(efifb_fix.smem_start, size_total);
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 621 return err;
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 622 }
> 7c83172b98e569 drivers/video/efifb.c Huang, Ying 2007-11-28 623
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20231206/da78218d/attachment-0001.sig>
More information about the dri-devel
mailing list