fbdev: simplefb: limit its use to DRM_SIMPLEDRM=n

Started by Randy Dunlap on Jul 19, 2021 · 3 messages from 2 authors · Last reply Jul 19, 2021

STALE1940d

open the first message on its own page

Message details and related content
When DRM_SIMPLEDRM=m, all of FB_CFB_{FILLRECT,COPYAREA,IMAGEBLIT} are =m,
causing undefined references in fbdev/simplefb.o.

By restricting FB_SIMPLEFB to be set only when DRM_SIMPLEDRM is not set,
the FB_CFB_* symbols are =y and the build completes without these
undefined references.

IOW, really "disable simplefb if simpledrm has been selected".

or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x2c): undefined reference to `cfb_fillrect'
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x30): undefined reference to `cfb_copyarea'
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x34): undefined reference to `cfb_imageblit'

Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: kernel test robot <redacted>
Cc: Hans de Goede <redacted>
Cc: <redacted>
Cc: <redacted>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/video/fbdev/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-next-20210716.orig/drivers/video/fbdev/Kconfig
+++ linux-next-20210716/drivers/video/fbdev/Kconfig
@@ -2192,7 +2192,7 @@ config FB_HYPERV
 
 config FB_SIMPLE
 	bool "Simple framebuffer support"
-	depends on (FB = y) && !DRM_SIMPLEDRM
+	depends on (FB = y) && DRM_SIMPLEDRM=n
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
Message details and related content
Hi Randy,

On Mon, Jul 19, 2021 at 4:34 AM Randy Dunlap [off-list ref] wrote:
When DRM_SIMPLEDRM=m, all of FB_CFB_{FILLRECT,COPYAREA,IMAGEBLIT} are =m,
Why does that happen?
FB_SIMPLE does select FB_CFB_*, so all of the latter should be builtin?
Do I need my morning coffee? I'm about to fetch it...
causing undefined references in fbdev/simplefb.o.

By restricting FB_SIMPLEFB to be set only when DRM_SIMPLEDRM is not set,
the FB_CFB_* symbols are =y and the build completes without these
undefined references.

IOW, really "disable simplefb if simpledrm has been selected".
That does make sense, regardless of my question above ;-)
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x2c): undefined reference to `cfb_fillrect'
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x30): undefined reference to `cfb_copyarea'
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x34): undefined reference to `cfb_imageblit'

Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
quoted hunk
--- linux-next-20210716.orig/drivers/video/fbdev/Kconfig
+++ linux-next-20210716/drivers/video/fbdev/Kconfig
@@ -2192,7 +2192,7 @@ config FB_HYPERV

 config FB_SIMPLE
        bool "Simple framebuffer support"
-       depends on (FB = y) && !DRM_SIMPLEDRM
+       depends on (FB = y) && DRM_SIMPLEDRM=n
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Message details and related content
On 7/19/21 1:06 AM, Geert Uytterhoeven wrote:
Hi Randy,

On Mon, Jul 19, 2021 at 4:34 AM Randy Dunlap [off-list ref] wrote:
quoted
When DRM_SIMPLEDRM=m, all of FB_CFB_{FILLRECT,COPYAREA,IMAGEBLIT} are =m,
Why does that happen?
FB_SIMPLE does select FB_CFB_*, so all of the latter should be builtin?
Do I need my morning coffee? I'm about to fetch it...
Hi Geert,

I have no idea why this happens. It feels like a kconfig bug to me.
quoted
causing undefined references in fbdev/simplefb.o.

By restricting FB_SIMPLEFB to be set only when DRM_SIMPLEDRM is not set,
the FB_CFB_* symbols are =y and the build completes without these
undefined references.

IOW, really "disable simplefb if simpledrm has been selected".
That does make sense, regardless of my question above ;-)
quoted
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x2c): undefined reference to `cfb_fillrect'
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x30): undefined reference to `cfb_copyarea'
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x34): undefined reference to `cfb_imageblit'

Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
quoted
--- linux-next-20210716.orig/drivers/video/fbdev/Kconfig
+++ linux-next-20210716/drivers/video/fbdev/Kconfig
@@ -2192,7 +2192,7 @@ config FB_HYPERV

 config FB_SIMPLE
        bool "Simple framebuffer support"
-       depends on (FB = y) && !DRM_SIMPLEDRM
+       depends on (FB = y) && DRM_SIMPLEDRM=n
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
Gr{oetje,eeting}s,

                        Geert

-- 
~Randy
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help