diff mbox

drm/virtio: fix building without CONFIG_FBDEV

Message ID 20160802100922.3914038-1-arnd@arndb.de (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann Aug. 2, 2016, 10:09 a.m. UTC
Removing the build-time dependency on DRM_KMS_FB_HELPER means
we can now build with CONFIG_FB disabled or as a loadable module,
leading to a link error:

ERROR: "remove_conflicting_framebuffers" [drivers/gpu/drm/virtio/virtio-gpu.ko] undefined!

There is no need to call remove_conflicting_framebuffers() if
CONFIG_FB is disabled, or if the virtio-gpu driver is built-in
and CONFIG_FB=m, as there won't be any prior consoles that
are registered at that point.

This adds a compile-time check in the driver to ensure we only
attempt to call that function if either CONFIG_FB=y or
both subsystems are configured as loadable modules.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 0b6320dfdfea ("drm/virtio: make fbdev support really optional")
---
 drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel Vetter Aug. 2, 2016, 1:58 p.m. UTC | #1
On Tue, Aug 02, 2016 at 12:09:15PM +0200, Arnd Bergmann wrote:
> Removing the build-time dependency on DRM_KMS_FB_HELPER means
> we can now build with CONFIG_FB disabled or as a loadable module,
> leading to a link error:
> 
> ERROR: "remove_conflicting_framebuffers" [drivers/gpu/drm/virtio/virtio-gpu.ko] undefined!
> 
> There is no need to call remove_conflicting_framebuffers() if
> CONFIG_FB is disabled, or if the virtio-gpu driver is built-in
> and CONFIG_FB=m, as there won't be any prior consoles that
> are registered at that point.
> 
> This adds a compile-time check in the driver to ensure we only
> attempt to call that function if either CONFIG_FB=y or
> both subsystems are configured as loadable modules.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 0b6320dfdfea ("drm/virtio: make fbdev support really optional")

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Dave, can you pls pick this one up directly?
-Daniel

> ---
>  drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c
> index 7f0e93f87a55..2087569ae8d7 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c
> @@ -65,7 +65,7 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev)
>  		DRM_INFO("pci: %s detected\n",
>  			 vga ? "virtio-vga" : "virtio-gpu-pci");
>  		dev->pdev = pdev;
> -		if (vga)
> +		if (IS_REACHABLE(CONFIG_FB) && vga)
>  			virtio_pci_kick_out_firmware_fb(pdev);
>  	}
>  
> -- 
> 2.9.0
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c
index 7f0e93f87a55..2087569ae8d7 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c
+++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c
@@ -65,7 +65,7 @@  int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev)
 		DRM_INFO("pci: %s detected\n",
 			 vga ? "virtio-vga" : "virtio-gpu-pci");
 		dev->pdev = pdev;
-		if (vga)
+		if (IS_REACHABLE(CONFIG_FB) && vga)
 			virtio_pci_kick_out_firmware_fb(pdev);
 	}