[PATCH xf86-video-amdgpu 2/2] amdgpu_probe: Do not close server managed drm fds
Alex Deucher
alexdeucher at gmail.com
Mon Mar 6 15:15:27 UTC 2017
On Mon, Mar 6, 2017 at 5:02 AM, Michel Dänzer <michel at daenzer.net> wrote:
> From: Hans De Goede <hdegoede at redhat.com>
>
> This fixes the xserver only seeing AMD/ATI devices supported by the amdgpu
> driver, as by the time xf86-video-ati gets a chance to probe them, the
> fd has been closed.
>
> This fixes e.g. Xorg not seeing the dGPU on a Lenovo Thinkpad E465 laptop
> with a CARRIZO iGPU and a HAINAN dGPU.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>
> v2: Rebased on top of new patch 1.
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
Series is:
Reviewed-by: Alex Deucher at amd.com>
> ---
> src/amdgpu_probe.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/src/amdgpu_probe.c b/src/amdgpu_probe.c
> index fc93ac6a2..fb62cb811 100644
> --- a/src/amdgpu_probe.c
> +++ b/src/amdgpu_probe.c
> @@ -166,7 +166,7 @@ static Bool amdgpu_open_drm_master(ScrnInfoPtr pScrn, AMDGPUEntPtr pAMDGPUEnt,
> if (err != 0) {
> xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
> "[drm] failed to set drm interface version.\n");
> - drmClose(pAMDGPUEnt->fd);
> + amdgpu_kernel_close_fd(pAMDGPUEnt);
> return FALSE;
> }
>
> @@ -254,7 +254,7 @@ static Bool amdgpu_get_scrninfo(int entity_num, struct pci_device *pci_dev)
> return TRUE;
>
> error_amdgpu:
> - drmClose(pAMDGPUEnt->fd);
> + amdgpu_kernel_close_fd(pAMDGPUEnt);
> error_fd:
> free(pPriv->ptr);
> error:
> @@ -349,6 +349,7 @@ amdgpu_platform_probe(DriverPtr pDriver,
>
> pPriv->ptr = xnfcalloc(sizeof(AMDGPUEntRec), 1);
> pAMDGPUEnt = pPriv->ptr;
> + pAMDGPUEnt->platform_dev = dev;
> pAMDGPUEnt->fd = amdgpu_kernel_open_fd(pScrn, busid, dev);
> if (pAMDGPUEnt->fd < 0)
> goto error_fd;
> @@ -367,7 +368,6 @@ amdgpu_platform_probe(DriverPtr pDriver,
> pAMDGPUEnt = pPriv->ptr;
> pAMDGPUEnt->fd_ref++;
> }
> - pAMDGPUEnt->platform_dev = dev;
>
> xf86SetEntityInstanceForScreen(pScrn, pEnt->index,
> xf86GetNumEntityInstances(pEnt->
> @@ -379,7 +379,7 @@ amdgpu_platform_probe(DriverPtr pDriver,
> return TRUE;
>
> error_amdgpu:
> - drmClose(pAMDGPUEnt->fd);
> + amdgpu_kernel_close_fd(pAMDGPUEnt);
> error_fd:
> free(pPriv->ptr);
> error:
> --
> 2.11.0
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list