hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * (C) COPYRIGHT 2018 ARM Limited. All rights reserved.
 * Author: James.Qian.Wang <james.qian.wang@arm.com>
 *
 */
#ifndef _D71_DEV_H_
#define _D71_DEV_H_
 
#include "komeda_dev.h"
#include "komeda_pipeline.h"
#include "d71_regs.h"
 
struct d71_pipeline {
   struct komeda_pipeline base;
 
   /* d71 private pipeline blocks */
   u32 __iomem    *lpu_addr;
   u32 __iomem    *cu_addr;
   u32 __iomem    *dou_addr;
   u32 __iomem    *dou_ft_coeff_addr; /* forward transform coeffs table */
};
 
struct d71_dev {
   struct komeda_dev *mdev;
 
   int    num_blocks;
   int    num_pipelines;
   int    num_rich_layers;
   u32    max_line_size;
   u32    max_vsize;
   u32    supports_dual_link : 1;
   u32    integrates_tbu : 1;
 
   /* global register blocks */
   u32 __iomem    *gcu_addr;
   /* scaling coeffs table */
   u32 __iomem    *glb_scl_coeff_addr[D71_MAX_GLB_SCL_COEFF];
   u32 __iomem    *periph_addr;
 
   struct d71_pipeline *pipes[D71_MAX_PIPELINE];
};
 
#define to_d71_pipeline(x)    container_of(x, struct d71_pipeline, base)
 
extern const struct komeda_pipeline_funcs d71_pipeline_funcs;
 
int d71_probe_block(struct d71_dev *d71,
           struct block_header *blk, u32 __iomem *reg);
void d71_read_block_header(u32 __iomem *reg, struct block_header *blk);
 
void d71_dump(struct komeda_dev *mdev, struct seq_file *sf);
 
#endif /* !_D71_DEV_H_ */