[PATCH xf86-video-amdgpu 17/19] Store device_name as AMDGPUEntRec::master_node
Emil Velikov
emil.l.velikov at gmail.com
Wed Apr 4 14:29:52 UTC 2018
From: Emil Velikov <emil.velikov at collabora.com>
Rename the variable to reflect what it is. Plus move it out of the dri2
section - it's used in dri2 and dri3.
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
---
src/amdgpu_dri2.c | 8 +-------
src/amdgpu_dri2.h | 1 -
src/amdgpu_dri3.c | 3 +--
src/amdgpu_kms.c | 1 +
src/amdgpu_probe.c | 5 +++++
src/amdgpu_probe.h | 1 +
6 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/src/amdgpu_dri2.c b/src/amdgpu_dri2.c
index 62964ab..082520a 100644
--- a/src/amdgpu_dri2.c
+++ b/src/amdgpu_dri2.c
@@ -1282,11 +1282,9 @@ Bool amdgpu_dri2_screen_init(ScreenPtr pScreen)
if (!info->dri2.available)
return FALSE;
- info->dri2.device_name = drmGetDeviceNameFromFd(pAMDGPUEnt->fd);
-
dri2_info.driverName = SI_DRIVER_NAME;
dri2_info.fd = pAMDGPUEnt->fd;
- dri2_info.deviceName = info->dri2.device_name;
+ dri2_info.deviceName = pAMDGPUEnt->master_node;
if (info->drmmode.count_crtcs > 2) {
uint64_t cap_value;
@@ -1340,15 +1338,11 @@ Bool amdgpu_dri2_screen_init(ScreenPtr pScreen)
void amdgpu_dri2_close_screen(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
- AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
-
if (--DRI2InfoCnt == 0)
DeleteCallback(&ClientStateCallback,
amdgpu_dri2_client_state_changed, 0);
DRI2CloseScreen(pScreen);
- drmFree(info->dri2.device_name);
}
#endif /* DRI2 */
diff --git a/src/amdgpu_dri2.h b/src/amdgpu_dri2.h
index a345e6b..a9411b2 100644
--- a/src/amdgpu_dri2.h
+++ b/src/amdgpu_dri2.h
@@ -32,7 +32,6 @@
struct amdgpu_dri2 {
Bool available;
Bool enabled;
- char *device_name;
};
#ifdef DRI2
diff --git a/src/amdgpu_dri3.c b/src/amdgpu_dri3.c
index 87e3d85..2c06b74 100644
--- a/src/amdgpu_dri3.c
+++ b/src/amdgpu_dri3.c
@@ -44,11 +44,10 @@ static int open_master_node(ScreenPtr screen, int *out)
{
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(scrn);
- AMDGPUInfoPtr info = AMDGPUPTR(scrn);
drm_magic_t magic;
int fd;
- fd = open(info->dri2.device_name, O_RDWR | O_CLOEXEC);
+ fd = open(pAMDGPUEnt->master_node, O_RDWR | O_CLOEXEC);
if (fd < 0)
return BadAlloc;
diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index c70cfe5..d27f71d 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -147,6 +147,7 @@ static void AMDGPUFreeRec(ScrnInfoPtr pScrn)
pAMDGPUEnt->fd_ref--;
if (!pAMDGPUEnt->fd_ref) {
amdgpu_device_deinitialize(pAMDGPUEnt->pDev);
+ free(pAMDGPUEnt->master_node);
amdgpu_kernel_close_fd(pAMDGPUEnt);
free(pPriv->ptr);
pPriv->ptr = NULL;
diff --git a/src/amdgpu_probe.c b/src/amdgpu_probe.c
index 4959bd6..e9afe42 100644
--- a/src/amdgpu_probe.c
+++ b/src/amdgpu_probe.c
@@ -178,6 +178,10 @@ static Bool amdgpu_device_setup(ScrnInfoPtr pScrn,
if (pAMDGPUEnt->fd < 0)
return FALSE;
+ pAMDGPUEnt->master_node = drmGetDeviceNameFromFd2(pAMDGPUEnt->fd);
+ if (pAMDGPUEnt->master_node)
+ goto error_amdgpu;
+
if (amdgpu_device_initialize(pAMDGPUEnt->fd,
&major_version,
&minor_version,
@@ -190,6 +194,7 @@ static Bool amdgpu_device_setup(ScrnInfoPtr pScrn,
return TRUE;
error_amdgpu:
+ free(pAMDGPUEnt->master_node);
amdgpu_kernel_close_fd(pAMDGPUEnt);
return FALSE;
}
diff --git a/src/amdgpu_probe.h b/src/amdgpu_probe.h
index 5f61aab..94f204f 100644
--- a/src/amdgpu_probe.h
+++ b/src/amdgpu_probe.h
@@ -62,6 +62,7 @@ typedef struct {
int fd; /* for sharing across zaphod heads */
int fd_ref;
+ char *master_node;
unsigned long fd_wakeup_registered; /* server generation for which fd has been registered for wakeup handling */
int fd_wakeup_ref;
unsigned int assigned_crtcs;
--
2.16.0
More information about the amd-gfx
mailing list