* [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
* [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
* 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.