forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/rknpu/include/rknpu_drv.h
....@@ -30,10 +30,10 @@
3030
3131 #define DRIVER_NAME "rknpu"
3232 #define DRIVER_DESC "RKNPU driver"
33
-#define DRIVER_DATE "20220829"
33
+#define DRIVER_DATE "20230428"
3434 #define DRIVER_MAJOR 0
3535 #define DRIVER_MINOR 8
36
-#define DRIVER_PATCHLEVEL 2
36
+#define DRIVER_PATCHLEVEL 8
3737
3838 #define LOG_TAG "RKNPU"
3939
....@@ -54,7 +54,7 @@
5454 #define LOG_DEV_DEBUG(dev, fmt, args...) dev_dbg(dev, LOG_TAG ": " fmt, ##args)
5555 #define LOG_DEV_ERROR(dev, fmt, args...) dev_err(dev, LOG_TAG ": " fmt, ##args)
5656
57
-struct npu_reset_data {
57
+struct rknpu_reset_data {
5858 const char *srst_a_name;
5959 const char *srst_h_name;
6060 };
....@@ -66,11 +66,15 @@
6666 __u32 pc_data_amount_scale;
6767 __u32 pc_task_number_bits;
6868 __u32 pc_task_number_mask;
69
+ __u32 pc_task_status_offset;
70
+ __u32 pc_dma_ctrl;
6971 __u32 bw_enable;
70
- const struct npu_irqs_data *irqs;
71
- const struct npu_reset_data *resets;
72
+ const struct rknpu_irqs_data *irqs;
73
+ const struct rknpu_reset_data *resets;
7274 int num_irqs;
7375 int num_resets;
76
+ __u64 nbuf_phyaddr;
77
+ __u64 nbuf_size;
7478 };
7579
7680 struct rknpu_timer {
....@@ -147,12 +151,21 @@
147151 ktime_t kt;
148152 phys_addr_t sram_start;
149153 phys_addr_t sram_end;
154
+ phys_addr_t nbuf_start;
155
+ phys_addr_t nbuf_end;
150156 uint32_t sram_size;
157
+ uint32_t nbuf_size;
151158 void __iomem *sram_base_io;
159
+ void __iomem *nbuf_base_io;
152160 struct rknpu_mm *sram_mm;
153161 unsigned long power_put_delay;
154162 };
155163
164
+struct rknpu_session {
165
+ struct rknpu_device *rknpu_dev;
166
+ struct list_head list;
167
+};
168
+
156169 int rknpu_power_get(struct rknpu_device *rknpu_dev);
157170 int rknpu_power_put(struct rknpu_device *rknpu_dev);
158171