From: Emil Velikov Date: Tue, 9 May 2017 17:41:50 +0000 (+0100) Subject: gbm: move gbm_drm_device::driver_name to gbm_dri_device X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=commitdiff_plain;h=e183c552758ac47880f5518cdff9057d99df921b gbm: move gbm_drm_device::driver_name to gbm_dri_device The former already keeps track of the DRI module opened, based on the driver_name provided. So let's keep them together. As a nice bonus this Will allows us to remove the gbm_drm_device all together with next patch. Signed-off-by: Emil Velikov Tested-by: Rob Herring --- diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index d5dae4a14ad..9cee91bbfcf 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -715,7 +715,7 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp) } dri2_dpy->fd = fd; - dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->base.driver_name); + dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->driver_name); dri2_dpy->dri_screen = dri2_dpy->gbm_dri->screen; dri2_dpy->core = dri2_dpy->gbm_dri->core; diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c index 9f3fe194170..ceed0c10ca6 100644 --- a/src/gbm/backends/dri/gbm_dri.c +++ b/src/gbm/backends/dri/gbm_dri.c @@ -344,12 +344,12 @@ dri_open_driver(struct gbm_dri_device *dri) len = next - p; #if GLX_USE_TLS snprintf(path, sizeof path, - "%.*s/tls/%s_dri.so", len, p, dri->base.driver_name); + "%.*s/tls/%s_dri.so", len, p, dri->driver_name); dri->driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL); #endif if (dri->driver == NULL) { snprintf(path, sizeof path, - "%.*s/%s_dri.so", len, p, dri->base.driver_name); + "%.*s/%s_dri.so", len, p, dri->driver_name); dri->driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL); } /* not need continue to loop all paths once the driver is found */ @@ -373,7 +373,7 @@ dri_open_driver(struct gbm_dri_device *dri) return NULL; } - get_extensions_name = loader_get_extensions_name(dri->base.driver_name); + get_extensions_name = loader_get_extensions_name(dri->driver_name); if (get_extensions_name) { const __DRIextension **(*get_extensions)(void); @@ -440,13 +440,13 @@ dri_screen_create_dri2(struct gbm_dri_device *dri, char *driver_name) const __DRIextension **extensions; int ret = 0; - dri->base.driver_name = driver_name; - if (dri->base.driver_name == NULL) + dri->driver_name = driver_name; + if (dri->driver_name == NULL) return -1; ret = dri_load_driver(dri); if (ret) { - fprintf(stderr, "failed to load driver: %s\n", dri->base.driver_name); + fprintf(stderr, "failed to load driver: %s\n", dri->driver_name); return ret; }; @@ -490,8 +490,8 @@ dri_screen_create_swrast(struct gbm_dri_device *dri) { int ret; - dri->base.driver_name = strdup("swrast"); - if (dri->base.driver_name == NULL) + dri->driver_name = strdup("swrast"); + if (dri->driver_name == NULL) return -1; ret = dri_load_driver_swrast(dri); @@ -1336,7 +1336,7 @@ dri_destroy(struct gbm_device *gbm) free((__DRIconfig *) dri->driver_configs[i]); free(dri->driver_configs); dlclose(dri->driver); - free(dri->base.driver_name); + free(dri->driver_name); free(dri); } diff --git a/src/gbm/backends/dri/gbm_driint.h b/src/gbm/backends/dri/gbm_driint.h index f060830c0c9..c4a4794e50d 100644 --- a/src/gbm/backends/dri/gbm_driint.h +++ b/src/gbm/backends/dri/gbm_driint.h @@ -46,6 +46,7 @@ struct gbm_dri_device { struct gbm_drm_device base; void *driver; + char *driver_name; /* Name of the DRI module, without the _dri suffix */ __DRIscreen *screen; __DRIcontext *context; diff --git a/src/gbm/main/common_drm.h b/src/gbm/main/common_drm.h index 69e51ef9926..1cc52ae9314 100644 --- a/src/gbm/main/common_drm.h +++ b/src/gbm/main/common_drm.h @@ -38,7 +38,6 @@ enum gbm_drm_driver_type { struct gbm_drm_device { struct gbm_device base; enum gbm_drm_driver_type type; - char *driver_name; }; #endif