Re: drivers/video/fbdev/amifb.c:3637:22: sparse: sparse: cast truncates bits from constant value (2e90edd000 becomes 90edd000)

From: Philip Li
Date: Sun Dec 03 2023 - 05:54:06 EST


On Sun, Dec 03, 2023 at 03:32:43PM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 968f35f4ab1c0966ceb39af3c89f2e24afedf878
> commit: 1f2f01b122d7c78a9e842a126ef168afb279552b kbuild: add machine size to CHECKFLAGS
> date: 6 years ago
> config: m68k-randconfig-r131-20231129 (https://download.01.org/0day-ci/archive/20231203/202312031411.3OnOYJaj-lkp@xxxxxxxxx/config)
> compiler: m68k-linux-gcc (GCC) 13.2.0
> reproduce: (https://download.01.org/0day-ci/archive/20231203/202312031411.3OnOYJaj-lkp@xxxxxxxxx/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of

Kindly ignore this report, the identified commit is not the root cause
of the sparse warning. Sorry for the false report.

> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202312031411.3OnOYJaj-lkp@xxxxxxxxx/
>
> sparse warnings: (new ones prefixed by >>)
> drivers/video/fbdev/amifb.c:3375:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *dst @@ got char [noderef] <asn:2> *screen_base @@
> drivers/video/fbdev/amifb.c:3375:32: sparse: expected void *dst
> drivers/video/fbdev/amifb.c:3375:32: sparse: got char [noderef] <asn:2> *screen_base
> drivers/video/fbdev/amifb.c:3713:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] <asn:2> *screen_base @@ got char * @@
> drivers/video/fbdev/amifb.c:3713:35: sparse: expected char [noderef] <asn:2> *screen_base
> drivers/video/fbdev/amifb.c:3713:35: sparse: got char *
> drivers/video/fbdev/amifb.c:3755:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] <asn:2> *addr @@ got void * @@
> drivers/video/fbdev/amifb.c:3755:26: sparse: expected void [noderef] <asn:2> *addr
> drivers/video/fbdev/amifb.c:3755:26: sparse: got void *
> drivers/video/fbdev/amifb.c:3772:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] <asn:2> *addr @@ got void * @@
> drivers/video/fbdev/amifb.c:3772:26: sparse: expected void [noderef] <asn:2> *addr
> drivers/video/fbdev/amifb.c:3772:26: sparse: got void *
> >> drivers/video/fbdev/amifb.c:3637:22: sparse: sparse: cast truncates bits from constant value (2e90edd000 becomes 90edd000)
> drivers/video/fbdev/amifb.c: In function 'ami_decode_var':
> drivers/video/fbdev/amifb.c:1127:23: warning: variable 'vtotal' set but not used [-Wunused-but-set-variable]
> 1127 | u_int htotal, vtotal;
> | ^~~~~~
> drivers/video/fbdev/amifb.c:1127:15: warning: variable 'htotal' set but not used [-Wunused-but-set-variable]
> 1127 | u_int htotal, vtotal;
> | ^~~~~~
> drivers/video/fbdev/amifb.c: In function 'ami_get_var_cursorinfo':
> drivers/video/fbdev/amifb.c:1848:19: warning: variable 'alloc' set but not used [-Wunused-but-set-variable]
> 1848 | int size, alloc;
> | ^~~~~
> drivers/video/fbdev/amifb.c: In function 'amifb_pan_display':
> drivers/video/fbdev/amifb.c:2540:34: warning: comparison of unsigned expression in '< 0' is always false [-Wtype-limits]
> 2540 | if (var->yoffset < 0 ||
> | ^
> In file included from drivers/video/fbdev/amifb.c:43:
> drivers/video/fbdev/amifb.c: At top level:
> include/linux/module.h:132:13: warning: 'init_module' specifies less restrictive attribute than its target 'amifb_driver_init': 'cold' [-Wmissing-attributes]
> 132 | int init_module(void) __attribute__((alias(#initfn)));
> | ^~~~~~~~~~~
> include/linux/platform_device.h:251:1: note: in expansion of macro 'module_init'
> 251 | module_init(__platform_driver##_init); 36- | ^~~~~~~~~~~
> drivers/video/fbdev/amifb.c:3786:1: note: in expansion of macro 'module_platform_driver_probe'
> 3786 | module_platform_driver_probe(amifb_driver, amifb_probe);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from drivers/video/fbdev/amifb.c:53:
> drivers/video/fbdev/amifb.c:3786:30: note: 'init_module' target declared here
> 3786 | module_platform_driver_probe(amifb_driver, amifb_probe);
> | ^~~~~~~~~~~~
> include/linux/platform_device.h:246:19: note: in definition of macro 'module_platform_driver_probe'
> 246 | static int __init __platform_driver##_init(void) 46- | ^~~~~~~~~~~~~~~~~
> include/linux/module.h:138:14: warning: 'cleanup_module' specifies less restrictive attribute than its target 'amifb_driver_exit': 'cold' [-Wmissing-attributes]
> 138 | void cleanup_module(void) __attribute__((alias(#exitfn)));
> | ^~~~~~~~~~~~~~
> include/linux/platform_device.h:256:1: note: in expansion of macro 'module_exit'
> 256 | module_exit(__platform_driver##_exit);
> | ^~~~~~~~~~~
> drivers/video/fbdev/amifb.c:3786:1: note: in expansion of macro 'module_platform_driver_probe'
> 3786 | module_platform_driver_probe(amifb_driver, amifb_probe);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/video/fbdev/amifb.c:3786:30: note: 'cleanup_module' target declared here
> 3786 | module_platform_driver_probe(amifb_driver, amifb_probe);
> | ^~~~~~~~~~~~
> include/linux/platform_device.h:252:20: note: in definition of macro 'module_platform_driver_probe'
> 252 | static void __exit __platform_driver##_exit(void) 61- | ^~~~~~~~~~~~~~~~~
> drivers/video/fbdev/amifb.c:2344:19: warning: 'amifb_setup' defined but not used [-Wunused-function]
> 2344 | static int __init amifb_setup(char *options)
> | ^~~~~~~~~~~
>
> vim +3637 drivers/video/fbdev/amifb.c
>
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3619
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3620 default:
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3621 #ifdef CONFIG_FB_AMIGA_OCS
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3622 printk("Unknown graphics chipset, defaulting to OCS\n");
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3623 strcat(info->fix.id, "Unknown");
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3624 goto default_chipset;
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3625 #else /* CONFIG_FB_AMIGA_OCS */
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3626 err = -ENODEV;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3627 goto release;
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3628 #endif /* CONFIG_FB_AMIGA_OCS */
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3629 break;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3630 }
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3631
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3632 /*
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3633 * Calculate the Pixel Clock Values for this Machine
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3634 */
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3635
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3636 {
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 @3637 u_long tmp = DIVUL(200000000000ULL, amiga_eclock);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3638
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3639 pixclock[TAG_SHRES] = (tmp + 4) / 8; /* SHRES: 35 ns / 28 MHz */
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3640 pixclock[TAG_HIRES] = (tmp + 2) / 4; /* HIRES: 70 ns / 14 MHz */
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3641 pixclock[TAG_LORES] = (tmp + 1) / 2; /* LORES: 140 ns / 7 MHz */
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3642 }
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3643
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3644 /*
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3645 * Replace the Tag Values with the Real Pixel Clock Values
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3646 */
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3647
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3648 for (i = 0; i < NUM_TOTAL_MODES; i++) {
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3649 struct fb_videomode *mode = &ami_modedb[i];
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3650 tag = mode->pixclock;
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3651 if (tag == TAG_SHRES || tag == TAG_HIRES || tag == TAG_LORES) {
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3652 mode->pixclock = pixclock[tag];
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3653 }
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3654 }
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3655
> 03c740a04c8da4 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3656 if (amifb_hfmin) {
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3657 info->monspecs.hfmin = amifb_hfmin;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3658 info->monspecs.hfmax = amifb_hfmax;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3659 info->monspecs.vfmin = amifb_vfmin;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3660 info->monspecs.vfmax = amifb_vfmax;
> 03c740a04c8da4 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3661 } else {
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3662 /*
> 03c740a04c8da4 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3663 * These are for a typical Amiga monitor (e.g. A1960)
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3664 */
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3665 info->monspecs.hfmin = 15000;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3666 info->monspecs.hfmax = 38000;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3667 info->monspecs.vfmin = 49;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3668 info->monspecs.vfmax = 90;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3669 }
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3670
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3671 info->fbops = &amifb_ops;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3672 info->flags = FBINFO_DEFAULT;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3673 info->device = &pdev->dev;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3674
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3675 if (!fb_find_mode(&info->var, info, mode_option, ami_modedb,
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3676 NUM_TOTAL_MODES, &ami_modedb[defmode], 4)) {
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3677 err = -EINVAL;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3678 goto release;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3679 }
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3680
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3681 fb_videomode_to_modelist(ami_modedb, NUM_TOTAL_MODES,
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3682 &info->modelist);
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3683
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3684 round_down_bpp = 0;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3685 chipptr = chipalloc(info->fix.smem_len + SPRITEMEMSIZE +
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3686 DUMMYSPRITEMEMSIZE + COPINITSIZE +
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3687 4 * COPLISTSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3688 if (!chipptr) {
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3689 err = -ENOMEM;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3690 goto release;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3691 }
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3692
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3693 assignchunk(videomemory, u_long, chipptr, info->fix.smem_len);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3694 assignchunk(spritememory, u_long, chipptr, SPRITEMEMSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3695 assignchunk(dummysprite, u_short *, chipptr, DUMMYSPRITEMEMSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3696 assignchunk(copdisplay.init, copins *, chipptr, COPINITSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3697 assignchunk(copdisplay.list[0][0], copins *, chipptr, COPLISTSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3698 assignchunk(copdisplay.list[0][1], copins *, chipptr, COPLISTSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3699 assignchunk(copdisplay.list[1][0], copins *, chipptr, COPLISTSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3700 assignchunk(copdisplay.list[1][1], copins *, chipptr, COPLISTSIZE);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3701
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3702 /*
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3703 * access the videomem with writethrough cache
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3704 */
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3705 info->fix.smem_start = (u_long)ZTWO_PADDR(videomemory);
> c7c95f19f37976 drivers/video/fbdev/amifb.c Toshi Kani 2015-06-04 3706 videomemory = (u_long)ioremap_wt(info->fix.smem_start,
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3707 info->fix.smem_len);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3708 if (!videomemory) {
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3709 dev_warn(&pdev->dev,
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3710 "Unable to map videomem cached writethrough\n");
> 6112ea0862faca drivers/video/amifb.c Geert Uytterhoeven 2011-01-09 3711 info->screen_base = ZTWO_VADDR(info->fix.smem_start);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3712 } else
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 @3713 info->screen_base = (char *)videomemory;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3714
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3715 memset(dummysprite, 0, DUMMYSPRITEMEMSIZE);
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3716
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3717 /*
> af5761d6092903 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3718 * Make sure the Copper has something to do
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3719 */
> af5761d6092903 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3720 ami_init_copper();
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3721
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3722 /*
> af5761d6092903 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3723 * Enable Display DMA
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3724 */
> af5761d6092903 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3725 custom.dmacon = DMAF_SETCLR | DMAF_MASTER | DMAF_RASTER | DMAF_COPPER |
> af5761d6092903 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3726 DMAF_BLITTER | DMAF_SPRITE;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3727
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3728 err = request_irq(IRQ_AMIGA_COPPER, amifb_interrupt, 0,
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3729 "fb vertb handler", info->par);
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3730 if (err)
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3731 goto disable_dma;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3732
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3733 err = fb_alloc_cmap(&info->cmap, 1 << info->var.bits_per_pixel, 0);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3734 if (err)
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3735 goto free_irq;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3736
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3737 dev_set_drvdata(&pdev->dev, info);
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3738
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3739 err = register_framebuffer(info);
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3740 if (err)
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3741 goto unset_drvdata;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3742
> 31b6780c15a4e3 drivers/video/amifb.c Joe Perches 2013-09-19 3743 fb_info(info, "%s frame buffer device, using %dK of video memory\n",
> 31b6780c15a4e3 drivers/video/amifb.c Joe Perches 2013-09-19 3744 info->fix.id, info->fix.smem_len>>10);
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3745
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3746 return 0;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3747
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3748 unset_drvdata:
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3749 fb_dealloc_cmap(&info->cmap);
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3750 free_irq:
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3751 free_irq(IRQ_AMIGA_COPPER, info->par);
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3752 disable_dma:
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3753 custom.dmacon = DMAF_ALL | DMAF_MASTER;
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3754 if (videomemory)
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3755 iounmap((void *)videomemory);
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3756 chipfree();
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3757 release:
> 61640c295bbe8b drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3758 framebuffer_release(info);
> f1cbb17ac73993 drivers/video/amifb.c Geert Uytterhoeven 2011-11-21 3759 return err;
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3760 }
> ^1da177e4c3f41 drivers/video/amifb.c Linus Torvalds 2005-04-16 3761
>
> :::::: The code at line 3637 was first introduced by commit
> :::::: f1cbb17ac73993225402d7e40a0694c502570876 fbdev/amifb: Reorder functions to remove forward declarations
>
> :::::: TO: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> :::::: CC: Florian Tobias Schandinat <FlorianSchandinat@xxxxxx>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki