aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Gomez <daniel@qtec.com>2022-09-29 18:14:36 +0200
committerKhem Raj <raj.khem@gmail.com>2022-09-29 16:15:57 -0700
commit1e4be4c8078c1c93b5cf134e6b661899e02b8490 (patch)
treed53d50d6b2d8b93e87742567e92c92066d15894b
parent39c40a361a60bcf9d985a886fd946ffe6e0eae5b (diff)
downloadmeta-openembedded-1e4be4c8078c1c93b5cf134e6b661899e02b8490.tar.gz
xf86-video-ati: Update 19.1.0 -> 19.1.0+7a6a34af
The ATI/AMD Radeon video driver for the Xorg X server - Switch to git in SRC_URI This video driver hasn't released any package in the last 2+ years. Switch recipe to use git instead of release tarball to get the latest version of it. - Drop patches already upstreamed. - Add PACKAGECONFIG support: udev and glamor. - Add mesa driver runtime dependencies and libegl as glamor runtime dependency. - Add ${PN}-config package. - Fix mesa RDEPENDS. The radeonsi, r600, r300 and swrast are part of the mesa-megadriver package. Error: The following packages have unmet dependencies: xf86-video-amdgpu : Depends: mesa-driver-radeon but it is not installable xf86-video-ati : Depends: mesa-driver-radeon but it is not installable Recommends: linux-firmware-radeon but it is not going to be installed E: Unable to correct problems, you have held broken packages. - Update 19.1.0 tarball to git 7a6a34af rev. Changelog: 7a6a34af Don't set SourceValidate pointer to NULL 983a779b radeon_glamor_wrappers.c: Convert from ISO-8859-1 to UTF-8 a25ca015 gitlab CI: enable gitlab's builtin static analysis 7b940097 gitlab CI: enable commit & merge request checks 8fc442d6 Fix spelling/wording issues 11d549d5 Build xz tarballs instead of bzip2 5eba006e Only include dri.h with older versions of xserver ecced3b3 Add GitLab CI pipeline 77d9ab03 Guard local variable info only used with glamor 3c7c84ed Guard local variable priv only used with glamor 8da3e456 ati: cleanup terminology to use primary/secondary 38453924 Fix return value check of drmIoctl() c0eb5dbd Don't crash X server if GPU acceleration is not available 4d84cf43 Handle NULL fb_ptr in pixmap_get_fb f223035f Fix link failure with gcc 10 b9bd8097 Bump version for 19.1.0 release 2faaecc6 Don't unreference FBs of pixmaps from different screens in LeaveVT 2cbbd864 Don't set up black scanout buffer if LeaveVT is called from CloseScreen c7ed12cb Don't disable page flipping completely with SW cursor 33803c85 present: Check that we can get a KMS FB for flipping fee737e8 Remove dri2_drawable_crtc parameter consider_disabled 2a3f2d20 dri2: Re-use previous CRTC when possible if pick_best_crtc returns NULL d5f5bc58 dri2: reply to client for WaitMSC request in any case f758908d dri3: Always flush glamor before sharing pixmap storage with clients d1d8e3c8 Retry get_fb_ptr in get_fb Signed-off-by: Daniel Gomez <daniel@qtec.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-Fix-link-failure-with-gcc-10.patch34
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-ati-cleanup-terminology-to-use-primary-secondary.patch369
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.1.0.bb25
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb41
4 files changed, 41 insertions, 428 deletions
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-Fix-link-failure-with-gcc-10.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-Fix-link-failure-with-gcc-10.patch
deleted file mode 100644
index 7dfa233423..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-Fix-link-failure-with-gcc-10.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From cebbeaa9d0bdc18377faef27ea9ffd38e509d180 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 4 Feb 2020 16:38:06 -0500
-Subject: [PATCH] Fix link failure with gcc 10
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Without the 'extern' this looks like a definition not just a
-declaration, in every file that includes the header. gcc 10 is stricter
-about this kind of multiple definition.
-
-Upstream-Status: Backport [https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=f223035f4ffcff2a9296d1e907a5193f8e8845a3]
-Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
----
- src/drmmode_display.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/drmmode_display.h b/src/drmmode_display.h
-index 96eaef0..8cd8a0a 100644
---- a/src/drmmode_display.h
-+++ b/src/drmmode_display.h
-@@ -262,7 +262,7 @@ Bool drmmode_wait_vblank(xf86CrtcPtr crtc, drmVBlankSeqType type,
- uint64_t *ust, uint32_t *result_seq);
-
-
--miPointerSpriteFuncRec drmmode_sprite_funcs;
-+extern miPointerSpriteFuncRec drmmode_sprite_funcs;
-
-
- #endif
---
-2.28.0
-
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-ati-cleanup-terminology-to-use-primary-secondary.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-ati-cleanup-terminology-to-use-primary-secondary.patch
deleted file mode 100644
index cda2c2f146..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati/0001-ati-cleanup-terminology-to-use-primary-secondary.patch
+++ /dev/null
@@ -1,369 +0,0 @@
-From 6e035c007876ffe972a497681dd3debdc806e979 Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied@redhat.com>
-Date: Mon, 13 Jul 2020 09:11:28 +1000
-Subject: [PATCH] ati: cleanup terminology to use primary/secondary
-
-The X server changed some API/ABIs here.
-
-Based on amdgpu patch by Michel
----
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/commit/8da3e4561ef82bb78c9a17b8cd8bf139b9cfd680.patch]
-man/radeon.man | 2 +-
- src/compat-api.h | 6 ++++
- src/drmmode_display.c | 4 +--
- src/evergreen_state.h | 2 +-
- src/r600_state.h | 2 +-
- src/radeon.h | 10 +++---
- src/radeon_exa.c | 2 +-
- src/radeon_glamor.c | 2 +-
- src/radeon_kms.c | 74 +++++++++++++++++++++----------------------
- 9 files changed, 55 insertions(+), 49 deletions(-)
-
-diff --git a/man/radeon.man b/man/radeon.man
-index dcebf53..247dcdb 100644
---- a/man/radeon.man
-+++ b/man/radeon.man
-@@ -290,7 +290,7 @@ on. If this option is set, the default value of the property is 'on' or 'off'
- accordingly. If this option isn't set, the default value of the property is
- .B auto,
- which means that TearFree is on for rotated outputs, outputs with RandR
--transforms applied and for RandR 1.4 slave outputs, otherwise off.
-+transforms applied and for RandR 1.4 secondary outputs, otherwise off.
- .TP
- .BI "Option \*qAccelMethod\*q \*q" "string" \*q
- Chooses between available acceleration architectures. Valid values are
-diff --git a/src/compat-api.h b/src/compat-api.h
-index f4e7524..def6d3e 100644
---- a/src/compat-api.h
-+++ b/src/compat-api.h
-@@ -34,4 +34,10 @@
- #define BLOCKHANDLER_ARGS pScreen, pTimeout, pReadmask
- #endif
-
-+#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2)
-+#define current_primary current_master
-+#define primary_pixmap master_pixmap
-+#define secondary_dst slave_dst
-+#endif
-+
- #endif
-diff --git a/src/drmmode_display.c b/src/drmmode_display.c
-index 0e9e247..3dec91e 100644
---- a/src/drmmode_display.c
-+++ b/src/drmmode_display.c
-@@ -720,7 +720,7 @@ drmmode_crtc_prime_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
- xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list,
- ent) {
- if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
-- dirty->slave_dst =
-+ dirty->secondary_dst =
- drmmode_crtc->scanout[scanout_id].pixmap;
- break;
- }
-@@ -1356,7 +1356,7 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
-
- xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) {
- if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
-- PixmapStopDirtyTracking(dirty->src, dirty->slave_dst);
-+ PixmapStopDirtyTracking(dirty->src, dirty->secondary_dst);
- break;
- }
- }
-diff --git a/src/evergreen_state.h b/src/evergreen_state.h
-index 7e54e1c..34ba87b 100644
---- a/src/evergreen_state.h
-+++ b/src/evergreen_state.h
-@@ -350,7 +350,7 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height,
- int *new_pitch);
- extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv);
- extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix);
--extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p);
-+extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p);
- extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle);
-
- #endif
-diff --git a/src/r600_state.h b/src/r600_state.h
-index 3434599..567c3ca 100644
---- a/src/r600_state.h
-+++ b/src/r600_state.h
-@@ -321,6 +321,6 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height,
- int *new_pitch);
- extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv);
- extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix);
--extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p);
-+extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p);
- extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle);
- #endif
-diff --git a/src/radeon.h b/src/radeon.h
-index 2c91346..85fd021 100644
---- a/src/radeon.h
-+++ b/src/radeon.h
-@@ -182,18 +182,18 @@ typedef enum {
-
-
- static inline ScreenPtr
--radeon_master_screen(ScreenPtr screen)
-+radeon_primary_screen(ScreenPtr screen)
- {
-- if (screen->current_master)
-- return screen->current_master;
-+ if (screen->current_primary)
-+ return screen->current_primary;
-
- return screen;
- }
-
- static inline ScreenPtr
--radeon_dirty_master(PixmapDirtyUpdatePtr dirty)
-+radeon_dirty_primary(PixmapDirtyUpdatePtr dirty)
- {
-- return radeon_master_screen(dirty->slave_dst->drawable.pScreen);
-+ return radeon_primary_screen(dirty->secondary_dst->drawable.pScreen);
- }
-
- static inline DrawablePtr
-diff --git a/src/radeon_exa.c b/src/radeon_exa.c
-index 268155e..320ff99 100644
---- a/src/radeon_exa.c
-+++ b/src/radeon_exa.c
-@@ -282,7 +282,7 @@ void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv)
- free(driverPriv);
- }
-
--Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **fd_handle)
-+Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr seconndary, void **fd_handle)
- {
- struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(ppix);
-
-diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c
-index f109838..ccf9994 100644
---- a/src/radeon_glamor.c
-+++ b/src/radeon_glamor.c
-@@ -366,7 +366,7 @@ radeon_glamor_set_pixmap_bo(DrawablePtr drawable, PixmapPtr pixmap)
-
-
- static Bool
--radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave,
-+radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr secondary,
- void **handle_p)
- {
- ScreenPtr screen = pixmap->drawable.pScreen;
-diff --git a/src/radeon_kms.c b/src/radeon_kms.c
-index b3db7c4..62962d6 100644
---- a/src/radeon_kms.c
-+++ b/src/radeon_kms.c
-@@ -559,8 +559,8 @@ dirty_region(PixmapDirtyUpdatePtr dirty)
- if (dirty->rotation != RR_Rotate_0) {
- dstregion = transform_region(damageregion,
- &dirty->f_inverse,
-- dirty->slave_dst->drawable.width,
-- dirty->slave_dst->drawable.height);
-+ dirty->secondary_dst->drawable.width,
-+ dirty->secondary_dst->drawable.height);
- } else
- #endif
- {
-@@ -568,7 +568,7 @@ dirty_region(PixmapDirtyUpdatePtr dirty)
-
- dstregion = RegionDuplicate(damageregion);
- RegionTranslate(dstregion, -dirty->x, -dirty->y);
-- PixmapRegionInit(&pixregion, dirty->slave_dst);
-+ PixmapRegionInit(&pixregion, dirty->secondary_dst);
- RegionIntersect(dstregion, dstregion, &pixregion);
- RegionUninit(&pixregion);
- }
-@@ -585,8 +585,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region)
- if (RegionNil(region))
- goto out;
-
-- if (dirty->slave_dst->master_pixmap)
-- DamageRegionAppend(&dirty->slave_dst->drawable, region);
-+ if (dirty->secondary_dst->primary_pixmap)
-+ DamageRegionAppend(&dirty->secondary_dst->drawable, region);
-
- #ifdef HAS_DIRTYTRACKING_ROTATION
- PixmapSyncDirtyHelper(dirty);
-@@ -595,8 +595,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region)
- #endif
-
- radeon_cs_flush_indirect(src_scrn);
-- if (dirty->slave_dst->master_pixmap)
-- DamageRegionProcessPending(&dirty->slave_dst->drawable);
-+ if (dirty->secondary_dst->primary_pixmap)
-+ DamageRegionProcessPending(&dirty->secondary_dst->drawable);
-
- out:
- DamageEmpty(dirty->damage);
-@@ -613,12 +613,12 @@ radeon_prime_scanout_update_abort(xf86CrtcPtr crtc, void *event_data)
- void
- radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
- {
-- ScreenPtr master_screen = radeon_dirty_master(dirty);
-+ ScreenPtr primary_screen = radeon_dirty_primary(dirty);
- PixmapDirtyUpdatePtr ent;
- RegionPtr region;
-
-- xorg_list_for_each_entry(ent, &master_screen->pixmap_dirty_list, ent) {
-- if (!radeon_dirty_src_equals(dirty, ent->slave_dst))
-+ xorg_list_for_each_entry(ent, &primary_screen->pixmap_dirty_list, ent) {
-+ if (!radeon_dirty_src_equals(dirty, ent->secondary_dst))
- continue;
-
- region = dirty_region(ent);
-@@ -631,45 +631,45 @@ radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
- #if HAS_SYNC_SHARED_PIXMAP
-
- static Bool
--master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
-+primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
- {
-- ScreenPtr master_screen = radeon_dirty_master(dirty);
-+ ScreenPtr primary_screen = radeon_dirty_primary(dirty);
-
-- return !!master_screen->SyncSharedPixmap;
-+ return !!primary_screen->SyncSharedPixmap;
- }
-
- static Bool
--slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
-+secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
- {
-- ScreenPtr slave_screen = dirty->slave_dst->drawable.pScreen;
-+ ScreenPtr secondary_screen = dirty->secondary_dst->drawable.pScreen;
-
-- return !!slave_screen->SyncSharedPixmap;
-+ return !!secondary_screen->SyncSharedPixmap;
- }
-
- static void
- call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
- {
-- ScreenPtr master_screen = radeon_dirty_master(dirty);
-+ ScreenPtr primary_screen = radeon_dirty_primary(dirty);
-
-- master_screen->SyncSharedPixmap(dirty);
-+ primary_screen->SyncSharedPixmap(dirty);
- }
-
- #else /* !HAS_SYNC_SHARED_PIXMAP */
-
- static Bool
--master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
-+primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
- {
-- ScrnInfoPtr master_scrn = xf86ScreenToScrn(radeon_dirty_master(dirty));
-+ ScrnInfoPtr primary_scrn = xf86ScreenToScrn(radeon_dirty_primary(dirty));
-
-- return master_scrn->driverName == scrn->driverName;
-+ return primary_scrn->driverName == scrn->driverName;
- }
-
- static Bool
--slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
-+secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
- {
-- ScrnInfoPtr slave_scrn = xf86ScreenToScrn(dirty->slave_dst->drawable.pScreen);
-+ ScrnInfoPtr secondary_scrn = xf86ScreenToScrn(dirty->secondary_dst->drawable.pScreen);
-
-- return slave_scrn->driverName == scrn->driverName;
-+ return secondary_scrn->driverName == scrn->driverName;
- }
-
- static void
-@@ -684,12 +684,12 @@ call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
- static xf86CrtcPtr
- radeon_prime_dirty_to_crtc(PixmapDirtyUpdatePtr dirty)
- {
-- ScreenPtr screen = dirty->slave_dst->drawable.pScreen;
-+ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen;
- ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
- xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
- int c;
-
-- /* Find the CRTC which is scanning out from this slave pixmap */
-+ /* Find the CRTC which is scanning out from this secondary pixmap */
- for (c = 0; c < xf86_config->num_crtc; c++) {
- xf86CrtcPtr xf86_crtc = xf86_config->crtc[c];
- drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
-@@ -714,7 +714,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id)
- if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
- RegionPtr region;
-
-- if (master_has_sync_shared_pixmap(scrn, dirty))
-+ if (primary_has_sync_shared_pixmap(scrn, dirty))
- call_sync_shared_pixmap(dirty);
-
- region = dirty_region(dirty);
-@@ -727,7 +727,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id)
- radeon_cs_flush_indirect(scrn);
- RegionCopy(&drmmode_crtc->scanout_last_region, region);
- RegionTranslate(region, -crtc->x, -crtc->y);
-- dirty->slave_dst = drmmode_crtc->scanout[scanout_id].pixmap;
-+ dirty->secondary_dst = drmmode_crtc->scanout[scanout_id].pixmap;
- }
-
- redisplay_dirty(dirty, region);
-@@ -754,7 +754,7 @@ radeon_prime_scanout_update_handler(xf86CrtcPtr crtc, uint32_t frame, uint64_t u
- static void
- radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty)
- {
-- ScreenPtr screen = dirty->slave_dst->drawable.pScreen;
-+ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen;
- ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
- RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn);
- xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty);
-@@ -818,7 +818,7 @@ radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty)
- static void
- radeon_prime_scanout_flip(PixmapDirtyUpdatePtr ent)
- {
-- ScreenPtr screen = ent->slave_dst->drawable.pScreen;
-+ ScreenPtr screen = ent->secondary_dst->drawable.pScreen;
- ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
- RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn);
- xf86CrtcPtr crtc = radeon_prime_dirty_to_crtc(ent);
-@@ -893,11 +893,11 @@ radeon_dirty_update(ScrnInfoPtr scrn)
- if (screen->isGPU) {
- PixmapDirtyUpdatePtr region_ent = ent;
-
-- if (master_has_sync_shared_pixmap(scrn, ent)) {
-- ScreenPtr master_screen = radeon_dirty_master(ent);
-+ if (primary_has_sync_shared_pixmap(scrn, ent)) {
-+ ScreenPtr primary_screen = radeon_dirty_primary(ent);
-
-- xorg_list_for_each_entry(region_ent, &master_screen->pixmap_dirty_list, ent) {
-- if (radeon_dirty_src_equals(ent, region_ent->slave_dst))
-+ xorg_list_for_each_entry(region_ent, &primary_screen->pixmap_dirty_list, ent) {
-+ if (radeon_dirty_src_equals(ent, region_ent->secondary_dst))
- break;
- }
- }
-@@ -921,7 +921,7 @@ radeon_dirty_update(ScrnInfoPtr scrn)
-
- RegionDestroy(region);
- } else {
-- if (slave_has_sync_shared_pixmap(scrn, ent))
-+ if (secondary_has_sync_shared_pixmap(scrn, ent))
- continue;
-
- region = dirty_region(ent);
-@@ -1216,7 +1216,7 @@ static void RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL)
- (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS);
- pScreen->BlockHandler = RADEONBlockHandler_KMS;
-
-- if (!xf86ScreenToScrn(radeon_master_screen(pScreen))->vtSema)
-+ if (!xf86ScreenToScrn(radeon_primary_screen(pScreen))->vtSema)
- return;
-
- if (!pScreen->isGPU)
-@@ -2584,7 +2584,7 @@ CARD32 cleanup_black_fb(OsTimerPtr timer, CARD32 now, pointer data)
- xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
- int c;
-
-- if (xf86ScreenToScrn(radeon_master_screen(screen))->vtSema)
-+ if (xf86ScreenToScrn(radeon_primary_screen(screen))->vtSema)
- return 0;
-
- /* Unreference the all-black FB created by RADEONLeaveVT_KMS. After
---
-2.33.1
-
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.1.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.1.0.bb
deleted file mode 100644
index c8ce77ab88..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.1.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
-
-SUMMARY = "X.Org X server -- ATI Radeon video driver"
-
-DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
-
-DEPENDS += "virtual/libx11 libxvmc drm \
- virtual/libgl xorgproto libpciaccess"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-SRC_URI += "file://0001-Fix-link-failure-with-gcc-10.patch \
- file://0001-ati-cleanup-terminology-to-use-primary-secondary.patch \
- "
-SRC_URI[sha256sum] = "659f5a1629eea5f5334d9b39b18e6807a63aa1efa33c1236d9cc53acbb223c49"
-
-#EXTRA_OECONF += "--disable-glamor"
-
-RDEPENDS:${PN} += "xserver-xorg-module-exa"
-RRECOMMENDS:${PN} += "linux-firmware-radeon"
-
-FILES:${PN} += "${datadir}/X11"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb
new file mode 100644
index 0000000000..9452c3a915
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb
@@ -0,0 +1,41 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
+
+SUMMARY = "X.Org X server -- ATI Radeon video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm \
+ virtual/libgl xorgproto libpciaccess"
+
+inherit features_check
+
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+SRC_URI = "git://git@gitlab.freedesktop.org/xorg/driver/xf86-video-ati.git;branch=master"
+SRCREV = "7a6a34af026f0bef8080b91baf97a729380bca01"
+
+SRC_URI[sha256sum] = "659f5a1629eea5f5334d9b39b18e6807a63aa1efa33c1236d9cc53acbb223c49"
+
+PV = "19.1.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "udev"
+PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
+PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor"
+
+RDEPENDS:${PN}:append = "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'glamor', 'libegl', '', d)} \
+ mesa-megadriver \
+ xserver-xorg-extension-glx \
+ xserver-xorg-module-exa \
+"
+
+RRECOMMENDS:${PN} += "linux-firmware-radeon"
+
+PACKAGES =+ "${PN}-config"
+
+FILES:${PN}-config = "${datadir}/X11/xorg.conf.d"
+FILES:${PN} += "${datadir}/X11"