...
This article provides a summary of the important features and bug fixes implemented in the Linux vmwgfx driver contributed to the upstream Linux kernel. Linux distro releases are expected to include all of the changes described below through the specific version of kernel that the distro release is based. The OS vendor or community may also have back ported a subset of changes from newer linux kernels to their releases. Please contact the OS vendor or community for availability of specific patches that have been back ported from newer kernel versions.
Changes implemented by Linux kernel versions: 5.14 34bd46bcf3de drm/vmwgfx: Fix a bad merge in otable batch takedownc26d6586e97a drm/vmwgfx: Fix implicit declaration errord3fae3b3daac dma-buf: drop the _rcu postfix on function names v36edbd6abb783 dma-buf: rename and cleanup dma_resv_get_excl v3cb1c81467af3 drm/ttm: flip the switch for driver allocated resources v2d3bcb4b02fe9 drm/vmwgfx: switch the TTM backends to self allocbfa3357ef9ab drm/ttm: allocate resource object instead of embedding it v2d3116756a710 drm/ttm: rename bo->mem and make it a pointercbc5caf778ba drm/vmwgfx: Inline vmw_verify_access()e65d096f8bd8 drm/vmwgfx: Inline ttm_bo_mmap() into vmwgfx driver527a9471878e drm/vmwgfx: Fix return value check in vmw_setup_pci_resources()2f70cbf79e3f drm/vmwgfx: Fix memory allocation check and a leak of object fifo523375c943e5 drm/vmwgfx: Port vmwgfx to arm642cd80dbd3551 drm/vmwgfx: Add basic support for SVGA38211783f16ea drm/vmwgfx: Remove the reservation semaphore88509f698c4e drm/vmwgfx: Fix cpu updates of coherent multisample surfaces75156a887b6c drm/vmwgfx: Mark a surface gpu-dirty after the SVGA3dCmdDXGenMips command2cc8bfeeb736 drm/vmwgfx: Fix incorrect enum usageaec70c39129d drm/vmwgfx: replace idr_init() by idr_init_base()cf63561cbae7 drm/vmwgfx: use min_t to replace mined2684e7051a gpu: drm: vmwgfx: convert comma to semicolonae57b2190fd8 drm/vmwgfx/vmwgfx_validation: Use flexible-array member instead of zero-length array82cc3b070350 drm/vmwgfx: Fix a typo5dbf2fc587cb drm/vmwgfx: Make console emulation depend on DRM_FBDEV_EMULATIONc777dc9e7933 drm/ttm: move the page_alignment into the BO v2d02117f8efaa drm/ttm: remove special handling for non GEM drivers13ea9aa1e7d8 drm/ttm: fix error handling if no BO can be swapped out v46848c291a54f drm/aperture: Convert drivers to aperture interfaces 5.15 90e7a6de6278 lib/scatterlist: Provide a dedicated function to support table append5f50b7659da6 drm/vmwgfx: Replace "vmw_num_pages" with "PFN_UP"bc65754ca614 drm/vmwgfx: Make use of PFN_ALIGN/PFN_UP helper macro2bc5da528dd5 drm/vmwgfx: fix potential UAF in vmwgfx_surface.c1cb48cf3b1da drm/vmwgfx: Use list_move_tail instead of list_del/list_add_tail in vmwgfx_cmdbuf_res.caa841a99f240 drm/vmwgfx: Use list_move_tail instead of list_del/list_add_tail in vmwgfx_cmdbuf.cd7bd351faabe drm/vmwgfx: Remove the repeated declarationc29758cdc78a drm/vmwgfx: Use 2.19 version number to recognize mks-stats ioctlscfdc3458db8a drm/vmwgfx: Be a lot more flexible with MOB limits2b273544f580 drm/vmwgfx: Cleanup loggingf1f3e37535a0 drm/vmwgfx: Switch to using DRM_IOCTL_DEF_DRVb0fee7df43cf drm/vmwgfx: Convert to Linux IRQ interfaces97c9bfe3f660 drm/aperture: Pass DRM driver structure instead of driver nameaa3d18a344a1 drm/vmwgfx: Don't set struct drm_device.irq_enabled9f808288ba88 drm/vmwgfx: Fix build issues in mksGuestStats discovered by the kernel test robot46e4e5ffbc2a drm/vmwgfx: Fix a bad merge in otable batch takedownc2aaa37dc18f drm/vmwgfx: Fix a 64bit regression on svga3ebc9ac7c3dfe drm/vmwgfx: Update device headers352a81b71ea0 drm/vmwgfx: Fix implicit declaration errorbaee602e5c0d drm/vmwgfx: Remove vmw_chipsetb7d0949f6ce6 drm/vmwgfx: Refactor vmw_mksstat_remove_ioctl to expect pgid match with vmw_mksstat_add_ioctl to authorise removal.8d9a8d9bd503 drm/vmwgfx: inline access to the pages from the piterf674a218c610 drm/vmwgfx: remove code that was using physical page addresses74231041d140 drm/vmwgfx: Fix some static checker warningsa12be0277316 drm/vmwgfx: Fix subresource updates with new contexts7a7a933edd6c drm/vmwgfx: Introduce VMware mks-guest-statsd92223ead97c drm/vmwgfx: Simplify devcaps code 5.16 0d979509539e drm/ttm: remove ttm_bo_vm_insert_huge()16b0314aa746 dma-buf: move dma-buf symbols into the DMA_BUF module namespacef8e7bce3a661 drm: Remove redundant 'flush_workqueue()' callse7b481857bca Revert "drm/vmwgfx: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()"e9d1d2bb75b2 treewide: Replace the use of mem_encrypt_active() with cc_platform_has()6b92e77156c5 drm/vmwgfx: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()98cca519df6d drm/ttm: cleanup ttm_resource_compatd5f45d1e2f08 drm/ttm: remove ttm_tt_destroy_common v2e54163e9184e drm/vmwgfx: unbind in vmw_ttm_unpopulate 5.17 a0f90c881570 drm/vmwgfx: Fix stale file descriptors on failed usercopy58fa0d90edde drm/vmwgfx: Fix possible usage of an uninitialized variable50ca8cc7c0fd drm/vmwgfx: Remove unused compile optionsbc701a28c74e drm/vmwgfx: Remove explicit transparent hugepages support4e07d71c0d66 drm/vmwgfx: Fix a size_t/long int format specifier mismatch94eb7de6f4be drm/vmwgfx: Bump the minor version9ca476acd5e8 drm/vmwgfx: Remove usage of MOBFMT_RANGEbf625870b830 drm/vmwgfx: add support for updating only offsets of constant buffersabaad3d95b51 drm/vmwgfx: Allow checking for gl43 contexts4fb9326b96cb drm/vmwgfx: support 64 UAVs853369df34fb drm/vmwgfx: support SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 commandb05fa56425f5 drm/vmwgfx: Update device headers for GL4324df43d93d72 drm/vmwgfx: Implement create_handle on drm_framebuffer_funcs8afa13a0583f drm/vmwgfx: Implement DRIVER_GEM8ad0c3fd132b drm/vmwgfx: Stop hardcoding the PCI IDf4708c16a6d7 drm/vmwgfx: Add a debug callback to mobid resource manager8aadeb8ad874 drm/vmwgfx: Remove the dedicated memory accountinga85b1cb23091 drm/vmwgfx: Switch the internal BO's to ttm_bo_type_kernelf6be23264bba drm/vmwgfx: Introduce a new placement for MOB page tablesc451af78f301 drm/vmwgfx: Fail to initialize on broken configs28b5f3b6121b drm/vmwgfx: Release ttm memory if probe fails826c387d0152 drm/vmwgfx: Remove the deprecated lower mem limit2985c96485b7 drm/vmwgfx: Copy DRM hash-table code into driver6a2d2ddf2c34 drm: Move nomodeset kernel parameter to the DRM subsystem 5.18 21d1d192890c drm/vmwgfx: Disable command buffers on svga3 without gbobjects3059d9b9f6aa drm/vmwgfx: Initialize drm_mode_fb_cmd21d6595b4cd47 drm/vmwgfx: Fix fencing on SVGAv3298799a28264 drm/vmwgfx: Fix gem refcounting and memory evictions3f1a31ff8e3f drm/vmwgfx: remove vmw_wait_dma_fencedf8d1d0abd94 drm/vmwgfx: Replace module-init boiler-plate code with DRM helpers3f268ef06f8c drm/ttm: add back a reference to the bdev to the res managerde3688e469b0 drm/ttm: add ttm_resource_fini v260c9ecd705be drm/vmwgfx: Fix possible usage of an uninitialized variable11343099d5ae drm/vmwgfx: Remove unused compile options49d535d64d52 drm/vmwgfx: Remove explicit transparent hugepages support72345114c96b drm/vmwgfx: Fix a size_t/long int format specifier mismatch 5.19 e2d8b4289c93 fbdev: Use pageref offset for deferred-I/O writebacke80eec1b871a fbdev: Rename pagelist to pagereflist for deferred I/O56c134f7f1b5 fbdev: Track deferred-I/O pages in pageref struct590558510327 fbdev: Put mmap for deferred I/O into drivers544ccad73925 drm/vmwgfx: Reserve fence slots on buffer objects in cotablesaf4a25bbe5e7 drm/vmwgfx: Add debugfs entries for various ttm resource managers8bb31587820a drm/ttm: remove bo->movingb29895e18304 dma-buf: add DMA_RESV_USAGE_KERNEL v373511edf8b19 dma-buf: specify usage while adding fences to dma_resv obj v77bc80a5462c3 dma-buf: add enum dma_resv_usage v4c8d4c18bfbc4 dma-buf/drivers: make reserving a shared slot mandatory v4 2029a6d0281c drm/vmwgfx: stop using dma_resv_excl_fence v2e36764ecf87c drm/ttm: Add a parameter to add extra pages into ttm_tt6f6f9788d821 drm/vmwgfx: Disable command buffers on svga3 without gbobjects8bb75aeb58bd drm/vmwgfx: validate the screen formatsab709795e386 drm/vmwgfx: Fix mob cursor allocation race10a26e0d5fc3 drm/vmwgfx: Fix an invalid readb861de246912 drm/vmwgfx: Stop using surface dma commands on most configurations32160e6a98f3 drm/vmwgfx: Implement MSI/MSI-X support for IRQs5405d25b9e8e drm/vmwgfx: Initialize drm_mode_fb_cmd223b0e695d4ca drm/vmwgfx: Allow querying of the SVGA PCI id from the userspacec593197b6ece drm/vmwgfx: Fix fencing on SVGAv3af326e28380a drm/vmwgfx: Print capabilities early during the initializationbb30d8d8c1b0 drm/vmwgfx: Cleanup multimon initialization code485d98d472d5 drm/vmwgfx: Add support for CursorMob and CursorBypass 4 6.0 73289afe0361 drm: Remove linux/fb.h from drm_crtc.h207d2073c648 drm/vmwgfx: Stop using 'TRUE'720cf96d8fec drm: Drop drm_framebuffer.h from drm_crtc.h3507932390bb drm/ttm: move default BO destructor into VMWGFX v2 6.1 6e90293618ed drm/vmwgfx: Don't use screen objects when SEV is activeed14d225cc7c drm/vmwgfx: Fix race issue calling pin_user_pagesa40c7f61d12f drm/vmwgfx: Fix memory leak in vmw_mksstat_add_ioctl()a2224f2d458a drm/vmwgfx: remove unused vmw_bo_is_vmw_bo() declaration7fbee3eb9ab8 drm/vmwgfx: Remove unused hugepage support05436815fdb4 drm/vmwgfx: cleanup commentsffb6260be81f drm/vmwgfx: clean up some error pointer checking254e5e8829a9 drm: Remove unnecessary include statements of drm_plane_helper.hcce32e4e38c6 drm/atomic-helper: Remove _HELPER_ infix from DRM_PLANE_HELPER_NO_SCALING382fc1f68132 drm/atomic-helper: Move DRM_PLANE_HELPER_NO_SCALING to atomic helpers97216fefed6d drm/vmwgfx: Remove trailing whitespace347987a2cf0d drm/ttm: rename and cleanup ttm_bo_init 6.2 a2a04b515562 Merge tag 'drm-misc-fixes-2023-02-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixesa950b989ea29 drm/vmwgfx: Do not drop the reference to the handle too soon1a6897921f52 drm/vmwgfx: Stop accessing buffer objects which failed init262b42e02d1e treewide: fix up files incorrectly marked executablea309c7194e8a drm/vmwgfx: Remove rcu locks from user resourcesa594533df0f6 Merge tag 'drm-next-2022-12-13' of git://anongit.freedesktop.org/drm/drm8ab59da26bc0 drm/fb-helper: Move generic fbdev emulation into separate source fileda7ffb9660c9 drm/vmwgfx: Cleanup the cursor snooping code4cf949c7fafe drm/vmwgfx: Validate the box size for the snooped cursore3c92eb4a84f drm/ttm: rework on ttm_resource to use size_t type71bb70f87d63 drm/vmwgfx: Fix a sparse warning in kernel docs148e5f5529ac drm/vmwgfx: Optimize initial sizes of cotables4bb50606cba2 drm/vmwgfx: Add a mksstat counter for cotable resizes2e10cdc6e85d drm/vmwgfx: Remove explicit and broken vblank handlingdf42523c12f8 drm/vmwgfx: Port the framebuffer code to drm fb helpers1c8d537bbcc9 drm/vmwgfx: Do not allow invalid bpp's for dumb buffers9da30cdd6a31 drm/vmwgfx: Remove vmwgfx_hashtab76a9e07f270c drm/vmwgfx: Refactor ttm reference object hashtable to use linux/hashtable.bb6780aa5a1d drm/vmwgfx: Diff cursors when using cmds92f59ac41c88 drm/vmwgfx: Support cursor surfaces with mob cursor40f9e40b2049 drm/vmwgfx: Start diffing new mob cursors against old ones53bc3f6fb6b3 drm/vmwgfx: Clean up cursor mobs9e931f2e0970 drm/vmwgfx: Refactor resource validation hashtable to use linux/hashtable implementation.931e09d8d5b4 drm/vmwgfx: Remove ttm object hashtable43531dc661b7 drm/vmwgfx: Refactor resource manager's hashtable to use linux/hashtable implementation.3280706369f6 drm/vmwgfx: Fix frame-size warning in vmw_mksstat_add_ioctl7f4c33778686 drm/vmwgfx: Write the driver id registers 6.3 3822a7c40997 Merge tag 'mm-stable-2023-02-20-13-37' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mma5c95ca18a98 Merge tag 'drm-next-2023-02-23' of git://anongit.freedesktop.org/drm/drm1c71222e5f23 mm: replace vma->vm_flags direct modifications with modifier callsaebd8f0c6f82 Merge v6.2-rc6 into drm-nextb8f55f24bc82 Merge tag 'drm-misc-next-2023-01-19' of git://anongit.freedesktop.org/drm/drm-misc into drm-next0e18a6b49be2 Sync with v6.2-rc413acb368bf02 drm/ttm/vmwgfx: move ttm_bo_wait into VMWGFX03a0a1040895 Merge tag 'drm-misc-next-2023-01-03' of git://anongit.freedesktop.org/drm/drm-misc into drm-nextf422fa7cd858 Merge tag 'drm-misc-next-2022-11-24' of git://anongit.freedesktop.org/drm/drm-misc into drm-nexta3185f91d057 drm/ttm: merge ttm_bo_api.h and ttm_bo_driver.h v2