| .. | .. |
|---|
| 7 | 7 | |
|---|
| 8 | 8 | static const struct etnaviv_chip_identity etnaviv_chip_identities[] = { |
|---|
| 9 | 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 | + { |
|---|
| 10 | 41 | .model = 0x7000, |
|---|
| 11 | 42 | .revision = 0x6214, |
|---|
| 43 | + .product_id = ~0U, |
|---|
| 44 | + .customer_id = ~0U, |
|---|
| 45 | + .eco_id = ~0U, |
|---|
| 12 | 46 | .stream_count = 16, |
|---|
| 13 | 47 | .register_max = 64, |
|---|
| 14 | 48 | .thread_count = 1024, |
|---|
| .. | .. |
|---|
| 43 | 77 | |
|---|
| 44 | 78 | for (i = 0; i < ARRAY_SIZE(etnaviv_chip_identities); i++) { |
|---|
| 45 | 79 | if (etnaviv_chip_identities[i].model == ident->model && |
|---|
| 46 | | - etnaviv_chip_identities[i].revision == ident->revision) { |
|---|
| 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)) { |
|---|
| 47 | 87 | memcpy(ident, &etnaviv_chip_identities[i], |
|---|
| 48 | 88 | sizeof(*ident)); |
|---|
| 49 | 89 | return true; |
|---|