1
2
3
4
5
6
7 #ifndef _D71_DEV_H_
8 #define _D71_DEV_H_
9
10 #include "komeda_dev.h"
11 #include "komeda_pipeline.h"
12 #include "d71_regs.h"
13
14 struct d71_pipeline {
15 struct komeda_pipeline base;
16
17
18 u32 __iomem *lpu_addr;
19 u32 __iomem *cu_addr;
20 u32 __iomem *dou_addr;
21 u32 __iomem *dou_ft_coeff_addr;
22 };
23
24 struct d71_dev {
25 struct komeda_dev *mdev;
26
27 int num_blocks;
28 int num_pipelines;
29 int num_rich_layers;
30 u32 max_line_size;
31 u32 max_vsize;
32 u32 supports_dual_link : 1;
33 u32 integrates_tbu : 1;
34
35
36 u32 __iomem *gcu_addr;
37
38 u32 __iomem *glb_scl_coeff_addr[D71_MAX_GLB_SCL_COEFF];
39 u32 __iomem *periph_addr;
40
41 struct d71_pipeline *pipes[D71_MAX_PIPELINE];
42 };
43
44 #define to_d71_pipeline(x) container_of(x, struct d71_pipeline, base)
45
46 extern const struct komeda_pipeline_funcs d71_pipeline_funcs;
47
48 int d71_probe_block(struct d71_dev *d71,
49 struct block_header *blk, u32 __iomem *reg);
50 void d71_read_block_header(u32 __iomem *reg, struct block_header *blk);
51
52 #endif