• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2 /*
3  * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
4  */
5 
6 #ifndef __UAPI_CAM_CPAS_H__
7 #define __UAPI_CAM_CPAS_H__
8 
9 #include <media/cam_defs.h>
10 
11 #define CAM_FAMILY_CAMERA_SS     1
12 #define CAM_FAMILY_CPAS_SS       2
13 
14 /* AXI BW Voting Version */
15 #define CAM_AXI_BW_VOTING_V2                2
16 
17 /* AXI BW Voting Transaction Type */
18 #define CAM_AXI_TRANSACTION_READ            0
19 #define CAM_AXI_TRANSACTION_WRITE           1
20 
21 /* AXI BW Voting Path Data Type */
22 #define CAM_AXI_PATH_DATA_IFE_START_OFFSET 0
23 #define CAM_AXI_PATH_DATA_IFE_LINEAR    (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 0)
24 #define CAM_AXI_PATH_DATA_IFE_VID       (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 1)
25 #define CAM_AXI_PATH_DATA_IFE_DISP      (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 2)
26 #define CAM_AXI_PATH_DATA_IFE_STATS     (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 3)
27 #define CAM_AXI_PATH_DATA_IFE_RDI0      (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 4)
28 #define CAM_AXI_PATH_DATA_IFE_RDI1      (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 5)
29 #define CAM_AXI_PATH_DATA_IFE_RDI2      (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 6)
30 #define CAM_AXI_PATH_DATA_IFE_RDI3      (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 7)
31 #define CAM_AXI_PATH_DATA_IFE_PDAF      (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 8)
32 #define CAM_AXI_PATH_DATA_IFE_PIXEL_RAW \
33 	(CAM_AXI_PATH_DATA_IFE_START_OFFSET + 9)
34 #define CAM_AXI_PATH_DATA_IFE_MAX_OFFSET \
35 	(CAM_AXI_PATH_DATA_IFE_START_OFFSET + 31)
36 
37 #define CAM_AXI_PATH_DATA_IPE_START_OFFSET 32
38 #define CAM_AXI_PATH_DATA_IPE_RD_IN     (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 0)
39 #define CAM_AXI_PATH_DATA_IPE_RD_REF    (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 1)
40 #define CAM_AXI_PATH_DATA_IPE_WR_VID    (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 2)
41 #define CAM_AXI_PATH_DATA_IPE_WR_DISP   (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 3)
42 #define CAM_AXI_PATH_DATA_IPE_WR_REF    (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 4)
43 #define CAM_AXI_PATH_DATA_IPE_MAX_OFFSET \
44 	(CAM_AXI_PATH_DATA_IPE_START_OFFSET + 31)
45 
46 #define CAM_AXI_PATH_DATA_ALL              256
47 
48 /**
49  * struct cam_cpas_query_cap - CPAS query device capability payload
50  *
51  * @camera_family     : Camera family type
52  * @reserved          : Reserved field for alignment
53  * @camera_version    : Camera platform version
54  * @cpas_version      : Camera CPAS version within camera platform
55  *
56  */
57 struct cam_cpas_query_cap {
58 	uint32_t                 camera_family;
59 	uint32_t                 reserved;
60 	struct cam_hw_version    camera_version;
61 	struct cam_hw_version    cpas_version;
62 };
63 
64 /**
65  * struct cam_axi_per_path_bw_vote - Per path bandwidth vote information
66  *
67  * @usage_data               client usage data (left/right/rdi)
68  * @transac_type             Transaction type on the path (read/write)
69  * @path_data_type           Path for which vote is given (video, display, rdi)
70  * @reserved                 Reserved for alignment
71  * @camnoc_bw                CAMNOC bw for this path
72  * @mnoc_ab_bw               MNOC AB bw for this path
73  * @mnoc_ib_bw               MNOC IB bw for this path
74  * @ddr_ab_bw                DDR AB bw for this path
75  * @ddr_ib_bw                DDR IB bw for this path
76  */
77 struct cam_axi_per_path_bw_vote {
78 	uint32_t                      usage_data;
79 	uint32_t                      transac_type;
80 	uint32_t                      path_data_type;
81 	uint32_t                      reserved;
82 	uint64_t                      camnoc_bw;
83 	uint64_t                      mnoc_ab_bw;
84 	uint64_t                      mnoc_ib_bw;
85 	uint64_t                      ddr_ab_bw;
86 	uint64_t                      ddr_ib_bw;
87 };
88 
89 #endif /* __UAPI_CAM_CPAS_H__ */
90