.. | .. |
---|
4 | 4 | #ifndef _RKISPP_PARAMS_H |
---|
5 | 5 | #define _RKISPP_PARAMS_H |
---|
6 | 6 | |
---|
7 | | -#include <linux/rkispp-config.h> |
---|
| 7 | +#include <linux/fec-config.h> |
---|
| 8 | +#include <linux/rk-ispp-config.h> |
---|
8 | 9 | #include "common.h" |
---|
9 | 10 | |
---|
10 | 11 | enum rkispp_paramvdev_id { |
---|
.. | .. |
---|
13 | 14 | PARAM_VDEV_FEC, |
---|
14 | 15 | PARAM_VDEV_MAX |
---|
15 | 16 | }; |
---|
| 17 | + |
---|
| 18 | +#define ISPP_PACK_4BYTE(a, b, c, d) \ |
---|
| 19 | + (((a) & 0xFF) << 0 | ((b) & 0xFF) << 8 | \ |
---|
| 20 | + ((c) & 0xFF) << 16 | ((d) & 0xFF) << 24) |
---|
| 21 | + |
---|
| 22 | +#define ISPP_PACK_4BIT(a, b, c, d, e, f, g, h) \ |
---|
| 23 | + (((a) & 0xf) << 0 | ((b) & 0xf) << 4 | \ |
---|
| 24 | + ((c) & 0xf) << 8 | ((d) & 0xf) << 12 | \ |
---|
| 25 | + ((e) & 0xf) << 16 | ((f) & 0xf) << 20 | \ |
---|
| 26 | + ((g) & 0xf) << 24 | ((h) & 0xf) << 28) |
---|
| 27 | + |
---|
| 28 | +#define ISPP_PACK_4BYTE(a, b, c, d) \ |
---|
| 29 | + (((a) & 0xFF) << 0 | ((b) & 0xFF) << 8 | \ |
---|
| 30 | + ((c) & 0xFF) << 16 | ((d) & 0xFF) << 24) |
---|
| 31 | + |
---|
| 32 | +#define ISPP_PACK_2SHORT(a, b) \ |
---|
| 33 | + (((a) & 0xFFFF) << 0 | ((b) & 0xFFFF) << 16) |
---|
| 34 | + |
---|
| 35 | +#define ISPP_NOBIG_OVERFLOW_SIZE (2560 * 1440) |
---|
16 | 36 | |
---|
17 | 37 | /* rkispp parameters device |
---|
18 | 38 | * config_lock: lock to protect config |
---|
.. | .. |
---|
23 | 43 | struct rkispp_params_vdev { |
---|
24 | 44 | struct rkispp_vdev_node vnode; |
---|
25 | 45 | struct rkispp_device *dev; |
---|
| 46 | + struct rkispp_params_ops *params_ops; |
---|
26 | 47 | |
---|
27 | 48 | spinlock_t config_lock; |
---|
28 | 49 | struct list_head params; |
---|
.. | .. |
---|
39 | 60 | enum rkispp_paramvdev_id vdev_id; |
---|
40 | 61 | }; |
---|
41 | 62 | |
---|
| 63 | +struct rkispp_params_ops { |
---|
| 64 | + void (*rkispp_params_cfg)(struct rkispp_params_vdev *params_vdev, u32 frame_id); |
---|
| 65 | + void (*rkispp_params_vb2_buf_queue)(struct vb2_buffer *vb); |
---|
| 66 | +}; |
---|
| 67 | + |
---|
42 | 68 | int rkispp_register_params_vdevs(struct rkispp_device *dev); |
---|
43 | 69 | void rkispp_unregister_params_vdevs(struct rkispp_device *dev); |
---|
44 | | -void rkispp_params_cfg(struct rkispp_params_vdev *params_vdev, u32 frame_id); |
---|
45 | 70 | void rkispp_params_get_fecbuf_inf(struct rkispp_params_vdev *params_vdev, |
---|
46 | 71 | struct rkispp_fecbuf_info *fecbuf); |
---|
47 | 72 | void rkispp_params_set_fecbuf_size(struct rkispp_params_vdev *params_vdev, |
---|
48 | 73 | struct rkispp_fecbuf_size *fecsize); |
---|
| 74 | + |
---|
49 | 75 | #endif |
---|