Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1// SPDX-License-Identifier: GPL-2.0
 2/*
 3 * Copyright (C) 2018 Etnaviv Project
 4 */
 5
 6#include "etnaviv_gpu.h"
 7
 8static const struct etnaviv_chip_identity etnaviv_chip_identities[] = {
 9	{
10		.model = 0x400,
11		.revision = 0x4652,
12		.product_id = 0x70001,
13		.customer_id = 0x100,
14		.eco_id = 0,
15		.stream_count = 4,
16		.register_max = 64,
17		.thread_count = 128,
18		.shader_core_count = 1,
19		.vertex_cache_size = 8,
20		.vertex_output_buffer_size = 1024,
21		.pixel_pipes = 1,
22		.instruction_count = 256,
23		.num_constants = 320,
24		.buffer_size = 0,
25		.varyings_count = 8,
26		.features = 0xa0e9e004,
27		.minor_features0 = 0xe1299fff,
28		.minor_features1 = 0xbe13b219,
29		.minor_features2 = 0xce110010,
30		.minor_features3 = 0x8000001,
31		.minor_features4 = 0x20102,
32		.minor_features5 = 0x120000,
33		.minor_features6 = 0x0,
34		.minor_features7 = 0x0,
35		.minor_features8 = 0x0,
36		.minor_features9 = 0x0,
37		.minor_features10 = 0x0,
38		.minor_features11 = 0x0,
39	},
40	{
41		.model = 0x7000,
42		.revision = 0x6214,
43		.product_id = ~0U,
44		.customer_id = ~0U,
45		.eco_id = ~0U,
46		.stream_count = 16,
47		.register_max = 64,
48		.thread_count = 1024,
49		.shader_core_count = 4,
50		.vertex_cache_size = 16,
51		.vertex_output_buffer_size = 1024,
52		.pixel_pipes = 2,
53		.instruction_count = 512,
54		.num_constants = 320,
55		.buffer_size = 0,
56		.varyings_count = 16,
57		.features = 0xe0287cad,
58		.minor_features0 = 0xc1799eff,
59		.minor_features1 = 0xfefbfad9,
60		.minor_features2 = 0xeb9d4fbf,
61		.minor_features3 = 0xedfffced,
62		.minor_features4 = 0xdb0dafc7,
63		.minor_features5 = 0xbb5ac333,
64		.minor_features6 = 0xfc8ee200,
65		.minor_features7 = 0x03fbfa6f,
66		.minor_features8 = 0x00ef0ef0,
67		.minor_features9 = 0x0edbf03c,
68		.minor_features10 = 0x90044250,
69		.minor_features11 = 0x00000024,
70	},
71};
72
73bool etnaviv_fill_identity_from_hwdb(struct etnaviv_gpu *gpu)
74{
75	struct etnaviv_chip_identity *ident = &gpu->identity;
76	int i;
77
78	for (i = 0; i < ARRAY_SIZE(etnaviv_chip_identities); i++) {
79		if (etnaviv_chip_identities[i].model == ident->model &&
80		    etnaviv_chip_identities[i].revision == ident->revision &&
81		    (etnaviv_chip_identities[i].product_id == ident->product_id ||
82			 etnaviv_chip_identities[i].product_id == ~0U) &&
83		    (etnaviv_chip_identities[i].customer_id == ident->customer_id ||
84			 etnaviv_chip_identities[i].customer_id == ~0U) &&
85		    (etnaviv_chip_identities[i].eco_id == ident->eco_id ||
86			 etnaviv_chip_identities[i].eco_id == ~0U)) {
87			memcpy(ident, &etnaviv_chip_identities[i],
88			       sizeof(*ident));
89			return true;
90		}
91	}
92
93	return false;
94}