GNU Linux-libre 4.14.332-gnu1
[releases.git] / drivers / gpu / drm / etnaviv / etnaviv_dump.h
1 /*
2  * Copyright (C) 2015 Etnaviv Project
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 as published by
6  * the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License along with
14  * this program.  If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Etnaviv devcoredump file definitions
17  */
18 #ifndef ETNAVIV_DUMP_H
19 #define ETNAVIV_DUMP_H
20
21 #include <linux/types.h>
22
23 enum {
24         ETDUMP_MAGIC = 0x414e5445,
25         ETDUMP_BUF_REG = 0,
26         ETDUMP_BUF_MMU,
27         ETDUMP_BUF_RING,
28         ETDUMP_BUF_CMD,
29         ETDUMP_BUF_BOMAP,
30         ETDUMP_BUF_BO,
31         ETDUMP_BUF_END,
32 };
33
34 struct etnaviv_dump_object_header {
35         __le32 magic;
36         __le32 type;
37         __le32 file_offset;
38         __le32 file_size;
39         __le64 iova;
40         __le32 data[2];
41 };
42
43 /* Registers object, an array of these */
44 struct etnaviv_dump_registers {
45         __le32 reg;
46         __le32 value;
47 };
48
49 #ifdef __KERNEL__
50 struct etnaviv_gpu;
51 void etnaviv_core_dump(struct etnaviv_gpu *gpu);
52 #endif
53
54 #endif