[PATCH libdrm v3 1/1] amdgpu: move asic id table to a separate file
Samuel Li
Samuel.Li at amd.com
Fri May 26 19:23:18 UTC 2017
From: Xiaojie Yuan <Xiaojie.Yuan at amd.com>
v2: fix an off by one error and leading white spaces
v3: use thread safe strtok_r(); initialize len before calling getline();
change printf() to drmMsg(); add initial amdgpu.ids
Change-Id: I12216da14910f5e2b0970bc1fafc2a20b0ef1ba9
Reviewed-by: Junwei Zhang <Jerry.Zhang at amd.com>
Signed-off-by: Samuel Li <Samuel.Li at amd.com>
---
Makefile.am | 3 +
amdgpu/Makefile.am | 2 +
amdgpu/Makefile.sources | 2 +-
amdgpu/amdgpu_asic_id.c | 199 +++++++++++++++++++++++++++++++++++++++++++++++
amdgpu/amdgpu_asic_id.h | 165 ---------------------------------------
amdgpu/amdgpu_device.c | 28 +++++--
amdgpu/amdgpu_internal.h | 10 +++
include/drm/amdgpu.ids | 154 ++++++++++++++++++++++++++++++++++++
8 files changed, 390 insertions(+), 173 deletions(-)
create mode 100644 amdgpu/amdgpu_asic_id.c
delete mode 100644 amdgpu/amdgpu_asic_id.h
create mode 100644 include/drm/amdgpu.ids
diff --git a/Makefile.am b/Makefile.am
index dfb8fcd..8de8f6c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -45,6 +45,9 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
pkgconfigdir = @pkgconfigdir@
pkgconfig_DATA = libdrm.pc
+libdrmdatadir = $(datadir)/libdrm
+dist_libdrmdata_DATA = include/drm/amdgpu.ids
+export libdrmdatadir
if HAVE_LIBKMS
LIBKMS_SUBDIR = libkms
diff --git a/amdgpu/Makefile.am b/amdgpu/Makefile.am
index cf7bc1b..da71c1c 100644
--- a/amdgpu/Makefile.am
+++ b/amdgpu/Makefile.am
@@ -30,6 +30,8 @@ AM_CFLAGS = \
$(PTHREADSTUBS_CFLAGS) \
-I$(top_srcdir)/include/drm
+AM_CPPFLAGS = -DAMDGPU_ASIC_ID_TABLE=\"${libdrmdatadir}/amdgpu.ids\"
+
libdrm_amdgpu_la_LTLIBRARIES = libdrm_amdgpu.la
libdrm_amdgpu_ladir = $(libdir)
libdrm_amdgpu_la_LDFLAGS = -version-number 1:0:0 -no-undefined
diff --git a/amdgpu/Makefile.sources b/amdgpu/Makefile.sources
index 487b9e0..bc3abaa 100644
--- a/amdgpu/Makefile.sources
+++ b/amdgpu/Makefile.sources
@@ -1,5 +1,5 @@
LIBDRM_AMDGPU_FILES := \
- amdgpu_asic_id.h \
+ amdgpu_asic_id.c \
amdgpu_bo.c \
amdgpu_cs.c \
amdgpu_device.c \
diff --git a/amdgpu/amdgpu_asic_id.c b/amdgpu/amdgpu_asic_id.c
new file mode 100644
index 0000000..5b415e3
--- /dev/null
+++ b/amdgpu/amdgpu_asic_id.c
@@ -0,0 +1,199 @@
+/*
+ * Copyright © 2017 Advanced Micro Devices, Inc.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "xf86drm.h"
+#include "amdgpu_drm.h"
+#include "amdgpu_internal.h"
+
+static int parse_one_line(const char *line, struct amdgpu_asic_id *id)
+{
+ char *buf, *saveptr;
+ char *s_did;
+ char *s_rid;
+ char *s_name;
+ char *endptr;
+ int r = 0;
+
+ buf = strdup(line);
+ if (!buf)
+ return -ENOMEM;
+
+ /* ignore empty line and commented line */
+ if (strlen(line) == 0 || line[0] == '#') {
+ r = -EAGAIN;
+ goto out;
+ }
+
+ /* device id */
+ s_did = strtok_r(buf, ",", &saveptr);
+ if (!s_did) {
+ r = -EINVAL;
+ goto out;
+ }
+
+ id->did = strtol(s_did, &endptr, 16);
+ if (*endptr) {
+ r = -EINVAL;
+ goto out;
+ }
+
+ /* revision id */
+ s_rid = strtok_r(NULL, ",", &saveptr);
+ if (!s_rid) {
+ r = -EINVAL;
+ goto out;
+ }
+
+ id->rid = strtol(s_rid, &endptr, 16);
+ if (*endptr) {
+ r = -EINVAL;
+ goto out;
+ }
+
+ /* marketing name */
+ s_name = strtok_r(NULL, ",", &saveptr);
+ if (!s_name) {
+ r = -EINVAL;
+ goto out;
+ }
+
+ id->marketing_name = strdup(s_name);
+ if (id->marketing_name == NULL) {
+ r = -EINVAL;
+ goto out;
+ }
+
+out:
+ free(buf);
+
+ return r;
+}
+
+int amdgpu_parse_asic_ids(struct amdgpu_asic_id **p_asic_id_table)
+{
+ struct amdgpu_asic_id *asic_id_table;
+ struct amdgpu_asic_id *id;
+ FILE *fp;
+ char *line = NULL;
+ size_t len = 0;
+ ssize_t n;
+ int line_num = 1;
+ size_t table_size = 0;
+ size_t table_max_size = 256;
+ int r = 0;
+
+ fp = fopen(AMDGPU_ASIC_ID_TABLE, "r");
+ if (!fp) {
+ fprintf(stderr, "%s: %s\n", AMDGPU_ASIC_ID_TABLE,
+ strerror(errno));
+ return -EINVAL;
+ }
+
+ asic_id_table = calloc(table_max_size, sizeof(struct amdgpu_asic_id));
+ if (!asic_id_table) {
+ r = -ENOMEM;
+ goto close;
+ }
+
+ /* 1st line is file version */
+ if ((n = getline(&line, &len, fp)) != -1) {
+ /* trim trailing newline */
+ if (line[n - 1] == '\n')
+ line[n - 1] = '\0';
+ drmMsg("%s version: %s\n", AMDGPU_ASIC_ID_TABLE, line);
+ } else {
+ goto free;
+ }
+
+ while ((n = getline(&line, &len, fp)) != -1) {
+ id = asic_id_table + table_size;
+
+ /* trim trailing newline */
+ if (line[n - 1] == '\n')
+ line[n - 1] = '\0';
+
+ /*
+ * parse one line, its format looks like:
+ * 6617,C7,AMD Radeon R7 240 Series
+ */
+ r = parse_one_line(line, id);
+ if (r) {
+ if (r == -EAGAIN) {
+ line_num++;
+ continue;
+ }
+ fprintf(stderr, "Invalid format: %s: line %d: %s\n",
+ AMDGPU_ASIC_ID_TABLE, line_num, line);
+ goto free;
+ }
+
+ line_num++;
+ table_size++;
+
+ if (table_size >= table_max_size) {
+ /* double table size */
+ table_max_size *= 2;
+ asic_id_table = realloc(asic_id_table, table_max_size *
+ sizeof(struct amdgpu_asic_id));
+ if (!asic_id_table) {
+ r = -ENOMEM;
+ goto free;
+ }
+ }
+ }
+
+ /* end of table */
+ id = asic_id_table + table_size;
+ memset(id, 0, sizeof(struct amdgpu_asic_id));
+
+free:
+ free(line);
+
+ if (r && asic_id_table) {
+ while (table_size--) {
+ id = asic_id_table + table_size;
+ if (id->marketing_name != NULL)
+ free(id->marketing_name);
+ }
+ free(asic_id_table);
+ asic_id_table = NULL;
+ }
+close:
+ fclose(fp);
+
+ *p_asic_id_table = asic_id_table;
+
+ return r;
+}
diff --git a/amdgpu/amdgpu_asic_id.h b/amdgpu/amdgpu_asic_id.h
deleted file mode 100644
index 3e7d736..0000000
--- a/amdgpu/amdgpu_asic_id.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright © 2016 Advanced Micro Devices, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef __AMDGPU_ASIC_ID_H__
-#define __AMDGPU_ASIC_ID_H__
-
-static struct amdgpu_asic_id_table_t {
- uint32_t did;
- uint32_t rid;
- const char *marketing_name;
-} const amdgpu_asic_id_table [] = {
- {0x6600, 0x0, "AMD Radeon HD 8600/8700M"},
- {0x6600, 0x81, "AMD Radeon R7 M370"},
- {0x6601, 0x0, "AMD Radeon HD 8500M/8700M"},
- {0x6604, 0x0, "AMD Radeon R7 M265 Series"},
- {0x6604, 0x81, "AMD Radeon R7 M350"},
- {0x6605, 0x0, "AMD Radeon R7 M260 Series"},
- {0x6605, 0x81, "AMD Radeon R7 M340"},
- {0x6606, 0x0, "AMD Radeon HD 8790M"},
- {0x6607, 0x0, "AMD Radeon HD8530M"},
- {0x6608, 0x0, "AMD FirePro W2100"},
- {0x6610, 0x0, "AMD Radeon HD 8600 Series"},
- {0x6610, 0x81, "AMD Radeon R7 350"},
- {0x6610, 0x83, "AMD Radeon R5 340"},
- {0x6611, 0x0, "AMD Radeon HD 8500 Series"},
- {0x6613, 0x0, "AMD Radeon HD 8500 series"},
- {0x6617, 0xC7, "AMD Radeon R7 240 Series"},
- {0x6640, 0x0, "AMD Radeon HD 8950"},
- {0x6640, 0x80, "AMD Radeon R9 M380"},
- {0x6646, 0x0, "AMD Radeon R9 M280X"},
- {0x6646, 0x80, "AMD Radeon R9 M470X"},
- {0x6647, 0x0, "AMD Radeon R9 M270X"},
- {0x6647, 0x80, "AMD Radeon R9 M380"},
- {0x6649, 0x0, "AMD FirePro W5100"},
- {0x6658, 0x0, "AMD Radeon R7 200 Series"},
- {0x665C, 0x0, "AMD Radeon HD 7700 Series"},
- {0x665D, 0x0, "AMD Radeon R7 200 Series"},
- {0x665F, 0x81, "AMD Radeon R7 300 Series"},
- {0x6660, 0x0, "AMD Radeon HD 8600M Series"},
- {0x6660, 0x81, "AMD Radeon R5 M335"},
- {0x6660, 0x83, "AMD Radeon R5 M330"},
- {0x6663, 0x0, "AMD Radeon HD 8500M Series"},
- {0x6663, 0x83, "AMD Radeon R5 M320"},
- {0x6664, 0x0, "AMD Radeon R5 M200 Series"},
- {0x6665, 0x0, "AMD Radeon R5 M200 Series"},
- {0x6665, 0x83, "AMD Radeon R5 M320"},
- {0x6667, 0x0, "AMD Radeon R5 M200 Series"},
- {0x666F, 0x0, "AMD Radeon HD 8500M"},
- {0x6780, 0x0, "ATI FirePro V (FireGL V) Graphics Adapter"},
- {0x678A, 0x0, "ATI FirePro V (FireGL V) Graphics Adapter"},
- {0x6798, 0x0, "AMD Radeon HD 7900 Series"},
- {0x679A, 0x0, "AMD Radeon HD 7900 Series"},
- {0x679B, 0x0, "AMD Radeon HD 7900 Series"},
- {0x679E, 0x0, "AMD Radeon HD 7800 Series"},
- {0x67A0, 0x0, "HAWAII XTGL (67A0)"},
- {0x67A1, 0x0, "HAWAII GL40 (67A1)"},
- {0x67B0, 0x0, "AMD Radeon R9 200 Series"},
- {0x67B0, 0x80, "AMD Radeon R9 390 Series"},
- {0x67B1, 0x0, "AMD Radeon R9 200 Series"},
- {0x67B1, 0x80, "AMD Radeon R9 390 Series"},
- {0x67B9, 0x0, "AMD Radeon R9 200 Series"},
- {0x67DF, 0xC4, "AMD Radeon RX 480 Graphics"},
- {0x67DF, 0xC5, "AMD Radeon RX 470 Graphics"},
- {0x67DF, 0xC7, "AMD Radeon RX 480 Graphics"},
- {0x67DF, 0xCF, "AMD Radeon RX 470 Graphics"},
- {0x67C4, 0x00, "AMD Radeon Pro WX 7100 Graphics"},
- {0x67C7, 0x00, "AMD Radeon Pro WX 5100 Graphics"},
- {0x67C0, 0x00, "AMD Radeon Pro WX 7100 Graphics"},
- {0x67E0, 0x00, "AMD Radeon Pro WX Series Graphics"},
- {0x67E3, 0x00, "AMD Radeon Pro WX 4100 Graphics"},
- {0x67E8, 0x00, "AMD Radeon Pro WX Series Graphics"},
- {0x67E8, 0x01, "AMD Radeon Pro WX Series Graphics"},
- {0x67E8, 0x80, "AMD Radeon E9260 Graphics"},
- {0x67EB, 0x00, "AMD Radeon Pro WX Series Graphics"},
- {0x67EF, 0xC0, "AMD Radeon RX Graphics"},
- {0x67EF, 0xC1, "AMD Radeon RX 460 Graphics"},
- {0x67EF, 0xC5, "AMD Radeon RX 460 Graphics"},
- {0x67EF, 0xC7, "AMD Radeon RX Graphics"},
- {0x67EF, 0xCF, "AMD Radeon RX 460 Graphics"},
- {0x67EF, 0xEF, "AMD Radeon RX Graphics"},
- {0x67FF, 0xC0, "AMD Radeon RX Graphics"},
- {0x67FF, 0xC1, "AMD Radeon RX Graphics"},
- {0x6800, 0x0, "AMD Radeon HD 7970M"},
- {0x6801, 0x0, "AMD Radeon(TM) HD8970M"},
- {0x6808, 0x0, "ATI FirePro V(FireGL V) Graphics Adapter"},
- {0x6809, 0x0, "ATI FirePro V(FireGL V) Graphics Adapter"},
- {0x6810, 0x0, "AMD Radeon(TM) HD 8800 Series"},
- {0x6810, 0x81, "AMD Radeon R7 370 Series"},
- {0x6811, 0x0, "AMD Radeon(TM) HD8800 Series"},
- {0x6811, 0x81, "AMD Radeon R7 300 Series"},
- {0x6818, 0x0, "AMD Radeon HD 7800 Series"},
- {0x6819, 0x0, "AMD Radeon HD 7800 Series"},
- {0x6820, 0x0, "AMD Radeon HD 8800M Series"},
- {0x6820, 0x81, "AMD Radeon R9 M375"},
- {0x6820, 0x83, "AMD Radeon R9 M375X"},
- {0x6821, 0x0, "AMD Radeon HD 8800M Series"},
- {0x6821, 0x87, "AMD Radeon R7 M380"},
- {0x6821, 0x83, "AMD Radeon R9 M370X"},
- {0x6822, 0x0, "AMD Radeon E8860"},
- {0x6823, 0x0, "AMD Radeon HD 8800M Series"},
- {0x6825, 0x0, "AMD Radeon HD 7800M Series"},
- {0x6827, 0x0, "AMD Radeon HD 7800M Series"},
- {0x6828, 0x0, "ATI FirePro V(FireGL V) Graphics Adapter"},
- {0x682B, 0x0, "AMD Radeon HD 8800M Series"},
- {0x682B, 0x87, "AMD Radeon R9 M360"},
- {0x682C, 0x0, "AMD FirePro W4100"},
- {0x682D, 0x0, "AMD Radeon HD 7700M Series"},
- {0x682F, 0x0, "AMD Radeon HD 7700M Series"},
- {0x6835, 0x0, "AMD Radeon R7 Series / HD 9000 Series"},
- {0x6837, 0x0, "AMD Radeon HD7700 Series"},
- {0x683D, 0x0, "AMD Radeon HD 7700 Series"},
- {0x683F, 0x0, "AMD Radeon HD 7700 Series"},
- {0x6900, 0x0, "AMD Radeon R7 M260"},
- {0x6900, 0x81, "AMD Radeon R7 M360"},
- {0x6900, 0x83, "AMD Radeon R7 M340"},
- {0x6901, 0x0, "AMD Radeon R5 M255"},
- {0x6907, 0x0, "AMD Radeon R5 M255"},
- {0x6907, 0x87, "AMD Radeon R5 M315"},
- {0x6920, 0x0, "AMD Radeon R9 M395X"},
- {0x6920, 0x1, "AMD Radeon R9 M390X"},
- {0x6921, 0x0, "AMD Radeon R9 M295X"},
- {0x6929, 0x0, "AMD FirePro S7150"},
- {0x692B, 0x0, "AMD FirePro W7100"},
- {0x6938, 0x0, "AMD Radeon R9 200 Series"},
- {0x6938, 0xF0, "AMD Radeon R9 200 Series"},
- {0x6938, 0xF1, "AMD Radeon R9 380 Series"},
- {0x6939, 0xF0, "AMD Radeon R9 200 Series"},
- {0x6939, 0x0, "AMD Radeon R9 200 Series"},
- {0x6939, 0xF1, "AMD Radeon R9 380 Series"},
- {0x7300, 0xC8, "AMD Radeon R9 Fury Series"},
- {0x7300, 0xCB, "AMD Radeon R9 Fury Series"},
- {0x7300, 0xCA, "AMD Radeon R9 Fury Series"},
- {0x9874, 0xC4, "AMD Radeon R7 Graphics"},
- {0x9874, 0xC5, "AMD Radeon R6 Graphics"},
- {0x9874, 0xC6, "AMD Radeon R6 Graphics"},
- {0x9874, 0xC7, "AMD Radeon R5 Graphics"},
- {0x9874, 0x81, "AMD Radeon R6 Graphics"},
- {0x9874, 0x87, "AMD Radeon R5 Graphics"},
- {0x9874, 0x85, "AMD Radeon R6 Graphics"},
- {0x9874, 0x84, "AMD Radeon R7 Graphics"},
-
- {0x0000, 0x0, "\0"},
-};
-#endif
diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c
index f473d2d..9d08744 100644
--- a/amdgpu/amdgpu_device.c
+++ b/amdgpu/amdgpu_device.c
@@ -44,7 +44,6 @@
#include "amdgpu_internal.h"
#include "util_hash_table.h"
#include "util_math.h"
-#include "amdgpu_asic_id.h"
#define PTR_TO_UINT(x) ((unsigned)((intptr_t)(x)))
#define UINT_TO_PTR(x) ((void *)((intptr_t)(x)))
@@ -131,6 +130,7 @@ static int amdgpu_get_auth(int fd, int *auth)
static void amdgpu_device_free_internal(amdgpu_device_handle dev)
{
+ const struct amdgpu_asic_id *id;
amdgpu_vamgr_deinit(&dev->vamgr_32);
amdgpu_vamgr_deinit(&dev->vamgr);
util_hash_table_destroy(dev->bo_flink_names);
@@ -140,6 +140,13 @@ static void amdgpu_device_free_internal(amdgpu_device_handle dev)
close(dev->fd);
if ((dev->flink_fd >= 0) && (dev->fd != dev->flink_fd))
close(dev->flink_fd);
+ if (dev->asic_ids) {
+ for (id = dev->asic_ids; id->did; id++) {
+ if (id->marketing_name != NULL)
+ free(id->marketing_name);
+ }
+ free(dev->asic_ids);
+ }
free(dev);
}
@@ -267,6 +274,11 @@ int amdgpu_device_initialize(int fd,
amdgpu_vamgr_init(&dev->vamgr_32, start, max,
dev->dev_info.virtual_address_alignment);
+ r = amdgpu_parse_asic_ids(&dev->asic_ids);
+ if (r)
+ fprintf(stderr, "%s: Can not parse asic ids, 0x%x.",
+ __func__, r);
+
*major_version = dev->major_version;
*minor_version = dev->minor_version;
*device_handle = dev;
@@ -297,13 +309,15 @@ int amdgpu_device_deinitialize(amdgpu_device_handle dev)
const char *amdgpu_get_marketing_name(amdgpu_device_handle dev)
{
- const struct amdgpu_asic_id_table_t *t = amdgpu_asic_id_table;
+ const struct amdgpu_asic_id *id;
+
+ if (!dev->asic_ids)
+ return NULL;
- while (t->did) {
- if ((t->did == dev->info.asic_id) &&
- (t->rid == dev->info.pci_rev_id))
- return t->marketing_name;
- t++;
+ for (id = dev->asic_ids; id->did; id++) {
+ if ((id->did == dev->info.asic_id) &&
+ (id->rid == dev->info.pci_rev_id))
+ return id->marketing_name;
}
return NULL;
diff --git a/amdgpu/amdgpu_internal.h b/amdgpu/amdgpu_internal.h
index cf119a5..e68246b 100644
--- a/amdgpu/amdgpu_internal.h
+++ b/amdgpu/amdgpu_internal.h
@@ -69,6 +69,12 @@ struct amdgpu_va {
struct amdgpu_bo_va_mgr *vamgr;
};
+struct amdgpu_asic_id {
+ uint32_t did;
+ uint32_t rid;
+ char *marketing_name;
+};
+
struct amdgpu_device {
atomic_t refcount;
int fd;
@@ -76,6 +82,8 @@ struct amdgpu_device {
unsigned major_version;
unsigned minor_version;
+ /** Lookup table of asic device id, revision id and marketing name */
+ struct amdgpu_asic_id *asic_ids;
/** List of buffer handles. Protected by bo_table_mutex. */
struct util_hash_table *bo_handles;
/** List of buffer GEM flink names. Protected by bo_table_mutex. */
@@ -149,6 +157,8 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
drm_private void
amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size);
+drm_private int amdgpu_parse_asic_ids(struct amdgpu_asic_id **asic_ids);
+
drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev);
drm_private uint64_t amdgpu_cs_calculate_timeout(uint64_t timeout);
diff --git a/include/drm/amdgpu.ids b/include/drm/amdgpu.ids
new file mode 100644
index 0000000..1b00b60
--- /dev/null
+++ b/include/drm/amdgpu.ids
@@ -0,0 +1,154 @@
+1.0.0
+6600,0,AMD Radeon HD 8600/8700M
+6600,81,AMD Radeon (TM) R7 M370
+6601,0,AMD Radeon (TM) HD 8500M/8700M
+6604,0,AMD Radeon R7 M265 Series
+6604,81,AMD Radeon (TM) R7 M350
+6605,0,AMD Radeon R7 M260 Series
+6605,81,AMD Radeon (TM) R7 M340
+6606,0,AMD Radeon HD 8790M
+6607,0,AMD Radeon (TM) HD8530M
+6608,0,AMD FirePro W2100
+6610,0,AMD Radeon HD 8600 Series
+6610,81,AMD Radeon (TM) R7 350
+6610,83,AMD Radeon (TM) R5 340
+6611,0,AMD Radeon HD 8500 Series
+6613,0,AMD Radeon HD 8500 series
+6617,C7,AMD Radeon R7 240 Series
+6640,0,AMD Radeon HD 8950
+6640,80,AMD Radeon (TM) R9 M380
+6646,0,AMD Radeon R9 M280X
+6646,80,AMD Radeon (TM) R9 M470X
+6647,0,AMD Radeon R9 M270X
+6647,80,AMD Radeon (TM) R9 M380
+6649,0,AMD FirePro W5100
+6658,0,AMD Radeon R7 200 Series
+665C,0,AMD Radeon HD 7700 Series
+665D,0,AMD Radeon R7 200 Series
+665F,81,AMD Radeon (TM) R7 300 Series
+6660,0,AMD Radeon HD 8600M Series
+6660,81,AMD Radeon (TM) R5 M335
+6660,83,AMD Radeon (TM) R5 M330
+6663,0,AMD Radeon HD 8500M Series
+6663,83,AMD Radeon (TM) R5 M320
+6664,0,AMD Radeon R5 M200 Series
+6665,0,AMD Radeon R5 M200 Series
+6665,83,AMD Radeon (TM) R5 M320
+6667,0,AMD Radeon R5 M200 Series
+666F,0,AMD Radeon HD 8500M
+6780,0,ATI FirePro V (FireGL V) Graphics Adapter
+678A,0,ATI FirePro V (FireGL V) Graphics Adapter
+6798,0,AMD Radeon HD 7900 Series
+679A,0,AMD Radeon HD 7900 Series
+679B,0,AMD Radeon HD 7900 Series
+679E,0,AMD Radeon HD 7800 Series
+67A0,0,AMD Radeon FirePro W9100
+67A1,0,AMD Radeon FirePro W8100
+67B0,0,AMD Radeon R9 200 Series
+67B0,80,AMD Radeon (TM) R9 390 Series
+67B1,0,AMD Radeon R9 200 Series
+67B1,80,AMD Radeon (TM) R9 390 Series
+67B9,0,AMD Radeon R9 200 Series
+67DF,C1,Radeon RX 580 Series
+67DF,C2,Radeon RX 570 Series
+67DF,C3,Radeon RX 580 Series
+67DF,C4,AMD Radeon (TM) RX 480 Graphics
+67DF,C5,AMD Radeon (TM) RX 470 Graphics
+67DF,C6,Radeon RX 570 Series
+67DF,C7,AMD Radeon (TM) RX 480 Graphics
+67DF,CF,AMD Radeon (TM) RX 470 Graphics
+67DF,E3,Radeon RX Series
+67DF,E7,Radeon RX 580 Series
+67DF,EF,Radeon RX 570 Series
+67C2,0,67C2:00
+67C2,01,AMD Radeon (TM) Pro V7350x2
+67C2,02,AMD Radeon (TM) Pro V7300X
+67C4,00,AMD Radeon (TM) Pro WX 7100 Graphics
+67C7,00,AMD Radeon (TM) Pro WX 5100 Graphics
+67C0,00,AMD Radeon (TM) Pro WX 7100 Graphics
+67D0,0,67D0:00
+67D0,01,AMD Radeon (TM) Pro V7350x2
+67D0,02,AMD Radeon (TM) Pro V7300X
+67E0,00,AMD Radeon (TM) Pro WX Series
+67E3,00,AMD Radeon (TM) Pro WX 4100
+67E8,00,AMD Radeon (TM) Pro WX Series
+67E8,01,AMD Radeon (TM) Pro WX Series
+67E8,80,AMD Radeon (TM) E9260 Graphics
+67EB,00,AMD Radeon (TM) Pro V5300X
+67EF,C0,AMD Radeon (TM) RX Graphics
+67EF,C1,AMD Radeon (TM) RX 460 Graphics
+67EF,C3,Radeon RX Series
+67EF,C5,AMD Radeon (TM) RX 460 Graphics
+67EF,C7,AMD Radeon (TM) RX Graphics
+67EF,CF,AMD Radeon (TM) RX 460 Graphics
+67EF,E0,67EF:E0
+67EF,E1,Radeon RX Series
+67EF,E3,Radeon RX Series
+67EF,E5,67EF:E5
+67EF,E7,Radeon RX Series
+67EF,EF,AMD Radeon (TM) RX Graphics
+67EF,FF,Radeon RX Series
+67FF,C0,AMD Radeon (TM) RX Graphics
+67FF,C1,AMD Radeon (TM) RX Graphics
+67FF,CF,67FF:CF
+67FF,EF,67FF:EF
+67FF,FF,Radeon RX 550 Series
+6800,0,AMD Radeon HD 7970M
+6801,0,AMD Radeon(TM) HD8970M
+6808,0,ATI FirePro V(FireGL V) Graphics Adapter
+6809,0,ATI FirePro V(FireGL V) Graphics Adapter
+6810,0,AMD Radeon(TM) HD 8800 Series
+6810,81,AMD Radeon (TM) R7 370 Series
+6811,0,AMD Radeon(TM) HD8800 Series
+6811,81,AMD Radeon (TM) R7 300 Series
+6818,0,AMD Radeon HD 7800 Series
+6819,0,AMD Radeon HD 7800 Series
+6820,0,AMD Radeon HD 8800M Series
+6820,81,AMD Radeon (TM) R9 M375
+6820,83,AMD Radeon (TM) R9 M375X
+6821,0,AMD Radeon HD 8800M Series
+6821,87,AMD Radeon (TM) R7 M380
+6821,83,AMD Radeon R9 (TM) M370X
+6822,0,AMD Radeon E8860
+6823,0,AMD Radeon HD 8800M Series
+6825,0,AMD Radeon HD 7800M Series
+6827,0,AMD Radeon HD 7800M Series
+6828,0,ATI FirePro V(FireGL V) Graphics Adapter
+682B,0,AMD Radeon HD 8800M Series
+682B,87,AMD Radeon (TM) R9 M360
+682C,0,AMD FirePro W4100
+682D,0,AMD Radeon HD 7700M Series
+682F,0,AMD Radeon HD 7700M Series
+6835,0,AMD Radeon R7 Series / HD 9000 Series
+6837,0,AMD Radeon HD7700 Series
+683D,0,AMD Radeon HD 7700 Series
+683F,0,AMD Radeon HD 7700 Series
+6900,0,AMD Radeon R7 M260
+6900,81,AMD Radeon (TM) R7 M360
+6900,83,AMD Radeon (TM) R7 M340
+6901,0,AMD Radeon R5 M255
+6907,0,AMD Radeon R5 M255
+6907,87,AMD Radeon (TM) R5 M315
+6920,0,AMD RADEON R9 M395X
+6920,1,AMD RADEON R9 M390X
+6921,0,AMD Radeon R9 M295X
+6929,0,AMD FirePro S7150
+692B,0,AMD FirePro W7100
+6938,0,AMD Radeon R9 200 Series
+6938,F0,AMD Radeon R9 200 Series
+6938,F1,AMD Radeon (TM) R9 380 Series
+6939,F0,AMD Radeon R9 200 Series
+6939,0,AMD Radeon R9 200 Series
+6939,F1,AMD Radeon (TM) R9 380 Series
+7300,C8,AMD Radeon (TM) R9 Fury Series
+7300,C9,Radeon (TM) Pro Duo
+7300,CB,AMD Radeon (TM) R9 Fury Series
+7300,CA,AMD Radeon (TM) R9 Fury Series
+9874,C4,AMD Radeon R7 Graphics
+9874,C5,AMD Radeon R6 Graphics
+9874,C6,AMD Radeon R6 Graphics
+9874,C7,AMD Radeon R5 Graphics
+9874,81,AMD Radeon R6 Graphics
+9874,87,AMD Radeon R5 Graphics
+9874,85,AMD Radeon R6 Graphics
+9874,84,AMD Radeon R7 Graphics
--
2.7.4
More information about the amd-gfx
mailing list