From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn --- drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM - depends on FB + select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
Hi Jani.
My CI report an randconfigs build failed. there are:
drm_fb_helper.c:(.text+0x302): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0xaea): undefined reference to `register_framebuffer' drm_fb_helper.c:(.text+0x1dcc): undefined reference to `framebuffer_alloc' ld: drm_fb_helper.c:(.text+0x1dea): undefined reference to `fb_alloc_cmap' ld: drm_fb_helper.c:(.text+0x1e2f): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1e5b): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1e85): undefined reference to `unregister_framebuffer' drm_fb_helper.c:(.text+0x1ee9): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1ef0): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1f96): undefined reference to `fb_deferred_io_cleanup' drm_fb_helper.c:(.text+0x203b): undefined reference to `fb_sys_read' drm_fb_helper.c:(.text+0x2051): undefined reference to `fb_sys_write' drm_fb_helper.c:(.text+0x208d): undefined reference to `sys_fillrect' drm_fb_helper.c:(.text+0x20bb): undefined reference to `sys_copyarea' drm_fb_helper.c:(.text+0x20e9): undefined reference to `sys_imageblit' drm_fb_helper.c:(.text+0x2117): undefined reference to `cfb_fillrect' drm_fb_helper.c:(.text+0x2172): undefined reference to `cfb_copyarea' drm_fb_helper.c:(.text+0x21cd): undefined reference to `cfb_imageblit' drm_fb_helper.c:(.text+0x2233): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x22b0): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x250f): undefined reference to `fb_deferred_io_init'
The main reason is because DRM_FBDEV_EMULATION is built-in, and CONFIG_FB is compiled as a module.
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
My CI report an randconfigs build failed. there are:
drm_fb_helper.c:(.text+0x302): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0xaea): undefined reference to `register_framebuffer' drm_fb_helper.c:(.text+0x1dcc): undefined reference to `framebuffer_alloc' ld: drm_fb_helper.c:(.text+0x1dea): undefined reference to `fb_alloc_cmap' ld: drm_fb_helper.c:(.text+0x1e2f): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1e5b): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1e85): undefined reference to `unregister_framebuffer' drm_fb_helper.c:(.text+0x1ee9): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1ef0): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1f96): undefined reference to `fb_deferred_io_cleanup' drm_fb_helper.c:(.text+0x203b): undefined reference to `fb_sys_read' drm_fb_helper.c:(.text+0x2051): undefined reference to `fb_sys_write' drm_fb_helper.c:(.text+0x208d): undefined reference to `sys_fillrect' drm_fb_helper.c:(.text+0x20bb): undefined reference to `sys_copyarea' drm_fb_helper.c:(.text+0x20e9): undefined reference to `sys_imageblit' drm_fb_helper.c:(.text+0x2117): undefined reference to `cfb_fillrect' drm_fb_helper.c:(.text+0x2172): undefined reference to `cfb_copyarea' drm_fb_helper.c:(.text+0x21cd): undefined reference to `cfb_imageblit' drm_fb_helper.c:(.text+0x2233): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x22b0): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x250f): undefined reference to `fb_deferred_io_init'
The main reason is because DRM_FBDEV_EMULATION is built-in, and CONFIG_FB is compiled as a module.
DRM_FBDEV_EMULATION is not a module, it's just a config knob. drm_fb_helper.ko is the module, enabled via DRM_KMS_HELPER, and it has an implicit dependency on FB, and DRM_FBDEV_EMULATION selects DRM_KMS_HELPER. Select just breaks dependencies in all kinds of ways.
This might help in config DRM_KMS_HELPER, and it might help the reader because it's factual:
depends on FB if DRM_FBDEV_EMULATION
BR, Jani.
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
Hi Jani.
Your suggestion is that?
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..ba179a539497 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -77,6 +77,7 @@ config DRM_DEBUG_SELFTEST config DRM_KMS_HELPER tristate depends on DRM + depends on FB if DRM_FBDEV_EMULATION help CRTC helpers for KMS drivers.
But it has a syntax error.
-- Thanks, BR, Jackie Liu
在 2021/8/16 下午4:33, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
My CI report an randconfigs build failed. there are:
drm_fb_helper.c:(.text+0x302): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0xaea): undefined reference to `register_framebuffer' drm_fb_helper.c:(.text+0x1dcc): undefined reference to `framebuffer_alloc' ld: drm_fb_helper.c:(.text+0x1dea): undefined reference to `fb_alloc_cmap' ld: drm_fb_helper.c:(.text+0x1e2f): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1e5b): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1e85): undefined reference to `unregister_framebuffer' drm_fb_helper.c:(.text+0x1ee9): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1ef0): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1f96): undefined reference to `fb_deferred_io_cleanup' drm_fb_helper.c:(.text+0x203b): undefined reference to `fb_sys_read' drm_fb_helper.c:(.text+0x2051): undefined reference to `fb_sys_write' drm_fb_helper.c:(.text+0x208d): undefined reference to `sys_fillrect' drm_fb_helper.c:(.text+0x20bb): undefined reference to `sys_copyarea' drm_fb_helper.c:(.text+0x20e9): undefined reference to `sys_imageblit' drm_fb_helper.c:(.text+0x2117): undefined reference to `cfb_fillrect' drm_fb_helper.c:(.text+0x2172): undefined reference to `cfb_copyarea' drm_fb_helper.c:(.text+0x21cd): undefined reference to `cfb_imageblit' drm_fb_helper.c:(.text+0x2233): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x22b0): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x250f): undefined reference to `fb_deferred_io_init'
The main reason is because DRM_FBDEV_EMULATION is built-in, and CONFIG_FB is compiled as a module.
DRM_FBDEV_EMULATION is not a module, it's just a config knob. drm_fb_helper.ko is the module, enabled via DRM_KMS_HELPER, and it has an implicit dependency on FB, and DRM_FBDEV_EMULATION selects DRM_KMS_HELPER. Select just breaks dependencies in all kinds of ways.
This might help in config DRM_KMS_HELPER, and it might help the reader because it's factual:
depends on FB if DRM_FBDEV_EMULATION
BR, Jani.
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
Your suggestion is that?
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..ba179a539497 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -77,6 +77,7 @@ config DRM_DEBUG_SELFTEST config DRM_KMS_HELPER tristate depends on DRM
depends on FB if DRM_FBDEV_EMULATION help CRTC helpers for KMS drivers.
But it has a syntax error.
Ah, try this then:
depends on FB || FB=n
-- Thanks, BR, Jackie Liu
在 2021/8/16 下午4:33, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
My CI report an randconfigs build failed. there are:
drm_fb_helper.c:(.text+0x302): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0xaea): undefined reference to `register_framebuffer' drm_fb_helper.c:(.text+0x1dcc): undefined reference to `framebuffer_alloc' ld: drm_fb_helper.c:(.text+0x1dea): undefined reference to `fb_alloc_cmap' ld: drm_fb_helper.c:(.text+0x1e2f): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1e5b): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1e85): undefined reference to `unregister_framebuffer' drm_fb_helper.c:(.text+0x1ee9): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1ef0): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1f96): undefined reference to `fb_deferred_io_cleanup' drm_fb_helper.c:(.text+0x203b): undefined reference to `fb_sys_read' drm_fb_helper.c:(.text+0x2051): undefined reference to `fb_sys_write' drm_fb_helper.c:(.text+0x208d): undefined reference to `sys_fillrect' drm_fb_helper.c:(.text+0x20bb): undefined reference to `sys_copyarea' drm_fb_helper.c:(.text+0x20e9): undefined reference to `sys_imageblit' drm_fb_helper.c:(.text+0x2117): undefined reference to `cfb_fillrect' drm_fb_helper.c:(.text+0x2172): undefined reference to `cfb_copyarea' drm_fb_helper.c:(.text+0x21cd): undefined reference to `cfb_imageblit' drm_fb_helper.c:(.text+0x2233): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x22b0): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x250f): undefined reference to `fb_deferred_io_init'
The main reason is because DRM_FBDEV_EMULATION is built-in, and CONFIG_FB is compiled as a module.
DRM_FBDEV_EMULATION is not a module, it's just a config knob. drm_fb_helper.ko is the module, enabled via DRM_KMS_HELPER, and it has an implicit dependency on FB, and DRM_FBDEV_EMULATION selects DRM_KMS_HELPER. Select just breaks dependencies in all kinds of ways.
This might help in config DRM_KMS_HELPER, and it might help the reader because it's factual:
depends on FB if DRM_FBDEV_EMULATION
BR, Jani.
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
On Mon, 16 Aug 2021, Jani Nikula jani.nikula@linux.intel.com wrote:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
Your suggestion is that?
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..ba179a539497 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -77,6 +77,7 @@ config DRM_DEBUG_SELFTEST config DRM_KMS_HELPER tristate depends on DRM
depends on FB if DRM_FBDEV_EMULATION help CRTC helpers for KMS drivers.
But it has a syntax error.
Ah, try this then:
depends on FB || FB=n
Or this monster:
depends on FB || DRM_FBDEV_EMULATION=n
-- Thanks, BR, Jackie Liu
在 2021/8/16 下午4:33, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
My CI report an randconfigs build failed. there are:
drm_fb_helper.c:(.text+0x302): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0xaea): undefined reference to `register_framebuffer' drm_fb_helper.c:(.text+0x1dcc): undefined reference to `framebuffer_alloc' ld: drm_fb_helper.c:(.text+0x1dea): undefined reference to `fb_alloc_cmap' ld: drm_fb_helper.c:(.text+0x1e2f): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1e5b): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1e85): undefined reference to `unregister_framebuffer' drm_fb_helper.c:(.text+0x1ee9): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1ef0): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1f96): undefined reference to `fb_deferred_io_cleanup' drm_fb_helper.c:(.text+0x203b): undefined reference to `fb_sys_read' drm_fb_helper.c:(.text+0x2051): undefined reference to `fb_sys_write' drm_fb_helper.c:(.text+0x208d): undefined reference to `sys_fillrect' drm_fb_helper.c:(.text+0x20bb): undefined reference to `sys_copyarea' drm_fb_helper.c:(.text+0x20e9): undefined reference to `sys_imageblit' drm_fb_helper.c:(.text+0x2117): undefined reference to `cfb_fillrect' drm_fb_helper.c:(.text+0x2172): undefined reference to `cfb_copyarea' drm_fb_helper.c:(.text+0x21cd): undefined reference to `cfb_imageblit' drm_fb_helper.c:(.text+0x2233): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x22b0): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x250f): undefined reference to `fb_deferred_io_init'
The main reason is because DRM_FBDEV_EMULATION is built-in, and CONFIG_FB is compiled as a module.
DRM_FBDEV_EMULATION is not a module, it's just a config knob. drm_fb_helper.ko is the module, enabled via DRM_KMS_HELPER, and it has an implicit dependency on FB, and DRM_FBDEV_EMULATION selects DRM_KMS_HELPER. Select just breaks dependencies in all kinds of ways.
This might help in config DRM_KMS_HELPER, and it might help the reader because it's factual:
depends on FB if DRM_FBDEV_EMULATION
BR, Jani.
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
在 2021/8/16 下午4:56, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jani Nikula jani.nikula@linux.intel.com wrote:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
Your suggestion is that?
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..ba179a539497 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -77,6 +77,7 @@ config DRM_DEBUG_SELFTEST config DRM_KMS_HELPER tristate depends on DRM
depends on FB if DRM_FBDEV_EMULATION help CRTC helpers for KMS drivers.
But it has a syntax error.
Ah, try this then:
depends on FB || FB=n
Or this monster:
depends on FB || DRM_FBDEV_EMULATION=n
Hi Jani,
depends on FB || DRM_FBDEV_EMULATION=n Will cause the following warnings.
WARNING: unmet direct dependencies detected for DRM_KMS_HELPER Depends on [m]: HAS_IOMEM [=y] && DRM [=y] && (FB [=m] || !DRM_FBDEV_EMULATION [=y]) Selected by [y]: - DRM_DEBUG_SELFTEST [=y] && HAS_IOMEM [=y] && DRM [=y] && DEBUG_KERNEL [=y] - DRM_VKMS [=y] && HAS_IOMEM [=y] && DRM [=y] - TINYDRM_ILI9341 [=y] && HAS_IOMEM [=y] && DRM [=y] && SPI [=y] - TINYDRM_MI0283QT [=y] && HAS_IOMEM [=y] && DRM [=y] && SPI [=y] - TINYDRM_ST7586 [=y] && HAS_IOMEM [=y] && DRM [=y] && SPI [=y] - TINYDRM_ST7735R [=y] && HAS_IOMEM [=y] && DRM [=y] && SPI [=y] - DRM_ANALOGIX_ANX78XX [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_BRIDGE [=y] Selected by [m]: - DRM_FBDEV_EMULATION [=y] && HAS_IOMEM [=y] && DRM [=y] && FB [=m] - DRM_SIMPLEDRM [=m] && HAS_IOMEM [=y] && DRM [=y] - TINYDRM_HX8357D [=m] && HAS_IOMEM [=y] && DRM [=y] && SPI [=y] - TINYDRM_REPAPER [=m] && HAS_IOMEM [=y] && DRM [=y] && SPI [=y] configuration written to .config
How about this?
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..797eeea9cbbe 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,8 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM - depends on FB - select DRM_KMS_HELPER + depends on (FB=y && DRM_KMS_HELPER) || (FB=m && DRM_KMS_HELPER=m) select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT
-- BR, Jackie Liu
-- Thanks, BR, Jackie Liu
在 2021/8/16 下午4:33, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
Hi Jani.
My CI report an randconfigs build failed. there are:
drm_fb_helper.c:(.text+0x302): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0xaea): undefined reference to `register_framebuffer' drm_fb_helper.c:(.text+0x1dcc): undefined reference to `framebuffer_alloc' ld: drm_fb_helper.c:(.text+0x1dea): undefined reference to `fb_alloc_cmap' ld: drm_fb_helper.c:(.text+0x1e2f): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1e5b): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1e85): undefined reference to `unregister_framebuffer' drm_fb_helper.c:(.text+0x1ee9): undefined reference to `fb_dealloc_cmap' ld: drm_fb_helper.c:(.text+0x1ef0): undefined reference to `framebuffer_release' drm_fb_helper.c:(.text+0x1f96): undefined reference to `fb_deferred_io_cleanup' drm_fb_helper.c:(.text+0x203b): undefined reference to `fb_sys_read' drm_fb_helper.c:(.text+0x2051): undefined reference to `fb_sys_write' drm_fb_helper.c:(.text+0x208d): undefined reference to `sys_fillrect' drm_fb_helper.c:(.text+0x20bb): undefined reference to `sys_copyarea' drm_fb_helper.c:(.text+0x20e9): undefined reference to `sys_imageblit' drm_fb_helper.c:(.text+0x2117): undefined reference to `cfb_fillrect' drm_fb_helper.c:(.text+0x2172): undefined reference to `cfb_copyarea' drm_fb_helper.c:(.text+0x21cd): undefined reference to `cfb_imageblit' drm_fb_helper.c:(.text+0x2233): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x22b0): undefined reference to `fb_set_suspend' drm_fb_helper.c:(.text+0x250f): undefined reference to `fb_deferred_io_init'
The main reason is because DRM_FBDEV_EMULATION is built-in, and CONFIG_FB is compiled as a module.
DRM_FBDEV_EMULATION is not a module, it's just a config knob. drm_fb_helper.ko is the module, enabled via DRM_KMS_HELPER, and it has an implicit dependency on FB, and DRM_FBDEV_EMULATION selects DRM_KMS_HELPER. Select just breaks dependencies in all kinds of ways.
This might help in config DRM_KMS_HELPER, and it might help the reader because it's factual:
depends on FB if DRM_FBDEV_EMULATION
BR, Jani.
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote: > From: Jackie Liu liuyun01@kylinos.cn > > When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the > compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
> > Reported-by: k2ci kernel-bot@kylinos.cn > Signed-off-by: Jackie Liu liuyun01@kylinos.cn > --- > drivers/gpu/drm/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index 7ff89690a976..346a518b5119 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS > config DRM_FBDEV_EMULATION > bool "Enable legacy fbdev support for your modesetting driver" > depends on DRM > - depends on FB > + select FB > select DRM_KMS_HELPER > select FB_CFB_FILLRECT > select FB_CFB_COPYAREA
After commit f611b1e7624c, we change select FB to depends on FB.
How about this:
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..cd129d96e649 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM - depends on FB + depends on FB && FB != m select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
After commit f611b1e7624c, we change select FB to depends on FB.
And obviously you should cite the commit in the original patch and Cc the author!
BR, Jani.
How about this:
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..cd129d96e649 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
depends on FB
depends on FB && FB != m select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
Hi, Jani.
Thanks, send V2 version immediately, and cc author.
-- Jackie Liu
在 2021/8/16 下午4:35, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
After commit f611b1e7624c, we change select FB to depends on FB.
And obviously you should cite the commit in the original patch and Cc the author!
BR, Jani.
How about this:
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..cd129d96e649 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
depends on FB
depends on FB && FB != m select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
-- Jackie Liu
在 2021/8/16 下午3:01, Jani Nikula 写道:
On Mon, 16 Aug 2021, Jackie Liu liu.yun@linux.dev wrote:
From: Jackie Liu liuyun01@kylinos.cn
When CONFIG_DRM_FBDEV_EMULATION is compiled to y and CONFIG_FB is m, the compilation will fail. we need make that dependency explicit.
What's the failure mode? Using select here is a bad idea.
BR, Jani.
Reported-by: k2ci kernel-bot@kylinos.cn Signed-off-by: Jackie Liu liuyun01@kylinos.cn
drivers/gpu/drm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..346a518b5119 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -98,7 +98,7 @@ config DRM_DEBUG_DP_MST_TOPOLOGY_REFS config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM
- depends on FB
- select FB select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA
dri-devel@lists.freedesktop.org