linux/drivers/gpu/drm/vmwgfx
Sinclair Yeh 7c20d213dd drm/vmwgfx: Work around mode set failure in 2D VMs
In a low-memory 2D VM, fbdev can take up a large percentage of
available memory, making them unavailable for other DRM clients.

Since we do not take fbdev into account when filtering modes,
we end up claiming to support more modes than we actually do.

As a result, users get a black screen when setting a mode too
large for current available memory.  In a low-memory VM
configuration, users can get a black screen for a mode as low
as 1024x768.

The current mode filtering mechanism keys off of
SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB, i.e. the maximum amount
of surface memory we have.  Since this value is a performance
suggestion, not a hard limit, and since there should not be much
of a performance impact for a 2D VM, rather than filtering out
more modes, we will just allow ourselves to exceed the SVGA's
performance suggestion.

Also changed assumed bpp to 32 from 16 to make sure we can
actually support all the modes listed.

Signed-off-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Cc: <stable@vger.kernel.org>
2016-07-01 10:47:48 -07:00
..
device_include drm/vmwgfx: remove userland definition of DIV_ROUND_UP 2016-03-04 16:10:36 -05:00
Kconfig drm/vmwgfx: Only build on X86 2015-09-17 02:13:42 -07:00
Makefile drm/vmwgfx: Report vmwgfx version to vmware.log 2016-05-20 17:40:07 +02:00
vmwgfx_binding.c drm/vmwgfx: Initial DX support 2015-08-12 10:06:32 -07:00
vmwgfx_binding.h drm/vmwgfx: Initial DX support 2015-08-12 10:06:32 -07:00
vmwgfx_buffer.c drm/ttm: implement LRU add callbacks v2 2016-05-04 20:21:38 -04:00
vmwgfx_cmdbuf_res.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_cmdbuf.c drm/vmwgfx: Fix an incorrect lock check 2016-01-14 07:56:44 +10:00
vmwgfx_context.c Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next 2015-08-17 16:03:48 +10:00
vmwgfx_cotable.c drm/ttm: remove lazy parameter from ttm_bo_wait 2016-05-04 20:21:26 -04:00
vmwgfx_dmabuf.c drm/ttm: remove use_ticket parameter from ttm_bo_reserve 2016-05-04 20:21:21 -04:00
vmwgfx_drv.c drm/vmwgfx: Work around mode set failure in 2D VMs 2016-07-01 10:47:48 -07:00
vmwgfx_drv.h drm/vmwgfx: Report vmwgfx version to vmware.log 2016-05-20 17:40:07 +02:00
vmwgfx_execbuf.c drm/vmwgfx: use vmw_cmd_dx_cid_check for query commands. 2016-04-28 11:07:23 -07:00
vmwgfx_fb.c drm/vmwgfx: Fix order of operation 2016-04-28 11:07:30 -07:00
vmwgfx_fence.c drm/vmwgfx: Nuke preclose hook 2016-02-08 09:55:53 +01:00
vmwgfx_fence.h drm/vmwgfx: Nuke preclose hook 2016-02-08 09:55:53 +01:00
vmwgfx_fifo.c drm/vmwgfx: fix a warning message 2015-11-26 17:40:00 +01:00
vmwgfx_gmr.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_gmrid_manager.c drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
vmwgfx_ioctl.c drm/vmwgfx: Replace iowrite/ioread with volatile memory accesses 2015-11-02 00:16:05 -08:00
vmwgfx_irq.c drm/vmwgfx: Relax irq locking somewhat 2015-11-06 16:15:40 +01:00
vmwgfx_kms.c drm/vmwgfx: Work around mode set failure in 2D VMs 2016-07-01 10:47:48 -07:00
vmwgfx_kms.h drm/vmwgfx: Calculate the cursor position based on the crtc gui origin 2016-03-14 14:59:10 +01:00
vmwgfx_ldu.c drm/vmwgfx: Calculate the cursor position based on the crtc gui origin 2016-03-14 14:59:10 +01:00
vmwgfx_marker.c drm: vmwgfx: Use nsec based interfaces 2014-07-23 15:01:50 -07:00
vmwgfx_mob.c drm/ttm: remove use_ticket parameter from ttm_bo_reserve 2016-05-04 20:21:21 -04:00
vmwgfx_msg.c drm/vmwgfx: Add a check to handle host message failure 2016-07-01 10:47:47 -07:00
vmwgfx_msg.h drm/vmwgfx: Add VMWare host messaging capability 2016-05-20 17:12:33 +02:00
vmwgfx_overlay.c drm/vmwgfx: Fix up user_dmabuf refcounting 2015-09-14 01:13:11 -07:00
vmwgfx_prime.c drm/vmwgfx: Hook up the prime ioctls 2013-11-18 04:11:53 -08:00
vmwgfx_reg.h drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_resource_priv.h drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_resource.c drm/ttm: remove lazy parameter from ttm_bo_wait 2016-05-04 20:21:26 -04:00
vmwgfx_scrn.c drm/vmwgfx: Kill some lockdep warnings 2016-05-20 17:05:55 +02:00
vmwgfx_shader.c drm/ttm: remove use_ticket parameter from ttm_bo_reserve 2016-05-04 20:21:21 -04:00
vmwgfx_so.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_so.h drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_stdu.c drm/vmwgfx: Kill some lockdep warnings 2016-05-20 17:05:55 +02:00
vmwgfx_surface.c drm/vmwgfx: check kmalloc return value 2015-12-15 13:37:57 +01:00
vmwgfx_ttm_glue.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00