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 <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
This commit is contained in:

committed by
Emil Velikov

parent
2204ea6464
commit
e183c55275
@@ -715,7 +715,7 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
dri2_dpy->fd = fd;
|
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->dri_screen = dri2_dpy->gbm_dri->screen;
|
||||||
dri2_dpy->core = dri2_dpy->gbm_dri->core;
|
dri2_dpy->core = dri2_dpy->gbm_dri->core;
|
||||||
|
@@ -344,12 +344,12 @@ dri_open_driver(struct gbm_dri_device *dri)
|
|||||||
len = next - p;
|
len = next - p;
|
||||||
#if GLX_USE_TLS
|
#if GLX_USE_TLS
|
||||||
snprintf(path, sizeof path,
|
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);
|
dri->driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
|
||||||
#endif
|
#endif
|
||||||
if (dri->driver == NULL) {
|
if (dri->driver == NULL) {
|
||||||
snprintf(path, sizeof path,
|
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);
|
dri->driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
|
||||||
}
|
}
|
||||||
/* not need continue to loop all paths once the driver is found */
|
/* 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;
|
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) {
|
if (get_extensions_name) {
|
||||||
const __DRIextension **(*get_extensions)(void);
|
const __DRIextension **(*get_extensions)(void);
|
||||||
|
|
||||||
@@ -440,13 +440,13 @@ dri_screen_create_dri2(struct gbm_dri_device *dri, char *driver_name)
|
|||||||
const __DRIextension **extensions;
|
const __DRIextension **extensions;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
dri->base.driver_name = driver_name;
|
dri->driver_name = driver_name;
|
||||||
if (dri->base.driver_name == NULL)
|
if (dri->driver_name == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
ret = dri_load_driver(dri);
|
ret = dri_load_driver(dri);
|
||||||
if (ret) {
|
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;
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -490,8 +490,8 @@ dri_screen_create_swrast(struct gbm_dri_device *dri)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
dri->base.driver_name = strdup("swrast");
|
dri->driver_name = strdup("swrast");
|
||||||
if (dri->base.driver_name == NULL)
|
if (dri->driver_name == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
ret = dri_load_driver_swrast(dri);
|
ret = dri_load_driver_swrast(dri);
|
||||||
@@ -1336,7 +1336,7 @@ dri_destroy(struct gbm_device *gbm)
|
|||||||
free((__DRIconfig *) dri->driver_configs[i]);
|
free((__DRIconfig *) dri->driver_configs[i]);
|
||||||
free(dri->driver_configs);
|
free(dri->driver_configs);
|
||||||
dlclose(dri->driver);
|
dlclose(dri->driver);
|
||||||
free(dri->base.driver_name);
|
free(dri->driver_name);
|
||||||
|
|
||||||
free(dri);
|
free(dri);
|
||||||
}
|
}
|
||||||
|
@@ -46,6 +46,7 @@ struct gbm_dri_device {
|
|||||||
struct gbm_drm_device base;
|
struct gbm_drm_device base;
|
||||||
|
|
||||||
void *driver;
|
void *driver;
|
||||||
|
char *driver_name; /* Name of the DRI module, without the _dri suffix */
|
||||||
|
|
||||||
__DRIscreen *screen;
|
__DRIscreen *screen;
|
||||||
__DRIcontext *context;
|
__DRIcontext *context;
|
||||||
|
@@ -38,7 +38,6 @@ enum gbm_drm_driver_type {
|
|||||||
struct gbm_drm_device {
|
struct gbm_drm_device {
|
||||||
struct gbm_device base;
|
struct gbm_device base;
|
||||||
enum gbm_drm_driver_type type;
|
enum gbm_drm_driver_type type;
|
||||||
char *driver_name;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user