etnaviv: move drm version readout to drm layer
It fits here better. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Tested-by: Philipp Zabel p.zabel@pengutronix.de Reviewed-by: Simon Ser <contact@emersion.fr> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904>
This commit is contained in:
parent
075649a38d
commit
e18ee14f3b
|
@ -32,12 +32,30 @@
|
|||
|
||||
struct etna_device *etna_device_new(int fd)
|
||||
{
|
||||
struct etna_device *dev = calloc(sizeof(*dev), 1);
|
||||
struct etna_device *dev;
|
||||
struct drm_etnaviv_param req = {
|
||||
.param = ETNAVIV_PARAM_SOFTPIN_START_ADDR,
|
||||
};
|
||||
drmVersionPtr version;
|
||||
int ret;
|
||||
|
||||
version = drmGetVersion(fd);
|
||||
if (!version) {
|
||||
ERROR_MSG("cannot get version: %s", strerror(errno));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dev = calloc(sizeof(*dev), 1);
|
||||
if (!dev) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
dev->drm_version = ETNA_DRM_VERSION(version->version_major,
|
||||
version->version_minor);
|
||||
|
||||
out:
|
||||
drmFreeVersion(version);
|
||||
|
||||
if (!dev)
|
||||
return NULL;
|
||||
|
||||
|
@ -125,3 +143,8 @@ bool etnaviv_device_softpin_capable(struct etna_device *dev)
|
|||
{
|
||||
return !!dev->use_softpin;
|
||||
}
|
||||
|
||||
uint32_t etnaviv_device_version(struct etna_device *dev)
|
||||
{
|
||||
return dev->drm_version;
|
||||
}
|
||||
|
|
|
@ -89,12 +89,15 @@ enum etna_param_id {
|
|||
/* device functions:
|
||||
*/
|
||||
|
||||
#define ETNA_DRM_VERSION(major, minor) ((major) << 16 | (minor))
|
||||
|
||||
struct etna_device *etna_device_new(int fd);
|
||||
struct etna_device *etna_device_new_dup(int fd);
|
||||
struct etna_device *etna_device_ref(struct etna_device *dev);
|
||||
void etna_device_del(struct etna_device *dev);
|
||||
int etna_device_fd(struct etna_device *dev);
|
||||
bool etnaviv_device_softpin_capable(struct etna_device *dev);
|
||||
uint32_t etnaviv_device_version(struct etna_device *dev);
|
||||
|
||||
/* gpu functions:
|
||||
*/
|
||||
|
|
|
@ -65,6 +65,7 @@ struct etna_bo_cache {
|
|||
|
||||
struct etna_device {
|
||||
int fd;
|
||||
uint32_t drm_version;
|
||||
int refcnt;
|
||||
|
||||
/* tables to keep track of bo's, to avoid "evil-twin" etna_bo objects:
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
|
||||
#include "drm-uapi/drm_fourcc.h"
|
||||
|
||||
#define ETNA_DRM_VERSION(major, minor) ((major) << 16 | (minor))
|
||||
#define ETNA_DRM_VERSION_FENCE_FD ETNA_DRM_VERSION(1, 1)
|
||||
#define ETNA_DRM_VERSION_PERFMON ETNA_DRM_VERSION(1, 2)
|
||||
|
||||
|
@ -969,7 +968,6 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
|
|||
{
|
||||
struct etna_screen *screen = CALLOC_STRUCT(etna_screen);
|
||||
struct pipe_screen *pscreen;
|
||||
drmVersionPtr version;
|
||||
uint64_t val;
|
||||
|
||||
if (!screen)
|
||||
|
@ -986,11 +984,7 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
|
|||
goto fail;
|
||||
}
|
||||
|
||||
version = drmGetVersion(screen->ro->gpu_fd);
|
||||
screen->drm_version = ETNA_DRM_VERSION(version->version_major,
|
||||
version->version_minor);
|
||||
drmFreeVersion(version);
|
||||
|
||||
screen->drm_version = etnaviv_device_version(screen->dev);
|
||||
etna_mesa_debug = debug_get_option_etna_mesa_debug();
|
||||
|
||||
/* Disable autodisable for correct rendering with TS */
|
||||
|
|
Loading…
Reference in New Issue