Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * (C) COPYRIGHT 2018 ARM Limited. All rights reserved.
0004  * Author: James.Qian.Wang <james.qian.wang@arm.com>
0005  *
0006  */
0007 #ifndef _D71_DEV_H_
0008 #define _D71_DEV_H_
0009 
0010 #include "komeda_dev.h"
0011 #include "komeda_pipeline.h"
0012 #include "d71_regs.h"
0013 
0014 struct d71_pipeline {
0015     struct komeda_pipeline base;
0016 
0017     /* d71 private pipeline blocks */
0018     u32 __iomem *lpu_addr;
0019     u32 __iomem *cu_addr;
0020     u32 __iomem *dou_addr;
0021     u32 __iomem *dou_ft_coeff_addr; /* forward transform coeffs table */
0022 };
0023 
0024 struct d71_dev {
0025     struct komeda_dev *mdev;
0026 
0027     int num_blocks;
0028     int num_pipelines;
0029     int num_rich_layers;
0030     u32 max_line_size;
0031     u32 max_vsize;
0032     u32 supports_dual_link : 1;
0033     u32 integrates_tbu : 1;
0034 
0035     /* global register blocks */
0036     u32 __iomem *gcu_addr;
0037     /* scaling coeffs table */
0038     u32 __iomem *glb_scl_coeff_addr[D71_MAX_GLB_SCL_COEFF];
0039     u32 __iomem *periph_addr;
0040 
0041     struct d71_pipeline *pipes[D71_MAX_PIPELINE];
0042 };
0043 
0044 #define to_d71_pipeline(x)  container_of(x, struct d71_pipeline, base)
0045 
0046 extern const struct komeda_pipeline_funcs d71_pipeline_funcs;
0047 
0048 int d71_probe_block(struct d71_dev *d71,
0049             struct block_header *blk, u32 __iomem *reg);
0050 void d71_read_block_header(u32 __iomem *reg, struct block_header *blk);
0051 
0052 void d71_dump(struct komeda_dev *mdev, struct seq_file *sf);
0053 
0054 #endif /* !_D71_DEV_H_ */