* [PATCH xf86-video-ati 1/4] glamor: Allow depth 30 with Xorg >= 1.19.99.1 @ 2018-02-14 17:49 Michel Dänzer [not found] ` <20180214174930.5086-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Michel Dänzer @ 2018-02-14 17:49 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW From: Michel Dänzer <michel.daenzer@amd.com> Corresponding to amdgpu commit 6aee5770fb913713bb1b9a1af8f0d0892a66f21a. Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> --- man/radeon.man | 2 +- src/radeon_kms.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/man/radeon.man b/man/radeon.man index 889355bbb..dcebf5375 100644 --- a/man/radeon.man +++ b/man/radeon.man @@ -19,7 +19,7 @@ following features: .TP 2 \(bu Full support for 8-, 15-, 16- and 24-bit pixel depths, and for 30-bit depth on Linux 3.16 -and later with EXA acceleration; +and later; .TP \(bu RandR 1.2 and RandR 1.3 support; diff --git a/src/radeon_kms.c b/src/radeon_kms.c index bac98cb6e..25b889a67 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -1767,7 +1767,8 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) if (!RADEONPreInitAccel_KMS(pScrn)) goto fail; /* Depth 30 not yet supported under glamor. */ - if (pScrn->depth == 30 && info->use_glamor) { + if (pScrn->depth == 30 && info->use_glamor && + xorgGetVersion() < XORG_VERSION_NUMERIC(1,19,99,1,0)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Given depth (%d) is not supported under GLAMOR accel. Select EXA.\n", pScrn->depth); -- 2.16.1 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <20180214174930.5086-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org>]
* [PATCH xf86-video-ati 2/4] Don't use RADEONEntPriv in RADEONFreeRec [not found] ` <20180214174930.5086-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> @ 2018-02-14 17:49 ` Michel Dänzer 2018-02-14 17:49 ` [PATCH xf86-video-ati 3/4] Don't call RADEONFreeRec from RADEONPreInit_KMS Michel Dänzer 2018-02-14 17:49 ` [PATCH xf86-video-ati 4/4] Call RADEONFreeRec from RADEONFreeScreen_KMS even if info == NULL Michel Dänzer 2 siblings, 0 replies; 5+ messages in thread From: Michel Dänzer @ 2018-02-14 17:49 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW From: Michel Dänzer <michel.daenzer@amd.com> It crashes if info == NULL. (Ported from amdgpu commits fb8444e731765588c0ff1e9053c1c7b73f5f0907 & cfccf4c4e7e5c73fe4040fabeb1b43283cf29b33) Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> --- src/radeon_kms.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 25b889a67..6b1dc38b0 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -194,18 +194,33 @@ static Bool RADEONGetRec(ScrnInfoPtr pScrn) /* Free our private RADEONInfoRec */ static void RADEONFreeRec(ScrnInfoPtr pScrn) { + DevUnion *pPriv; RADEONEntPtr pRADEONEnt; RADEONInfoPtr info; + EntityInfoPtr pEnt; - if (!pScrn || !pScrn->driverPrivate) return; + if (!pScrn) + return; info = RADEONPTR(pScrn); + if (info) { + if (info->fbcon_pixmap) + pScrn->pScreen->DestroyPixmap(info->fbcon_pixmap); - if (info->fbcon_pixmap) - pScrn->pScreen->DestroyPixmap(info->fbcon_pixmap); + if (info->accel_state) { + free(info->accel_state); + info->accel_state = NULL; + } - pRADEONEnt = RADEONEntPriv(pScrn); + pEnt = info->pEnt; + free(pScrn->driverPrivate); + pScrn->driverPrivate = NULL; + } else { + pEnt = xf86GetEntityInfo(pScrn->entityList[pScrn->numEntities - 1]); + } + pPriv = xf86GetEntityPrivate(pEnt->index, gRADEONEntityIndex); + pRADEONEnt = pPriv->ptr; if (pRADEONEnt->fd > 0) { DevUnion *pPriv; RADEONEntPtr pRADEONEnt; @@ -225,14 +240,7 @@ static void RADEONFreeRec(ScrnInfoPtr pScrn) } } - if (info->accel_state) { - free(info->accel_state); - info->accel_state = NULL; - } - - free(info->pEnt); - free(pScrn->driverPrivate); - pScrn->driverPrivate = NULL; + free(pEnt); } static void * -- 2.16.1 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH xf86-video-ati 3/4] Don't call RADEONFreeRec from RADEONPreInit_KMS [not found] ` <20180214174930.5086-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> 2018-02-14 17:49 ` [PATCH xf86-video-ati 2/4] Don't use RADEONEntPriv in RADEONFreeRec Michel Dänzer @ 2018-02-14 17:49 ` Michel Dänzer 2018-02-14 17:49 ` [PATCH xf86-video-ati 4/4] Call RADEONFreeRec from RADEONFreeScreen_KMS even if info == NULL Michel Dänzer 2 siblings, 0 replies; 5+ messages in thread From: Michel Dänzer @ 2018-02-14 17:49 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW From: Michel Dänzer <michel.daenzer@amd.com> If the latter fails, Xorg will call RADEONFreeScreen_KMS, which calls the former. (Ported from amdgpu commit 103b7285845b786929fb509083c57e074c48f9be) Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> --- src/radeon_kms.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 6b1dc38b0..06f7883e8 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -1712,7 +1712,7 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) && info->pEnt->location.type != BUS_PLATFORM #endif ) - goto fail; + return FALSE; pPriv = xf86GetEntityPrivate(pScrn->entityList[0], getRADEONEntityIndex()); @@ -1739,24 +1739,24 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) pScrn->monitor = pScrn->confScreen->monitor; if (!RADEONPreInitVisual(pScrn)) - goto fail; + return FALSE; xf86CollectOptions(pScrn, NULL); if (!(info->Options = malloc(sizeof(RADEONOptions_KMS)))) - goto fail; + return FALSE; memcpy(info->Options, RADEONOptions_KMS, sizeof(RADEONOptions_KMS)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, info->Options); if (!RADEONPreInitWeight(pScrn)) - goto fail; + return FALSE; if (!RADEONPreInitChipType_KMS(pScrn)) - goto fail; + return FALSE; if (radeon_open_drm_master(pScrn) == FALSE) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Kernel modesetting setup failed\n"); - goto fail; + return FALSE; } info->dri2.available = FALSE; @@ -1765,14 +1765,15 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) if (info->dri2.pKernelDRMVersion == NULL) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "RADEONDRIGetVersion failed to get the DRM version\n"); - goto fail; + return FALSE; } /* Get ScreenInit function */ if (!xf86LoadSubModule(pScrn, "fb")) return FALSE; - if (!RADEONPreInitAccel_KMS(pScrn)) goto fail; + if (!RADEONPreInitAccel_KMS(pScrn)) + return FALSE; /* Depth 30 not yet supported under glamor. */ if (pScrn->depth == 30 && info->use_glamor && @@ -1780,7 +1781,7 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Given depth (%d) is not supported under GLAMOR accel. Select EXA.\n", pScrn->depth); - goto fail; + return FALSE; } /* Depth 30 only supported since Linux 3.16 / kms driver minor version 39 */ @@ -1788,7 +1789,7 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Given depth (%d) is not supported. Kernel too old. Needs Linux 3.16+\n", pScrn->depth); - goto fail; + return FALSE; } radeon_drm_queue_init(); @@ -1901,7 +1902,7 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) if (drmmode_pre_init(pScrn, &info->drmmode, pScrn->bitsPerPixel / 8) == FALSE) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Kernel modesetting setup failed\n"); - goto fail; + return FALSE; } RADEONSetupCapabilities(pScrn); @@ -1995,14 +1996,10 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) #endif ) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No modes.\n"); - goto fail; - } + return FALSE; + } return TRUE; - fail: - RADEONFreeRec(pScrn); - return FALSE; - } static Bool RADEONCursorInit_KMS(ScreenPtr pScreen) -- 2.16.1 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH xf86-video-ati 4/4] Call RADEONFreeRec from RADEONFreeScreen_KMS even if info == NULL [not found] ` <20180214174930.5086-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> 2018-02-14 17:49 ` [PATCH xf86-video-ati 2/4] Don't use RADEONEntPriv in RADEONFreeRec Michel Dänzer 2018-02-14 17:49 ` [PATCH xf86-video-ati 3/4] Don't call RADEONFreeRec from RADEONPreInit_KMS Michel Dänzer @ 2018-02-14 17:49 ` Michel Dänzer [not found] ` <20180214174930.5086-4-michel-otUistvHUpPR7s880joybQ@public.gmane.org> 2 siblings, 1 reply; 5+ messages in thread From: Michel Dänzer @ 2018-02-14 17:49 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW From: Michel Dänzer <michel.daenzer@amd.com> It's safe now. (Ported from amdgpu commit c9bd1399a13cea2e1331af2c826ca054b88db071) Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> --- src/radeon_kms.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 06f7883e8..6e5bf7814 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -2206,14 +2206,9 @@ static Bool RADEONCloseScreen_KMS(ScreenPtr pScreen) void RADEONFreeScreen_KMS(ScrnInfoPtr pScrn) { - RADEONInfoPtr info = RADEONPTR(pScrn); - xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, "RADEONFreeScreen\n"); - /* when server quits at PreInit, we don't need do this anymore*/ - if (!info) return; - RADEONFreeRec(pScrn); } -- 2.16.1 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <20180214174930.5086-4-michel-otUistvHUpPR7s880joybQ@public.gmane.org>]
* Re: [PATCH xf86-video-ati 4/4] Call RADEONFreeRec from RADEONFreeScreen_KMS even if info == NULL [not found] ` <20180214174930.5086-4-michel-otUistvHUpPR7s880joybQ@public.gmane.org> @ 2018-02-14 18:07 ` Deucher, Alexander 0 siblings, 0 replies; 5+ messages in thread From: Deucher, Alexander @ 2018-02-14 18:07 UTC (permalink / raw) To: Michel Dänzer, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW [-- Attachment #1.1: Type: text/plain, Size: 1567 bytes --] Series is: Reviewed-by: Alex Deucher <alexander.deucher-5C7GfCeVMHo@public.gmane.org> ________________________________ From: amd-gfx <amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org> on behalf of Michel Dänzer <michel-otUistvHUpPR7s880joybQ@public.gmane.org> Sent: Wednesday, February 14, 2018 12:49:30 PM To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Subject: [PATCH xf86-video-ati 4/4] Call RADEONFreeRec from RADEONFreeScreen_KMS even if info == NULL From: Michel Dänzer <michel.daenzer-5C7GfCeVMHo@public.gmane.org> It's safe now. (Ported from amdgpu commit c9bd1399a13cea2e1331af2c826ca054b88db071) Signed-off-by: Michel Dänzer <michel.daenzer-5C7GfCeVMHo@public.gmane.org> --- src/radeon_kms.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 06f7883e8..6e5bf7814 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -2206,14 +2206,9 @@ static Bool RADEONCloseScreen_KMS(ScreenPtr pScreen) void RADEONFreeScreen_KMS(ScrnInfoPtr pScrn) { - RADEONInfoPtr info = RADEONPTR(pScrn); - xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, "RADEONFreeScreen\n"); - /* when server quits at PreInit, we don't need do this anymore*/ - if (!info) return; - RADEONFreeRec(pScrn); } -- 2.16.1 _______________________________________________ amd-gfx mailing list amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx [-- Attachment #1.2: Type: text/html, Size: 2830 bytes --] [-- Attachment #2: Type: text/plain, Size: 154 bytes --] _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-02-14 18:07 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-02-14 17:49 [PATCH xf86-video-ati 1/4] glamor: Allow depth 30 with Xorg >= 1.19.99.1 Michel Dänzer [not found] ` <20180214174930.5086-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> 2018-02-14 17:49 ` [PATCH xf86-video-ati 2/4] Don't use RADEONEntPriv in RADEONFreeRec Michel Dänzer 2018-02-14 17:49 ` [PATCH xf86-video-ati 3/4] Don't call RADEONFreeRec from RADEONPreInit_KMS Michel Dänzer 2018-02-14 17:49 ` [PATCH xf86-video-ati 4/4] Call RADEONFreeRec from RADEONFreeScreen_KMS even if info == NULL Michel Dänzer [not found] ` <20180214174930.5086-4-michel-otUistvHUpPR7s880joybQ@public.gmane.org> 2018-02-14 18:07 ` Deucher, Alexander
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.