Comment 14 for bug 1851340

Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

Hello,
can you give the Ubuntu Focal kernel a try?

It looks like the following commit is the culprit in Eoan:
    94dc57b1 drm/mgag200: Rewrite cursor handling

As it doesn't exist in Disco, and the following commits state that they're the fix for it:
    a9c342ab drm/mgag200: Don't unpin the current cursor image's buffer.
    cf578c8c drm/mgag200: Set cursor scanout address to correct BO
    a0fd72d2 drm/mgag200: Pin displayed cursor BO to video memory

I assume Ubuntu Focal 20.04 works in this case, if not, we might need more commits from the upstream tree.

Thanks

Here is the git history for drivers/gpu/drm/mgag200/mgag200_cursor.c:
(Upstream tree here)
dfc507b9 drm/mgag200: Allocate cursor BOs at high end of video memory
2c51a660 drm/mgag200: Reserve video memory for cursor plane
378c1838 drm/mgag200: Move cursor BO swapping into mgag200_show_cursor()
047244aa drm/mgag200: Move cursor-image update to mgag200_show_cursor()
6ae04536 drm/mgag200: Add separate move-cursor function
49b8d5ae drm/mgag200: Add init and fini functions for cursor handling
52e32da9 drm/mgag200: Rename cursor functions to use mgag200_ prefix
dcc7b1f3 drm/mgag200: Use drm_gem_vram_{vmap, vunmap}() to map cursor source BO
(20.04 focal here)
a9c342ab drm/mgag200: Don't unpin the current cursor image's buffer.
cf578c8c drm/mgag200: Set cursor scanout address to correct BO
a0fd72d2 drm/mgag200: Pin displayed cursor BO to video memory
9f397801 drm/mgag200: drop use of drmP.h
e61576c4 drm/mgag200: add in missing { } around if block
(19.10 Eoan here)
52d2d44e Merge v5.2-rc5 into drm-next
94dc57b1 drm/mgag200: Rewrite cursor handling
c51669ea treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 377
cb1f8814 drm: Rename reserve/unreserve to lock/unlock in GEM VRAM helpers
82ff2fb5 drm: Add drm_gem_vram_{pin/unpin}_reserved() and convert mgag200
a7581343 drm/mgag200: Replace mapping code with drm_gem_vram_{kmap/kunmap}()
ebb04eb3 drm/mgag200: Convert mgag200 driver to |struct drm_gem_vram_object|
(19.04 Disco here)
c7ff96f8 drm/mgag200: switch to drm_*_get(), drm_*_put() helpers
a8ad0bd8 drm: Remove unused drm_device from drm_gem_object_lookup()
f6619ef7 drm/mgag200: fix kernel hang in cursor code.
bf89209a drm/mga200g: Hold a proper reference for cursor_set
53dac830 drm/mgag200: fix oops in cursor code.
a080db9f drm/mgag200: Hardware cursor support