1From d96815a32431e0f434964a786013083bc0d835fc Mon Sep 17 00:00:00 2001 2From: Dave Airlie <airlied@redhat.com> 3Date: Mon, 13 Jul 2020 09:11:28 +1000 4Subject: [PATCH] ati: cleanup terminology to use primary/secondary 5 6The X server changed some API/ABIs here. 7 8Based on amdgpu patch by Michel 9 10(cherry picked from commit 8da3e4561ef82bb78c9a17b8cd8bf139b9cfd680) 11Signed-off-by: Romain Naour <romain.naour@gmail.com> 12--- 13 man/radeon.man | 2 +- 14 src/compat-api.h | 6 ++++ 15 src/drmmode_display.c | 4 +-- 16 src/evergreen_state.h | 2 +- 17 src/r600_state.h | 2 +- 18 src/radeon.h | 10 +++--- 19 src/radeon_exa.c | 2 +- 20 src/radeon_glamor.c | 2 +- 21 src/radeon_kms.c | 74 +++++++++++++++++++++---------------------- 22 9 files changed, 55 insertions(+), 49 deletions(-) 23 24diff --git a/man/radeon.man b/man/radeon.man 25index dcebf537..247dcdb7 100644 26--- a/man/radeon.man 27+++ b/man/radeon.man 28@@ -290,7 +290,7 @@ on. If this option is set, the default value of the property is 'on' or 'off' 29 accordingly. If this option isn't set, the default value of the property is 30 .B auto, 31 which means that TearFree is on for rotated outputs, outputs with RandR 32-transforms applied and for RandR 1.4 slave outputs, otherwise off. 33+transforms applied and for RandR 1.4 secondary outputs, otherwise off. 34 .TP 35 .BI "Option \*qAccelMethod\*q \*q" "string" \*q 36 Chooses between available acceleration architectures. Valid values are 37diff --git a/src/compat-api.h b/src/compat-api.h 38index f4e7524f..def6d3e4 100644 39--- a/src/compat-api.h 40+++ b/src/compat-api.h 41@@ -34,4 +34,10 @@ 42 #define BLOCKHANDLER_ARGS pScreen, pTimeout, pReadmask 43 #endif 44 45+#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2) 46+#define current_primary current_master 47+#define primary_pixmap master_pixmap 48+#define secondary_dst slave_dst 49+#endif 50+ 51 #endif 52diff --git a/src/drmmode_display.c b/src/drmmode_display.c 53index 0e9e2474..3dec91e8 100644 54--- a/src/drmmode_display.c 55+++ b/src/drmmode_display.c 56@@ -720,7 +720,7 @@ drmmode_crtc_prime_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode, 57 xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, 58 ent) { 59 if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { 60- dirty->slave_dst = 61+ dirty->secondary_dst = 62 drmmode_crtc->scanout[scanout_id].pixmap; 63 break; 64 } 65@@ -1356,7 +1356,7 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix) 66 67 xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) { 68 if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { 69- PixmapStopDirtyTracking(dirty->src, dirty->slave_dst); 70+ PixmapStopDirtyTracking(dirty->src, dirty->secondary_dst); 71 break; 72 } 73 } 74diff --git a/src/evergreen_state.h b/src/evergreen_state.h 75index 7e54e1c7..34ba87b6 100644 76--- a/src/evergreen_state.h 77+++ b/src/evergreen_state.h 78@@ -350,7 +350,7 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height, 79 int *new_pitch); 80 extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv); 81 extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix); 82-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p); 83+extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p); 84 extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle); 85 86 #endif 87diff --git a/src/r600_state.h b/src/r600_state.h 88index 34345996..567c3ca2 100644 89--- a/src/r600_state.h 90+++ b/src/r600_state.h 91@@ -321,6 +321,6 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height, 92 int *new_pitch); 93 extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv); 94 extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix); 95-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p); 96+extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p); 97 extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle); 98 #endif 99diff --git a/src/radeon.h b/src/radeon.h 100index 2c913466..85fd0217 100644 101--- a/src/radeon.h 102+++ b/src/radeon.h 103@@ -182,18 +182,18 @@ typedef enum { 104 105 106 static inline ScreenPtr 107-radeon_master_screen(ScreenPtr screen) 108+radeon_primary_screen(ScreenPtr screen) 109 { 110- if (screen->current_master) 111- return screen->current_master; 112+ if (screen->current_primary) 113+ return screen->current_primary; 114 115 return screen; 116 } 117 118 static inline ScreenPtr 119-radeon_dirty_master(PixmapDirtyUpdatePtr dirty) 120+radeon_dirty_primary(PixmapDirtyUpdatePtr dirty) 121 { 122- return radeon_master_screen(dirty->slave_dst->drawable.pScreen); 123+ return radeon_primary_screen(dirty->secondary_dst->drawable.pScreen); 124 } 125 126 static inline DrawablePtr 127diff --git a/src/radeon_exa.c b/src/radeon_exa.c 128index 268155ed..320ff992 100644 129--- a/src/radeon_exa.c 130+++ b/src/radeon_exa.c 131@@ -282,7 +282,7 @@ void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv) 132 free(driverPriv); 133 } 134 135-Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **fd_handle) 136+Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr seconndary, void **fd_handle) 137 { 138 struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(ppix); 139 140diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c 141index f1098381..ccf99941 100644 142--- a/src/radeon_glamor.c 143+++ b/src/radeon_glamor.c 144@@ -366,7 +366,7 @@ radeon_glamor_set_pixmap_bo(DrawablePtr drawable, PixmapPtr pixmap) 145 146 147 static Bool 148-radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave, 149+radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr secondary, 150 void **handle_p) 151 { 152 ScreenPtr screen = pixmap->drawable.pScreen; 153diff --git a/src/radeon_kms.c b/src/radeon_kms.c 154index b3db7c41..62962d61 100644 155--- a/src/radeon_kms.c 156+++ b/src/radeon_kms.c 157@@ -559,8 +559,8 @@ dirty_region(PixmapDirtyUpdatePtr dirty) 158 if (dirty->rotation != RR_Rotate_0) { 159 dstregion = transform_region(damageregion, 160 &dirty->f_inverse, 161- dirty->slave_dst->drawable.width, 162- dirty->slave_dst->drawable.height); 163+ dirty->secondary_dst->drawable.width, 164+ dirty->secondary_dst->drawable.height); 165 } else 166 #endif 167 { 168@@ -568,7 +568,7 @@ dirty_region(PixmapDirtyUpdatePtr dirty) 169 170 dstregion = RegionDuplicate(damageregion); 171 RegionTranslate(dstregion, -dirty->x, -dirty->y); 172- PixmapRegionInit(&pixregion, dirty->slave_dst); 173+ PixmapRegionInit(&pixregion, dirty->secondary_dst); 174 RegionIntersect(dstregion, dstregion, &pixregion); 175 RegionUninit(&pixregion); 176 } 177@@ -585,8 +585,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region) 178 if (RegionNil(region)) 179 goto out; 180 181- if (dirty->slave_dst->master_pixmap) 182- DamageRegionAppend(&dirty->slave_dst->drawable, region); 183+ if (dirty->secondary_dst->primary_pixmap) 184+ DamageRegionAppend(&dirty->secondary_dst->drawable, region); 185 186 #ifdef HAS_DIRTYTRACKING_ROTATION 187 PixmapSyncDirtyHelper(dirty); 188@@ -595,8 +595,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region) 189 #endif 190 191 radeon_cs_flush_indirect(src_scrn); 192- if (dirty->slave_dst->master_pixmap) 193- DamageRegionProcessPending(&dirty->slave_dst->drawable); 194+ if (dirty->secondary_dst->primary_pixmap) 195+ DamageRegionProcessPending(&dirty->secondary_dst->drawable); 196 197 out: 198 DamageEmpty(dirty->damage); 199@@ -613,12 +613,12 @@ radeon_prime_scanout_update_abort(xf86CrtcPtr crtc, void *event_data) 200 void 201 radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) 202 { 203- ScreenPtr master_screen = radeon_dirty_master(dirty); 204+ ScreenPtr primary_screen = radeon_dirty_primary(dirty); 205 PixmapDirtyUpdatePtr ent; 206 RegionPtr region; 207 208- xorg_list_for_each_entry(ent, &master_screen->pixmap_dirty_list, ent) { 209- if (!radeon_dirty_src_equals(dirty, ent->slave_dst)) 210+ xorg_list_for_each_entry(ent, &primary_screen->pixmap_dirty_list, ent) { 211+ if (!radeon_dirty_src_equals(dirty, ent->secondary_dst)) 212 continue; 213 214 region = dirty_region(ent); 215@@ -631,45 +631,45 @@ radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) 216 #if HAS_SYNC_SHARED_PIXMAP 217 218 static Bool 219-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 220+primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 221 { 222- ScreenPtr master_screen = radeon_dirty_master(dirty); 223+ ScreenPtr primary_screen = radeon_dirty_primary(dirty); 224 225- return !!master_screen->SyncSharedPixmap; 226+ return !!primary_screen->SyncSharedPixmap; 227 } 228 229 static Bool 230-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 231+secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 232 { 233- ScreenPtr slave_screen = dirty->slave_dst->drawable.pScreen; 234+ ScreenPtr secondary_screen = dirty->secondary_dst->drawable.pScreen; 235 236- return !!slave_screen->SyncSharedPixmap; 237+ return !!secondary_screen->SyncSharedPixmap; 238 } 239 240 static void 241 call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) 242 { 243- ScreenPtr master_screen = radeon_dirty_master(dirty); 244+ ScreenPtr primary_screen = radeon_dirty_primary(dirty); 245 246- master_screen->SyncSharedPixmap(dirty); 247+ primary_screen->SyncSharedPixmap(dirty); 248 } 249 250 #else /* !HAS_SYNC_SHARED_PIXMAP */ 251 252 static Bool 253-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 254+primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 255 { 256- ScrnInfoPtr master_scrn = xf86ScreenToScrn(radeon_dirty_master(dirty)); 257+ ScrnInfoPtr primary_scrn = xf86ScreenToScrn(radeon_dirty_primary(dirty)); 258 259- return master_scrn->driverName == scrn->driverName; 260+ return primary_scrn->driverName == scrn->driverName; 261 } 262 263 static Bool 264-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 265+secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) 266 { 267- ScrnInfoPtr slave_scrn = xf86ScreenToScrn(dirty->slave_dst->drawable.pScreen); 268+ ScrnInfoPtr secondary_scrn = xf86ScreenToScrn(dirty->secondary_dst->drawable.pScreen); 269 270- return slave_scrn->driverName == scrn->driverName; 271+ return secondary_scrn->driverName == scrn->driverName; 272 } 273 274 static void 275@@ -684,12 +684,12 @@ call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) 276 static xf86CrtcPtr 277 radeon_prime_dirty_to_crtc(PixmapDirtyUpdatePtr dirty) 278 { 279- ScreenPtr screen = dirty->slave_dst->drawable.pScreen; 280+ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen; 281 ScrnInfoPtr scrn = xf86ScreenToScrn(screen); 282 xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); 283 int c; 284 285- /* Find the CRTC which is scanning out from this slave pixmap */ 286+ /* Find the CRTC which is scanning out from this secondary pixmap */ 287 for (c = 0; c < xf86_config->num_crtc; c++) { 288 xf86CrtcPtr xf86_crtc = xf86_config->crtc[c]; 289 drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; 290@@ -714,7 +714,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id) 291 if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { 292 RegionPtr region; 293 294- if (master_has_sync_shared_pixmap(scrn, dirty)) 295+ if (primary_has_sync_shared_pixmap(scrn, dirty)) 296 call_sync_shared_pixmap(dirty); 297 298 region = dirty_region(dirty); 299@@ -727,7 +727,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id) 300 radeon_cs_flush_indirect(scrn); 301 RegionCopy(&drmmode_crtc->scanout_last_region, region); 302 RegionTranslate(region, -crtc->x, -crtc->y); 303- dirty->slave_dst = drmmode_crtc->scanout[scanout_id].pixmap; 304+ dirty->secondary_dst = drmmode_crtc->scanout[scanout_id].pixmap; 305 } 306 307 redisplay_dirty(dirty, region); 308@@ -754,7 +754,7 @@ radeon_prime_scanout_update_handler(xf86CrtcPtr crtc, uint32_t frame, uint64_t u 309 static void 310 radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) 311 { 312- ScreenPtr screen = dirty->slave_dst->drawable.pScreen; 313+ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen; 314 ScrnInfoPtr scrn = xf86ScreenToScrn(screen); 315 RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); 316 xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty); 317@@ -818,7 +818,7 @@ radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) 318 static void 319 radeon_prime_scanout_flip(PixmapDirtyUpdatePtr ent) 320 { 321- ScreenPtr screen = ent->slave_dst->drawable.pScreen; 322+ ScreenPtr screen = ent->secondary_dst->drawable.pScreen; 323 ScrnInfoPtr scrn = xf86ScreenToScrn(screen); 324 RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); 325 xf86CrtcPtr crtc = radeon_prime_dirty_to_crtc(ent); 326@@ -893,11 +893,11 @@ radeon_dirty_update(ScrnInfoPtr scrn) 327 if (screen->isGPU) { 328 PixmapDirtyUpdatePtr region_ent = ent; 329 330- if (master_has_sync_shared_pixmap(scrn, ent)) { 331- ScreenPtr master_screen = radeon_dirty_master(ent); 332+ if (primary_has_sync_shared_pixmap(scrn, ent)) { 333+ ScreenPtr primary_screen = radeon_dirty_primary(ent); 334 335- xorg_list_for_each_entry(region_ent, &master_screen->pixmap_dirty_list, ent) { 336- if (radeon_dirty_src_equals(ent, region_ent->slave_dst)) 337+ xorg_list_for_each_entry(region_ent, &primary_screen->pixmap_dirty_list, ent) { 338+ if (radeon_dirty_src_equals(ent, region_ent->secondary_dst)) 339 break; 340 } 341 } 342@@ -921,7 +921,7 @@ radeon_dirty_update(ScrnInfoPtr scrn) 343 344 RegionDestroy(region); 345 } else { 346- if (slave_has_sync_shared_pixmap(scrn, ent)) 347+ if (secondary_has_sync_shared_pixmap(scrn, ent)) 348 continue; 349 350 region = dirty_region(ent); 351@@ -1216,7 +1216,7 @@ static void RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL) 352 (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); 353 pScreen->BlockHandler = RADEONBlockHandler_KMS; 354 355- if (!xf86ScreenToScrn(radeon_master_screen(pScreen))->vtSema) 356+ if (!xf86ScreenToScrn(radeon_primary_screen(pScreen))->vtSema) 357 return; 358 359 if (!pScreen->isGPU) 360@@ -2584,7 +2584,7 @@ CARD32 cleanup_black_fb(OsTimerPtr timer, CARD32 now, pointer data) 361 xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); 362 int c; 363 364- if (xf86ScreenToScrn(radeon_master_screen(screen))->vtSema) 365+ if (xf86ScreenToScrn(radeon_primary_screen(screen))->vtSema) 366 return 0; 367 368 /* Unreference the all-black FB created by RADEONLeaveVT_KMS. After 369-- 3702.31.1 371 372